Jump to content

Recommended Posts

The Eurgle ~ FlySky ~ Imax ~ Turnigy "9X" R/C Tx has a strong following. Especially with the DiY crowd because of the open source software (such as ER9X) that has appeared from the hobby community. I joined in on the fun and have been hacking mine. So here's some photos of my FlySky 9X that has been updated with a FrSky 2-way telemetry module and a variety of ER9X related hacks.


So let's begin with the hacks. In order to flash new firmware you need to add a interface to the R/C Tx's CPU. So here's the wiring to do that (shown with the FrSky RS232 telemetry wires):


The mods involved in this photo are explained here:



The connector with the brown/yellow/white wires is for the RS232 port on the FrSky 2-way telemetry module. Pay attention to the three wire colors since they match up to the FrSky's RS232 wires shown later on. Spoiler alert: The RS232 port was hacked, so hold on for the important details explained further down.

Note: You can click on the photos for a close-up view.

Edited by Mr.RC-Cam
Added photo
Link to post
Share on other sites
  • Replies 123
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

The ER9X has support for Haptic feedback. But there's no hardware in place for it, so you have to roll your own. I used a pager motor (vibrator). A generous amount of hot melt glue was used. There's a diode mounted on the motor for EMF suppression.


The motor required adding a simple transistor switch to control it (which is wired to a spare pin on the CPU). I also added a cap to the existing 5V voltage regulator that powers the new motor.


Pardon the typo, that's a transistor in there, not a transitor. :)

Not shown: I also changed the Tx's original magnetic beeper/buzzer to a Piezo speaker (for enhanced audio feedback). This required some circuit board surgery. Some details to these tricks are explained here:


Link to post
Share on other sites

The FrSky 2-way telemetry upgrade requires mounting a tiny circuit board with LED and push switch. The switch is used for Rx binding and the LED shows status. Here's where I mounted them (centered below the antenna):


Inside view of the Tx showing the LED/Switch board after it was installed with hot melt glue:


There's a new 2.4GHz antenna that needs to be installed too. More hot melt glue and the deed was done:


By the way, the dipole antenna that was provided with the FrSky 2-way telemetry kit fell apart on me (SMA connector was poorly crimped). So I had to replace it with another one I had on hand.

Link to post
Share on other sites

The FrSky module has a toggle switch for setting the operating mode. I did not want to install it on the outside of the case, but I did want easy access to it. As luck would have it, the empty FlySky RF module case offered a solution. Here's what I did:


So when the empty RF module case is installed the toggle switch is hidden from view. Getting to the switch is a 5 second operation.


Link to post
Share on other sites

The FrSky 2-way module requires connections to the 9X transmitter's CPU. The RS232 voltages that are provided from the FrSky are harmful to the CPU so they need a voltage translation circuit to do this. The circuit (from the gruvin9x wiki) that you need to build is shown here:

However, my solution was less complicated (but perhaps more dangerous). I reverse-engineered the FrSky PCB and hacked into it by wiring directly to its RS232 circuitry (3V logic). This trick only requires two resistors instead of all the parts shown above.

The RS232 mod requires removing the shrink wrap from the FrSky module and cutting a via pad away from a trace. As shown here:


Then add a couple 1K resistors in series with some direct wire connections (RS232 Tx and Rx). As shown here:


IMPORTANT: The original RS232 4-pin connector on the FrSky PCB is NOT used. This hack replaces it! The Brown, White, and Yellow wires are connected to the CPU as shown in the very first post. The red wire is not used and can be omitted.

Edited by Mr.RC-Cam
Added note about red wire.
Link to post
Share on other sites

And finally, the FrSky RF deck was installed with some Velcro. Notice that it is naked (factory installed black heatshrink removed) in this early test-fit photo. But I have since put some clear heatshrink over it.


The photos are a bit out of build sequence; when this one was taken I hadn't installed the RS232 wires. So that is why they don't appear here.

By the way, the FrSky module comes with thick over-sized 20AWG wires. I unsoldered them all and installed smaller gauge, so your module's wiring will look different. I also added some connectors to allow easier dis-assembly when service is performed.

Next on the list: I'm waiting for some DIN connectors to do the 2-cell Lithium battery hack. I'll post some photos of that in a few days. But if any of you have some tricks or tips to share then feel free to add them to this discussion.

Link to post
Share on other sites

Cool :)

My 9X shipped a couple of days ago, so this is just in time - you did get to do it first :)

