A while back I wrote about how to modify the XSR (aka X4RS) to get at the non-inverted smartport signal so as to work with the STM32 F1 and F4 based flight controllers (F3, and F7 have the ability to invert serial communications built in). Well this is part two of that modification. The original can be found here: https://blck.mn/2016/06/smartport-the-frsky-xsr-and-betaflight/. The idea came from a discussion with Andrey (@diehertz – developer of the BLHeli Configurator) about how to get the RSSI output from the X4RS to the CPPM pin. Given the CPPM remains unused for most – it makes a good candidate for re-purposing to other uses.

So if you do not have a need for CPPM output, you can make a very nice little modification that will give you both the inverted and non-inverted smart port capability. Using a small piece of wire and removing two components you can re-purpose the CPPM output as non-inverted smartport. I use motor wrapping wire for PCB modifications / fixes, but any link wire will do (it need not even be insulated if you are careful with placement). See below:

So the two components you must remove are a small resistor, and a capacitor. These two components are to current limit and filter the CPPM signal output. These components are located at the bottom of the board next to the STM32F1 micro controller. See image:


The easiest way to remove them, given their size is to wet a soldering iron, place the tip on top of the components and wait a few seconds and drag the tip slightly. The component should simply come away with the tip. There are plenty of instructional videos on how to remove small components so please check it out.

Once removed simply add a small link between the bare pad (or pads) towards the base of the board (oriented by the text). It does not matter which one you use either the cap or the resistor or both as they are connected together and are routed to the CPPM output on the JST connector.


The other resistor pad (above where you solder the wire to) is connected to the bottom right corner pin on the MCU, and the other capacitor pad is connected to ground. It is very important that solder bridging to those other pads is NOT present. They must remain unconnected.


This modification will allow you to flick between inverted and non-inverted easily, and keeps the build clean as you can use the connector / cable supplied with the receiver. The CPPM wire (green if using the supplied harness from Frsky) from the connector is then connected to any free non-buffered UART TX pin on the F1 or F4 based flight controller.

NOTE: with this modification the yellow wire in the FrSky supplied harness is the inverted SPort connection, and the green wire (CPPM) will be the non-inverted.

13 thoughts on “Smartport, Frsky XSR and Betaflight – part 2

  1. Nice mod again, is may be possible to hack the XSR the same way?

  2. Hello,

    I will soon receive my new FrSky XSR and this modification is perfect for my Omnibus F4!

    I just have a small question, you said that the two components surrounded in yellow are to be removed but on the picture, only one of the two is removed. The final result should be as in the picture or with the right component removed? (For XSR photos)

    Thank you in advance and sorry for my English (I’m French XD).

    1. Both of them are to be removed. You then tap into the side indicated for running the wire to the connector.

  3. On 5 of my xsr’s I connected the transistor leg directly to the cppm pin. My f4 quads use the cppm pin, f3 use s.port pin. Sometimes for a second I will see a voltage glitch probably from collisions of cppm data and s.port data but it seems to work fine. I was looking for a way to disable the cppm and you found it! Thank you!

  4. Can this cheapo 16ch FrSky full range receiver be modified in the same way? I can only spot one XOR chip on this board…

  5. Hi, is it possible for a telemetry hack, ie connecting to the un-inverted signal possible on the new R-XSR Rx?

    1. I’ll order a few and see if its possible, I am pretty sure it will be 🙂

  6. That is an excellent way of doing it, but I have made a slight change in the way I did it, simply because I found it difficult to get the components off. If you look at the image at the top of this article, just to the right of the red link you can faintly see a track extending down from those pads to a via around 2mm below (down and angled 45 deg. right). That appears to be the track from those two components that goes to the CPPM pin (difficult to be 100% sure without the artwork, but it buzzes out like that). Instead of removing the components (which I found rather difficult), I carefully cut that track just below the two components with a scalpel blade. Then, instead of linking from those two pads mentioned above to the device below, linked from the device below right to the CPPM pin on the connector. I used an old wiring pen to make the connection (http://www.roadrunnerelectronics.com/epages/BT3782.sf/en_GB/?ObjectPath=/Shops/BT3782/Categories/Wiring_Pencils) – it is fine enamelled wire that burns off the enamel if you wind the soldering iron up to around 410-420 deg. C. As I said, hard to be sure of the tracking, but it does buzz out OK, and telemetry does work, so I guess it is a correct assumption.

Leave a Reply

Your email address will not be published. Required fields are marked *