Error Codes - pico-fbw/pico-fbw GitHub Wiki

This page covers all of the possible error codes for the system to output, what they mean, and how to fix them.

All error codes are produced by blinking the Pico's onboard LED at a set rate; this is also how the error codes are numbered. For example, error code FBW-500 has occurred if the LED changes state (on --> off or off --> on) every 500ms.

For convenience, I have also included a GIF of what each error looks like, so you can easily match your error to the correct code.

FBW-0

This error code can signify either a solid LED or an extinguished LED.

  • Causes
    • A solid LED means the system is powered on, has no current operational errors, and all systems are operating normally.
    • An extinguished LED naturally means the system is powered down.
  • Fixes:
    • Please connect a power source to the system.

FBW-100

fbw100

This is less of an error and more of a status. It will occur while the system is calibrating, either during the first boot or after a full system reset. The LED will only flash at this fast rate during calibration, it should eventually stop and hopefully become steady. The time spent calibrating depends on your configuration, but the default should take about 3-4 minutes.

  • Fixes:
    • If the LED is still blinking but at a lower rate, please proceed to check one of the other error codes.
    • If the LED continues blinking at a fast rate for an abnormally long time (5 or more minutes), you likely have something wrong with your program, such as a corrupted build. Try calibrating again, re-building/re-flashing the board, or open an issue.

FBW-250

fbw250

This indicates that there has been an error and the system has forcibly entered direct mode.

  • Causes
    • This issue is usually caused by a timeout with the IMU after it has been successfully initialized and was confirmed working after bootup.
    • It can also be caused if the system enters an unsafe state while in normal mode which exceeds the allowed flight envelope, such as an extremely high pitch or bank value.
  • Fixes
    • This usually occurs when some wires have gotten disconnected, so please check all the connections with the IMU and restart the system.
    • If the problem persists, ensure your wiring is secure and cannot loosen in flight.
    • The system should protect from any extremely high bank or pitch angles in flight and as such it will disable itself if the angles ever become that high. If you are consistently getting disabled out of normal mode and you have checked your IMU, this may be the cause. Consider tuning the PID gains of the aircraft to make it more stable in flight, and you may also increase these flight limits if you need to, but be careful in doing so. Take a look at how to configure that here.

FBW-500

fbw500

This code indicates an error has occurred with the calibration process.

  • Causes
    • The system detects an extremely high offset (calibration) value (20 or larger by default).
    • It is highly unlikely, but this can also indicate there was an error in writing the values to the flash memory.
  • Fixes
    • First, completely reset the board by running the pico-fbw-reset.uf2 binary file, which you can find on the release page. This will clear any garbage calibration data that may have been written.
    • Before reflashing the system, double-check all of your wiring and connections! This error is most often caused by a disconnected or loose input wire that is causing erroneous input values to be sent to the calibrator.
    • If you are still experiencing the error, you may have to re-configure the system to ignore high calibration offsets, for example, if you have an abnormally large trim setting on your radio.
    • If that still does not work, there may be an issue with your board's flash. If you somehow managed to get this far, you should probably open an issue for us to take a look at.

FBW-800

GIF TBD

This code indicates an error has occurred while setting up the servos.

  • Causes
    • The system could not properly configure the servos connected to it.
  • Fixes
    • Try different servos if possible. If not, open an issue so we can further look into the details.

FBW-1000

fbw1000

This code indicates an error pertaining to the IMU module.

  • Causes
    • This error is produced if the system is never able to initialize and confirm the IMU module. This can happen if the unit is not connected properly or if the system does not recognize the correct type.
  • Fixes
    • The system runs many checks to confirm the identity and working status of the IMU. Any of these checks failing can cause this error. As such, there are many different possible failure points, so I will cover the most common ones here. As always, if this doesn't work for you, feel free to open an issue and get some help.
    • Check that the IMU's wiring is securely connected--this error is often caused by wires that may have loosened in flight.
    • Ensure that the IMU is of the right type (default is BNO055) and has good quality. The system validates the identity of the IMU so if it receives an unexpected or invalid response, this error will trigger. You can take a look at my recommended units to purchase here that have been confirmed to work with the system.
    • If you are using a different IMU type than the default, you will have to re-configure the project for that type to clear this error.
    • Make sure that the IMU is fully calibrated as per the calibration guide.

FBW-2000

fbw2000

This code indicates an error with either the GPS module or the PID tuning process.

  • Causes
    • If this error happens on startup:
      • The system was unable to initialize and confirm the GPS module.
    • If not:
      • Tuning of PID constants has failed.
      • Tuning of PID constants has not yet been completed.
  • Fixes
    • If the GPS module is experiencing issues:
      • Ensure that your GPS module supports a baud rate of 9600 (the default set in the configuration), this can usually be found in your module's datasheet.
        • If your module utilizes a baud rate other than 9600, you must modify the GPS_BAUDRATE value in the configuration file to communicate using the correct baud rate. Here is how to do so.
      • Ensure your GPS module supports the NMEA-0183 standard of communication, this information can also be found in your module's datasheet.
      • Check that all wiring is securely connected to the correct pins defined in your configuration file.
    • If tuning has failed:
      • Unfortunately not much can be done without modifications to the configuration file and possibly tuning the PID manually.
        • PID autotuning is complicated and may not work well with every system, so if it has failed in your case it is probably for a good reason. You can try to remedy this issue by changing parameters as you see fit in the autotuning section of the config file, or
        • (recommended option) Tune the PID manually. Guides on how to tune PID can be found online.
      • If you were not within the tuning mode when this error occurred, this means no tuning has currently been completed. Either complete tuning before attempting to engage any assisting modes, or specify manual tuning values in the configuration to clear this error.
⚠️ **GitHub.com Fallback** ⚠️