This project builds upon my previous work (https://github.com/rotorman/CyberBrick_Controller_Core/tree/espnowdemo/src/community/app_espnow), where I added via custom MicroPython scripts an ESP-NOW communication as an alternative to the original intuitively usable, but from features more limited, original CyberBrick codebase.
The code in this repository contains a custom open-source firmware development for a large number of ExpressLRS RF module(s) and custom MicroPython scripts for the Bambu Lab's/MakerWorld's CyberBrick Core receiver modules in order to talk to each other w/o any hardware modifications needed. With the custom firmware from this project flashed, a radio transmitter, running open-source EdgeTX firmware, and equipped with an ExpressLRS RF module, talks via ESP-NOW wireless protocol with the CyberBrick Core in the 3D printed models.
A brief video showing the code in action:
A longer video showing the steps required to get everything setup:
You can find the C++ source code to flash numerous internal and external ExpressLRS modules under transmitterFW subfolder and the MicroPython scripts for the CyberBrick Core modules under the receiverPY subfolder.
The firmware can be built and flashed into the hardware using Visual Studio Code and PlatformIO extension paired with an Arduino framework for Espressif ESP32 platform, similar to the development of the ExpressLRS firmware.
The MicroPython scripts can be copied to the CyberBrick Core with any REPL capable editor, such as Arduino Lab for MicroPython or Thonny.
The code should work with the following handsets running EdgeTX (radios listed alphabetically):
- HelloRadioSky V14
- HelloRadioSky V16
- Jumper T-14 with 900 MHz and 2.4 GHz internal ELRS modules
- Jumper T-15 with 900 MHz and 2.4 GHz internal ELRS modules
- Jumper T20 and T20v2, both with 900MHz and 2.4 GHz internal ELRS modules and T20 Gemini
- Jumper T-Lite
- Jumper T-Pro with 900 MHz and 2.4 GHz internal ELRS modules
- Jumper T-Pro S with 900 MHz and 2.4 GHz internal ELRS modules
- RadioMaster Boxer with internal ELRS module
- RadioMaster MT12 with internal ELRS module
- RadioMaster Pocket with internal ELRS module
- RadioMaster TX12 mkII with internal ELRS module
- RadioMaster TX16s mkII with internal ELRS module
- RadioMaster Zorro with internal ELRS module
The code supports following external RF modules (modules listed alphabetically):
- HappyModel ES24TX
- HappyModel ES24TX Pro
- Jumper AION Nano
- RadioMaster Ranger
- RadioMaster Ranger Micro
- RadioMaster Ranger Nano
Do note, that I at present time, I have tested the code only with RadioMaster TX16s mkII with internal ExpressLRS module, RadioMaster MT12 with internal 2.4 GHz ExpressLRS module, with Jumper T15 with internal 2.4 GHz ExpressLRS module, HappyModel ES24TX Pro, RadioMaster Ranger and ESP32 development kit (ESP32DevKitCv4).
Flashing the internal ExpressLRS module(s) is possible via EdgeTX passthrough (triggered in the background while uploading firmware from VSCode and PlatformIO by Python script). External modules can be flashed via UART (via USB-to-serial adapter). Some (external) modules come with an integrated USB-to-serial adapter, others might need an external adapter, like FTDI or Silabs CP2102, to flash them.
Large parts of the code used in this repository stem from the wonderful ExpressLRS project.




