DIY Cosmostreamer Wired Light

How To Assemble and Configure

Cosmostreamer Wired Light for DJI Osmo Pro/RAW with DJI Wired Video adapter - Assembling instruction

You can assemble it for free, but you have to buy a license! Go here


Video instruction

Not ready yet :-(


Required list


Basic assembling

1. Download ZIP-archive with microSD card image, cosmostreamer-wired.sdcard.img.zip

2. Extract .img file from downloaded ZIP archive

3. Write .img file to microSD card. Use Win32DiskImager application, or any other, that can write images

3.1 If you already has license key - you can install it on microSD card (how to)

4. Insert microSD card into Raspberry Pi

5. Ok, basic assembly is done. Now power on Raspberry Pi (5V on micro-USB power port), it must start booting.

6. After boot ended HDMI will show something like this:

"Bad license key" message means license key wrong or absent. In the bottom left corner message contains Raspberry Pi serial number and Cosmostreamer application version. Camera connection not worked without license key.


License key

For full Cosmostreamer functionality license key is needed. It is a small string stored in file /boot/license.txt on microSD

At the current time there is no automatic key retrieve system. So you need to send e-mail to [email protected]. Please, specify a serial key of you Raspberry Pi (see on HDMI on bottom-left corner) and your PayPal account in this e-mail. I will issue a bill for payment and after payment i will send you a license key for Cosmostreamer on your Raspberry Pi.

The license key is unique for each Raspberry Pi!

Options for installing a license key

  • Use a CosmoViewer application for Windows.
  • Insert microSD with written image into PC/laptop card reader. Operating system will detect a card. If your operating system is Windows - disk with label "boot" will be found. Just copy license.txt from e-mail answer on this disk.


Software update

When i fixing bugs or adding some features to Cosmostreamer application, i make a special file for update. You not needed to rewrite microSD card, you can just install update file. It is possible from CosmoViewer for Windows application, or from a web interface.

You need to download update file. Direct link: cosmostreamer-light.tar.gz. Change log and old versions here.

For update from Windows app:

1. Start a CosmoViewer for Windows

2. Right mouse click on window and select "Box settings" item in menu

3. Open tab "Info"

4. Click "Select" button near of "Firmware upgrade" label

5. Select downloaded file cosmostreamer-wired-light.tar.gz

6. Click "Upload" button. Update file will be send to a Raspberry Pi, after this update begins. After finish, Raspberry Pi will automatically reboot.

For update from web interface:

1. Open web interface:

2. Open menu item "Info"

3. Click "select file" button. Select downloaded file cosmostreamer-light.tar.gz

6. Click "Upload" button. Update file will be send to a Raspberry Pi, after this update begins. After finish, Raspberry Pi will automatically reboot.


Connection scheme

For Raspberry Pi Zero

Simply connect usual USB A to micro USB cable.

For Raspberry Pi 3 A+

Need to make custom USB cable, USB A to USB A.


RC receivers connection


One or two RC receivers can be connected. First RC can be PWM or PPM. Second - PPM or Sbus. Signal mode (PWM, PPM, Sbus) can be switched in web-admin page or in Windows application.

On this images RPI 3 is drawn, pinout is the same as on RPI Zero

All channels are connected with the example for Turnigy 9X. Mode 2. Model type: Acro

Channels set-up

channel 1 - PAN
channel 3 - TILT
channel 4 - ZOOM (if supported)
channel 5 - (AUX-CH "GEAR") - RECORD
channel 6 - (AUX-CH "HOV THRO") - EV compensation
channel 7 - (AUX-CH "THRO HOLD") - MENU (labeled as CENTER on image)
channel 8 - (AUX-CH "HOV PIT") - MANUAL FOCUS (if supported)

Doesn't matter channels connection order. Any hardware channel can be mapped into any function in a web-admin page or in application

Need to enable auxillary channels in Turnigy settings. Enter menu, part "AUX-CH" and set values:

For another remote control system - read it's manual, how to set-up auxillary channels.

Don't forget to enable RC in Cosmostreamer settings. Menu -> "Inputs" -> "RC input enabled". After transmitter is powered on HDMI will show "RC calibrating" message. Near will be axis values shown. It was made for easy config. Check channels with my scheme.

Channels calibrating is at first transmitter power on. Need to move left and right stick up-down, left-right to minimal and maximal position. And rotate EV and FOCUS to min max position. After this calibrating is over. Move pan/tilt stick to down-left position and quckly release. All message for RC will be hidden. Normal working mode is on.


Custom I2C joystick



Config file

Cosmostreamer Wired settings saved in file /boot/cosmostreamer-wired.conf. It is a usual text file, which can be edited. You can insert microSD into card-reader and edit this file.

Config parameters description

Parameter names may be changed in a newer firmware versions
Parameter Description
disabled=0 Run Cosmostreamer wired application at boot or not. Used for debug.
0 - run
1 - don't run
camera_type=0 Camera type
0 - X3 black (from Osmo)
1 - X3 white, Z3, X5, X5R
device_mode=0 Camera work mode
0 - as Osmo (always horizontal)
1 - as Inspire (free movement)
cooperative_mode=0 Cooperative mode
0 - without Inspire flight controller
1 - with Inspire flight controller
control_enabled=1 Camera control
0 - disabled
1 - enabled
hdmi_enabled=1 Use HDMI or TV-out
1 - show video on HDMI
0 - show video on TV-out
rc_input_enabled=0 0 - do not use RC receiver
1 - use RC receiver
rc_input_speed_pan=100 Pan speed for RC receiver. From 0% to 100%.
rc_input_speed_tilt=100 Tilt speed for RC receiver. From 0% to 100%.
rc_input_speed_dutch=100 Dutch speed for RC receiver. From 0% to 100%.
i2c_input_enabled=0 0 - do not use I2C joystick
1 - use I2C joystick
i2c_input_speed_pan=100 Pan speed for I2C joystick. From 0% to 100%.
i2c_input_speed_tilt=100 Tilt speed for I2C joystick. From 0% to 100%.
i2c_input_speed_dutch=100 Dutch speed for I2C joystick. From 0% to 100%.
osd_enabled=1 1 - show OSD
0 - don't show
hud_enabled=1 1 - show HUD
0 - don't show
osd_borders=30 Set the height of top and bottom black borders below telemetry on HDMI
osd_top_offset=20 Set the vertical top offset 20 pixels for top-sided text labels on HDMI
osd_bottom_offset=20 Set the vertical bottom offset 20 pixels for bottom-sided text labels on HDMI
shield_enabled=0 0 - don't control a camera shield
1 - control a camera shield
shield_timeout=0 Time (in seconds) for automatical shield close
shield_open=1950 PPM position of servo for shield in opened state (in microseconds)
shield_close=1000 PPM position of servo for shield in closed state (in microseconds)


Network access

Only if Raspberry Pi with Wi-Fi used

If your Raspberry Pi configured as a Wi-Fi access point (by default) - you can connect to it and open url in browser http://my.cosmostreamer.com or

Wi-Fi network name (SSID) - "cosmostreamer-wired". Default password - 1234512345

In other case, you need to enter your Raspberry Pi' ip in browser. For example,

If you using a Mac, Ipad or Iphone (or Windows with iTunes installed) - you can open web interface by the link http://cosmostreamer.local