SlabPi | |
---|---|
Owner | Space |
Status | Infra |
Hostname | slabpi.lan.nurd.space |
Location | Near the amp |
Tool | No |
Tool category |
Slabpi2.jpg {{{InventoryOwner}}}Property "Tool Owner" (as page type) with input value "{{{InventoryOwner}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. Near the amp
What
SlabPi is the replacement for Slab on a Raspberry Pi 4. It has been moved, because of downscaling. And recently got upgraded from a rpi3 to a rpi4, it has a DAC+ Hat for better audio quality.
- OS: Ubuntu 20.04 aarch64
- Rpi: Raspberry pi 4 4GB
- SD: 32GB
Setup
Disabled/removed services
- disabled unattented-upgrades
- disabled wpa_supplicant
- disabled accounts-daemon
- disabled multipathd
- ubuntu motd spam
- removed snapd
Networking
It is hooked up with UTP. WLAN has been disabled.
==
DAC+
PiFi HIFI DAC+ for better audio quality.
Installation:
Edit /boot/config.txt
Disable the line
#dtparam=audio=on
add
dtoverlay=hifiberry-dacplus
MPD
Host: slabpi.dhcp.nurd.space
Port: 6600 (Technically 6005, see the mpd proxy service)
It is integrated with Home Assistant view on Jarvis.
HTTPD outputs:
- port 6666 (8000:16:1) used by the VOIP system
- port 7777 (44100:16:2) used by Audiophiles
PulseAudio
All pulseaudio changes need to be made in /etc/pulse/system.pa (default.pa isn't used)
Pulseaudio is running as a system-wide daemon, it's default sample rate is set to 48Khz and priority has been set to real time.
Icecast
There is an icecast server on port 8000. It's a direct feed from Pulseaudio so all sounds (Entrance themes, speak commands) will be heard on the stream.
Mount point(s):
- /nurds (Pulseaudio)
MPD Control
For those not wanting to install a MPD client, there's a stand alone MPD web interface running called Mympd on port 80
Labelprinter implementation
Labelprinter is up and running. See Labelprinter.
Services
Entrance Themes
- Location: /home/pi/scripts/theme_songs.py
- Systemd-service: themesongs.service
- Programmer: User:Melan
A script which plays a part of a song for each individual member entering the space. See Entrance themes.
MPD Icecast update
- Location: /home/pi/scripts/mpd_icecast_update.py
- Systemd-service: mpdicecastupdate.service
- Programmer: User:Melan
Updates the current now playing song from MPD to the icecast mount /nurds
Vu Meter
- Location: /opt/vu
- Systemd-service: vu.service
- Programmer: User:Zarya
https://gist.github.com/zarya/3d5447556296d6923bee232e4cc7fca1
LedFX
- Location: /home/pi/.ledfx.sh
- Systemd-service: ledfx.service
- http://slabpi:8888/dashboard
Pixelvloed FFT
- Location: /opt/pulse-pixelvloed-fft
- Systemd-service: fft.service
- Programmer: User:Zarya
Pixelvloed waterfall
- Location: /opt/pulse-pixelvloed-fft
- Systemd-service: waterfall.service
- Programmer: User:Zarya
hass-systemd-manager
- Location: /opt/hass-systemd-manager
- Systemd-service: manager.service
- Programmer: User:Zarya
- git: https://github.com/NURDspace/hass-systemd-manager
A python tool for starting and stopping systemd services via mqtt using homeassistant (ledfx, waterfall etc)
Soundboard
- Location: /home/pi/soundboard
- Systemd-service: soundboard.service
- Programmer: User:Melan
Allows samples to be triggered through MQTT, also handles the doorbell sound.
Als 't niet werkt, dan even inloggen op coherence en vanaf daar op vm 107 en daar proces 'python main.py' afschieten. Dat helpt soms na 1 of meer keer.
MPD Vol Proxy
- Location: /home/pi/mpdVolProxy
- Systemd-service: mpdvolproxy.service
- Programmer: User:Melan
A small script that intercepts all the clients connecting to MPD on port 6000 and intercepts all setvol commands and instead delegates it to Pulseaudio, meaning that any volume command will not adjust MPD's output, but the output to the amplifier instead.
MPDTube
- Location: /home/pi/mpdtube
- Systemd-service: mpdtube.service
- Programmer: User:Melan
- Git: https://github.com/NURDspace/MPDTube
This project has its own wiki page, MPDTube
PulseControl
- Location: /home/pi/pulseControl
- Programmer: User:Melan
Part of the multi-room audio setup, it will ping if any of the defined hosts are up and once they are it will add their pulseaudio instance to the output.