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 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 https://github.com/fishpepper/opensky.
- FrSky D4R-ii – components, layout, and pinout (9/7/2016)
- OpenSky on D4R-ii – pinout, flashing, and usage (9/7/2016)
- OpenSky on VD5M – pinout, flashing, and usage (9/6/2016)
- tinyFISH FC – initial setup & flashing tutorial II/II (1/18/2017)
- tinyFISH FC – open release! (12/30/2016)
- tinyFISH FC — report of the first successful community built fc (1/27/2017)
I will add more information and tutorials for flashing soon.
THIS SOFTWARE IS FOR EDUCATIONAL USE ONLY!
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!
I AM NOT RESPONSIBLE FOR ANY DAMAGE/INJURIES CAUSED BY USING THIS CODE!
Thanks to midelic from rcgroups.com for the reverse engineering the protocol and code of his atmega implementation. Thanks to holger for the d4r-ii donation 😉