Received serial audio from ESP32 and pipes it into pulseaudio for other apps to use
 
 
 
 
Go to file
jake cb073b2d5b added python file for piping serial to speaker in windows 2025-11-15 16:00:16 +00:00
firmware added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
service added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
capture.wav added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
dump.bin added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
readme.md added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
serial_audio.py recieves serial audio from esp32 and pipes them into pulseaudio for other apps to enjoy 2025-11-15 09:51:40 +00:00
serial_capture recieves serial audio from esp32 and pipes them into pulseaudio for other apps to enjoy 2025-11-15 09:51:40 +00:00
serial_capture.c recieves serial audio from esp32 and pipes them into pulseaudio for other apps to enjoy 2025-11-15 09:51:40 +00:00
serial_to_stdout added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
serial_to_stdout.c added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
serial_to_wav added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
serial_to_wav.c added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
setup required.txt added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
start_esp32_audio.sh added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
test.wav added sync frames every 512 bytes 2025-11-15 15:57:17 +00:00
windows_serial_to_speaker.py added python file for piping serial to speaker in windows 2025-11-15 16:00:16 +00:00

readme.md

esp32-audio.service goes to ~/.config/systemd/users/

Enable it so it starts automatically at login

systemctl --user enable esp32-audio.service

Start it immediately

systemctl --user start esp32-audio.service

Check its status

systemctl --user status esp32-audio.service

Causes user login to linger

sudo loginctl enable-linger littlesophia

NEED TO LOCK IN ID OF ESP32 SO ITS ALWAYS THE SAME PORT

#Get ID udevadm info -a -n /dev/ttyACM0 | grep serial

EXAMPLE RESPONSE (radxa) littlesophia@radxa-cubie-a7z:~/serial_audio_catcher$ udevadm info -a -n /dev/ttyACM0 | grep serial ATTRS{product}=="USB JTAG/serial debug unit" ATTRS{serial}=="B4:3A:45:AD:CA:90" ATTRS{serial}=="xhci-hcd.41.auto"

CREATE rules file and add listing sudo nano /etc/udev/rules.d/99-esp32.rules

add this line SUBSYSTEM=="tty", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1001", ATTRS{serial}=="B4:3A:45:AD:CA:90", SYMLINK+="ttyESP32_A"

Now device should be locked at port "/dev/ttyESP32_A"

Test Record

parec -d esp32.monitor --file-format=wav > test.wav