CAN-FD to ANT+/BLE bridge for Bosch eBike Smart System (BES3) — hardware design and firmware
- C 96.9%
- Makefile 3.1%
Parts needing lcsc.com verification: - D1 SMAJ15A: need correct LCSC for Littelfuse SMAJ15A - U1 RT8294BZH: search RT8294BZ on lcsc.com - J1 JST-PH 4-pin: search JST-PH SMD on lcsc.com |
||
|---|---|---|
| docs | ||
| firmware | ||
| hardware/kicad | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| README.md | ||
BES3-ANT+ Bridge
CAN-FD to ANT+/BLE bridge for the Bosch eBike Smart System (BES3)
Reads telemetry from the 12V display connector and broadcasts it over ANT+ (and BLE) to Garmin devices, smartphones, etc.
Overview
The Bosch Smart System (BES3) uses CAN-FD instead of classic CAN. This project implements a small hardware module that:
- Connects to the 12V display port on the eBike
- Listens on the CAN-FD bus (listen-only, no interference)
- Translates Bosch-specific CAN frames to ANT+ LEV pages
- Broadcasts over ANT+ (2.4 GHz) and optionally BLE
Hardware
See docs/hardware/
- MCU: Seeed Studio XIAO nRF52840 (ARM Cortex-M4F + ANT+/BLE radio)
- CAN-FD Controller: Microchip MCP2518FD
- CAN Transceiver: Microchip ATA6563
- Power: MP1584N Buck Converter Module (3.3V output) — from AliExpress/eBay
- Form Factor: ~50mm × 25mm target
Firmware
See firmware/
- Zephyr RTOS based
- ANT+ LEV profile implementation
- Listen-only CAN-FD paser for BES3 frame IDs
Documentation
| Document | Description |
|---|---|
| System Overview | High-level architecture |
| Power Supply Design | 12V input, transient protection, buck converter |
| BOM | Parts list with actual sourced modules |
| CAN-FD Interface | MCP2518FD hookup, BES3 frame IDs |
| ANT+ LEV Profile | Data pages, scaling, timing |
| PCB Design Notes | Layout guidelines, EMI considerations |
| Sources & References | Datasheets, related projects, tools |
Status
- Hardware v0.1 (KiCad)
- Power supply validation
- CAN-FD sniffer FW + bus analysis
- ANT+ LEV implementation
- BLE GATT profile
- Prototype assembly
- Field testing
Alternatives
BLE-Based (No Extra Hardware)
If you don't want to build hardware, there's an Android-only solution:
- Bosch-Smart-System-Ebike-Garmin — Open source Android app that connects to BES3 via BLE and rebroadcasts data as a BLE sensor for Garmin devices.
- Pro: No hardware needed, works with any phone
- Con: Phone must stay connected during the ride
- Decoded data: Battery %, Assist Mode, Human/Motor Power, Speed, Cadence, Torque
Commercial Hardware
- Bulcan (€199) — Ready-to-buy BES3 → ANT+ bridge. Closed source but validates the same bus parameters from this project.
Contributing
See CONTRIBUTING.md. All contributions via merge requests.
License
MIT