In this tutorial, we will guide you through the process of flashing ExpressLRS firmware to your ImmersionRC Ghost Receiver using the STlink V2 Tool. This method also applies to other receivers, like Jumper or Frsky R9. We will break down the process into easy-to-follow steps.
Warning: as far as I know, there’s no going back. Once you flash ExpressLRS there’s no easy way to flash Ghost firmware.
Table of Contents
Purchasing a STLink Tool
You will need a STM32 STLink Tool that allows you to upload firmware file directly to the processor via the STM32 ST-Link Utility program.
Buy the ST-Link V2 Tool here:
- Amazon: https://amzn.to/3XpI3f4
- AliExpress: https://s.click.aliexpress.com/e/_DCalVOh
Preparing the Receiver
If your receiver is connected to a flight controller, remove it from the drone so you can easily access the four small solder pads as labelled in the above image.
Identify the pinout on the receiver for 3.3V, ground (GND), I/O (DIO), and Clock (CLK). Do not power the receiver from both 5V and 3.3V at the same time, pick one. Connect the receiver to the STlink V2 Tool:
- 3.3V to 3.3V
- GND to GND
- SWCLK to CLK
- SWDIO to DIO
Removing Protection
Download and install the STM32 ST-Link Utility: https://www.st.com/en/development-tools/stsw-link004.html
Connect the receiver to the STLink tool, and plug it into your computer and launch the STM32 Link Utility. Go to Target > Option Bytes.
Remove the read protection by switching “Read out Protection” to level 0.
Then click “Unselect all” under Flash sectors protection, and click ‘Apply’ to save the changes.
After getting the “Option bytes udated successfully” message, you can now close the STM32 ST-LINK Utility program.
Flashing ExpressLRS
Download and install the ExpressLRS Configurator: https://oscarliang.com/setup-expresslrs-2-4ghz/#Download-ExpressLRS-Configurator
Open the configurator and select the appropriate branch and target for your receiver, in this case, ImmersionRC Ghost and GHOST ATTO 2400 RX. Under Flashing method, select STLink.
Configure your binding phrase, connection options, and telemetry settings as desired. This section explains what the settings mean: https://oscarliang.com/setup-expresslrs-2-4ghz/#Compile-and-Flash-TX-Firmware
Click ‘Build and Flash’ to start the flashing process.
Wait for the process to complete, during flashing, the status LED on the ST-Link programmer should blink rapidly. This should only take less than a minute to complete.
Testing and Final Steps
Connect the receiver to your flight controller and ensure it works properly in Betaflight: https://oscarliang.com/setup-expresslrs-2-4ghz/#Connect-ELRS-Receiver-to-FC
From now on, you should be able to flash ExpressLRS to the receiver via Betaflight Pass-through as documented here: https://oscarliang.com/setup-expresslrs-2-4ghz/#Flash-RX-Firmware-via-Betaflight-Passthrough
That’s it.
3 comments
I would like to know if this can be done on zepto and the builtin rx on new beebrain v4.
Hi Oscar, thank you for such a tutorial, anyway in the picture shown, is it okay if we power up the receiver without any antennae attached? (it may overheat the chip and burn) CMIIW..
Thank you
They do have telemetry (transmitter), so yea it’s best to have antenna attached. This is a bad example i guess.