Skip to content

Flashing EdgeTX to Flysky PL18 or Paladin EV

Risto edited this page Nov 13, 2023 · 45 revisions

This page lists the recommended steps to install EdgeTX onto Flysky PL18 or Paladin EV radios.


Please keep in mind that at present day, EdgeTX support for Flysky PL18 and Paladin EV radios is still in development - the upcoming v2.10 is scheduled to provide the first release. Use EdgeTX on PL18 or Paladin EV for testing purposes only at the moment. A lot of EdgeTX functionality is already successfully implemented for PL18 / Paladin EV, but not all. For example, as one visible missing feature - the Neopixel power LEDs and Paladin EV stick end LEDs remain presently dark.

Due to PL18 and Paladin EV radio hardware differences, when compared to other EdgeTX supported radios, full EdgeTX experience, as known from other supported color screen radios, will not be possible with PL18 and Paladin EV, at least not without some hardware modifications. Factory PL18 and Paladin EV do not have a real-time-clock, an arbitrary sound output and an expandable storage, latter due to lack of a microSD card slot. PL18 and Paladin EV come with internal 8 MB SPI flash chip, where from factory, part of Flysky PL18 or Paladin EV firmware is stored. EdgeTX uses this memory chip as a microSD card substitute. Due to limited size of 8 MB, full EdgeTX SD card contents does not although fit into the internal memory. As arbitrary sound output is not possible anyhow, you can skip copying the chunky \SOUNDS SD card subfolder.

If you ever want to restore the original Flysky firmware to your PL18 or Paladin EV at a later date, it is crucial that you follow successfully the Backing up Flysky Bootloader section. As only, if the Flysky bootloader is restored to the radio, you can use Flysky Assistant Windows software to fully restore also the SPI flash content via Flysky online servers.

