e-puck2 programmer development
1 Get the source code
The programmer firmware source code can be downloaded with the command:
git clone --recursive https://github.com/e-puck2/e-puck2-programmer
In order to build the firmware you need the
arm-none-eabi toolchain installed. Then you can issue the following commands from the
src directory of the repo root:
The result is a bin file named
e-puck2_programmer.bin that you can find in the
2 Configuring the Programmer's settings
The on-board programmer of the e-puck2 is based on the Blackmagic probe open source project firmware.
Some functionalities has been added on top of the original project to be able to control some functions of the robot, for example the power on or power off.
To access to the available commands of the programmer, it is needed to connect to the programmer with a GDB console.
To do so, you have to type the following command in a terminal window with the com port used by the 'e-puck2 GDB Server port of your e-puck2 :
arm-none-eabi-gdb target extended-remote your_gdb_com_port
Once connected to the programmer with GDB, you can type
mon helpto print the available commands of the programmer.
One command in particular is useful, which is
mon select_mode. It is used to select in which mode the e-puck2 Serial Monitor com port will work.
mode 1 = the serial monitor is connected to the UART port of the main processor
mode 2 = the serial monitor is connected to the UART of the ESP32
mode 3 = the serial monitor works as a Aseba CAN to USB translator
The choice made for the mode is the only setting that is stored in a flash zone of the programmer, which means the choice is remembered, even if the robot is completely turned off.
Note : in mode 1 and 3, GDB can be used over the bluetooth connection of the e-puck2. But it is much slower than with USB and it doesn't work with Windows due to GDB limitations on this OS.
By being connected with GDB, you can also use the standard GDB command to program and debug the main processor of the e-puck2.