Common issues#

Troubleshooting

SYMPTOM

The red light on the Raspberry Pi :

  • is blinking

  • does not turn on

RESOLUTION

The Raspberry Pi is not receiving enough power.

  • Check that the voltage coming out of the UBEC is a constant 5V

  • Make sure that the Raspberry Pi Hat is attached to the Raspberry Pi all the way (there is no gap between the GPIO pins and the Raspberry Pi Hat pin header).

  • Make sure that the OUTPUT side of the UBEC is attached to the Raspberry Pi Hat, and the INPUT side is soldered to the PDB

  • Make sure that there is not a short between the power and ground rails on the Raspberry Pi Hat.

  • Make sure there are no stray wire hairs that are shorting out the 5V and the GND rails on the Raspberry Pi Hat

Troubleshooting

SYMPTOM

The flight containers are not running on the drone.

RESOLUTION

The ente stack runs the flight code inside Duckietown containers. From the base station, re-pull and restart them with:

dts duckiebot update -t duckiedrone –distro=ente -f ROBOT_NAME

You can inspect what is running on the drone from the Portainer page at http://ROBOT_NAME.local:9000. Make sure the containers dashboard, ros2-mavros, mavlink-proxy, state-estimator, pid-controller and visual-odometry are all healthy.

Troubleshooting

SYMPTOM

One of the Heartbeats Monitor indicators is red on the dashboard.

RESOLUTION

A red heartbeat means the corresponding ROS node has stopped publishing. The widget monitors four heartbeats on /flight_controller_node/heartbeats/*:

  • JOYSTICK — the base station joystick (or the virtual joystick widget).

  • ALTITUDE — the ToF altitude node.

  • STATE — the state estimator.

  • PID — the PID controller.

Find the container for the red node in Portainer and restart it, or rerun dts duckiebot update -t duckiedrone --distro=ente -f ROBOT_NAME from the base station.

Troubleshooting

SYMPTOM

The flight controller does not connect (MAVROS state is not publishing).

RESOLUTION

On the drone, ros2-mavros bridges the flight controller to ROS 2. If /mavros/state does not publish:

  • make sure the USB cable is plugged between the Raspberry Pi and the flight controller (any of the four USB ports works).

  • make sure that the flight controller is lighting up. If it is not, the micro USB port on the flight controller may be broken — try a different cable or port, and if the FC still never lights up it may need replacement.

  • from the drone shell, check that the mavlink endpoint is reachable: docker logs dt-px4 | tail should show INFO  [commander] Ready for takeoff! once the FC is connected.

Troubleshooting

SYMPTOM

The Camera widget is blank.

RESOLUTION

If the camera image never appears, the issue is typically the physical connection between the camera and the Raspberry Pi:

  • make sure that the sunny flap is shut (push on the small silver rectangle on the front of the camera and make sure it is attached firmly).

  • make sure that the camera flat cable (FFC) is fully inserted into the camera and into the Raspberry Pi.

  • On the Raspberry Pi, make sure the blue side of the FFC is facing towards the USB ports.

  • On the camera, make sure the blue side of the FFC is facing up.

  • Make sure that there are no holes or rips in the FFC. A crash could have caused a tear, or a hole could have been made when soldering. If so, you will need a new FFC.

Troubleshooting

SYMPTOM

The Altitude widget is flat (no reading, or stuck at 0).

RESOLUTION

The altitude comes from the ToF driver. Check the Time-of-Flight widget first: if it also shows no value, the driver-tof container is down or the sensor is unplugged. Restart the container from Portainer, and if the reading is still missing verify the I²C connection to the ToF board.

Troubleshooting

SYMPTOM

The dashboard shows all widgets but nothing updates.

RESOLUTION

The dashboard communicates with ROS via rosbridge. If the page loads but the widgets never populate, rosbridge on the drone is not reachable. From the base station, try curl -I http://ROBOT_NAME.local:9090 — it should return 101 Switching Protocols. If not, restart the drone containers.

Troubleshooting

SYMPTOM

There is a long delay between when you move the drone and when the widgets change.

RESOLUTION

This is typically network latency. If you are running the drone in CL (client) mode on a shared network, take some of the other devices offline or switch to AP mode and fly against the drone’s own access point.

Troubleshooting

SYMPTOM

The motors on the drone do not spin when armed from the dashboard.

RESOLUTION

First confirm that the Arm / Disarm widget actually reports ARMED — if the toggle snaps back off, PX4 rejected the arming request (see the troubleshooting list in Flying your Duckiedrone).

If the toggle stays on ARMED but the motors are silent, check in QGroundControl (see Installing QGroundControl and Restoring the correct parameters) that:

  • the ESC/Motor protocol matches the one in the DD24 parameter file,

  • each motor can be spun up individually from the Motors test page,

  • motor 1 is mapped to the bottom-right motor, and the remaining motors are mapped accordingly.

Troubleshooting

SYMPTOM

The drone does not get off the ground when commanded to take off.

RESOLUTION

  • make sure that the arrows inscribed on the propellers are visible from the top of the drone,

  • make sure that the arrows on the props are pointing in the correct direction,

  • remove the propellers, plug the battery back in, and from QGroundControl’s motor test tab spin each motor individually to verify direction,

  • make sure that when you spin up motor 1, the bottom-right motor spins. Do this check for all four motors.