● Open Firmware · ESP32-S3

Feel the bass, exactly when you hear it.

HaptiCaster is a Bluetooth audio bridge that receives audio from any source, forwards it to your headphones, and simultaneously drives a delay-adjusted analog signal to tactile transducers — so the haptics never drift out of sync.

Signal Path

One input, two perfectly-timed outputs

Every Bluetooth codec and headphone pair introduces its own latency. HaptiCaster measures and compensates for it, per device, so the felt and heard signal never split apart.

1

Receive

HaptiCaster pairs as a Bluetooth audio sink — accepting a stream from any phone, tablet, or laptop.

→
2

Forward & Delay

Audio is relayed onward to your Bluetooth headphones while a parallel analog path is time-shifted to match known headphone latency.

→
3

Drive

The compensated analog signal feeds tactile transducers directly — bass you feel, locked to the beat you hear.

Under the Hood

Built for precision, not gimmicks

A focused hardware/firmware stack designed to solve exactly one hard problem: keeping wireless audio and wired haptics in sync.

Dual Bluetooth Role

Acts as a sink for your source device and simultaneously as a source to your headphones — a true transparent bridge.

Per-Device Latency Profiles

Store measured Bluetooth-headphone latency per paired device, and auto-apply the matching haptic delay on connect.

Analog Tactile Output

A dedicated, amplified analog line drives transducers directly — no extra DAC or amp box needed downstream.

ESP32-S3 Core

Runs on the dual-core ESP32-S3 for Bluetooth stack headroom plus DSP cycles to spare for filtering and delay.

Open Firmware

Fully open source and readable, built to be forked, tuned, and adapted to whatever tactile hardware you're driving.

Hardware-Agnostic Tactile Channel

Drive any transducer-based setup — beds, chairs, vests, or DIY builds — through a simple wired analog interface.

Applications

Wherever haptics need to be in sync

Haptic Beds

Immersive gaming and cinema beds where bass needs to hit the body exactly on beat.

Haptic Chairs

Sim rigs and home theater seating with embedded transducers.

Haptic Vests

Wearable tactile feedback for music, gaming, and accessibility use.

DIY & Research

Open firmware for makers building custom wireless-to-tactile rigs.

Reference Build

Specs & the sync logic

Full bill of materials and wiring are in the project README — here's the core of what makes it tick.

MCUESP32-S3
InputBluetooth A2DP sink
Headphone OutputBluetooth A2DP source (relay)
Tactile OutputDelay-compensated analog line
Compensation ModelPer-device latency profile
Firmware LicenseOpen source
Target LoadsTactile transducers (beds / chairs / vests)
Full BOM & WiringSee project README
haptic_sync.c
// simplified — apply per-device delay
// before writing to the tactile DAC line
void haptic_output_task(device_profile_t *dev) {
    const uint32_t delay_ms = dev->measured_bt_latency_ms;
    audio_frame_t frame;

    while (1) {
        frame = ring_buffer_read(&audio_in, delay_ms);
        apply_lowpass(&frame, dev->cutoff_hz);
        dac_write(HAPTIC_CHANNEL, frame.sample);
    }
}

Full parts list & assembly notes — resistor values, transducer amp wiring, and the complete BOM live in the GitHub README.

Read the README →

Open firmware. Build your own.

HaptiCaster's firmware and hardware notes are fully open source. Clone it, flash an ESP32-S3, and adapt the tactile channel to whatever you're driving.

github.com/phantomblade-x/esp32-bt-audio-bridge
View Repository →

Building on it? Get in touch.

Questions about the firmware, hardware collaboration, or integrating HaptiCaster into a haptic bed, chair, or vest project — reach out directly.

  • Source & Issues GitHub is the best place for bugs, forks, and pull requests.
  • Direct Contact Use the form for collaboration or hardware inquiries.
Made with Unstoppable

Remove this watermark

This site was built with Unstoppable AI Site Builder. The site owner can remove this watermark by subscribing to an AI Credits plan.

View Plans