OpenBikeComputer documentation
OpenBikeComputer is an open-source bikepacking computer in development. The prototype provides offline maps, route navigation, and ride recording.
Start here
- Try the device: explore a ride in the browser demo.
- Prepare a map: choose coverage and download a map.
- Work on the software: find setup instructions and the source code.
How the system fits together
The device reads compact binary formats straight from storage. The conversion work happens on a computer, before the ride.
Where to find what
Rendering pipeline
Projection, level of detail, quadtree culling, rasterization, and display output.
SoftwareSystem architecture
Runtime layers, host boundaries, the frame loop, and the routing seam.
SoftwareData formats
The OBCM, OBCR, ride, terrain, catalog, and cell formats.
SoftwareThe UI system
Screens, input gestures, settings, overlays, and render-on-demand behavior.
HardwareHardware
The nRF54LM20 development platform and the reflective memory LCD.
The stack at a glance
| Layer | Crate / file | What it does |
|---|---|---|
| Map packer | obc-pack | Converts OSM PBF data to OBCM cells. |
| DEM baker | obc-dem | Converts Copernicus GLO-30 data to OBCD terrain cells. |
| Cell assembler | obcm-assemble | Combines OBCM and OBCD cells into one verified OBCM map. |
| Elevation | obc-elevation | Reads OBCT data and supplies shared elevation calculations. |
| Map reader | obc-reader | Reads OBCM indexes, styles, features, POIs, and navigation data. |
| Route reader | obc-route | Reads OBCR routes and provides conversion, matching, and profiles. |
| Renderer | obc-render | Draws maps without allocation. |
| Application | obc-app | Controls screens, input, navigation, and ride recording. |
| Simulator | obc-sim | Hosts the application on a desktop. |
| Web demo | obc-web-demo | Hosts the application in WebAssembly. |
| Builder bridge | obc-builder-bridge | Converts routes, assembles maps, and renders previews in the browser. |
Start with System architecture. Then read Rendering pipeline and Data formats.
These pages explain how the system works and why. The specs/ directory defines the exact binary and wire contracts.