FrSky FPort support - testers wanted

F4 Based Boards If you have an F4 based board then you will need a bi-directional inverter, as current generations of FPort receivers use an inverted serial protocol.

@tridge This seems to not be true in my case, I finally got it working and without the external inverter.

Details.
Latest AC and AP (11-2-2020) tested.
omnibus f4 v3 pro FC,
R-XSR with fport v1.9 FW,

Tested fport connected to UART1 and UART4

Fport connected to UART1 (r-xsr uninverted pad to UART1 Tx)
serial1_protocol=23,
serial1_option=4,
rssi=3

Fport connected to UART4 (r-xsr uninverted pad to RSSI pad on FC)
board_alt_config=4 (reboot)
serial4_protocol=23,
serial4_option=4,
rssi=3
(reboot)

FYI: On my r-xsr with fport v1.9, s.port (now fport) at the connector is NOT inverted and this signal does not work. Need to use the pad marked as uninverted, and this IS inverted, counter intuitive the only inverted works without external inverter. This seems opposite to most posts I read.

it just depends on naming conventions.
On an F4 you can only process “idle high” signals, which are uart signals where the gaps between bytes are high voltages. In STM32 this is an “non-inverted” signal.
The FPort and FPort2 protocols are specified as “inverted” protocols, meaning idle low. But “inverted” FPort is then idle-high, which means an inverted-fport is an uninverted signal.
To make this even more confusing some receivers have both inverted and non-inverted outputs. That is what you’re tapping into with that pad on the R-XSR. That pad gives an uninverted signal, which is “inverted FPort”.
Confused yet?

Perfectly! :slight_smile:
Thanks for all the work you, the team and the community have done!

Have you tested it with F4 board, because in case of f405 the inverter was necesssry as it described in the initial post of this thread. I ve tried without inverter on the bottom inverted S port but it not works…only with inverter on normal Sport.
Without inverter it works only on INAV.

Hi guys.

I’m trying to make FPort working with my PixRacer FC.
My setup is the following:

  • Pixracer v1 (ChibiOS: 331fe75d, ArduCopter V4.1.0-dev (f18585c5), EEPROM reset to defaults)
  • FRSky XSR-M Micro receiver (FPort beta NonEu: v171114 firmware)
  • Receiver SPort connected to FRSky Out port (direct connection, SERIAL4 TX)
  • SERIAL4_PROTOCOL = 23 (RCIN), SERIAL4_OPTIONS = 4 (HalfDuplex)

And I got nothing, no RC channels, no telemetry.
As FRSky port at PixRacer is already inverted so inverted input from receiver should be fine (changing invert OPTIONS don’t make any difference).
I was able to got RC channels (but no telemetry) with external inverter while connecting receiver to othe UART port on FC. Also FPort on this receiver works with other board (Inav).
So there should not be any HW failure, receiver is working, FRSky port is also working with SPort telemetry.

I have seen two success reports with PixRacer on this thread.

Maybe I miss some serial option to configure? Please advice.

Thanks!

Hi, no need for half duplex option on pixracer! Set SERIAL4_OPTION =0

Alex, thanks.
I’ve tried various combinations of flags for SERIAL4, 0 as well, no luck.

PS: double checked with 0 to be sure, nothing, no “reading Fport” in messages, no channel values.

Alex, your pointed me in the right direction, thanks again! :slightly_smiling_face:
Initially my receiver was connected by one wire to TX pin of the Pixracer FRSky port.
However in case of disabling HalfDuplex I need somehow to get RX pin connected. So I just short TX and RX, the same as for SPort telemetry. And now FPort works (channels and telemetry, have not check RSSI yet)!

Another question why HalfDuplex switch don’t do the trick on a single TX pin? :thinking:

because the Pixracer has a built in inverter and diode for half duplex but from the FC point of view is a regular UART connection using both TX and RX

1 Like

Yes, the Omnibus F4 V3 Pro is a STM32F405. This is why I posted “without inverter” working. The first post says inverter required, but I am guessing it was a FW change in ardupilot or R-XSR or? The number one hangup for me was the R-XSR FW fport version, I had the older v1.7 and nothing was working, as soon as I updated to v1.9 working, also tested it on UART1 and 4, see my diagram in post 260.

Ok…as i ve posted in my initial post i m using it with R9MM 869mhz receiver not with R-xsr

Looking here All about Frsky FPort (Advantages and How to Setup) - Oscar Liang
Looks like your receiver has both signals coming out like my R-XSR.


Good Luck.

Hi. Yes i know all of this blog and infos also from Oscar liang about my r9mm. BUT one .month ago this inverted port on r9mm just NOT worked with ardu 4.0.6FW. ONLY works with INAV without inverter.
So i hooked up the inverter to the Sport and it worked. There is no new FW for R9mm so i dont think it will work now or? I did not checked with current ardupilot dev. verison.
What version of ardupilot have you used with your XSR?

In my post I mentioned “latest” AC and AP (11-2-2020), latest means from the latest folder.

@yaapu Thanks for pointing to the master branch to fix this.

@Eitaje_FPV_Spot_Beer - Thanks for bringing this up.

@tridge Running 4.0.7 stable (f0d8ca5e) - max rxrssi seems to go to 39 only. Did the fix being discussed here get through to 4.0.7 release to it’s still on a different branch?

Update – just ran a test with ArduPlane V4.1.0dev (f57082a2) and rxrssi correctly goes to 100, meaning that the “fix” did not get in 4.0.7 release, no ?

I have the fix lined up to go into ArduCopter 4.0.6 in https://github.com/ArduPilot/ardupilot/pull/15227 . Maybe once it is in copter it will get ported to plane as well.
@rmackay9 can you review it?
@tridge do you plan a ArduPlane 4.0.8 release?

Hi all,

I have an RX jumper R1 connected to the FC omnibus NANO v6.0 TX1 serial 1 with external inverter, but on the TX16s radiomaster I cannot discover new sensors. The RX works well because if I use a FC KAKUTE F4 I can see the new sensors without external inverter. On external inverter or tried to connect TX or alternatively RX but it doesn’t seem to work. What else can I try? Thanks

I tried these configurations:

Connect an external inverter to TELEM1 (USART1). Setup as follows:

SERIAL1_PROTOCOL=23
SERIAL1_OPTIONS=160
RSSI_TYPE=3

SERIAL1_BAUD 115 it’s correct?

I have this inverter:

Did you you try it with the pull ups/down disabled? SERIAL1_OPTIONS 0 ?

Yes Dave, SERIAL1_OPTIONS 0 don’t work :frowning:

What is the correct baud rate? 115 okay? Thanks