A short while ago I ordered some Lemon-Rx DSMX receivers from their official store. I've used the Lemons from EndBots in a few projects (usually with their LemonRx DESC combo, check that out here) but Lemon-Rx didn't have the same module on their store. What I ended up buying was a bit more interesting.

The Endbots Receiver is a pretty simple board with a CYRF Wireless MCU and a coprocessor for running the pwm outputs (and binding logic). The Lemon-Rx site receiver is actually 2 seperate boards soldered together (3 MCUs for $8, crazy). If I had to hazard a guess, they're probably using a common CYRF module for multiple products.

Naturally, my next question was: How are there only 3 pins? at least 2 of those are power (RF isn't terribly low power...) and binding is controlled by the larger PCB so that would imply a high speed, low latency, bidirectional communication.

A few minutes with a multimeter verified my first guess, one pin is common mode ground and the other is connected to the onboard 3v3 LDO which means the third is a "signal" line of sorts.

LemonRx Module Pinout

To determine how these two were communicating, I probed the signal pin in circuit with a lab oscope.

professional test setup

Some further testing with just the module reveals that the communication is mostly 1 directional. The RF module will happily transmit without its breakout board. Bind mode appears to be entered by the breakout board driving a signal on startup.

The data seems serial in nature, and fixed packeted (each channel corresponds with a specific position). using a logic analyzer, I was able to determine the baud rate (115384) and the rough channel mapping. I threw these into an Arduino sketch for testing and get some useable data!

Arduino Plots!

If you'd like to check out the channel mapping or plot your own lemons, the source code for this test and my mapping are on GitHub