-
-
Notifications
You must be signed in to change notification settings - Fork 394
Building radio firmware in a webbrowser with Gitpod
A very easy option to build EdgeTX radio firmwares without having to setup a local build environment, is provided by Gitpod. Only requirement is that you have an account at GitHub.
John at RCVideoReviews has created a nice video, visually explaining the steps of this Wiki-page:
To start building EdgeTX firmware for your radio, open the following link with the web browser of your choice:
https://gitpod.io/#https://github.com/edgetx/edgetx/tree/main
In case you do not wish to build from the main development branch, replace the last part of the URL with the branch/tag you wish to use. Here an example for building v2.9.0 release tag:
https://gitpod.io/#https://github.com/edgetx/edgetx/tree/v2.9.0
Update: Due to some yet unknown issue, the link above does not work (only for v2.9.0, all other tags are OK). As a workaround for v2.9.0, use instead the direct link to latest commit hash of v2.9.0, which works fine:
https://gitpod.io/#https://github.com/edgetx/edgetx/tree/0ff73ccafad063fcc65ea64e7dca35e7f00011a1
After some waiting (it can take a minute or so to load), you should be greeted with a Visual Studio Code like development environment in a browser with EdgeTX source code tree pre-loaded from GitHub.
The next step is to tell the development system for which radio and with which configuration option you would like the firmware to be built. You do this by entering a cmake command in the terminal section of the Gitpod window (bottom right pane; feel free to close all the popups if they come on top). Here for example:
cmake -Wno-dev -DPCB=X10 -DPCBREV=TX16S -DDEFAULT_MODE=2 -DBLUETOOTH=YES -DPPM_UNIT=US -DCMAKE_BUILD_TYPE=Release ../
we instruct the CMake system to create makefiles for building for the RadioMaster TX16S (PCB=X10, PCBREV=TX16S), mode 2 default stick (DEFAULT_MODE=2), enable Bluetooth support (BLUETOOTH=YES), set servo output unit as microseconds (PPM_UNIT=US) and selected the type as a Release build without debug symbols included (CMAKE_BUILD_TYPE=Release).
(If you are curious about the options available, enter the following command in terminal to list all options: cmake -LAH ../
)
Starting with 2.8, incl. the main development branch, an additional step is required. Issue:
make configure
Alternatively, you can issue make arm-none-eabi-configure
if you only want to build radio firmware or make native-configure
if you only want to build targets meant to be run on computer (running make configure
activates both architecture targets).
Only a few seconds later, you should be greeted with "-- Generating done" message.
If so, enter again in terminal the following line to start the compilation and linking step and press Enter (for pre-2.8 versions):
make -j`nproc` firmware
(for present versions)
make -C arm-none-eabi -j`nproc` firmware
This time it can take a minute or so until the firmware binary is successfully built. If you see "[100%] Built target firmware" then all went smoothly and you have just made yourself a custom EdgeTX firmware.
It's a good idea to rename the binary, so that it is easier later to see the target radio and which options were baked into it. For this, issue in the terminal:
cd arm-none-eabi (omit for pre-2.8 versions)
mv firmware.bin edgetx_main_tx16s_ppmus-mode2_release.bin
In the left explorer tree open the build folder. For present 2.8 branch or later, open arm-none-eabi folder. Right click at edgetx_main_tx16s_ppmus-mode2_release.bin and select Download.
Put the downloaded firmware binary into your radio SD card \FIRMWARE subfolder, and flash it to your radio either using EdgeTX bootloader, EdgeTX Buddy, EdgeTX Flasher or STM32CubeProgrammer.
Use EdgeTX Buddy or EdgeTX Flasher to fill your SD card appropriately for your radio.
Getting started with Git
- Workflow for GitHub noobs
Building and debugging EdgeTX
- In a webbrowser with Gitpod
- Windows 10 (MSYS2)
- Docker with Windows 10
- Ubuntu in a WSL2 under Win10
- Ubuntu 20.04
- MacOS 10.15
- Qt Creator IDE
- In Circuit Debugging radio firmware
Modifications:
- Flysky Hall Sticks Mod
How to unbrick your radio with STM32CubeProgrammer
DMA mappings of radios:
- RadioMaster TX16S
- FlySky NV14
Interrupt usage of radios:
- RadioMaster TX16S
Deprecated:
- Windows 10 (Visual C++)