# Raspberry Pi Streaming Setup for exploreHD¶

Note

The following instructions are for if you want to set up streaming from a Raspberry Pi without ArduSub. If you want plug-and-play compatibility we recommend following this guide for installing BlueOS alongside our software.

These instructions are mostly for MATE ROV teams who want the ability to stream multiple exploreHDs easily, yet retain the ability to use their own flight controller!

## Setup¶

Initial Setup

Step 1: Flashing the Raspberry Pi

• Download and run the Raspberry Pi Imager from the official Raspberry Pi website

• If you haven’t already, insert the SD card into your computer

• Select Raspberry Pi OS (32-bit) for the Operating System and the SD card you inserted as the SD card.

• Select Write to begin flashing the Operating System to the SD card

Step 2: Powering

• Plug in a compatible HDMI cable and monitor to the Pi

• Connect a USB keyboard and mouse to the Pi

• Power the Pi using a micro usb or usb c power adapter depending on the version of Raspberry Pi you are using

Important

Ensure you power the Pi after plugging the monitor into the Pi and wall power, otherwise, the Pi will not recognize the display and you will have to power cycle the device.

Step 3: Perform the Initial Setup

• Setup the Pi with the GUI provided at start

• Ensure WiFi is connected as soon as possible

Warning

Make sure you select the US Keyboard layout or some keys will not be recognized properly.

Step 4: Set Static IP

• Edit dhcpcd.conf - sudo nano /etc/dhcpcd.conf

interface eth0


to the end of the file

• Save and close the file with ctrl-o, enter, and then ctrl-x

Step 5: Connect to a Laptop

• Plug in an ethernet cable into the Raspberry Pi with the other end connected to a Windows or Linux laptop or PC

• Enable ssh on the pi

Enabling SSH on the Raspberry Pi

Run sudo raspi-config

Select Interface Options and press enter

Note

Use the arrow keys to navigate the menu up and down

Under Interface Options, Select SSH

Select yes and press enter

• Reboot the pi with: sudo reboot

SSH into the Pi
Windows

For Windows, we recommend using Putty, which can be downloaded here

• After installing, open Putty and type the address of the Raspberry Pi (which should be set to 192.168.2.2 if you are following Our Guide)

• Keep the other settings as default and click the Open button

• After connecting you will be prompted with a security alert. Ensure you select accept.

• To log in, use the following credentials: username: pi, password: raspberry

• You will be greeted with a terminal

Linux/Mac

First, open your terminal app.

Note

If using Linux, this will depend on your distribution. On MacOS, you can open spotlight and type: Terminal.

The general format for ssh on unix is: ssh -p port user@IP-Address

Enter the following command:

ssh -p 22 pi@192.168.2.2


The password will be raspberry by default.

Note

At this point, you can disconnect the USB keyboard, mouse, and monitor from the Raspberry Pi.

Installation Instructions

Step 1: Update the Pi

sudo apt-get update


Note

This process may take a while

Step 2: Install the Latest Version of GStreamer

Remove the included version of GStreamer:

sudo apt-get remove libgstreamer* gstreamer1.0*

Install GStreamer:

sudo apt-get install gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav

Step 3: Plug in the Camera

If you haven’t already, connect an exploreHD or HDCam to an available USB port on the Raspberry Pi

Note

See exploreHD or HDCam getting started guides

## Streaming¶

Automatic Stream Setup

For automatic, plug and play of the stream to work on the Raspberry Pi, use our exploreHD Driver UI. This system will automatically run at startup and saves the settings automatically. It supports UDP stream and H264 compression settings.

exploreHD Controls

Manual Stream Setup

Important

It is not recommended to use the following instructions unless customizability is required. Please use exploreHD Controls when possible to minimze issues or compability concerns.

Step 1: Finding the device v4l2-ctl --list-devices

Look for device: exploreHD USB Camera: exploreHD

Note

In this example, we have 2 exploreHDs connected so it shows up twice.

You can ignore /dev/media*

The different video numbers in each section represent the different encoding format. Typically the third one on the list is for H264 (in the above example video6 and video2 are H264 formats). Keep those in mind for the next step. The video number won’t change as long as the USB device doesn’t get unplugged even when you reboot the Pi.

Note

If you are unsure the device number you selected is ‘H264’ format, you can run v4l2-ctl --list-formats --device * to find out. (replace * with the device number)

Step 2: Streaming in H264

On the Raspberry Pi, run:

gst-launch-1.0 -v v4l2src device=/dev/video* ! video/x-h264, width=1920,height=1080! h264parse ! queue ! rtph264pay config-interval=10 pt=96 ! udpsink host=192.168.2.1 port=5600 sync=false

Note

In this example, host=192.168.2.1 due to the expected setup in Receiving regarding Windows Setup. If that specific setup cannot be followed you may replace this with the local IP of your device.

Note

Replace the * in device=/dev/video* with the video device number seen in the previous step.

To stream more than one exploreHD at the same time, you can add an & to the code and run another one with the respective video device and port number.

You can make this command autorun to make your ROV camera streaming system!

## Receiving¶

To receive the stream on a PC, first follow our Windows Setup Guide. You will then be able to run the following command:

gst-launch-1.0 udpsrc port=5600 ! application/x-rtp ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

For more streaming options such as viewing multiple streams at once, please see:

Receiving Multiple Streams Instructions