Merry belayed Christmas and a happy new year everyone. I know, I am running a tiny bit late. My original plan was to release the tinyOSD and tinyFINITY sources ready for Christmas but then the usual things got into the way and I had to postpone this post. But here it is: I am releasing my sources of my custom full graphic OSD with insane update rates to the world. But that’s not all! I am also releasing a custom 16x16mm VTX design that includes all the hardware to run the tinyOSD firmware on it. But let’s step back and let me tell you what this is all about. But be warned, this is going to be a very long post…
The basic idea
Some time ago I got annoyed by the available OSD solutions and I started to look for alternatives. Nowadays small micro controllers are fast enough and include fancy features like DMA so that the OSD generation can be handled in software. I selected a STM32F3 due to the availability in small packages and the necessary features I needed and got working. In May 2017 I posted a first preview of my tinyOSD development on my blog. That time it was running on a tiny PCB and was meant to be inserted between your camera and video transmitter. I got up to a point where I had integrated full communication into a modified betaflight firmware and could do all kinds of fancy animations:
As I like fully integrated solutions I started to work on a new PCB design that includes a RTC6705 video transmitter and my tinyOSD into one tiny 16x16mm board called tinyFINITY. The image shows a preliminary version where I tested a surface mounted ceramic antenna instead of the usual wire or whip-antenna (which was rejected in later designs because of the poor performance):
You might be asking why all this effort? Well… I did not like the solutions on the market. At the time of development most OSD used the MAX7456 chipset to overlay a crippled B/W image on top of the video feed. This quite old chipset draws 120mA of current and gets glowing hot. For reference, my implementation draws 10mA under full load…
So what does my tinyOSD firmware stack give you?
- Fully opensource
- Very high update rates
- Full graphic overlays and animations
- Custom, nice font (can be changed)
- Currently showing 35 chars in 13 lines
- “Multi-color”: up to eight levels of gray on the screen
- Configurable global brightness and “blackness” setting
Most of the OSD firmware and tinyFINITY hardware is done. In order to integrate the OSD into your betaflight FC stack you need some kind of communication between the FC and my OSD. I tried to establish an open source communication protocol for camera and OSD stuff (openTCO) and worked on integration into betaflight. Unfortunately, complexity exploded and was too much to be handled as a hobby project. I had to work on the tinyOSD/tinyFINITY hardware, the firmware, the communication protocol, integration into betaflight, and last but not least, the betaflight configurator. My OSD offered so many features that I had to patch betaflight in so many places that integration into the betaflight master tree got more and more complex. This is just a hobby project I do mainly for fun and learning new things along the way. I do not have unlimited time resources and as you might guess, there are more important things in life such as hunting for food (my day job), my family, and such interesting things as household duties. Long story short I could not keep up with that many open issues and the tinyOSD and tinyFINITY sources remained unseen from the public in my private github repositories.