Skip to content

Frsky R9

Setup-Banner

Bootloaders

The R9Mini/R9MM, R9MX and R9Slim+ require ExpressLRS Bootloaders to be flashed first BEFORE you can flash the ExpressLRS firmwares into them. The R9Slim doesn't have a bootloader. As such, first time flash requires STLink.

Download the bootloader .frk file for your respective receiver. The files are as follows:

Copy the relevant file to your handset's SD card (You can put it inside /FIRMWARE folder for easy access).

Wire the receiver to your radio's Smart Port, as shown:

BL Flashing


Next, flash the .frk via the S.port flashing option in OpenTX or EdgeTX ⚡ (It helps if the External RF module is set to PPM mode.)

  • Navigate in OpenTX to the TOOLS menu (hold SYS button)
  • Press Page once to the SD-HC CARD page, then select the FIRMWARE folder
  • Flash the frk file by holding OK/Enter and selecting "Flash external module"

Once done, unplug the receiver and your bootloader is flashed.

FYI

You only need to flash the Bootloader ONCE. After it's flashed into the receiver, you don't have to reflash it in every update.

R9Slim doesn't have a bootloader. As such, you need to flash it first via FTDI.

Troubleshooting No Sync

  • Setting the External RF module to PPM mode helps.
  • Check if the receiver has its LED lit up or if it's powered.
  • Check whether you've set your Max Bauds to 115200, especially if you're using a QX7 or an X9D (on OneBit Firmwares or EdgeTX). If so, put it back to 400k and try again.

Wiring it up

FC Wiring

Note: This will be the same wiring you'll use for flying and the subsequent firmware updates (via Passthrough). Forget the factory wiring guide!

R9Slim need to be flashed via STLink first before you wire it up to your Flight Controller.

Configuring your Flight Controller

See this page on how your flight controller should be configured. These settings apply on both INAV and Betaflight (and other flight controller software).

Ports Tab should be setup so that Serial RX is on the UART where you have soldered the receiver.

Receiver protocol is CRSF, with serialrx_inverted = off and serialrx_halfduplex = off.

The next step will not be able to proceed properly and you'll have issues later if any of these are set differently. Once you have configured your Flight Controller software, close its Configurator and unplug-replug the USB cable from the FC or your computer. This will refresh the connection and you'll be ensured that the port is not busy.

Passthrough Flashing (works with Betaflight, INAV)

Valid Targets:

  • Frsky_RX_R9MM_R9MINI_via_BetaflightPassthrough
  • Frsky_RX_R9MX_via_BetaflightPassthrough
  • Frsky_RX_R9SLIM_via_BetaflightPassthrough
  • Frsky_RX_R9SLIMPLUS_via_BetaflightPassthrough
  • Frsky_RX_R9SLIMPLUS_OTA_via_BetaflightPassthrough

Device Category: Frsky R9

Device:

  • Frsky RX R9MM R9MINI
  • Frsky RX R9MX
  • Frsky RX R9SLIM (IF already flashed via STLink)
  • Frsky RX R9SLIMPLUS
  • Frsky RX R9SLIMPLUS OTA

via Passthrough

Make sure the correct Bootloader has been flashed to the receiver prior to wiring it up to your flight controller. Using the wiring guide above, find a free, uninverted UART in your FC. You can use your FC's wiring guide for a Crossfire or Ghost receiver.

Set up your Flight Controller for ExpressLRS. Make sure you have set Serial RX to the right UART (RX & TX Pair) under the Ports Tab. Follow the FC Configuration Guide.

Once wired to your FC, connect USB. Did your receiver powered up too (with both LEDs lit)? If so, disconnect USB, hold the bind button on your receiver, and reconnect to USB. The LED should start alternating between the Green and Red LEDs. Once it's alternating, you can then let go of the Bind Button.

If your receiver didn't get powered from USB, have a lipo ready and continue with the next steps. On the ExpressLRS Configurator, with your Firmware Options set, click on Build & Flash. Like on the TX module, it will take a while on the first time. Watch out for the Passthrough Init stage. This stage will check your FC Configuration for the Serial RX UART (Software Inversion via "set serialrx_inverted" and Half Duplex mode via "set serialrx_halfduplex" will be checked; both should be off.)

Build & Flash

Once Retry... lines appear, connect a LiPo if your receiver isn't powered by the USB (i.e. power up your FC and receiver). On subsequent flash, you can have the LiPo plugged in and receiver powered up from the start prior to connecting the USB.

Wait for this process to finish. It's done once the "Success" prompt is shown.

Attention

R9Slim requires this as the first flashing method. This is irreversible, meaning you can't put back Frsky firmware.

Valid Targets:

  • Frsky_RX_R9MM_R9MINI_via_STLINK
  • Frsky_RX_R9MX_via_STLINK
  • Frsky_RX_R9SLIM_via_STLINK
  • Frsky_RX_R9SLIMPLUS_via_STLINK
  • Frsky_RX_R9SLIMPLUS_OTA_via_STLINK

Device Category: Frsky R9

Device:

  • Frsky RX R9MM R9MINI
  • Frsky RX R9MX
  • Frsky RX R9SLIM
  • Frsky RX R9SLIMPLUS
  • Frsky RX R9SLIMPLUS OTA

via STLink

This method is irreversible. It will remove the ability to reflash back to Frsky firmware. You have been warned! Make sure your STLink dongle is properly recognized by your System as such (Drivers are installed, etc.).

Wire up the Receiver to your STLink using 3v3, GND, CLK and DIO.

r9mm_mini pinout

R9Mini/R9MM

r9mx STLink connection

R9MX

r9slim STLINK connection

R9Slim/R9Slim+

Disable 'Readout Protection'. To do this download the ST-LINK Utility and follow this quick how to video. Or alternatively under linux you can use OpenOCD.

How to video:

After doing so, Disconnect from STLink Utility.

Using the correct target specific for your receiver, set your Firmware Options and hit Build & Flash on the ExpressLRS Configurator.

Build & Flash

Once done, wire your receiver to your Flight Controller. Passthrough flashing can now be used for updating the receiver.