Using ESP-IDF v5.1 release.
Developed software:
- RFM95w LoRa library
- SD Card support
- External and internal flash memories
- Can transceiver
- BLE API
- USB OTG/USB MSC
To build the project, one can use ESP-IDF build natively or build a docker image with the use of provided Dockerfile
A great documentation on this can be found on Espressif docs page regarding the v5.1 release
The Dockerfile in this project is nearly identical to the one provided by espressif espressif/esp-idf
Prerequisites are obviously having Docker (min. ver. 24.0) installed on the machine. Then, one should run the command to build the container in ROSALIA directory:
docker build -t dockeruser/image_name:version .When the image is built successfuly, run the image:
docker docker run --name rosalia --rm -v $PWD:/rosalia -w /rosalia -u $UID -e HOME=/tmp -itdockeruser/image_name:versionThis will create and put you into a virtual environment with idf.py already running. You can then go into Mainboard_ESP32 directory and use idf.py.
Note 1: Outside of Linux there will be problems with using physical ports (mainly USB in this example). To overcome this, one can use remote serial ports, with better instructions in Docker documentation
Note 2: some of the directories such as /build will be replaced in the local directory.
More info and how to run it: esp-idf Docker image, documentation
To run unit tests:
cd Mainboard_ESP32/test
idf.py build
# if build does not work checkout
idf.py set-target esp32s3
idf.py update-dependencies # needed for usb msc device
# optional: menuconfig to check for
idf.py menuconfig
idf.py flash monitor
# reset the boardThe mainboard features:
- ESP32S3 microcontroller with BLE support
- RFM95w module for LoRa communication
- SD Card and external flash memories
- 2 servo controllers with limit switches
The development board has been designed in Altium Designer. Documentation with schematics can be found in Docs/PCB_Documentation directory
On the images below the 3D renders of ROSALIA rev.2 board are presented

