Emlid

Community Forum

Bird OSD, use Raspberry as a composite video signal source!


(Stepan Dyatkovskiy) #1

Hi there!

Let me introduce you my small Bird OSD project!

Introduction

Bird OSD allows you to run OSD straight on Raspberry main display.
Since raspberry has Video Composite Output, you can then cast raspberrian screen just like a regular FPV signal over FPV transmitter module!

It is a service, it uses raspivid app to grab camera image, and it uses own “bird-osd” GLES application to apply overlay with sensor data on it.

So finally you should see something like this:


(GPS was broken, sorry, still can’t demonstrate in real fly)

Another pic from FPV goggles:

Prerequirements

  1. RPI device with sensors board (navio2 is ok)
  2. Raspberry Camera connected to it.
  3. Something sending MAVLink data to 127.0.0.1:14550 (running ardupilot, arducopter, whatever)

How to install

Download .deb package onto your raspberry device:

$ wget http://ppa.dyatkovskiy.com/raspbian/pool/main/b/bird-osd/bird-osd_1.0.0_armhf.deb

And then install it:

$ sudo dpkg -i bird-osd_1.0.0_armhf.deb

Then you should target MAVLink channel to 127.0.0.1:14550

E.g. for arducopter:

$ sudo nano /etc/default/arducopter 

Ensure you have string like this:

TELEM1="-A udp:127.0.0.1:14550"

Or like this:

TELEM2="-C udp:127.0.0.1:14550"

In case you modified /etc/default/arducopter config, then you should restart service:

$ sudo systemctl restart arducopter

Finally you should start bird-osd service with this command:

sudo systemctl start bird-osd

Then on monitor connected to your raspberry you should see whatever your camera sees + overlay with sensors data!

It is still very first version:

  1. I only tested it on RPI 3, I added dependency to raspivid and to bash:

    libraspberrypi-bin (>= 1.20180417-1), bash (>= 4.4-5)
    

    Perhaps dependency versions are higher then it really needs, just had no opportunity to test it on another envs.

  2. Do not to blame me guys for not opening sources. There are such a mess, need to sort them first.

  3. It still consumes too much of CPU time. After holidays I’ll work a bit on optimizations. It uses text atlas, but still builds text layout dynamically. It should render every static text to texture; per profiling survey results, it should improve performance on 30-40% (since most of text labels are static).

  4. Any proposals are welcome.

What else

If you want to enable bird-osd on boot, you should run:

$ sudo systemctl enable bird-osd

This command disables service:

$ sudo systemctl disable bird-osd

And this command removes bird-osd from you raspberry device:

$ dpkg -P bird-osd

Cheers!