Arduino based logic for OpenPPG X4 Throttle Controller
The SP140 controller codebase is located at https://github.com/openppg/eppg-controller
It may not be stable and is not recommended for flying. See stable releases here
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.
Suitable for 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.
- Click the "PlatformIO Build" button inside of VSCode or enter
platformio run --target upload
in the command line. PlatformIO will automatically download libraries the first time it runs.
Batch 3+ OpenPPG controllers are powered by Atmel’s SAMD21G18A MCU, featuring a 32-bit ARM Cortex® M0+ core. On some operating systems you may need extra drivers to communicate with it.
- 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.
The latest batches of OpenPPG X4 controllers use the UF2 bootloader (compatible with Arduino). It makes firmware updates as simple as drag and drop. Learn more here https://github.com/openppg/uf2-samdx1
The uf2 bootloader can update firmware with a .uf2 binary file built from a complied .bin firmware file. The .bin file is automatically built when "verifying" the firmware in either Arduino IDE or PIO. Using the uf2-samdx repo above python tool the command to build a compatible .uf2 file should look something like:
$ python3 utils/uf2conv.py x4-controller/.pio/build/OpenPPG\ CM0/firmware.bin -c -o X4-update.uf2
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.