In this article I will describe, how to update the FrSky D8R-II Plus or D4R-II receiver with 27ms CPPM firmware. By using CPPM signal you only need one wire for all channels and not separate wires for every channel.
You can buy the FrSky Update Cable or you can use your Arduino board. You can use every Arduino, that has an integrated FTDI chip. I have one Arduino Uno, but my revision of the board doesn’t have a FTDI chip. So I decided to use my MultiWii MegaPirate AIO flight controller.
First you need to download the CPPM firmware.
-
D8R-II Plus 27ms CPPM firmware
-
D4R-II 27ms CPPM firmware
This firmware for the D8R-II Plus is actually for the FrSky D8R-XP receiver, but it works fine. Please keep in mind, that it is officially not supported for the D8R-II Plus and I am not responsible for any damages on your hardware. Download the official FTDI Prog. – EEPROM Programming Utility and install it on your computer.
There is a jumper on the side of your receiver. Take it out and place the jumper on the signal pins for channel 7 and 8, so these are bridged. This will put the receiver into update mode.
Then connect the TX, RX and GND pins from your Arduino board to the TX, RX and GND pins on the side of your D8R-II Plus receiver. Important: Do not reverse the TX and RX as usual. Connect TX to TX and RX to RX. To power your receiver: you can use a 5V battery or connect it as usual to the flight controller.
For the update process we only need the use of the FTDI chip, so we will suppress the Atmega chip by a constant press on the reset button. After the reset button is pressed, connect your board to the USB port of your computer. It could possibly install some drivers, so give it some time. Keep pressing the reset button 🙂
Open the FTDI Prog. Scan for FTDI Devices. Then invert the TX and RX as shown on the screenshots below and click on the flash icon. In the new opened window click “Program”. (Tipp: Remember to undone this procedure after you have flashed your receiver)
Keep pressing the reset button 🙂 Now go to the folder, where you downloaded the firmware file from the FrSky website, extract it and start the .exe file.
Choose the right COM port in the dropdown menu. Select the firmware file from the same folder by clicking on “File”. If everything is fine, you should see the UID number in the bottom of window. If so, just click “Download” to upload the firmware.
Now you have a working CPPM FrSky receiver. To use your receiver in CPPM mode, place the jumper on signal pins CH3 and CH4, so these are bridged. The CPPM signal will be on CH1 pin. If you have any question just leave me a comment.
Hello
I have updated my D4R-II but while it was updated was locked at 47%
if I try to do the update again, after loading the file instead of viewing the id on the software, I see the local address of the selected file
but if I connect the receiver to naze in ppm I can see all channels … how can I do?
best regards
FP
Hey Francesco, not sure what is wrong, but I can remember, I needed to repeat the procedure several times until I got my UID number. So you can try restarting the PC, reconnect and try again. Regards, Sergey
Thank you for your post, Sergey. It was helpfull for upgrading my D8R-II Plus with my Arduino Duemilanove.
But just some notes for the D4R-II:
1) Put D4R-II into boot loader mode by linking CH1 and CH2
2) REVERSE Tx and Rx (if not i can’t see the UID number)
3) get CPPM (CH1) and RSSI (CH2) by linking CH3 and CH4
Best regards,
L
Hi !!
Thanks for the tutorial, great to use the arduino like that.
But sadly whatever I try I cannot get the uid to show up..
Tried looniho advices too without success… Is your led blinking red while powering the d4r ? Are u using pin 0 and 1 of the uno ?
Should I jump channel 3 & 4 too ?
I’m lost here can’t see what I’m missing 🙁
Hey Fred, it was some time ago as I lastly updated my D4R, so I should check again. But as far as I remember you should only bridge two of the channels. Will try to check all again at the evening and let you know. Cheers, Sergey
Thanks mate !! Any advice is good to take… would be a shame if I have to order the usb programmer as I have arduinos siting around…
Hey Fred, one question: does your Arduino Uno have a FTDI chip on it? I have used my MultiWii MegaPirate NG board, which is based on Arduino, because my actual Arduino Uno does not have the FTDI chip. Cheers, Sergey
I’ve got the duemilanove, I guess it works OK cause I was able to use it with a minimosd, and the inversion of TX/RX is working, so the device is recognized…
One small note, when I select the update file, only the TX led on the arduino starts blinking… and is the red led blinking on the d4R ?
Hey Fred, no the red led on the D4R should not blink, neither the green one. It should look like it is not powered on. On the Arduino both TX and RX should blink. If not, check your cables. You dont actually need to invert the TX and RX through the FTProg, it is much easy to connect TX – RX and RX – TX. I need to update the article for better understanding. Cheers
Hum interesting… If I remember as soon as I put the 5v to the d4r it start blinking.. do you 3 or 4 for cable plugged to the D4R ? Thank a lot for help man !!
Yes, it blink in normal mode, but not in firmware upgrade mode. You should only connect GND, TX and RX from the receiver. And that is why you power the receiver via battery. In the firmware folder there is manual, at which you can also look at.
Still no luck.. I am powering the d4r through the arduino 5v, do you think it makes any difference ? Because as soon as I plug power to the d4r it starts blinking red…
No, 5V from the Arduino is fine. You have a jumper on the first two top pins (CH1 and CH2), so these a bridged?
Yes jumper in place..
Hmm, strange. Right now, I do not have any more ideas, what could be wrong…
Hi Fred,
Just for checking the wiring :when you say “the first two top pins”, you mean the two at top left (xx=jumper)?
x . . . . .
x . . 0V 5V .
1 + – – + 4
2 + – – + 3
Yes that’s it… I ordered a new one, I’ll see if the result is any different…
I do not understand an article titled “FrSky CPPM firmware update with Arduino” that is executed without arduino… 🙂