Flysky receivers RSSI mod – alternative firmware
Flysky receivers and RSSI
Most of the Flysky receivers lacks one very important feature – RSSI. In fact none of the original Flysky receivers outputs RSSI information to the flight controller via one of the channel or telemetry link. Even calculating the Link Quality (LQ) by the lost packets is not possible if your Flysky receiver outputs iBUS signal. The best and most universal solution is to flash the alternative receiver firmware with RSSI signal calculated and injected into one of the channels (usually CH8 or CH14).
Supported receivers
- IA6B – (Banggood, Hobbyking)
- IA6C – (Hobbyking)
- X8B – (Banggood)
- iA8X – review here (Banggood)
- A8S – (Banggood)
- X6B – (Banggood)
- 8A – (Banggood)
- X14S – (Banggood)
- Flit10 – Reported to work with the IA6B firmware. See here.
- RX2A Pro/Pro V1 – Reported to work with the the A8S firmware. See here.
In fact all of these receivers (except A8S and 8A) are reading the RSSI and sending it back to the transmitter in the telemetry link. But no info is sent to the flight controller.
Hardware
You’ll need the ST-LINK programming adapter to flash the alternative firmware to the FlySky receiver. Any ST-LINK V2 USB adapter should work and can be obtained for less than 3$. (on Banggood , Aliexpress or Ebay)
Also you’ll probably need a few jumper wires for connecting the ST-Link adapter to the receiver programming pads.
Software
You will need to download and install ST-Link Utility: http://www.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link004.html#getsoftware-scroll
ST-Link driver: http://www.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link009.html#getsoftware-scroll
Firmware
The alternative firmware is kindly provided by Cleric-K and can be found in this github repository. The prebuilt images have two versions each – one which injects the Signal Strength into channel 14 and one for channel 8. All protocols (IBUS, SBUS and PPM) are supported.
Connecting the programmer
Most of the receivers have programming pads on the PCB board. Usually they are not labeled so you need to follow the pinouts supplied below. Connection
SWDIO <-> DAT
SWCLK <-> CLK
GND <-> GND
3.3V <-> 3.3V
RST signal should not be necessary unless “Connect under reset” is needed. None of the tested receivers requires this line, so don’t bother connecting it.
Pinout diagram for Flysky FS-iA8X receiver:
Pinout diagram for Flysky FS-A8S receiver:
Pinout diagram for Flysky FS-X6B receiver:
Pinout diagram for Flysky 8A receiver:
Programming pinout diagram for Flysky FS-X14S receiver:
Example of the connected FS-iA8X receiver programming pads to the ST-Link adapter.
Example of the connected Flysky FS-X14S receiver programming pads to the ST-Link adapter:
Golden rule: do not connect the 3.3V power from the ST-LINK dongle if your receiver is connected to external power source (Flight Controller, BEC or other). You should connect only GND, SWCLK and SWDIO lines in this case.
Installing software and drivers
Start the ST-Link Utility setup. Follow the installation process by simply clicking in the [Next] button.
ST-Link Utility setup usually also installs the required ST-Link USB adapter driver .
Plug the ST-Link USB adapter and check if the device is detected and driver is successfully installed.
Making the backup of the original firmware
First thing is precaution – you should always make the backup of the original firmware.
- Start ST-Link Utility
- Change Address field to 0x08000000 and Size field to 0x8000 (otherwise ST-LINK utility will save only the part of the firmware)
- Select [Target] -> [Connect] from the program menu
- Click [File] -> [Save file as…] and save your original firmware to keep a backup, just in case you would want to go back to your original firmware…
Note about the firmware backups: There are backups of the receivers original firmware in the Cleric-K repository, except the 8A receiver firmware – each of the 8A receiver has it own unique firmware with Unique device ID and checksum checking so you cannot restore the original firmware from the other 8A receiver. Do the backup!
Flashing the alternative firmware
- Launch ST-Link Utility
- Select [Target] -> [Connect] from the program menu
- Successfully connected to the target and device type detected.
- Select [File] -> [Open file…] and select the corresponding firmware file for your receiver
- Select [Program & Verify…] from the “Target” menu.
- Press [Start] button.
- Flashing the firmware
- Firmware flashing finished successfully
You will have to rebind the receiver after the flashing of the alternative firmware, except the A8S and 8A receivers as they store the transmitter ID in the EEPROM and is not affected by the flashing process.
You can read the alternative firmware for Flysky receivers discussion on the RCGroups: https://www.rcgroups.com/forums/showthread.php?3093552-RSSI-Firmware-mod-for-FlySky-IA6B-and-X6B
Created: 2019-08-14
Updated: 2019-12-06 Flysky FS-X14S receiver
hi Montis,
first of all thanks to provide a writeup for flashing new firmware. Iam trying to flash firmware on FS-iA10b, while trying to connect and take a backup iam getting an error ” Cannot read memory! Disable read out protection and retry”. Can u plz help me in this regard
Some receivers could have the read protection enabled. There is a backup of the original firmware for FS-iA10b here: https://github.com/Cleric-K/FlySkyRxFirmwareRssiMod/tree/master/src/IA10B. You can try frashing the firmware without reading the original. But I would suggest to double check the wiring first. You could also try swapping the SWDAT ans SWCLK wires. Try to minimize the length of the wires. As far as I know FS-iA10b is not write protected, so you should be able to connect and read with ST_link.
Hello,
I am trying to flash the X6B and getting “Can not read memory” error.
I tried swapping the SWDAT and SWCLK wires but then the software cant connect at all. I also connected RST but im getting read memory error.
Can you please help me?
It seems there are some batches of X6B (maybe the new ones) that come with the code protection bit set, so you will not be able to save the original firmware. But you dont need to. There is a backup on GitHub page: https://github.com/Cleric-K/FlySkyRxFirmwareRssiMod/blob/master/src/X6B/X6B_orig.bin
Try flashing the firmware without reading it.
Hey Montis, I did this mod to my FS X14S, But my OSD RRSI value reads 41 and doesn’t change. I’m new to this hobby and it’s hard for me to find good help. I read that the RSS ADC in the configuration tab should be off(?) because somehow it interferes with the RSSI. IDK I was just hoping that maybe you could help me out and give me some insight. I got a Mamba F40MK2 FC, a Flysky FS-i6 Tx and the modded Flysky FS X14S RX. Please help me man, my wife will kill me if I lose this after investing so much.
Do you have valid RSSI data on your channel 8 or chanel 14?
Does your RSSI channel data changes when you walk away with the transmitter? (I usually put the transmitter into the fridge o actually see my RSSI drop 😃 )
Have you selected the correct “RSSI channel” in the Betaflight “Receiver” tab?
Ich habe das Problem, dass er immer wieder sagt: Can not connect to Target. Kannst du mir da helfen wie ich das Fixen kann?
>>I have the problem that he keeps saying: Can not connect to Target. Can you help me how I can fix it?
Usually the problem is incorrect wiring. Check if you have correctly soldered the DAT, CLK and GND lines. You can also try to swap the DAT and CLK lines. Also check how your receiver is powered with the 3.3V power supply from the ST-LINK dongle or by external power supply.
Did you change the adress field?
Adress: 0x08000000
Size: 0x8000
Bits: 32
The Problem is if you backup then you change it. But if you try with this settings to reconnect it won’t work. So it helps to use the original settings.
Hi. Great write up thanks. Could a USb 2.0 to TTL adapter be used to do this.
Paul
No, you need ST-LINK V2 programmer (cheap, only a few $$ for Chinese cloned device on Ebay or Aliexpress).
I think the X14S also stores the ID in the EEPROM, as the dump from my X14S is identical to the reference file.
Probably you are right. I don’t remember if I heeded to rebind after the flashing…
i tried to flash my x6b with stlink utility, first time i don’t get it working but after switching the power form 3.3v to 5v (+vcc pad on the receiver) it worked but the utility say to me “Can not read memory! Disable Read Out Protection and retry”
.. after a research i set on Option Bytes menu, Read Out Protection to Level 0.. now my receiver is bricked i think.. the red led no longer turns on.. i found a procedure from Cleric in his github page to connect under reset. but it not work properly.. seems to be connecting bbut say can’t connect.. what can i do?
Hello again. Finally got an ST-link adapter. I had to disable driver security on windows to get the driver installed but now I keep getting a “timeout during flash programming” error when I try to load the firmware. I have tried powering the rx from an external power supply through the fc but still no joy. I have had a look online for any information but I’m not finding much. Any idea what would cause that. Thanks.
Got it resolved. I installed the latest ST-link utility and that worked
Great! Thank you for your feedback. I was about to suggest you to double check the wiring and etc.
Danke für die tolle Anleitung:
Ich habe nur ein kleines Problem:
Er meint immer “File size is bigger than the flash memory size”. Was kann ich machen?
ES handelt sich um den X6B V1.1. Device: ID: 0x444 Device flash Size: 32KB Device Family: STM32F03x
Ich hoffe du kannst mir weiterhelfen?! Aber auch mal alles gelöscht auf dem X6B – das Image kann er leider auch nicht mehr aufspielen ebenfalls “to big!”
Danke im Voraus!!!
Thanks for the great instructions:
I only have one little problem:
He always means “File size is bigger than the flash memory size”. What can I do?
It is the X6B V1.1. Device: ID: 0x444 Device flash Size: 32KB Device Family: STM32F03x
I hope you can help me?! But sometimes everything is deleted on the X6B – unfortunately it can no longer upload the image, too, “to big!”
Thanks in advance!!!
Try setting the Address field to 0x08000000 and Size field to 0x8000 for 32kb flash image.
Now it worked! The solution was the correct download of the .bin file. You must click twice. If you download the first X8B.bin its about 156kb (thats to big) if you click twice there is a download file with the correct size (32kb!)
Cool! It works!
Thanks for Help,
Edo
F. Zimmermann
It’s great to hear it worked! Thanks for feedback.
my Rssi only shows 16/17% no matter what… what could i look at to fix it so osd shows 100%
Hi, you have to set the RSSI channel to CH8 or CH14 in the Betaflight “Receiver” settings tab.