On my side I got the JR-style FrSky module, intending to just slap it in the module slot instead of integrating the DIY module. I'd like my 9x to serve dual purpose, FrSky and Spektrum, and the idea was to reuse the 9X's supplied module case to put the Spektrum stuff in, and to simply swap between modules when needed. But as always I'll certainly change my mind and/or find better ideas once I have the gear in hand, one other possibility is to integrate the Spektrum gear and leave the FrSky module in the slot permanently (which would remove the need for extra connections for telemetry link).

Now that Spektrum support is stable and integrated to all ER9X versions it's easy from a software point of view, I just need to use an FrSky build and it will have both the code for Spektrum and for FrSky telemetry.

The logic-level RS232 hack is something I was expecting to do as well, so now I have the advantage of knowing it's possible ;)

the 2-cell Lithium battery hack

What's that one?

One thing, as you're equipped for that, can you measure the RF output power of your FrSky module? Mine seemed a bit on the low side (approx 20mW, spec being 60mW)

Edited by Kilrah
Link to post
Share on other sites
My 9X shipped a couple of days ago, so this is just in time

Be sure to post some hack photos. BTW, I noticed that the HobbyKing price has increased to $58USD so you bought your Turnigy 9X at the right time.

can you measure the RF output power of your FrSky module? Mine seemed a bit on the low side (approx 20mW, spec being 60mW)

My FrSky measures about 50mW.

What's that one?

The 2-cell battery hack is another popular upgrade. On the stock 9X transmitter the low voltage alarm is hard coded and so hardware mods are required if you deviate from a 8-cell NiMH/NiCD pack. But the ER9X software has a user configured low battery voltage threshold so using a 2-cell Lithium is a no-brainer.

As luck would have it, the mini DIN connectors arrived late yesterday. So I completed the battery upgrade. I used two TrustFire (hard pack rechargeable Lithium) cells rated at 2500mAH. Cost was about $10 USD for the two pieces (easy to find from eBay and China shops). These have internal protection circuitry for safety. Plus they fit in the Tx's battery area (tight squeeze). Two new holes were drilled in the battery compartment so a wire-tye could be strapped around the pack to hold it down.

Here's a photo of the TrustFire Cells after they were installed:


I wanted a factory look for the charge port so that is the reason for installing a 5-pin mini DIN connector. The DIN connector was installed at the back of the Tx's case. A DiY cable adapter mates the DIN with my battery balancer-charger. As seen below:


The 5-pin mini DIN part numbers are:

Panel Mount: Mouser 161-2105

Cable Plug: Mouser 171-2605

Link to post
Share on other sites

A 6-pin mini DIN connector was added for a more elegant looking CPU flashing port. It was installed on the bottom of the case. A mating DIN plug was installed on the USB flash dongle.


The 6-pin mini DIN part numbers are as follows:

Panel Mount: Mouser 161-2106

Cable Plug: Mouser 171-2606

The final thing to install is a backlight for the Tx's LCD (will do that that later).

I'm off to do some FPV practice with the new X-450 Quadcopter and try out the freshly hacked Tx. Also, the previous video camera sucked (cheap import I bought on a whim) so I installed a DPC-480A camera last night. That should help a lot. :)

Link to post
Share on other sites

My X-450 Quad is using the FrSky D8RSP (8-CH) telemetry receiver. This Rx is "full size" so it's a bit bulky. But it has the PPM-SUM feature and two analog voltage inputs (for remote voltage measurements). The ER9X Tx software allows the assignment of alarm thresholds to these analog inputs. When the voltage alarm condition occurs a beeper in the R/C Tx sounds off. To use the analog inputs the D8RSP Rx needs a resistor based attenuator to scale the voltage. The voltage applied to the Analog input must not exceed 3.3V, which is the sole purpose of the attenuator.

The attenuator can be purchased from FrSky, but I did a DiY solution. It's just a 4.99KΩ/20.0KΩ resistor divisor. A 10uF cap was added for some filtering. This resistor pair allows measuring up to 16.5V, so it is well within the voltage range of a 3S LiPO. If higher voltages are expected then the resistors would need to change. The photo below shows the DiY attenuator.


Another attenuator monitors the 5.8GHz FPV video transmitter's 5V supply. It uses a 20.0KΩ/20.0KΩ (1% tolerance) resistor divisor with a 10uF cap for filtering. Max voltage allowed with this resistor pair is 6.6V.

Here's a screenshot of how the ER9X displays the two telemetry voltages, plus the 2-way RSSI levels.


Upper Left = 11.6V (3S) LiPO battery

Upper Right = 5.09V Video Tx power

Lower Left = 91% RSSI from Rx

