Code for the Billy Bass Sat Nav / Bluetooth Bass https://ianrenton.com/projects/bluetooth-bass/
Find a file
2025-01-25 11:07:02 +00:00
.vscode First commit 2024-06-14 17:01:02 +01:00
src Adjust pins for better PCB layout 2025-01-25 11:07:02 +00:00
.gitignore First commit 2024-06-14 17:01:02 +01:00
LICENSE First commit 2024-06-14 17:01:02 +01:00
platformio.ini Add mutex for copying data between tasks, debug LED flash, general tidyup 2024-06-15 16:40:55 +01:00
README.md README changes 2024-06-16 09:53:58 +01:00

Billy Bass Sat Nav / Bluetooth Bass

A project by Ian Renton. For more details, see https://ianrenton.com/billy-bass-sat-nav

Toolchain

This project uses the Platform.io environment, and is designed to run on a DOIT ESP32 Devkit (or clone), using the Arduino toolkit.

Operation

The software is designed to work with hardware as described at the link above.

When started, the ESP32 provides a Bluetooth A2DP profile target called "Billy Bass". Connect to this using your phone or other source of Bluetooth audio.

Received audio is piped out over I2S to a suitable receiver and audio amplifier, to be played on the Billy Bass speaker.

Audio within a certain configurable frequency range is detected, and used to trigger Billy Bass head and mouth motion.

At the moment this is basically "any audio", so the effect is quite good for things like Sat Nav instructions, Google Assistant/Siri responses, etc. It's not great for general music (see "Future Work" section below).

Notes

This is my first time doing multi core processing on ESP32, go easy on me :)

Future Work

What I really want to do long term with this project is to have on-the-fly detection of vocals from music, so that the head and mouth only move to vocals, and for non-vocal sections of music a beat detector allows the tail to flap in sync to the music. However, this is likely beyond the capability of the ESP32—the flash on my device is 90% full just with the current I2S stream & FFT code.