kolin's Posts (2)

RC system on 868MHz based on OpenLRS


About year back, I found OpenLRS. When looked on schematics I discovered it's really simple. I checked local parts supplier and found out 433Mhz and 868Mhz RFM22B modules to be about 9$ Then calculated that price would be half if I do it myself. So I ordered 433Mhz (868 was not in stock) ones and started to copy Flytron's schematic.

In summary there were three reasons for me to do my version

  • wanted 868Mhz version as using 433MHz in EU is legal only with low power of 10mW
  • price, about 20$ for Rx and 25$ Tx even with board from pool service
  • native JR module, no stupid JR<>Futaba converter

Hardware design
Schematic of receiver is very same as original Flytron's one. I only used bigger 0805 passives, different regulator, added ISP and so. Parts are chosen to be obtainable in local store here in Czech.

Transmitter board was designed for the original FlySky 9x transmitter module case. Just remove original PCB and put this one in case. There is also selectable inverter of input PPM signal to be compatible with JR (was not tested yet). Someone on flytron's forum recommended me to add serial telemetry for 9x as many has done for Frsky modules. So in 1.1 it's there, selectable by solder jumper.

Every component can be bought at TME



First batch of one Tx and two RX has been made in end of may 2012. These modules were 433Mhz and there was a bug in Tx module wiring, there were compatible with olrs firmware only after mod. They work well, I flown them for many hours. Never made it public. First version can be seen here https://picasaweb.google.com/m.kolinsky/KolinSRCDev

New revision was finished yesterday. I ordered 868Mhz modules, did simple hack in software and they work!

For the first prototype I used original flytron FW, only changed IO mapping to suit my board.

For second one I started with thUndeadMOD4. Only needed change in software was to load different registry values for base frequency.

Real life tests
With first prototype I was really brave (or stupid) to put this to my greatest, most expensive and most labour intensive plane ever, UltraMaxiSwift (will show it in another blog post) and everything worked well, it has about one hour in the air. Also many hours with Twinstar2 FPV with 2.4GHz/500mW video transmitter.

Second prototype (now 868Mhz) was tested yesterday on RC car. In low power range test mode (1mW output power) range was about 100m before glitches. This was with 1/4 lambda wire antenna. Seems to be OK. Due to weather, real life test to be done.

I checked real output of modules by receiving transmission with popular RTL-SDR. Channels are exactly were they should be. Looks nice

Here in Czech (and probably rest of EU) authorities allow to transmit  500mW of power with 10% duty cycle in 869.400–869.650 MHz band. Base frequency and hopping channels in my SW are selected to fit in this band. Duty cycle requirement is not fully satisfied, but modules are transmitting only 100mW, so it should be acceptable. Certainly less unlawful than using 433MHz band here.

How to get

If you are interested you can:

  • download eagle files, order PCB, parts and do it yourself
  • buy Flytron's one and replace RFM22 or write Melih to do it for you
  • buy hobbyking's version and replace RFM22
  • contact me, I would order more PCB's


I want to thanks Melih from Flytron for great idea of making such simple and effective RC system and for making it opensource.

I probably would not buy new Frsky 2.4Ghz receivers anymore as these are cheap and reliable. With hobbyking's clone of OpenLRS, there will be much more attention for this project.


Here you an download eagle files and modified firmware.kolrs868-fw-hw.zip

P.S. excuse my English ;)

Read more…


I was wondering about PPM decoder for a while. I liked to have receiver on edge of the wing, but routing of all servo cables there is nonsense.  My idea to build one came from accident when I damaged my one of APM1’s main MCU  I2C pins. I replaced it with new one and then I get idea to reuse damaged MCU for PPM decoder (I2c wont be needed) They are not cheap (ATMEGA2560 are 18$ in mouser) and it's a pity to throw it away. I realized that APM uses sum PPM signal and can drive 8 servos by hardware timers and has libraries for it so software can’t be too hard. I fired up Eagle and started to draw....

Hardware design
I peeked in schematic of APM1 and duplicated servo and PPM pinout. Basically, you can use APM1 without oilpan to do the same! Then I realized it would be a good idea to do galvanic isolation of receiver to suppress any interference coming through the wires. This is really simple, just isolated 1W DC/DC 5V/5V converter to power receiver side and ADUM1301 isolator IC. Simple optocoupler would do the job well, but I was too lazy as ADUM’s are really simple to work with. It is quick and dirty design at all, board is autorouted with some hand corrections. Parts are chosen to be obtainable in local store here in Czech.

I soldered all stuff on board, powered it up and arduino bootloader was not answering :) Long story short, failed crystal. With new one, everything goes well. I still haven't ADUM1301 IC, so there is a piece of wire instead. But receiver has its own power via DC/DC.

This was easies part. I just compiled \ArduPlane-2.32\libraries\APM_RC\examples\APM1_radio\APM1_radio.pde it was all I needed to do! This example is doing exactly what I needed. Decode PPM signal and send it to servos. Well I commented out serial debug messages and added blinking of LED.

Real life tests
I was really brave (or stupid) to put this to my greatest, most expensive and most labour intensive plane ever, UltraMaxiSwift (will show it in another blog post) and even together with my own OpenLRS clone. Everything is working well, it has about one hour in the air.

Future development
When I fix my APM completely, it will replace this decoder. Maybe I will use it in other plane.
But one thing worth to be experimented. If I add second PPM receiver, Decoder can do a sort of diversity. It would choose valid PPM signal from second receiver if first goes to failsafe or vanishes completely.
Is ATMEGA2560 (or 1280) able to decode second PPM stream? I offer piece of hardware to someone who will write software for it :)

Pros and Cons
+ Place receiver freely in airframe
+ Galvanic isolation to help avoid interference
+ Possibility to alter RC signal (mixer, complex failsafe...)

-When this thing fails your plane is doomed
-Not need when APM onboard as it has PPM input
-ATMEGA2560 (or 1280) is expensive overkill for such simple task

If you like this, send my board design to your favourite fab house and DIY. Probably not needed by most of you. I wanted to thank all APM community for such great project.



Read more…