Lower Right = 94% RSSI from Tx

Given the good success with the FrSky system on my X-450 Quad, I've forged ahead and swapped the VC-550 (X8 frame) Quad's Spectrum Rx with a FrSky D4FR telemetry Rx. This is a mini size 4-CH Rx but it supports 8-CH's via the PPM-SUM interface (thank goodness). Unfortunately it does not have external analog voltage inputs. Instead, FrSky has internally hard-wired the analog input to the R/C (5V) voltage. There's little use in that when running the Rx from a BEC. So it looks like there will be some hacking to this Rx to create a analog input for the 3S flight battery. As usual, I'll post some photos when the hack is done.

Edited by Mr.RC-Cam
Added photo.
Link to post
Share on other sites


Here's a guide for the D4FR voltage sensor: http://www.rcgroups.com/forums/showthread.php?t=1511400

On my side I received my 9x and FrSky JR module on Thursday night, spent 2 hours in the evening doing all the mods I intended but the Spektrum integration before having to leave for a 3-day weekend with the radio still open on the desk. Didn't even get to test as I can't find my AVR programmer anymore :(

So, more news on Monday hopefully. I also received my FrSky module for the T14 a couple of days earlier, nice and clean installation as hoped :)

Link to post
Share on other sites
Here's a guide for the D4FR voltage sensor: http://www.rcgroups....d.php?t=1511400

Thanks for the link! The useful rcgroups information was a bit too late since I already did my own hack last night. Unlike the mod promoted there, I didn't cut a notch in the PCB to isolate the attenuator circuit. Instead I unsoldered part of the attenuator and added my own. It was simple and clean (and reversible if I want to restore the original configuration). I'll post some photos soon.

I tried to find a way to add a second analog input to the D4FR (like the D8RSP has). I found what appeared to be a spare analog pin on the Rx's STM8 processor, which had my hopes up. But even if it was the place for such a thing it looks like the Rx's firmware does not care. So if there is a way to hack a second analog input to the DF4R then I would definitely be interested in the details.

On my side I received my 9x and FrSky JR module on Thursday night, spent 2 hours in the evening doing all the mods

That is awesome. Please post any tips or comments about your FrSky conversions (especially any 9X related hacks) that you think will help others. And any general comments about your ER9X adventures would be cool too.

So far I am very happy with mine. It's not a LRS solution for sure, but it is a very nice radio for a sport pilot that wants a lot of useful R/C system features at low cost.

Link to post
Share on other sites

As promised, here are the photos/details to the D4FR's analog input hack. This mod will allow the FrSky telemetry feature to report an external voltage (versus the stock configuration that reports only the D4FR Rx's operating voltage).

Resistor R13 was removed from the Rx. This 150K resistor is not needed, but I saved it in case I wanted to revert the Rx back to the stock configuration. R12 and C22 remain in the circuit; The R12 value is several hundred K ohms so it will not have any effect on the external attenuator. So leaving it there is fine.


The DiY external attenuator uses a 20.0K/3.0K resistor pair. There's a 10uF cap for filtering too. BTW, the D4FR's ADC reference is 2.2V (whereas the D8RSP is 3.3V). So this D4FR attenuator allows a maximum of 16.8V to be measured (which is great for my 3S LiPO pack). The attenuator connects to the ADC-IN at the common junction of R12/R13/C22, as noted in the photo above.

That's all there is to it. Here's what it looks like before the Rx's plastic case was re-installed:


EDIT / UPDATE: DO NOT do this mod on a D4FR that is operated in the PPM-SUM mode. This receiver has a firmware bug that can cause randomly unstable voltage data with PPM-SUM.

Edited by Mr.RC-Cam
Added Update
Link to post
Share on other sites

OK, I'm back and spent most of the day on the 9x, flashing, finishing the mods, reading the manual, programming a couple of models I previously had on my Graupner radio, and... flying :)

So, let's start from the beginning. As I wanted to use an FrSky module with telemetry, I had to do the popular mod to free the UART pins of the AVR. I started there as there is some fine soldering involved, and it's much more convenient to tackle that before the bunch of flashing wires is in the way.


Next up is the actual telemetry wiring. My goal was a cosmetically clean solution with a removeable module, and of course as simple as possible. After reading up what others had done and seeing in this document that there were 2 unused module pins, I decided to use them instead of drilling the case to route wires to the FrSky module data pins from outside like some do, ending with a 2nd connector and an ugly case. I didn't keep much more from that file than this and the use of the servo connector between the mainboard and module board to still allow separating the 2 halves conveniently after the mod, because I wanted to skip the RS232 level converter for simplicity.

