View Full Version : Spektrum receivers "RSSI" -> OSD

08-18-2011, 04:53 PM
I noticed that a lot of FPV videos show the Rx signal strength on the OSD. This is almost a must when you want to do FPV and have an indication how far you can go without losing the signal.
I quickly discovered that the proper term for this is RSSI, receiver signal strength indication.

So I googled a bit to try and find if anything like this is possible with Spektrum receivers.
I got all excited when I found this device: http://flytron.com/osd-headtrackers/57-rssi-converter-for-spectrum-receivers.html
I know it's not true RSSI (hence the " "), since normally it measures the gain (in dB). In case of 2.4 Ghz receivers, it measures packet loss and scales it to a 0 to 5V output (or even audio if wanted).
Not fully understanding how it should be connected to the receiver I found this forum thread: http://www.rcgroups.com/forums/showthread.php?t=1207823
It seems to be from the guy who developed this device.

So I started reading through the thread. By that time I had already noticed that the item was out of stock.
When I reached page 6 of the thread, my dreams were scattered... Apparently development was stopped due to three different existing receiver version, of which only one of them works...

As a possible alternative they link to a thread on the mikrocopter site: http://forum.mikrokopter.de/topic-22520.html
(I have yet to start reading that one, as my German is a bit rusty)

Anyway, do you guys know a way to output "RSSI" to OSD with spektrum receivers? The receiver is connected to the Aeroquad shield, so we might not even have had to use that flytron device in the first place... Is there a way to get it coded in the Aeroquad software?

08-18-2011, 05:49 PM
The latest OSD code supports directly analog RSSI signal. (the one on development branch on git). i.e with flytron dev it would be trivial.

without it don't know

08-18-2011, 11:35 PM
As a possible alternative they link to a thread on the mikrocopter site: http://forum.mikrokopter.de/topic-22520.html
(I have yet to start reading that one, as my German is a bit rusty)

This thread contains no info about the RSSI signal at all.

08-18-2011, 11:51 PM
There's a page over on rcexplorer.se (http://www.rcexplorer.se/page14/lostp/lostp.html) about getting an RSSI output from a Futaba 2.4GHz receiver. Whenever a packet is lost, an LED on the receiver blinks. So he hooks up an RC filter to that, which provides an analogue 'RSSI' output for his OSD.

Perhaps that idea could be extended to our Spektrum receivers? I've noticed that my OrangeRx has an LED blinking continuously when it has a good signal (looks like it's on fully, but you can see it's blinking by shaking the receiver around) and the LED is off when I turn off my Tx. If it blinks the LED whenever it receives a good packet, you could easily get a good estimate of RSSI - just connect the positive side of the LED to an appropriate RC filter (for an analogue output) or use a pin-change interrupt to measure the number of good packets per unit time. You'll need to do some experimenting with your receiver to see if the LED actually reflects the number of good packets (or dropped packets).

08-19-2011, 05:37 PM
And here I think is the best page explaining how to calculate the R and C values for the RC filter: http://dev.emcelettronica.com/how-to-use-pwm-to-generate-analog-or-analogue-voltage-digital-circuits-part-2
It's good to know RSSI is already implemented in the OSD code. Once I get my OSD stuff together I'll come back and try this mod.

08-19-2011, 05:48 PM
The Futaba receivers at least, as alamo found, have two LED's, one green and one red, and the green is on when it's receiving and the red is on when not receiving. That's pretty convenient, especially for determining total loss of signal. I did not know however that the red LED flashed with every lost packet. That's quite interesting. I've been meaning to put a wire from one of those LED's for quite a while but never done it mainly because I've never had any problems at all with the receiver. But it would be cool to have the ability for the FC to know how the receiver is doing.

We however don't have to low pass filter a digital signal and than convert it back with an A/D converter, I think that's pretty far fetched. A simple transistor to bring up the level to our system level and then we should just read in the specific rate of failed packages to get a much more accurate picture of the situation. We've had these loss of signal discussions before. I'm not quite sure what to do at loss of signal, but maybe the most reasonable thing would be to force altitude hold and force 0 attitude regulation, i.e. disregarding receiver input so the craft don't twitch around a lot and such. Then the craft could be expected to slowly drift along the direction of the wind until you would have moved close enough to get good reception again with your TX.

