Firmware¶
The robot runs C firmware on its ESP32-P4 with a small Python interpreter (pocketpy) on top. Your program is the Python; the firmware owns everything with a deadline: the motor loop, sensor fusion, the camera, the USB console and the Wi-Fi link.
What the firmware does for you¶
- Keeps the robot safe: the 500 ms motion deadman, the 3.2 V battery cut-off, motor fault handling.
- Fuses the optical-flow sensor and the IMU into
position(),velocity()andheading(). - Runs the camera and the vision helpers (
apriltags(),blobs(),edges(),faces()). - Talks to the IDE over USB and to the dongle over Wi-Fi.
Updating¶
The IDE checks the firmware version when you connect and offers to update it. Releases are on the bugbot-firmware repository, one binary for the robot and one for the dongle per version.
Inside¶
The repository has the drivers for every device, the control loop, the bugbot module that the Python layer calls, the dongle firmware, and the notes from the hardware design that the firmware has to honour.