So here is the back PCB, with the RX/TX wires connected without level converter. Note the PPM resistor mod done as well while I was there.


One of the unused pins was intended for the MHz antenna connection, so nothing was required and I left the large pad connected just in case I needed it. The second, while not connected in the FrSky module, was grounded in the TX and its stock module. It was needed to cut the traces, 1 on the "solder" side and 2 on the other side, which the black paint doesn't make so easy.


I also removed the charging diode and replaced it by a simple bridge to allow connecting a Li-Po charger to the original charge jack without it being confused by the voltage drop.

Next comes the matching mod on the FrSky module. The PDF linked earlier connects the 2 unused module pins to the rear RS232 connector pins, but that's for use with the RS232 converter. As I omitted that one, I had to find the TTL level tracks like Thomas did on my different module version, and cut the processor-side line from the converter. Here they are:


The cut track is the one where the blue wire is soldered, just right of the solder point.

The whole module with the connector:


Next up was installing a backlight, I got myself the white version from HK. That's very simple, just remove the mainboard, add the backlight on top of the LCD, stick it with some tape as it just won't hold in place without, and put the mainboard back in place. I didn't wire software backlight control, as we'll see later the power draw of that radio is so ridiculously low there's just no point in bothering. Full-time it is. I didn't bother removing the wire harness and soldering the backlight wires to the board, that way it still stays easily removeable and saves me some time :)


Then, the actual flashing wires. I used a 2x3pin header that matches my AVRISP mkII programmer. That was of course before I noticed I had lost it.

Final view of the inside:


To power the radio, I had an HK transmitter-type 2500mAh 3s Li-Po. It just tightly fits in the battery compartment, but as Thomas said the 3rd cell serves no purpose apart from heating up the case and making the TX heavier. So I simply dismantled the pack, removed a cell, and repacked, removing the unused wires while I was there.


Final ready to use FrSky TX:


The flashing connector is accessible from the battery compartment, as is the balancing cable to use once in a while:


Link to post
Share on other sites

Next up, Spektrum transmission. I bought a used DX4e for about $60 to scavenge the high power module from, there's already a detailed description of how to get it out on the Spektrum guide. The question was what to do with it, I was hesitating between an integration and putting it in the stock module's case. Now with the transmitter in hand, I ruled out integration as I'd have had to remove the antenna everytime I wanted to put the TX in my quad's case. In this case, why not simply remove the module altogether.

Here's the inside of the stock module:


The top board with the button has the module connector to the TX and a 5V Vreg. It's convenient so I kept it, and added a 2nd reg in line to do the 5V->3.3V conversion. The board was also welcome to add the resistor and diode used to convert the signal level.

Board with cable to the Spektrum module and level converter:


And the Vreg:


I used an RP-SMA pigtail that was laying around to install the antenna:


And there we go, Spektrum finished!


Last thing, actually flashing ER9x. I still haven't found my AVRISP mkII programmer, however I luckily have a Bus Pirate that can be used to flash AVRs. So yes, I confirm it can, BUT it's slow as heck. 30 mins to flash, same to verify...

The only trouble I ran into was power to the Spektrum module. My initial 3.3V regulator, even if the module's consumption is well enough below its rating, couldn't take the strong peaks this module apparently draws even with added buffer caps. I couldn't bind anything, and after checking with the scope there were big voltage dips when the module was transmitting. It apparently sends short packets that draw a lot, and then stays idle most of the frame time as opposed to FrSky and other R/C systems I've used where transmission time is much more "spread". I replaced the reg with the one that was in the DX4e, and then all was fine and the supply looked good.

I got to quickly fly 2 models in the evening, one with a FrSky receiver and one Spektrum BNF. Just swap the module, select model and everything works perfectly :)

Power consumption is 52mA for the TX alone (with backlight), 93mA with Spektrum module, and 133mA with FrSky module. So, with a 2500mAh 2-cell pack... it will just last forever. Weight is 770gr, which is 50gr lighter than my Graupner TX.

The software takes a bit of getting used to, but is very flexible. I've been able to recreate all the "strange" things I had set on my T14MZ...

I'll still have to see how exactly to get FrSky telemetry to display and warn what I want.

Link to post
Share on other sites

Good information! It will certainly help other hackers.

I'll still have to see how exactly to get FrSky telemetry to display and warn what I want.

