An open API service indexing awesome lists of open source software.

https://github.com/minarox/racecast-emitter

Onboard autonomous IoT project to capture and transmit data and media stream from the race car.
https://github.com/minarox/racecast-emitter

i2c-bus livekit nodejs socat typescript

Last synced: 8 months ago
JSON representation

Onboard autonomous IoT project to capture and transmit data and media stream from the race car.

Awesome Lists containing this project

README

          





Logo

RaceCast

![Go Version](https://img.shields.io/github/go-mod/go-version/Minarox/RaceCast-Emitter?label=Go) 
![Project License](https://img.shields.io/github/license/Minarox/RaceCast-Emitter?label=Licence)


Onboard autonomous IoT project to capture and transmit data and media stream from a race car.


racecast.minarox.fr »




Table of Contents



  1. About The Project


  2. Author

## About The Project

> ⚠️ **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](https://go.dev/) 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.

### Features

- Collecting data from the modem, GPS, and sensors by executing [ModemManager](https://modemmanager.org/) cli commands
- Updating [LiveKit](https://livekit.io/) room metadata at regular intervals when changes are detected
- Creating and controlling an optimized [Chromium](https://www.chromium.org/) instance
- Capturing and sending various streams from [Chromium](https://www.chromium.org/) to the [LiveKit](https://livekit.io/) server

### Tech Stack

- [Go](https://go.dev/)
- [Chromium](https://www.chromium.org/)
- [LiveKit](https://livekit.io/)
- [ModemManager](https://modemmanager.org/)

### Hardware

- [Raspberry Pi 5](https://www.raspberrypi.com/products/raspberry-pi-5/) (8 Go)
- [SixFab 4G/LTE Cellular Modem Kit](https://sixfab.com/product/raspberry-pi-4g-lte-modem-kit/)
- [Battery UPS HAT](https://www.dfrobot.com/product-2840.html?srsltid=AfmBOooD28ApNQEqDY-Vkc-WCCOt0VZ2mOPo3arpIw6eJ0-mFeeHss7Z)
- MPU6050 sensor
- Various UVC Webcam, including Elgato Cam Link 4K

### Configuration

A `.env` file must be created with the information provided in `.env.example`.
All fields are required.

#### ModemManager

Grant the desired user the necessary permissions to partially control [ModemManager](https://modemmanager.org/).
This step is required if you want to use the [Go](https://go.dev/) script without running it with `sudo`.

```bash
sudo nano /etc/polkit-1/localauthority/50-local.d/50-modemmanager.pkla
```

```bash
[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=yes
```

```bash
sudo systemctl restart ModemManager
```

## Author

[@Minarox](https://www.github.com/Minarox)

(back to top)