Firmware: How to start
0. Before starting
Follow the instructions to assemble the robot here. Do not install the propellers.
The main board is a customized PCB that integrates the power management for the ESP32 and for the servo motors, the power outlet to the brushless ESC, the communication outlet with the vision board, and the I2C bus for the sensors. View the PCB print of the top layer here, and the bottom layer here. We also provide the Fusion 360 Electronics archive, the board design, the scheme, and the Assembly Files here.
1. Install the robot firmware
For this part, you must have two ESP32 microchips (one with pins and one without pins). The setup looks like the following fitgure

Follow the following steps to install the firmware on both microchips:
- Install Arduino IDE 2.3.0 or latest on your computer.
- Download BlimpSwarm into the Arduino/libraries folder.
- In Arduino open the menu
File->Examples->BlimpSwarm->Bicopter1raw. - Connect the ESP32 (with pins) to your computer through USB.
- Select the device XIAO_ESP32S3
- Select the port of the ESP32. E.g., COM1 in Windows, /dev/ttyACM0 in Linux, or /dev/tty.usbmodem14301 in MacOS.
- Click on Upload
- Click on serial Monitor, and copy the MAC address (e.g., 34:85:18:AC:BB:70). Then, close the Serial Monitor.
- Disconnect your ESP32 and Repeat the same process to install
File->Examples->BlimpSwarm->BaseTranseiverin the ESP32 (without pinS). That is the ESP32 that will be connected to your computer and act as a radio communicator.
2. Control the actuators (servos and motors using the Joystick)
- Connect the Joystick to the computer
- Edit the Python file BlimpSwarm/swarmbase/RawBicopterJoystick.py
Update the ROBOT_MAC of your robot Update the port of the ESP32 (same as the one in Arduino) - Run the file
RawBicopter.py. - Move the left vertical joystick.
- The LED in your ESP32 should turn on when you move the vertical joystick