The telemetry feature works well. I've matched the low voltage alarm thresholds to be the same on the model and ER9X Tx's telemetry. So when the model's battery is getting low I hear the local beep alert from the Tx speaker and there's a distant ghostly beep from the flying Quad's buzzer. The cadence is similar so it sounds like stereo. :)

Link to post
Share on other sites

Did you get the voltage from the D4FR to display? I have RSSI but it seems that's all... I was about to go on to adding voltage measurement of my quad battery as well, but if it doesn't show up...

Link to post
Share on other sites

OK, more mods... couldn't get to stay behind the PC.

This time, it's about PPM in for the headtracker. I didn't find much info about the trainer port, nothing more detailed than using a 1:1 mono jack cable to do a trainer/student setup, so I had to look at it more closely myself.

So, indeed the port uses only 2 connections on the plug. When the radio is off and a jack is connected, the radio turns on in output mode. If the power switch is on, it's in input mode instead.

There is apparently a "bug" on the HK backlight PCB, when the radio is in output mode the backlight is strangely off. On input mode the PPM pin actually outputs 5V. Someone tracked it down to a wiring error, and a correction is proposed here. The correction solves both the 5V and the backlight not working in output mode.

With this sorted, I was ready to input a head tracker signal.

Next problem was power, I'd really want to be able to power the tracker from the radio, and cleanly if possible. Fortunately, the jack in the radio is actually stereo. So, I could simply wire power onto the unused contact. There was an unswitched battery voltage next to it, used to switch the radio on when a plug is inserted, but I decided to rather fetch a switched battery source. The main reason is that I don't like powering things through TRS plugs, that tend to create shorts during insertion/removal. Additionally, it means no power is supplied when the radio is in PPM out mode, keeping things safe. So ideally it's best to insert/remove the plug with the radio off, and turn the switch on only after that so that no power is applied when there are movements.

I picked switched power on the module supply:


And here's the jack's free pad, along with my Futaba <-> Jack adaptor and its wiring:


The software makes it awesome to configure head tracking, as channels 1-8 of the PPM input are assignable to any mixer in the exact same way as the radio's controls. So mappings, directions, behaviors are totally freely configurable. My T14 only added input channel remapping in last year's firmware update, until then the student TX had to use the same channels as the trainer one...

With tracker, Spektrum and everything working fine my FPV Sbach UMX is getting closer :)

Link to post
Share on other sites
The software makes it awesome to configure head tracking, as channels 1-8 of the PPM input are assignable to any mixer in the exact same way as the radio's controls. So mappings, directions, behaviors are totally freely configurable.

The channel mixing is indeed well done. The ER9X developers definitely had guys like us in mind!

Thanks for the new photos.

Link to post
Share on other sites

Yep, the solution was simple. There isn't really any documentation about the 2 FrSky pages in ER9X's menus, and I didn't find out by myself that "A1 channel 0.0" actually was the full scale value of the mesurement, and that when set to 0 disables display of the value altogether.

I found out when trying the various firmwares a bit (I flashed my Bus Pirate with the STK500-emulator firmware, I can now flash the radio in 45 secs instead of an hour) that on open9x this setting would show up as a much more explicit "A1 channel -&gt; Range". Just set that to non-zero and the display magically appears.

BTW, after trying th9x, gruvin9x, er9x and open9x, I settled on the latter.

I haven't modded the RXs yet, will probably get round to that today. BTW, the D4FR is about to be replaced by the D4FRII which has the A2 connection and serial port available on a connector. It's slightly larger though.

Edited by Kilrah
Link to post
Share on other sites
I haven't modded the RXs yet, will probably get round to that today.

Done. I've simply cut the trace to R12 and added a single wire, ground is common anyway, one less ground loop to worry about. Now both my little Fox and my X3D quad have voltage downlink :)


Then I've tackled the GPS, I didn't want to buy the FrSky unit as I already have tons of modules in my drawers, but obviously that involved finding out what the sensor hub was happy with. Found out with some help that it wants 9600,N,8,1, default NMEA sentences are fine, 1 or 2 Hz. Data is transmitted at 1Hz, but it seems setting 2Hz helps truly getting 1Hz downlink (input and output both at 1Hz but unsynchronised = gaps sometimes).

So I now have configured a Locosys LS20038 with settings saved in ROM, and all is good. Simplified the sensor hub cable a bit, removing a ground wire to eliminate a ground loop. Ideally if I had had one spare cable with the appropriate end bit to go in those small white connectors I'd have put power and ground on the DATA connector and eliminated the servo plug and pins altogether, as + and - are wired together anyway. Wonder why they did it this way.




EDIT: Forgot pics...

Edited by Kilrah
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...