While working on my new autopilot control board (for quads) I realized that using 6 (or more!) MCU pins just to read data from the RC receiver is too taxing for the MCU as well as for the “real estate” on my board – there should be a better way to communicate with the receiver! A quick search on the Internet brought me to the Lemon-RX UART-enabled receiver (http://www.lemon-rx.com/shop/index.php?route=product/product&product_id=97). That same Internet search brought me to Jordi’s post (http://diydrones.ning.com/profiles/blog/show?id=705844:BlogPost:64228) – apparently Spectrum satellite receivers talking serial protocol back to main receiver. Another post (http://www.rcgroups.com/forums/showthread.php?t=922566) confirmed it.
I have a few Orange RX satellite receivers as well as Lemon-RX UART-enabled receiver, so I decided to check them for details of the serial communication.
For tests I use Orange RX 6-channel DSM2 radio with the end points on each channel configured for linear curve with the +/- 100% end points. I connected receivers to my computer using FTDI 3.3 serial cable.
The first one I tested was the Orange RX satellite; using the RealTerm application I analyzed the data stream – it is 115,200 bps serial stream with 16 byte frame. The frame starts with 0x0303 and ends with 0xFFFF; in between there are 12 bytes of the data for 6 channels:
After establishing the frame I used my Windows-based data capture program to get the data stream from the receiver and put it into Excel; the data stream was generated while I moved all the controls end to end and flipped back and force all the switches. Captured data represented in the chart where values for each channel are plotted against time:
It really looks like a digitized PPS signal – each channel has a center point at around (512 + 1024*N), where N – is the channel number starting from 0. The swing from min to max on each channel is 716, thus the Throttle goes from 0 to 100% in 716 steps and Aileron, Elevator, and Rudder channels go from 0 to +/- 100% in 358 steps – seems to be quite impressive resolution!
Then I tested the Lemon-RX UART-enabled receiver using the same settings on my radio. Serial frame for Lemon-RX provided on the documentation page – the frame starts and ends with 0x13 with 10 bytes – one byte per channel between the start and end sync bytes. Knowing the frame, I proceeded directly to capturing data stream into Excel and plotting results:
Each channel has a center point at around 127. The swing from min (38) to max (217) on each channel is 178, thus the Throttle goes from 0 to 100% in 178 steps and Aileron, Elevator, and Rudder channels go from 0 to +/- 100% in 89 steps. The resolution seems to be quite lower than the Orange RX satellite receiver, but still should be sufficient for most practical applications.
I ordered a few Lemon-RX satellite receivers and plan to test them as soon as they arrive. Meanwhile I have decided that my next control board will use serial interface to get the feed from the receiver and, probably, I will use just a satellite one.