uSKY — the world’s smallest & lightest FrSky compatible full telemetry receiver

uSKY prototypeA year ago i started to write my own opensource firmware for the VD5M receiver from FrSky. The stock firmware had no failsafe handling and I wanted to learn something about the 8051 CPU architecture. Since then i ported the code to the D4R-ii and added a lot of features. My code can output CPPM or SBUS and supports hub telemetry forwarding and much more. Please note that i am not affiliated with FrSky, this is just my personal hobby project and I do it for learning and for fun.

When i started to build my TinyWhoop there was no lightweight FrSky compatible RX on the market. This is why i started to build uSKY. My version of the world’s smallest FrSky compatible RX weights only 0.37g and measures 11.2mm x 8.51mm (the exact weight will be updated once i receive the 0.8mm PCBs). Nevertheless this RX has full analog and hub telemetry support and digital SBUS output. Of course it runs my opensource firmware and can be used with all your FrSky gear.

uSKY - assembled lot of 4

PCB

usky_pcb_layoutThe PCB was designed to be as small as possible and can be soldered by hand. However the tightly packed 0402 sized components require some experience with soldering SMD components. All you need for soldering is a small tip soldering iron, lots of flux and a steady hand. There is no need for a reflow oven, the ground pad of the cc2510 transceiver will be soldered from the bottom through a big via. This is not meant for mass production, it’s a hack to make it solder able by the experienced hobbyist.

Once i finished my testing of the current prototype i will post a link to my project on OSH-Park here. Make sure to order the boards in 0.8mm thickness to save some weight! The kicad design files will be released under an open hardware license soon. I just need further testing to make sure there is no design error on the hardware side.

The parts

Please refer to this google sheet for a list of the components I used for building the uSKY receiver. It includes some example part numbers for farnell and mouser. Please make sure to use high-Q high frequency parts where noted int this list.

The Design files

The design files are released under the CERN open hardware license v1.2. Before using the design files for commercial projects please make sure that you read and understand this license! You can use the files for your projects, just make sure to give proper credit (by e.g. linking to this page) and release all modifications you do to this design or work derivated from this under the same license.

You can find the design in the kicad file format on my github repository here. If you want to skip the hassle of rendering the gerber board files on your own you can simply skip this step and checkout and order the part from OSHPark:

OSHPark offers a really great quality for a ridiculous low price (it is 0,70$ for three copies!). Make sure to order the 0.8mm version in order to save some weight.

Component placement

Please refer to the following to pictures for component placing for soldering:

pcb_component_placement_toppcb_component_placement_bot

The ground pad of the CC2510 has to be soldered through the big via. Apply lots of flux and use the soldering iron to solder it from the other side. This is a hack to make this board solderable by the average hobbyist and this is NOT recommended for any serious designs ๐Ÿ˜‰

Firmware

The uSKY RX runs my opensource OpenSky firmware. The master branch has support for building for this target (set TARGET=USKY).

Building & Flashing

I will add a tutorial the next days. For now stick to the guide how to flash the vd5m. Use TARGET=USKY for building the source and connect the CLK, DATA, RESET, GND, and VCC lines in the same way as on the vd5m.

Disclaimer

Please refer to my disclaimer that applies to all projects presented on this blog. Make sure that you do not violate any transmission laws in your country.

Save

Save

Save