Preparatory steps

  • Remove the FRM301 RF-module for now. This module likely will never get official support due to proprietary API that Flysky desires to keep confidential. You can use Flysky FJR2 JR-micro bay adapter to attach arbitrary JR micro bay RF-modules to the PL18 or Paladin EV instead. Alternatively, consider ExpressLRS firmware for the FRM301 (see ExpressLRS pull-request #1811).
  • Fully charge the battery of your PL18 or Paladin EV before starting with backup or flashing steps below.
  • Download and install the latest STM32CubeProgrammer, see for instructions: https://github.com/EdgeTX/edgetx/wiki/Unbrick-your-radio (you need to make an account at ST to be able to download it).
  • Peel off the left rubber handle on your PL18 or Paladin EV. That should reveal two hidden buttons. The top button is the Device-Firmware-Upgrade (DFU) button, the bottom button is the ultimate master power-off button and will be required to be pressed to exit the DFU mode.

Building firmware for PL18 or Paladin EV

Presently, no pre-compiled firmware binaries are yet available for PL18 / Paladin EV and you need to build your own firmware. Thanks to EdgeTX GitPod support, this is relatively easy though. For more about building EdgeTX firmware with GitPod, see: https://github.com/EdgeTX/edgetx/wiki/Building-radio-firmware-in-a-webbrowser-with-Gitpod

The latest code for PL18 / Paladin EV can be presently found in the fs_pl18-fatfs-spi-flash branch.

  • Open with your browser: https://gitpod.io/#https://github.com/edgetx/edgetx/tree/fs_pl18-fatfs-spi-flash
  • Run in GitPod terminal either: cmake -Wno-dev -DPCB=PL18 -DDEFAULT_MODE=2 -DCMAKE_BUILD_TYPE=Release ../ for PL18 or cmake -Wno-dev -DPCB=PL18 -DPCBREV=PL18EV -DDEFAULT_MODE=2 -DCMAKE_BUILD_TYPE=Release ../ for Paladin EV. Feel free to add custom build parameters, if you so like.
  • make arm-none-eabi-configure
  • make -C arm-none-eabi -j`nproc` firmware and wait for the firmware to build.
  • Download the \build\arm-none-eabi\firmware.bin to your computer. Best to rename it, in order to later also be able to identify the target, e.g. to ETX_PL18.bin

Backing up Flysky Bootloader

This step is crucial, if you ever wish to return/restore back to Flysky factory firmware on your PL18 or Paladin EV.

  • Make sure your PL18 / Paladin EV is powered down. Take a microUSB cable. Attach it on the radio side only for now. Put the radio flat on the table. Next, press and hold the upper hidden button (DFU) down while you attach the other end of the USB cable into the computer with STM32CubeProgrammer installed. This connects PL18 / Paladin EV to your computer in DFU mode.
  • You should have heard the typical sound from your computer, when you attach an USB device. Start STM32CubeProgrammer.
  • The STM32F429BIT6 in the PL18 should have been detected on the right side of the STM32CubeProgrammer screen under USB configuration as a USB with a number, typically USB1. Open the drop-down menu next to Port to see if you see USB1 listed there and can select it. Click the green Connect button on top right.
  • You might be greeted with some seemingly random content, do not get alarmed - this is all perfectly fine and just showing some of the first bytes of memory that are currently saved on the microcontroller. Most importantly, the lower right corner should now list right to the field CPU: Cortex-M4.
  • Next you will read out the STM32F4 flash memory of your radio. In Device memory tab, make sure Address is 0x08000000 (0x08000000 is the starting address of the flash memory on STM32F4 microcontrollers). Enter size: 0x200000 (instead of default 0x400). (0x200000 is 2 MByte in hex, the size of STM32F429BIT6 internal flash). Click the blue Read button. It takes ca. 5 sec. to read the full flash from radio into your computer.

  • Click the drop-down arrow on Read command and pick Save-As.
  • Give it a name, such as PL18_factory.bin and save it somewhere safe. This file is your ticket back to Flysky firmware on your radio, if you ever wish to restore your operating system. Check that the file is 2 MByte in size, if not - something went wrong and do NOT continue until you are able to sort it out.
  • If you plan to continue flashing the EdgeTX bootloader and firmware next, skip all the following steps of this section, otherwise be sure to continue - as your radio will drain the battery otherwise.
  • Click the green Disconnect button on top right of STM32CubeProgrammer.
  • Eject the radio from your operating system, similarly as you would safely disconnect an USB stick.
  • Disconnect the USB cable from the radio.
  • Press briefly the bottom hidden button (this resets the power circuitry inside PL18 / Paladin EV and powers it down).

Flashing EdgeTX bootloader and firmware

If your radio is already connected successfully in DFU mode to STM32CubeProgrammer, you can skip the first three steps below.

  • Make sure your PL18 / Paladin EV is powered down, before you continue. Take a microUSB cable. Attach it on the radio side only for now. Put the radio flat on the table. Next, press and hold the upper hidden button (DFU) down while you attach the other end of the USB cable into the computer with STM32CubeProgrammer installed. This connects your radio in DFU mode to the computer.
  • You should have heard the typical sound from your computer, when you attach an USB device. Start STM32CubeProgrammer.
  • The STM32F429BIT6 in the PL18 should have been detected on the right side of the STM32CubeProgrammer screen under USB configuration as a USB with a number, typically USB1. Open the drop-down menu next to Port to see if you see USB1 listed there and can select it. Click the green Connect button on top right. Most importantly, check that the lower right corner lists to the right of field CPU: Cortex-M4.
  • Open the left menu fully, by clicking the button with the three white horizontal bars on top left. After clicking it, the menu should open and the 3 bars become vertical bars. Click Erasing & programming (a green icon, with a down arrow and a flat rectangular shaped device under it).
  • Click the blue Browse button behind File path field and navigate to the previously GitPod built PL18 / Paladin EV binary. Leave Verify programming selected and make sure Run after programming is not selected.
  • Click the blue button Start Programm... in the middle of the STM32CubeProgrammer. First you should see some messages about erasing sectors and the green progress bar will go back and forth between left and right. This should be followed by a Download in Progress notification with green progress bar at the bottom of the STM32CubeProgrammer growing from left to right. This process takes typically ca. 2 minutes to complete.
  • When flashing has completed, you should be greeted with File download complete pop-up. Continue to wait! Briefly thereafter you should see further pop-up: Download verified successfully. In case you are only seeing the latter pop-up, then it is likely that the latter is just covering the File download complete pop-up, that is underneath it. Click OK on both pop-ups to dismiss them.
  • Click the green Disconnect button on top right of STM32CubeProgrammer.
  • Eject the radio from your operating system, similarly as you would safely disconnect an USB stick.
  • Disconnect the USB cable from the radio.
  • Press briefly the bottom hidden button (this resets the power circuitry inside the radio and powers it down).

Preparing internal SPI flash

  • Make sure your PL18 / Paladin EV is powered down. Pull both horizontal trims (TR7 and TR8) together and press both power buttons to start into EdgeTX bootloader that you can hopefully see. If nothing happens, wait at least 3 minutes.

  • If EdgeTX bootloader started successfully, select erase internal flash (second option from the top). You navigate up/down with TR3 and select Exit/Enter with TR4.

  • The flash erase can take some minutes to complete. Wait and then turn off the radio using the power buttons.

  • Enter EdgeTX bootloader again and attach USB cable again. This time a drive should pop up on your computer. This is the 8 MB SPI flash re-purposed as a mini-storage. The first time you attach the radio to your computer, you might be prompted to format it - accept and format the SPI flash with FAT filesystem. As soon as the FAT file system has been successfully created on the SPI flash, you can start filling it, as you would normally fill EdgeTX content onto a SD card (use the c480x320.zip of the SD card repository). Remember that you only have 8 MB available, and by default you will have no audio output (without the mod), thus best you skip filling the SOUNDS.

  • Reboot the radio. You should be greeted with EdgeTX. Run the analogs calibration - be sure to calibrate the sticks, but also the pots and side sliders. PL18 and Paladin EV are touch-screen radios - for navigation around the user interface, please use the touch screen.

External RF module support

The lastest PL18 branch supports the following external modules:

  1. DIY-MPM module in FRM301 form factor. More information about this opensourced module, can be found under: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/tree/master/STM32%20PCB/Flysky%20PL18
  2. Flysky FRM303
  3. External MPM in micro-JR bay form factor using Flysky FJR2 adapter
  4. External Express LRS (ELRS) modules in micro-JR bay form factor using Flysky FJR2 adapter

And more to come...

Clone this wiki locally