u/Alert_Protection_531

Image 1 — $5 Bluetooth Bridge for Stackmat Cubing Timers (ESP32-S3, Dual-core, BLE Spoofing)
Image 2 — $5 Bluetooth Bridge for Stackmat Cubing Timers (ESP32-S3, Dual-core, BLE Spoofing)
Image 3 — $5 Bluetooth Bridge for Stackmat Cubing Timers (ESP32-S3, Dual-core, BLE Spoofing)
Image 4 — $5 Bluetooth Bridge for Stackmat Cubing Timers (ESP32-S3, Dual-core, BLE Spoofing)
▲ 44 r/esp32

$5 Bluetooth Bridge for Stackmat Cubing Timers (ESP32-S3, Dual-core, BLE Spoofing)

Hi r/esp32, I want to share my original project: StackmatLink.

I designed the PCB and wrote the firmware to solve a specific problem in the speedcubing community.

The Problem:
Competitive "Stackmat" timers output data via a 3.5mm jack using a proprietary PPM (Pulse Position Modulation) signal. Getting this into a PC usually requires cables and an audio-in port, which is messy and prone to noise.

My Solution:
A $5 wireless bridge using an ESP32-S3.

Technical Details & Challenges:

  • The Biggest Challenge (Signal Integrity): The raw analog output from the timer is extremely noisy. I used an LM393 comparator circuit to shape it into a clean 1200-baud digital square wave. Tuning the threshold was the hardest part to ensure zero-bit errors.
  • Dual-Core Implementation: I utilized the S3's dual cores to prevent latency. Core 1 is dedicated to the UART signal parsing and state inference (detecting when the timer starts/stops), while Core 0 handles the NimBLE stack.
  • Protocol Spoofing: To make it "plug-and-play" with the web-app csTimer, I reverse-engineered and spoofed the GAN Smart Timer BLE protocol. The browser thinks it's talking to an official Bluetooth timer.

GitHub (Source & Schematic): https://github.com/liusonwood/StackmatLink

u/Alert_Protection_531 — 6 days ago
▲ 129 r/cubing+1 crossposts

I built an open-source $5 Bluetooth bridge for the Stackmat timers to sync wirelessly with csTimer!

Hi everyone!

I wanted to share my recent DIY project: StackmatLink.

It's an ESP32-S3 based bridge that converts standard analog Stackmat signals (from timers like the GAN Halo) into the proprietary GAN Smart Timer Bluetooth protocol.

Why I made this: I love the stackmat timer's feel but didn't want to pay for the expensive Bluetooth version. So I spent 2 hours coding and designing this bridge.

Key Features:

  • Zero Latency:* Uses NimBLE for high-speed BLE and dual-core processing.
  • Smart State Inference:* Handles the specific 'I' state of GAN timers so it works perfectly with csTimer.

Fully Open Source:* Includes PCB files, 3D printable case, and the firmware.

GitHub Repo: https://github.com/liusonwood/StackmatLink

Feel free to check it out, build your own, or ask me anything about the hardware! I'm looking forward to connecting with fellow cubing developers.

u/Alert_Protection_531 — 6 days ago