But there's also the case where you are on the ground and turn on the craft before the TX, then we need some other interaction I think...

The most interesting thing is that this calls for another system dimension! A priority 1 dimension on top of the regular tasks it has. Would PCINT be the thing to use to trigger the loss of signal state?

04-27-2012, 12:25 AM
Flytron used to supply a module that could read out the packets lost from a Spektrum receiver.
I figured I could try to do the same by reading the data port.
I've connected the data line from the AR7000 data port to a digital pin from a spare Arduino Uno and use SoftwareSerial to capture the data at 115200 baud. It then forwards the received data to the hardware serial port (115200 baud as well).
Using a VB.net app I wrote I then capture and display that data.

The only useful info I could find on the data that port should spew out, is this: http://www.rcgroups.com/forums/showpost.php?p=9853072&postcount=15
Using that info, I tried to identify the data I saw. I pasted a few seconds of data in an Excel sheet.
When I receive a "2", I started a new line (0x32, the framing byte).
LINK TO SHEET (https://docs.google.com/spreadsheet/ccc?key=0ArtM3cpL_0KudEhLSVBoRTByY0EySExTTTBXdTdYT 1E)

I had to do some cleaning because sometime 129 or 130 is the framing byte.
I've named the columns as per the info in the rcgroups thread:
H = low (and only?) byte of holds
Fh = high byte of frame loss
Fl = low byte of frame loss
Ah = high byte of main receiver fades
Al = low byte of main receiver fades
Lh = high byte of remote receiver fades
Ll = low byte of remote receiver fades

I'm lost as to what I'm seeing here. According to that rcgroups post, I should be seeing something like this:

So nice 0x00 and 0xFF values (0 and 255 in decimal).
Instead I'm getting a lot of values in between. Please note I've saved them in decimal, not hex.

Can anyone tell me what I'm looking at? I hope I'm not doing anything stupid. I don't have a programming background (I'm a pharmacist), so this might be way over my head.
If I've figured it out, I can have it shown on the OSD.

04-27-2012, 12:51 AM
Honk - our senior design project revolved around detecting signal loss and then executing auto land code. Our signal loss detection worked flawlessly - all we did was stop the command "readPilotCommands()" from being called if we knew we were disconnected. To detect connection loss, we soldered into the status LED on the RX and just read the voltages going to it with an analog port. Once connection was lost, we forced attitude mode and set pitch/roll/yaw RX channels to 1500 and if the quad was tuned/balanced right, it would do pretty well on its own.

Alamo - I don't think the blinking of the light on OrangeRX receivers means packet loss. I can put my TX inches away from my RX and the light will still blink occasionally. Also, it usually blinks until I turn the whole thing off and back on, not just randomly throughout the flight. What we did find, though, was that if we supplied the RX with only 3.3V, the LED would always blink. I don't think it has anything to do with packet loss, but I could be wrong.

Knowing signal integrity would be nice, though, especially for FPV as you may fly around a corner/tree/etc. and lose signal faster than you had anticipated.

04-28-2012, 11:52 AM
Ok. Why did you connect your LED output pin on your RX to an analog port on the ATmega and not just connected it to a PCINT?

I think signal integrity is confined to physical electrical signals in the same system/box/PCB's. The thing you're talking about should be RF engineering territory which is a big and interesting area in itself.

08-14-2012, 09:32 PM
I was looking for the same thing as I have a DX8 and want a RSSI on my OSD, I found your question on this and other forums and also this thing (http://www.ebay.com/itm/DORA-translates-Spektrum-DSMX-receiver-output-into-RSSI-signal-for-OSD-FPV-/320951460190?pt=Radio_Control_Parts_Accessories&hash=item4aba32a15e#ht_984wt_1185) which looks like it works. It's sold, but the suggestions go to other items that do the same.

08-15-2012, 06:26 PM
I gave up on this. My programming knowledge is too limited. Great find though! Let us know if it works.

Verstuurd met Tapatalk