This is the code running on the board inside each module of Rese.Q.
The components inside each modules are:
- Raspberry Pi Pico W
- CAN transceiver, with MCP2515 and TJA1050
- Two DC motors
- controlled by Pololu G2 24v13 drivers
- rotary encoder with 48 pulses per motor rotation
- 150:1 gearbox
- One to three Dynamixel AX-12A smart servo motors
- AMS AS5048B absolute encoder
- 64*128 OLED display with SH1106 driver
To build the project you need a working Arduino environment. This can be either the official Arduino IDE, VSCode with the Arduino extension, or even simply arduino-cli.
This project is based on the Arduino framework, and in particular uses the Raspberry Pi Pico available here. The guide on how to install the core can be found in the repository's README.
Currently the only external library we are using is the Adafruit SH110X
library, used to control the display. It can be found in Arduino's library manager.
In the Arduino IDE the Raspberry Pi Pico W board should be selected, and the flash size should be set to 2MB (Sketch: 1MB, FS: 1MB)
, meaning that half of the microcontroller memory will be dedicated to the program itself, while the other half can be used for storing informations and performing over-the-air (OTA) upgrades.