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.
![](https://bowen.me/content/images/2020/07/20191003_201722_672x672.jpg)
![](https://bowen.me/content/images/2020/07/DSMX_6ch_single_end_only-500x554.jpg)
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.
![](https://bowen.me/content/images/2020/07/IMG_0178-1-.jpg)
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.
![](https://bowen.me/content/images/2020/07/LemonRx-Signal-Pin.jpg)
To determine how these were communicating, I probed the signal pin in circuit with a lab oscope.
![](https://bowen.me/content/images/2020/07/IMG_0185-1-.jpg)
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.
![](https://bowen.me/content/images/2020/07/Serial-Plotter-Output.gif)
If you'd like to check out the channel mapping or plot your own lemons, the source code is on GitHub