26 thoughts on “uSKY — the world’s smallest & lightest FrSky compatible full telemetry receiver

  1. Jakob Flodman

    Hi, First of all thanks you for the opportunity to test your design, great work.
    Have mounted 2st usky and programmed them. Seems to work, at least partly, but I’m now working on the bind procedure. From what I understand, I have to short the data to ground to enter binding mode.Is there other ways to do this and can I expect some response on LEDs? For now I have solid red (backside).
    Device information:

    Debug status:
    [X] CHIP_ERASE_DONE
    [ ] PCON_IDLE
    [X] CPU_HALTED
    [X] PM_ACTIVE
    [ ] HALT_STATUS
    [X] DEBUG_LOCKED
    [X] OSCILLATOR_STABLE
    [ ] STACK_OVERFLOW

    Debug config:
    [ ] SOFT_POWER_MODE
    [ ] TIMERS_OFF
    [ ] DMA_PAUSE
    [ ] TIMER_SUSPEND

    pi@raspberrypi:/boot/Python/WiringPi-Python $ sudo python ../cc_reset.py
    Hello from ccraspberry
    Using CCDebugger on port ccraspberry
    182
    detected a cc2510f16

    Chip information:
    Chip ID : 0x8104
    Flash size : 16 Kb
    SRAM size : 2 Kb
    USB : No

    Reply
    1. fishpepper Post author

      Do you get blinking LEDs on powerup with no shorted pads?

      Reply
      1. Jakob

        Have two cards. One one sek. on green(toplayer), a shorter on red then short faster on green.
        The other the same but solid red after.
        Will try debugport to see if I can get some more info.

        Reply
  2. Pete

    Hi Simon,
    Love the boards, just built up 3 and about to program them. I would recommend that you remove the all over silkscreen from the top of the board…The boards I got from OSH there is a registration issue which makes the text look really cool and 3D, but also makes the pads much smaller and harder to solder without a lot of scraping.

    Reply
  3. He Zhongrui

    When I open usky kicad project,kicad warn not found atmel.dcm,cannot find special.lib.what’s wrong?how can I solve it?

    Reply
    1. fishpepper Post author

      Did you install the kicad libs? You can ignore those warnings, I do not use parts from special.lib and atmel.lib ๐Ÿ˜‰

      Reply
  4. NIjaJP

    Hi Simon! Tem same problem about the placement diagram, where is the red LED and red LED place? Can you fix the picture?

    Reply
    1. fishpepper Post author

      The one on the top layer (red layer) is D1 (green) with R6=330Ohm. The one on the green bottom layer is D2 (red) with R4=220Ohm.

      Reply
  5. Cyril

    Hi Simon๏ผŒ
    I’ve got my PCB from OSHpark, When I compare the BOM and circuit board production figure, I found there is no placing for R4 & R6 on the figure. I wanna get ur help to figure out how to make a right application about the extra R4&R6.

    Reply
    1. fishpepper Post author

      Sorry for that, the original placement diagram still lists the placeholder values (the 1k resistors in series with the LEDs). Use R4 as the in series resistor for the green LED and R6 for the RED one.

      Reply
  6. Felix Bohmann

    how/where did you order the oscilator? mouser wants to sell 3000pcs only. ๐Ÿ™‚

    Reply
  7. czchc

    Hi Simon,
    I just finished building this RX and find a problem when binding with my Taranis. I got some logs from the DEBUG port, it always printing like “———————————————————-BBBBB———————————————————————————————————————————————————————————————————————————————————–frsky: RXOVF”. What’s that for and how can i bind with my TX. Looking for your reply. Thanks..

    Reply
    1. fishpepper Post author

      Looks like it at least detects some packets. How far away was the TX? Try to move the tx at least 1m away from the rx during bind and try again.

      Reply
  8. Lucas

    Thanks Simon! Last question ๐Ÿ™‚ What would be the best way to make voltage monitoring using analog telemetry input? I want to monitor 1S lipo voltage, as it seems that my FC does not supply such function. Do I need a voltage divider here?

    Reply
    1. fishpepper Post author

      Yes, use the pad labeled ADC0. Make sure to use a voltage divider to make sure the input does not exceed 3.3V.
      If you do not use hub telemetry you can change the config.h (change #define ADC1 7) and use the pads of the voltage divider resistors and ADC1 input.
      As i use telemetry i do no longer use those adc inputs.

      Reply
  9. Lucas

    Hi Simon! I’m building a usky RX for my TinyWhoop as well, currently waiting for shipping from OSHPark ๐Ÿ™‚ I will send you a few pictures of my soldered rx as well. Thank you for this great design!

    One question though – how do you enter bind mode?

    Reply
    1. fishpepper Post author

      Just short the ISP data pin to ground when powering up the rx ๐Ÿ™‚

      Reply
  10. mango

    Hello, I download the source code, in the UBUNTU environment, how to use the SDCC compiler HEX file

    Reply
    1. fishpepper Post author

      Install sdcc and simply run make in the source folder ๐Ÿ™‚

      Reply
  11. pakamon

    Hi Simon,

    Any chance to compile BOM for uSKY with link to farnell/whatever like you have done for pepperF1SH ? ๐Ÿ™‚

    Reply
        1. fishpepper Post author

          They should do, they are rated at 30ppm (cc2510 requires < 40ppm).

          Reply

Leave a Reply

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

*