OpenSky — a FrSky compatible opensource receiver firmware

One year ago i was annoyed by the missing failsafe feature of the stock firmware of my VD5M receiver. My brushed micro quad nearly flow away because of that. This was when i started to look out for alternatives. There were some diy receivers using atmega processors and code from midelic, a user of rcgroups. They did not quite fit my needs, the cheap cc2500 modules from china had some rx issues and i never got them to work 100 percent reliable. This is when i started to write my own firmware for FrSky gear…


I started with a vd5m. I gathered some information about the used chipset (a cc2510), got a cc-debugger for it and started blinking leds. That was quite easy once you get used to the sdcc compiler. After tracking all traces and writing down a pinout i started to work on the receiver code. When i got it working i started adding more features such as SBUS output.


Recently i got annoyed by the fact that all my D4R-ii receivers did not support SBUS. This is why i started to port my VD5M code to the STM32F0 architecture of the D4R-ii receiver. After some modifications, introducing a hardware abstraction layer and some testing i finally got my code to support both targets. A new feature was added as well, the code supports incoming serial hub telemetry — you can hook up that port to your flight controller and receive various telemetry data on your tx.


When i was building my TinyWhoop F3 i found not lightweight RX for it. So i developed uSKY, the worlds’ smallest FrSky compatible RX. It weights <0.5g and is really tiny, features full SBUS and hub telemetry support. Of course it also runs OpenSky.


This is my approach of building a tiny flight controller with an integrated uSKY receiver.

My Code

My code is not based on any FrSky code, it was written from scratch with some inspiration from midelics atmega code. I am not affiliated with FrSky in any way. This is just my personal hobby project. As written before i did not only implement the features of the original receivers but added or enhanced some features:

  • completely open source (compiles with the opensource arm gcc or sdcc compiler)
  • fully compatible to FrSky 2-way protocol
  • 8 Channel CPPM output or digital SBUS output (INVERTED or non-INVERTED mode!)
  • failsafe (constant, stopped ppm output)
  • telemetry: 2 analog channels, RSSI, and hub telemetry forwarding
  • builtin APA102 Led control (maps to any a ppm channel)

You can find my code on my Github repository


I will add more information and tutorials for flashing soon.



DO NOT use this software to control real planes/quadrocopters.
This is for educational use only, bad things could happen if you run this on a real vehicle. Its meant to be used on indoor and/or small vehicles.
Using this code will probably void its FCC compliance and might void transmission laws depending on your country!



Thanks to midelic from for the reverse engineering the protocol and code of his atmega implementation. Thanks to holger for the d4r-ii donation 😉

One thought on “OpenSky — a FrSky compatible opensource receiver firmware

  1. Łukasz

    Hello again Simon! I posted this in the uSky post, but the comment seems to have disappeared, so I’m posting this here since it’s more relevant to the OpenSky. I just finished building and flashing uSky receiver, and it seems to work as I got it to bind and I can get RSSI on my Taranis as well 🙂 Can you tell me how can I compile firmware with SBUS enabled instead of CPPM output? Should I change anything in config.h? Please excuse my lack of programming skills. Thanks a lot for help and open sourcing this amazing creation!


Leave a Reply

Your email address will not be published. Required fields are marked *