A while ago I ordered some Lemon-Rx DSMX receivers from their official store. I've used Lemons from EndBots in a few projects (usually with the LemonRx DESC) but couldn't find the same module on their store. What I did find 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 receiver's 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 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 were communicating, I probed the signal pin in circuit with a lab oscope.

professional test setup

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). Baud rate works out to ~115384. I threw together an Arduino sketch for testing and got some usable data.

Arduino Plots!

If you'd like to check out the channel mapping or plot your own lemons, the source code is on GitHub