Onboard autonomous IoT project to capture and transmit data and media stream from a race car.
racecast.minarox.fr »
Table of Contents
⚠️ Important note: This project has a strong dependency on the specific hardware and software configurations used. It is provided for reference only for those who wish to create a similar system.
Go script for acquiring and transmitting data and media stream from the various sensors mounted on the embedded system from the race car through cellular network.
- Collecting data from the modem, GPS, and sensors by executing ModemManager cli commands
- Updating LiveKit room metadata at regular intervals when changes are detected
- Creating and controlling an optimized Chromium instance
- Capturing and sending various streams from Chromium to the LiveKit server
- Raspberry Pi 5 (8 Go)
- SixFab 4G/LTE Cellular Modem Kit
- Battery UPS HAT
- MPU6050 sensor
- Various UVC Webcam, including Elgato Cam Link 4K
A .env file must be created with the information provided in .env.example.
All fields are required.
Grant the desired user the necessary permissions to partially control ModemManager.
This step is required if you want to use the Go script without running it with sudo.
sudo nano /etc/polkit-1/localauthority/50-local.d/50-modemmanager.pkla[Allow mmcli]
Identity=unix-user:username
Action=org.freedesktop.ModemManager1.Device.Control
ResultAny=yes
ResultInactive=yes
ResultActive=yes
[Allow mmcli location]
Identity=unix-user:username
Action=org.freedesktop.ModemManager1.Location
ResultAny=yes
ResultInactive=yes
ResultActive=yessudo systemctl restart ModemManager