Skip to content

Configuration and code to be setup on a Raspberry Pi 4B board as a central node πŸ“‘

Notifications You must be signed in to change notification settings

Heaven-Waves/central-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

84 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Central Node πŸ“‘

Project that build entire custom Raspberry Pi OS Lite bootable image πŸ’Ώ

This image is intended to be used on Raspberry Pi 4B with 4G RAM πŸ“ to turn this machine into a central node / server that accepts audio from Bluetooth

Yes, you read it, you can connect your phone to it

and streams it via RTP multicast to multiple ESP32-LyraT V4.3 peripheral-nodes in your local network.

Raspberry Pi 4 model B

You know it well

Raspberry Pi 4 model B

Dependencies

Verry simple because the only actually required dependancy is

πŸ‹ Docker

Because everything in this repository (configurations, environments, etc.) is dockerized, making things easily portable.

How to use

Running this command within your bash shell:

docker compose up

will build the docker containers that will run it's task to create the *.img file.

There are provided default variable for:

  • new default user credentials
  • password to root user
  • Wi-Fi SSID and password to connect to

Navigating to config/vars the default values could be overriden by creating files and variables with the same.

Example configuration:

config/vars/credentials.yml:

user_name: thesis
user_password: thesis

root_password: very_strong_root_password_here

config/vars/wifi.yml:

wifi_ssid: My_Router_SSID
wifi_password: My_Router_Password

βŒ› This will take some time

You can use Docker Desktop to watch the logs from the containers to see the process going or you can type

# for the emulator output
docker logs -f central-node-pi-emulator-1

# for the configuration of the image
docker logs -f central-node-ansible-1

Software used

  • πŸ“ Raspberry Pi OS Lite
    • Release: 2024-07-04 (July 4th 2024)
    • Based on: Debian 12 (Bookworm)
  • πŸ…° Ansible
  • πŸ‹ Docker
  • 🎡 PipeWire - Audio/video server (from Debian Bullseye backports)
  • πŸ”Š WirePlumber - Session/policy manager for PipeWire
  • 🎬 GStreamer - Multimedia framework for RTP streaming

Expectations

The freshly created image is located in dist folder and i called distro.img by default:

.
└── dist/
    β”œβ”€β”€ distro.qcow2
    β”œβ”€β”€ distro.img    <-- the output bootable image
    └── kernel.img

You are free to use you software of choice (for example balenaEtcher or Pi Imager) or any other way (for example with dd or using Gnome Disk) to flash the distro.img file.