The Sonostreamer (aka "Streambox 2.0") is an open-source device designed to enable extremely low-cost tele-ultrasound, thus facilitating education and healthcare capacity in both the developing and the developed world. There are undoubtedly many other uses for a simple and inexpensive video streaming device, so if you'd like to share your thoughts, please get in touch (@jaffa_md on Twitter or by email at ejaffa (a) globalpocuspartners dot com)!
NOTE: This is the first major update since the original release of the "Streambox" platform. The repository has now been split into this one for the Sonostreamer itself and a separate repository for the server-side software to process the live videostreams.
- Automatic hotspot when not connected to existing wifi
- Multiple Pi variants supported (tested on Raspberry Pi 4B / 3A+ / Zero W)
- Likely websockets-based live status indicators on controls page
- Connection status of capture device (presence of /dev/video0)
- Transmission indicator (grep top? or something similar?)
- Active internet connection
- Captive portal when connected to hotspot
- Dedicated mobile app to control the Pi (to replace the self-hosted webpage control buttons)
- Replace Pi entirely with phone app (would likely only be Android-based, as iOS does not currently support UVC camera input)
- Download the pre-built image here
- Flash the image to a microSD card with balenaEtcher
- Insert the microSD card into the Pi, insert the capture device into the USB port, and connect the Pi to power
- Wait ~30-60 seconds for the system to start up and the wifi hotspot to stabilize
- Connect to the wifi hotspot
Default network name:
POCUS-Pi
Default network password:
pocuspi01
- Open a browser and navigate to
http://pocuspi.local
- Select
Settings / Wifi
- Change the client wifi details to match your existing wifi network details (this should trigger the "autohotspot script" to shut down the hotspot and connect to the client wifi instead, but you may need to push the
Reboot System
button to force the reconnection) - After giving the system a minute or so to reboot / reconnect, go to
http://pocuspi.local
again and choose theStart Livestream
button to begin streaming
Upon startup, if the device finds a known wifi network, it will connect to that automatically. If not, it will start the local hotspot so you can connect (as above) and add new wifi details.
Start by downloading the latest version of Raspberry Pi OS here. As above, use balenaEtcher to flash the image onto a microSD card. The card will automatically "eject", so pull it out of the reader and put it back in so it shows up (it will be called boot
).
Download the files in the raspberrypi-startup repository. Open wpa_supplicant.conf
with a lightweight text editor (preferably TextEdit on Mac or Notepad on Windows or Nano on Linux via the command line) and replace the wifi network name and passphrase with the details for your local network, then save the file and copy both files (wpa_supplicant.conf
and ssh
) to the boot
drive.
Eject the microSD card, move it to the microSD card slot on the Raspberry Pi, plug in the USB capture device, and plug it into a power source. When the green LED stops flashing, it should be ready to go.
Access the Pi remotely from your computer via SSH (ssh [email protected]
from the Terminal on a Mac or the equivalent command through a program like PuTTY on a Windows machine).
Default username:
pi
Default password:
raspberry
Be sure to immediately change the default password with the
passwd
command
You can now download the repository and run the configuration script with the following commands:
sudo apt-get install git -y
cd /
sudo git clone https://github.com/jaffamd/sonostreamer.git
sudo chown -R pi:pi sonostreamer
cd sonostreamer
sudo ./configure-sonostreamer
You may need to provide input once or twice during the process, but it should be self-explanatory.
Once the script has finished running, you should reboot the system with:
sudo reboot now
Note that the Sonostreamer's control webpage will be accessible at http://raspberrypi.local
rather than http://pocuspi.local
unless you change the device's hostname
(easiest way is by running the command sudo raspi-config
and choosing Network Options
followed by Change hostname
).