Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bosch LDI Accessory Firmware

Warning

This is unsupported ultra-alpha firmware. It is shared so others can study it, build on it, or contribute patches.

GitHub Issues are disabled on purpose. Please do not report issues through this repository.

PlatformIO ESP-IDF firmware for a Bosch eBike smart system Live Data Interface accessory. The ESP device pairs with the bike, subscribes to Bosch Live Data, decodes the protobuf stream, renders a HUD when a display is fitted, and logs ride data when it runs headless.

In plain words: this is open-source firmware for building your own Bosch LDI accessory with common ESP32 boards. You do not need a specialized bike computer or a fixed display module. A small board can work as a headless datalogger, and a board with a screen can work as a ride HUD.

The source protocol document is docs/20260501_LiveDataInterface_V1_28042026.pdf.

What It Does

  • Pairs with Bosch eBike smart system LDI over BLE.
  • Handles bonding, reconnects, DLE, MTU, GATT discovery, encrypted reads, and notifications.
  • Decodes Bosch Live Data protobuf frames into stable ride telemetry.
  • Shows a readable HUD when the board has a display.
  • Runs as a flash datalogger when the board has no display.
  • Logs JSONL and CSV ride data for later export.
  • Exports board, pin, sensor, display, logging, progress, and BLE stats.
  • Supports commodity ESP32-S3, ESP32-C3, ESP32-C6, classic ESP32, and ESP32-P4 UI-shell builds.
  • Keeps ESP32-P4 honest: it can host the UI, but needs an external BLE companion because P4 has no integrated BLE radio.
  • Is MIT licensed so people can study it, fork it, and build on it.

Fast Path

Use this when you only need to prove the stack still builds:

pio test -e native
pio run -e esp32s3
pio run -e lilygo_t_dongle_s3

Expected result: the native suite passes and each firmware environment ends with SUCCESS.

For the full first-run path, flashing steps, and common build notes, use docs/quickstart.md.

Pick A Board

Start with one of these environments:

Need Environment Notes
Headless S3 datalogger esp32s3 BLE LDI plus flash logging, no display.
Small C3 datalogger esp32c3 BLE LDI on a smaller chip.
Modern C6 datalogger esp32c6 BLE LDI with C6 radio support.
Narrow built-in HUD lilygo_t_dongle_s3 ST7735 SPI HUD path builds; real-screen tuning is still lab blocked.
Common pocket HUD m5stack_m5stickc_plus2 ST7789 SPI HUD path builds on classic ESP32.
Large P4 UI shell esp32p4_ref_rgb_full RGB HUD shell only; P4 needs a BLE companion for Bosch pairing.

All supported and shortlisted boards are listed in docs/reference/board_profiles.md.

Use The Serial Console

Open the monitor at 115200 after flashing:

pio device monitor -e esp32s3
Key Action
p Start pairing advertising.
b Clear BLE bonds and advertise again.
s Print status export.
h Print the current HUD/status export.
e Toggle JSON export.
x Export the stored ride log without using BLE.

Docs By Need

Need Read
Get the firmware running docs/quickstart.md
Pick an environment or check display support docs/reference/board_profiles.md
Check build flags, SDK defaults, and console commands docs/reference/configuration.md
Consume JSONL or CSV output docs/reference/export_shape.md
Understand the BLE, HUD, logging, and hardware split docs/explanations/ldi_architecture.md
Add a real production board profile docs/board_profile_template.md
Validate real hardware in the lab docs/hardware_validation.md
Use ESP32-P4 with a BLE radio docs/esp32p4_ble_companion.md
See the full documentation map docs/README.md

Current Boundaries

  • ESP32-S3, ESP32-C3, ESP32-C6, and classic ESP32 can own the Bosch BLE flow.
  • ESP32-P4 has no integrated BLE radio, so it needs an ESP32-C3/C6 companion or another external BLE controller.
  • SSD1306, ST7789 SPI, ST7789 I80, RGB, ST7735, GC9107, and ILI9342C display paths build. ST7735, GC9107, and ILI9342C still need real-screen tuning.
  • QSPI AMOLED boards are pinned and exported, but they are metadata-only until an AXS15231B or SH8601 panel driver is added.
  • Real Bosch pairing, BLE sniffer traces, real payload fixtures, HUD photos, and stored-export power-cut checks are still lab gates tracked in TODO.md.

Coauthoring Note

Parts of this firmware and documentation were coauthored with OpenAI Codex, using codex-cli 0.128.0 with GPT-5.5 and XHIGH reasoning.

About

MIT-licensed Bosch eBike smart system LDI firmware for commodity ESP32 boards: HUD or headless datalogger, no specialized bike computer required.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages