| Error number | Error name | Description | Explanation |
|---|---|---|---|
| 0 | UNKNOWN |
None | Should never happen. |
| 1/OK | SUCCESS |
Finished self test | Happens if all tests successfully complete without errors. |
| 2 | RADIO_CHECK_FAILED |
Unable to scan for Wifi or Cubes | Checks if the robot is able to get internet, if it can't get internet the robot scans for cubes instead, if it fails both of those checks it'll error out with this error near the end of the self test. |
| 3 | BEHAVIOR_NOT_RUNNABLE |
Unable to run behavior | Can happen both in playpen and in self-test. Usually this will never happen but in some cases a behavior will not want to run for whatever reason. So instead of crashing the bot with a ANKI_VERIFY and error 914 it'll show this code on the screen. |
| 4 | CLIFF_UNEXPECTED |
Cliff detected when not expected | During self-test this can happen if the robot gets stopped in it's movement when it's going back home, a cliff gets detected when it isn't supposed to be found, or during the initial check when the robot is adjusting it's head while on the charger. |
| 5 | UNEXPECTED_ON_CHARGER |
Charger detected when not expected | If the robot detects the charger during a behavior that's not supposed to have the charger detected the robot will error with UNEXPECTED_ON_CHARGER. This one can be easily be triggered by starting self test and when the head goes down take the bot off and put it back on the charger to trigger it. |
| 6 | HEAD_MOTOR_CALIB_UNEXPECTED |
Unexpected calibration for head | Happens when the head motor has bad calibration, can happen due to dusty gears or bad calibration on robot boot. |
| 7 | LIFT_MOTOR_CALIB_UNEXPECTED |
Unexpected calibration for lift | Happens when the lift motor has bad calibration, can happen due to dusty gears or bad calibration on robot boot. |
| 8 | MOTOR_CALIB_UNEXPECTED |
Unexpected calibration for motors | Seems to happen when both motors have bad calibration, can happen due to dusty gears or bad calibration on robot boot. (Needs investigation) |
| 9 | TEST_TIMED_OUT |
Behavior took too long on a test | If a behavior takes too long to run and isn't able to finish the bot will show this error to forcefully stop the hanging behavior. Timeout is 20 seconds. |
| 10 | HEAD_MOTOR_DISABLED |
Head motor disabled when expected to be enabled | The robot sometimes disables the head motor if it knows it isn't going to be moving the head for a bit, if the head motor doesn't get re-enabled by the time the robot needs it again, the robot will show this error. |
| 11 | LIFT_MOTOR_DISABLED |
Lift motor disabled when expected to be enabled | The robot sometimes disables the lift motor if it knows it isn't going to be moving the lift for a bit, if the lift motor doesn't get re-enabled by the time the robot needs it again, the robot will show this error. |
| 12 | MOTOR_DISABLED |
Motors disabled when expected to be enabled | The robot sometimes disables the motors if it knows it isn't going to be moving any motors for a bit, if the motors doesn't get re-enabled by the time the robot needs it again, the robot will show this error. |
| 13 | ROBOT_PICKUP |
Robot picked up when not expected | If the robot detects that the off-treads state is no longer on treads when it's not expected to be off treads like in one of the self-test tests it'll error out with this error. This one can be easily triggered by picking up the bot during a part of the self-test when the robot is expected to stay on treads. |
| 14 | UNEXPECTED_MOVEMENT_DETECTED |
Robot moved when not expected | Robot detected movement when expected to be still. Can be triggered by moving the robot during a phase when it's off the charger and still. |
| 15 | ACTION_FAILED |
Robot was unable to complete a action | Robot was unable to complete a self-test action. Can happen if an action gets an unexpected state or gets interrupted. This can be triggered by having the bot's charger near a cliff when the robot tries to drive off in the beginning of the self-test. |
| 16 | CHARGER_UNDETECTED |
Charger not detected when expected | In the beginning of the self-test the bot checks if it's on the charger, if you try to start the self test when it's not on the charger the robot will error out with this error. |
| 17 | BUTTON_PRESS_TIMEOUT |
Waited too long to start the self-test | Robot couldn't detect a button press to start the self-test after ~20 seconds of waiting. |
| 18 | TOUCH_PRESS_TIMEOUT |
Timed out when waiting for touch sensor input | Robot couldn't detect if the touch sensor was being touched during the touch sensor self-test. |
| 19 | DOCK_WITH_CHARGER_TIMEOUT |
Timed out when trying to dock with charger | Robot couldn't get back to charger after detecting it in the self test. Could have been misaligned with it and failed to dock in time. |
| 20 | CHARGER_NOT_FOUND |
Unable to find charger after docking | Robot couldn't detect the charger's voltage when trying to dock back with it. |
| 21 | CHARGER_VOLTAGE_TOO_LOW |
Charger voltage is too low | The charger's voltage output is under ~4 volts. |
| 22 | BATTERY_TOO_LOW |
Battery voltage is too low | Battery's voltage is under ~3.6 volts. |
| 23 | DRIFT_CHECK_TIMEOUT |
(Something?) is drifting | Not Sure. |
| 24 | IMU_DRIFTING |
IMU is drifting | The IMU drift is measured in a ~2 second timeout, if the IMU drifts more than 0.2 degrees self test will fail with this code. |
| 25 | DRIVE_FORWARDS_TIMEOUT |
Timed out when trying to drive forwards | Robot was unable to move forwards. |
| 26 | STILL_ON_CHARGER |
Charger still detected when bot should have left | Robot was still detecting the charger when the bot should have left the charger at that point in the self-test. |
| 27 | INIT_CHECKS_TIMEOUT |
Took too long to complete initial checks | Robot took too long to complete the initial checks for the self test. |
| 28 | TOUCH_VALUES_OOR |
Touch sensor values out of range | Touch sensor value returned too high (>7000) or too low (<3000). |
| 29 | CHARGING_BUT_DISCONNECTED |
Battery overheated | The robot wants to charge the battery but it's too hot so it's been disconnected in software to try and cool it down. This is the only case in which the battery can be charging and disconnected. |
| 30 | ON_CHARGER_NOT_CHARGING_OR_DISCONNECTED |
Should never happen? | Seems to be a sort of edge case? The battery can never be both not charging and not disconnected at the same time. When the robot detects that the battery is fully charged it should always disconnect the battery and cut charging. |
| 31 | LOOK_AT_CHARGER_TIMEOUT |
Charger found but unable to look at it (?) | Not 100% sure what this is but it seems that the robot is able to detect the charger but it can't turn to face it. (Needs investigation) |
| 32 | DISTANCE_SENSOR_OOR |
ToF out of range when detecting charger | ToF sensor is detecting a value above 30mm (20mm pre firmware 1.7) when facing charger in self-test. |
| 33 | DISTANCE_MARKER_VISUAL_OOR |
Camera out of range when detecting home icon | The camera is reading a distance value further than 30mm when the robot tries to find the charger icon meaning the robot has driven too far from the charger. |
| 34 | DISTANCE_MARKER_NOT_FOUND |
Camera was unable to detect home icon | The robot's camera couldn't see the charger icon when trying to face it. |
| 35 | MOTORS_UNCALIBRATED |
Motors are not calibrated | The robot's motors were not able to be calibrated when starting the self-test. |
| 36 | MOTOR_CALIBRATION_TIMEOUT |
Motor calibration took too long | The robot's motors were unable to calibrate after 5 seconds of trying to calibrate. |
| 37 | PICKUP_ROBOT_TIMEOUT |
Took too long to detect the robot has been picked up | The robot was unable to detect that it's been picked up and timed out. |
| 38 | UPSIDE_DOWN_TIMEOUT |
Took too long to detect the robot has been rotated | The robot took above 7 seconds when testing if the robot was able to detect upside down and if cliff sensors are detecting cliffs. |
| 39 | PUT_ON_CHARGER_TIMEOUT |
Took too long to put robot back on charger | It took too long to put the robot back on the charger once the IMU self-test had been completed. |
| 40 | SCREEN_BACKPACK_TIMEOUT |
Took too long to press the backpack button after confirming lights are ok | The button was not pressed during the backpack lights and screen test so the behavior timed out. |
| 41 | SOUND_CHECK_TIMEOUT |
Robot couldn't hear the test tone it makes at the start of self-test | At the start of self-test the robot makes a test tone at around 1024hz with a tolerance of about 20hz, if the robot takes too long hear the tone it will fail the sound test. |
| 42 | MIC_BL_NOT_WORKING |
Back-left mic was unable to hear the test tone | The back-left microphone was unable to hear the 1024hz tone. |
| 43 | MIC_FL_NOT_WORKING |
Front-left mic was unable to hear the test tone | The front-left microphone was unable to hear the 1024hz tone. |
| 44 | MIC_BR_NOT_WORKING |
Back-right mic was unable to hear the test tone | The back-right microphone was unable to hear the 1024hz tone. |
| 45 | MIC_FR_NOT_WORKING |
Front-right mic was unable to hear the test tone | The front-right microphone was unable to hear the 1024hz tone. |
| 46 | SPEAKER_NOT_WORKING |
No mics were able to hear the test tone | None of the mics were able to hear the 1024hz tone so it's assumed that the speaker is faulty. |
Error codes mapped and noted down by Emily/Switch_modder.