Arduino based logic for OpenPPG SP140 Throttle Controller
This master branch is only for testing the latest firmware for the and SP140 controllers running the ESP32-S3 processor.
X4 code has been migrated to a separate repo - https://github.com/openppg/x4-controller
It may not be stable and is not recommended for flying. See stable releases here
Older Version Information
For non-CAN bus controllers please use version/6 branch.
Version 6.1 was initially released only for the reworked RP2040 module based controller and being ported to the original RP2040 PCB which is currently in testing. The version shipped with that hardware can be found on the rp2040-module-release branch
Version 6.0 introduced FreeRTOS and is currently only working with RP2040 processors. For M0/SAMD21 processors please use version/5 branch.
For batch 3 (non-telemetry) controllers please see the batch-3 branch.
For batch 2 (Arduino nano based) controllers please see the batch-2 branch.
OpenPPG supports flashing the firmware PlatformIO. Older versions were also compatible with Arduino IDE.
(Mac, Windows, and Linux)
- Follow the instructions here for using with VSCode https://platformio.org/install/ide?install=vscode
- Extract the downloaded code from the repo here (or
git clone
it) - Open the folder using the PlatformIO "open project" option inside of VSCode.
- The first time you build the project it will download the libraries.
- Download the latest controller code zip from here
- First make sure the code compiles by hitting the check button in the bottom left "Build".
- Connect the controller to your computer by using the USB port on the bottom of the controller.
- Flash the firmware by clicking "Upload" in the bottom left.
esp32 uses esptool to build a binary file from the compiled .bin file.
$ esptool.py --chip esp32s3 merge_bin \
-o .pio/build/OpenPPG-CESP32S3-CAN-SP140/merged-firmware.bin \
--flash_mode dio \
--flash_freq 80m \
--flash_size 8MB \
0x0 .pio/build/OpenPPG-CESP32S3-CAN-SP140/bootloader.bin \
0x8000 .pio/build/OpenPPG-CESP32S3-CAN-SP140/partitions.bin \
0xe000 /Users/username/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin \
0x10000 .pio/build/OpenPPG-CESP32S3-CAN-SP140/firmware.bin
The open source web based config tool for updating certain settings over USB (without needing to flash firmware) can be found at https://config.openppg.com.
Pull requests are welcome for these instructions and code changes.