Skip to content

Latest commit

 

History

History
60 lines (41 loc) · 7.56 KB

File metadata and controls

60 lines (41 loc) · 7.56 KB

CyberBrick ESP-NOW transmitter & receiver

EdgeTX radios control CyberBrick models

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.

EdgeTXplusCyberBrickAreGreatFun

A brief video showing the code in action:

Video showing EdgeTX radio controlling CyberBrick model

A longer video showing the steps required to get everything setup:

Step-by-step tutorial on how-to control CyberBrick models from an EdgeTX R/C handset

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.

Compatible radios

The code should work with the following handsets running EdgeTX (radios listed alphabetically):

The code supports following external RF modules (modules listed alphabetically):

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

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.

Credits

Large parts of the code used in this repository stem from the wonderful ExpressLRS project.