hishizuka/pizero_bikecomputer

An open-source bike computer with GPS and ANT+ capabilities, based on the Raspberry Pi Zero (W, WH, 2 W) or the Compute Module Zero (CM0). It also includes offline maps and navigation.

Python

1,281

920 commits

updated Oct 10, 2026

See the code

README

title

Pi Zero Bikecomputer

An open-source bike computer with GPS and ANT+ capabilities, based on the Raspberry Pi Zero (W, WH, 2 W) or the Compute Module Zero.

https://github.com/hishizuka/pizero_bikecomputer

News

  • 2026/10/2 Memory LCD DRM Driver is now public. install.sh can install the MIP driver and the optional DMA-BUF presenter for PyQt GPU maps. See the display setup guide and GPU map presenter guide.
  • 2026/5/9 Official hardware is being designed and prototyped for Pi Zero Bikecomputer. The official hardware design files will be released under CERN-OHL-S-2.0.
    • Official hardware prototype
  • 2026/1/30 Support for a groundbreaking dual-screen display is in progress.
    • dual screen back
  • 2026/1/30 The MIP LCD methods will be fully deprecated, and a switch to a newly released DRM driver is planned.
  • 2025/10/12 Supports Raspberry Pi OS Trixie. For new installations, it is highly recommended to install Trixie due to compatibility with asyncio and asynqt. The following will no longer be supported going forward:
    • Raspberry Pi OS Bookworm and earlier
    • PyQt5
  • 2025/6/24 Now major packages can now be installed with a 1-line command.
    • /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/hishizuka/pizero_bikecomputer/refs/heads/master/install.sh)"

Stargazers over time

Stargazers over time

Table of Contents

Abstract

Pi Zero Bikecomputer is a GPS and ANT+ bike computer based on Raspberry Pi Zero (W, WH, 2 W). This is the first DIY project in the world integrating the necessary hardware and software for a modern bike computer. It measures and records position (GPS), ANT+ sensors (speed / cadence / power), and I2C sensors (pressure / temperature / accelerometer, etc.). It also displays these values, maps, and courses in real time. In addition, it writes logs to .fit format files.

In this project, Pi Zero Bikecomputer has already got the basic functions needed for a bike computer. The next target is to add new functions that existing products do not have!

You will enjoy both cycling and the maker movement with Pi Zero Bikecomputer!

Here are detailed articles in Japanese. The original Japanese titles are kept below, with English translations for reference.

Daily updates are posted on X (@pi0bikecomputer), and my riding activities are on STRAVA.

system-01-202106 system-02

hardware_top

Features

  • Easy to make

    • Use modules available at famous Maker stores.
    • Assemble in Raspberry Pi ecosystems.
    • Install with basic commands such as apt-get install, pip and git command.
  • Customization

    • Need only modules you want to use. Pi Zero Bikecomputer detects your modules.
  • Easy to develop

    • Pi Zero Bikecomputer uses same libraries as for standard Linux.
    • So, you can run in cross-platform environments such as Raspberry Pi OS, Linux, macOS and Windows.
  • Good balance between battery life and performance

Specs

Some functions depend on your parts.

Summary

SpecsSupportDetail
LoggingYesSee below.
SensorsYesANT+ sensors and I2C sensors. See below.
Maps and navigationsYesA GPS module or the Android app GadgetBridge is required. See below.
Displays, controls and powerYesMultiple displays, hardware buttons, remote controls, and battery modules are supported. See below.
GUIYesPyQt is the primary GUI. Kivy and headless modes are also available.
Wifi & BluetoothYesUsing built-in modules.
Smartphone connectionsYesAndroid only. GadgetBridge integration and route sharing from Google Maps via Bluetooth.
Battery life(Reference)18hwith 3100mAh mobile battery(Garmin Charge Power Pack) and MIP Reflective color LCD.

Logging

SpecsSupportDetail
StopwatchYesTimer, Lap, Lap timer
Average valueYes[Total, Lap ave, Pre lap ave] x [HR, Speed, Cadence, Power], [3s, 30s, 60s] x [HR, Power]
Cumulative valueYes[Total, Lap, Pre lap] x [Distance, Works, Ascent, Descent]
GrossYesElapsed time, gross average speed(=distance/elapsed time), gained time from average speed 15km/h(for brevet)
Auto stopYesAutomatic stop at speeds below 4km/h(configurable), or in the state of the acceleration sensor when calculating the speed by GPS alone
Recording insterval1sSmart recording is not supported.
ResumeYesRecording continues even if the power is suddenly turned off and restored.
Output .fit log fileYesThe standard format used by famous services as Strava and Garmin Connect. Also .csv format output is supported.
UploadYesStrava, Garmin and Ride with GPS.
Live TrackYesTrack data can be uploaded in real time to ThingsBoard or Garmin LiveTrack.

ThingsBoard dashboard

The repository provides one responsive Pizero Bikecomputer dashboard for both desktop and mobile screens. It shows the recorded track, loaded course, current cycling values, heart-rate/power history, and a ThingsBoard Live message composer placed between the history chart and current-value widgets. The supporting widget bundle and standalone notification rule chain are stored in the same dashboards/ directory. The notification chain is called from the tenant's existing root rule chain; it does not replace it.

thingsboard-01 thingsboard-02

See ThingsBoard setup for the layout, data format, import, device connection, and notification setup instructions.

Sensors

USB dongle is required if using ANT+ sensors.

SpecsSupportDetail
ANT+ Heartrate sensorYes
ANT+ Speed sensorYes
ANT+ Cadence sensorYes
ANT+ Speed&Cadence sensorYes
ANT+ PowermeterYesCalibration is not supported.
ANT+ LightYesBontrager Flare RT only.
ANT+ ControlYesGarmin Edge Remote only.
ANT+ EnvironmentYesGarmin tempe (temperature sensor)
BLE Heart Rate sensorPartialBluetooth HRS 8/16-bit heart rate and RR intervals are supported.
BLE Speed / Cadence sensorPartialBluetooth CSCS wheel and CSCS/CPS crank revolution data are supported.
BLE Power sensorPartialBluetooth CPS instantaneous power and recording work are supported. Calibration is not supported.
BLE peripheralsPartialZwift Click V2 remote and Fake Trainer for Zwift are supported.
Barometric altimeterYesI2C sensor(pressure, temperature)
AccelerometerYesI2C sensor
GyroscopeYesI2C sensor
MagnetometerYesI2C sensor
Light sensorYesI2C sensor. Use for auto backlight and lighting.

Maps and navigations

SpecsSupportDetail
GPS moduleYesUART GPS module(via GPSd) and I2C GPS are supported.
Positioning from smartphonesYesUsing the Android app GadgetBridge.
MapYesSupport raster map tile format like OSM (z/x/y.png or jpg). So, offline map is available with local caches. Also, raster .mbtile format is supported.
Course on the mapYesLocal .tcx and .fit files, cloud courses from Ride with GPS, and routes shared from Google Maps on Android via Bluetooth.
Search routeYesGoogle Routes API (Compute Routes)
Course profileYes
Detect climbsYesLike Garmin ClimbPro. Only climbs on the course, not detect nearby climbs.
CuesheetYesUse course points included in .tcx and .fit course files.
Map overlayYesHeatmap (Strava / Ride with GPS), weather (rain / wind), and configurable wind / DEM data sources.
DEM / wind data sourcesYesExternal DEM tiles and wind data sources can be selected from the menu and settings.

Displays, controls and power

SpecsSupportDetail
MIP reflective color LCDYesJDI 2.7 / 4.4 inch and Azumo 3.4 inch modules are supported.
SHARP memory displayYes2.7 / 4.4 inch monochrome MIP modules are supported.
TFT LCDYesPirate Audio, Display HAT Mini, generic ST7789 breakout, and PiTFT are supported.
E-paperYesPapirus and DFRobot RPi Display are supported.
TouchscreenPartialAvailable on supported TFT displays.
Hardware buttonsYesButton SHIM, MCP23008 / MCP23009-based IO expanders, and display-attached buttons are supported.
Remote controlYesGarmin Edge Remote (ANT+) and Zwift Click V2 (BLE) are supported.
Battery modulesPartialPiJuice HAT / Zero and PiSugar3 are supported.

Map example

Map and Course Profile with detecting climbs.

map-01 map-02

Heatmap overlay

Strava heatmap.

map_overlay-strava

Weather map overlay

RainViewer and openportguide are available worldwide.

map_overlay_rainviewer map_overlay_weather openportguide de

In Japan, 気象庁降水ナウキャスト(rain) and SCW(wind) are available.

GUI

SpecsDetailNote
Basic page(values only)Yes
GraphYesAltitude and performance(HR, PWR, W prime balance)
Customize data pagesYesWith layout.yaml
ANT+ pairingYes
Select courseYeslocal .tcx and .fit, Ride with GPS, and Android Google Maps via Bluetooth.
Upload activityYesStrava, Garmin and Ride with GPS.
Select mapYesbase maps, overlays, and external data sources
Adjust parameterYeswheel size, altitude, CP and W prime balance
Network settingYesToggle Wi-Fi / Bluetooth, BT pairing / tethering, and GadgetBridge-related options.
Language localizationYesFont and translation file of items are required.
No GUI optionYesheadless mode

Loading local .fit courses uses the fitparse package included by the standard installation. Custom installations without it hide .fit courses; the application and JSON/TCX course loading continue to work.

Performance graph

performance_graph-01

Language localization(Japanese)

language-ja

Experimental functions

ANT+ multiscan

it displays three of the people around you in the order in which you caught sensors using ANT+ continuous scanning mode.

Comparison with other bike computers

  • 314km ride with GARMIN Edge Explore 2 and Pizero Bikecomputer (strava activity)

  • 2023_TOJ_compare

ItemsEdge830Pi Zero Bikecomputer
Distance313.7 km314.3 km
Work3,889 kJ3,926 kJ
Moving time12:0312:04
Total Ascent2,271 m1,958 m

Hardware Installation

See hardware_installation.md for supported displays, GPS modules, I2C sensors, buttons, batteries, and assembly examples.

Software Installation

rpi-ble-tunnel

rpi-ble-tunnel integration is optional in install.sh. For an existing setup, run bash scripts/install/install-rpi-ble-tunnel.sh /path/to/rpi-ble-tunnel on the Pi using a checkout that includes caller-managed mode. Omitting the path clones it into tmp/ref/rpi-ble-tunnel. The service runs from system-installed files and does not depend on either checkout at runtime.

Open Menu → Connectivity → BLE Tunnel to enable the tunnel or prefer an external nRF52840 adapter. The entry is disabled when rpi-ble-tunnel integration is not installed or Bluetooth is off. Bluetooth power remains under Menu → System → Network → Bluetooth. Settings are saved in [RPI_BLE_TUNNEL] (enabled and use_secondary, both defaulting to False). Exiting the application keeps the tunnel running; disabling it or changing adapters disconnects BLE SSH. See the rpi-ble-tunnel operation guide for standalone service operations.

While the rpi-ble-tunnel Internet connection is active, queued downloads use the same single-download limit as Bluetooth tethering, including when Wi-Fi remains connected.

See software_installation.md.

For a new Raspberry Pi OS Trixie setup, the recommended entry point is:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/hishizuka/pizero_bikecomputer/refs/heads/master/install.sh)"

For macOS or Linux development, see the manual setup steps in software_installation.md.

Official Hardware (under development)

Official Pi Zero Bikecomputer hardware is being designed and prototyped for Raspberry Pi Zero-family configurations.

The official hardware design files will be published by this project under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S-2.0), unless otherwise stated.

Third-party boards are independent projects and are not official, endorsed, or supported by Pi Zero Bikecomputer unless they are explicitly listed in this repository.

  • 4inch-01
  • 4inch-02
  • 4inch-03

Q&A

License

The software in this repository is available under the GNU General Public License v3.0.

Official hardware design files, when published by this project, are available under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S-2.0), unless otherwise stated.

ANT and ANT+ are trademarks of Garmin Canada Inc. Official ANT+ icon files are not included in this repository. Authorized ANT+ Adopters may obtain the icons from the ANT+ Brand Tools package and place them at img/logos/ant_plus_icon_standard.png and img/logos/ant_plus_icon_reverse.png. Their use remains subject to the ANT+ Adopter Agreement and ANT Wireless Brand Guidelines. Without these files, the application displays (ANT+) instead.

The code shown below is ported and modified from Azumo's code under the Apache License 2.0 (third_party/apache/LICENSE.Apache2). See the NOTICE file for details.

  • modules/display/mip_display_base.py
  • modules/display/cython/mip_display.cpp

Sony CXD56xx GNSS support uses the separately installed rpi-cxd56xx-gnss package (Apache-2.0, including its NuttX-derived portions). See the installation instructions and the package's NOTICE and THIRD_PARTY.md for details.

This project also includes code adapted from swiftcontrol under the GNU General Public License v3.0. See the NOTICE file for details.

  • modules/sensor/ble/zwift_click_v2.py

This project also includes code ported and modified from Bosch Sensortec GmbH's code under the BSD 3-Clause License. See the NOTICE file for details.

  • Source APIs:
  • Adapted files:
    • modules/sensor/i2c/cython/bhi3_shuttle_board_3/common.c
    • modules/sensor/i2c/cython/bhi3_shuttle_board_3/common.h

This project also includes code vendored from hishizuka/crdp, which is based on the original biran0079/crdp project by Ran Bi, under the MIT License. See the NOTICE file for details.

Author

hishizuka (@pi0bikecomputer on X, pizero bikecomputer on STRAVA)

Link

Maker Faire Tokyo 2020 - Raspberry Pi Zero Cyclecomputer

HACKADAY - DEVELOPING AN OPEN SOURCE BIKE COMPUTER

antplus
bicycle
bicycle-computer
bike
cycling
fit
gps
gps-tracking
maps
offline-maps
openstreetmap
power-meter
pyqt5
pyqt6
pyside6
python
raspberry-pi
raspberry-pi-zero
sensor
tcx

hishizuka/pizero_bikecomputer

An open-source bike computer with GPS and ANT+ capabilities, based on the Raspberry Pi Zero (W, WH, 2 W) or the Compute Module Zero (CM0). It also includes offline maps and navigation.

Python

1,281

920 commits

updated Oct 10, 2026

See the code

README

title

Pi Zero Bikecomputer

An open-source bike computer with GPS and ANT+ capabilities, based on the Raspberry Pi Zero (W, WH, 2 W) or the Compute Module Zero.

https://github.com/hishizuka/pizero_bikecomputer

News

  • 2026/10/2 Memory LCD DRM Driver is now public. install.sh can install the MIP driver and the optional DMA-BUF presenter for PyQt GPU maps. See the display setup guide and GPU map presenter guide.
  • 2026/5/9 Official hardware is being designed and prototyped for Pi Zero Bikecomputer. The official hardware design files will be released under CERN-OHL-S-2.0.
    • Official hardware prototype
  • 2026/1/30 Support for a groundbreaking dual-screen display is in progress.
    • dual screen back
  • 2026/1/30 The MIP LCD methods will be fully deprecated, and a switch to a newly released DRM driver is planned.
  • 2025/10/12 Supports Raspberry Pi OS Trixie. For new installations, it is highly recommended to install Trixie due to compatibility with asyncio and asynqt. The following will no longer be supported going forward:
    • Raspberry Pi OS Bookworm and earlier
    • PyQt5
  • 2025/6/24 Now major packages can now be installed with a 1-line command.
    • /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/hishizuka/pizero_bikecomputer/refs/heads/master/install.sh)"

Stargazers over time

Stargazers over time

Table of Contents

Abstract

Pi Zero Bikecomputer is a GPS and ANT+ bike computer based on Raspberry Pi Zero (W, WH, 2 W). This is the first DIY project in the world integrating the necessary hardware and software for a modern bike computer. It measures and records position (GPS), ANT+ sensors (speed / cadence / power), and I2C sensors (pressure / temperature / accelerometer, etc.). It also displays these values, maps, and courses in real time. In addition, it writes logs to .fit format files.

In this project, Pi Zero Bikecomputer has already got the basic functions needed for a bike computer. The next target is to add new functions that existing products do not have!

You will enjoy both cycling and the maker movement with Pi Zero Bikecomputer!

Here are detailed articles in Japanese. The original Japanese titles are kept below, with English translations for reference.

Daily updates are posted on X (@pi0bikecomputer), and my riding activities are on STRAVA.

system-01-202106 system-02

hardware_top

Features

  • Easy to make

    • Use modules available at famous Maker stores.
    • Assemble in Raspberry Pi ecosystems.
    • Install with basic commands such as apt-get install, pip and git command.
  • Customization

    • Need only modules you want to use. Pi Zero Bikecomputer detects your modules.
  • Easy to develop

    • Pi Zero Bikecomputer uses same libraries as for standard Linux.
    • So, you can run in cross-platform environments such as Raspberry Pi OS, Linux, macOS and Windows.
  • Good balance between battery life and performance

Specs

Some functions depend on your parts.

Summary

SpecsSupportDetail
LoggingYesSee below.
SensorsYesANT+ sensors and I2C sensors. See below.
Maps and navigationsYesA GPS module or the Android app GadgetBridge is required. See below.
Displays, controls and powerYesMultiple displays, hardware buttons, remote controls, and battery modules are supported. See below.
GUIYesPyQt is the primary GUI. Kivy and headless modes are also available.
Wifi & BluetoothYesUsing built-in modules.
Smartphone connectionsYesAndroid only. GadgetBridge integration and route sharing from Google Maps via Bluetooth.
Battery life(Reference)18hwith 3100mAh mobile battery(Garmin Charge Power Pack) and MIP Reflective color LCD.

Logging

SpecsSupportDetail
StopwatchYesTimer, Lap, Lap timer
Average valueYes[Total, Lap ave, Pre lap ave] x [HR, Speed, Cadence, Power], [3s, 30s, 60s] x [HR, Power]
Cumulative valueYes[Total, Lap, Pre lap] x [Distance, Works, Ascent, Descent]
GrossYesElapsed time, gross average speed(=distance/elapsed time), gained time from average speed 15km/h(for brevet)
Auto stopYesAutomatic stop at speeds below 4km/h(configurable), or in the state of the acceleration sensor when calculating the speed by GPS alone
Recording insterval1sSmart recording is not supported.
ResumeYesRecording continues even if the power is suddenly turned off and restored.
Output .fit log fileYesThe standard format used by famous services as Strava and Garmin Connect. Also .csv format output is supported.
UploadYesStrava, Garmin and Ride with GPS.
Live TrackYesTrack data can be uploaded in real time to ThingsBoard or Garmin LiveTrack.

ThingsBoard dashboard

The repository provides one responsive Pizero Bikecomputer dashboard for both desktop and mobile screens. It shows the recorded track, loaded course, current cycling values, heart-rate/power history, and a ThingsBoard Live message composer placed between the history chart and current-value widgets. The supporting widget bundle and standalone notification rule chain are stored in the same dashboards/ directory. The notification chain is called from the tenant's existing root rule chain; it does not replace it.

thingsboard-01 thingsboard-02

See ThingsBoard setup for the layout, data format, import, device connection, and notification setup instructions.

Sensors

USB dongle is required if using ANT+ sensors.

SpecsSupportDetail
ANT+ Heartrate sensorYes
ANT+ Speed sensorYes
ANT+ Cadence sensorYes
ANT+ Speed&Cadence sensorYes
ANT+ PowermeterYesCalibration is not supported.
ANT+ LightYesBontrager Flare RT only.
ANT+ ControlYesGarmin Edge Remote only.
ANT+ EnvironmentYesGarmin tempe (temperature sensor)
BLE Heart Rate sensorPartialBluetooth HRS 8/16-bit heart rate and RR intervals are supported.
BLE Speed / Cadence sensorPartialBluetooth CSCS wheel and CSCS/CPS crank revolution data are supported.
BLE Power sensorPartialBluetooth CPS instantaneous power and recording work are supported. Calibration is not supported.
BLE peripheralsPartialZwift Click V2 remote and Fake Trainer for Zwift are supported.
Barometric altimeterYesI2C sensor(pressure, temperature)
AccelerometerYesI2C sensor
GyroscopeYesI2C sensor
MagnetometerYesI2C sensor
Light sensorYesI2C sensor. Use for auto backlight and lighting.

Maps and navigations

SpecsSupportDetail
GPS moduleYesUART GPS module(via GPSd) and I2C GPS are supported.
Positioning from smartphonesYesUsing the Android app GadgetBridge.
MapYesSupport raster map tile format like OSM (z/x/y.png or jpg). So, offline map is available with local caches. Also, raster .mbtile format is supported.
Course on the mapYesLocal .tcx and .fit files, cloud courses from Ride with GPS, and routes shared from Google Maps on Android via Bluetooth.
Search routeYesGoogle Routes API (Compute Routes)
Course profileYes
Detect climbsYesLike Garmin ClimbPro. Only climbs on the course, not detect nearby climbs.
CuesheetYesUse course points included in .tcx and .fit course files.
Map overlayYesHeatmap (Strava / Ride with GPS), weather (rain / wind), and configurable wind / DEM data sources.
DEM / wind data sourcesYesExternal DEM tiles and wind data sources can be selected from the menu and settings.

Displays, controls and power

SpecsSupportDetail
MIP reflective color LCDYesJDI 2.7 / 4.4 inch and Azumo 3.4 inch modules are supported.
SHARP memory displayYes2.7 / 4.4 inch monochrome MIP modules are supported.
TFT LCDYesPirate Audio, Display HAT Mini, generic ST7789 breakout, and PiTFT are supported.
E-paperYesPapirus and DFRobot RPi Display are supported.
TouchscreenPartialAvailable on supported TFT displays.
Hardware buttonsYesButton SHIM, MCP23008 / MCP23009-based IO expanders, and display-attached buttons are supported.
Remote controlYesGarmin Edge Remote (ANT+) and Zwift Click V2 (BLE) are supported.
Battery modulesPartialPiJuice HAT / Zero and PiSugar3 are supported.

Map example

Map and Course Profile with detecting climbs.

map-01 map-02

Heatmap overlay

Strava heatmap.

map_overlay-strava

Weather map overlay

RainViewer and openportguide are available worldwide.

map_overlay_rainviewer map_overlay_weather openportguide de

In Japan, 気象庁降水ナウキャスト(rain) and SCW(wind) are available.

GUI

SpecsDetailNote
Basic page(values only)Yes
GraphYesAltitude and performance(HR, PWR, W prime balance)
Customize data pagesYesWith layout.yaml
ANT+ pairingYes
Select courseYeslocal .tcx and .fit, Ride with GPS, and Android Google Maps via Bluetooth.
Upload activityYesStrava, Garmin and Ride with GPS.
Select mapYesbase maps, overlays, and external data sources
Adjust parameterYeswheel size, altitude, CP and W prime balance
Network settingYesToggle Wi-Fi / Bluetooth, BT pairing / tethering, and GadgetBridge-related options.
Language localizationYesFont and translation file of items are required.
No GUI optionYesheadless mode

Loading local .fit courses uses the fitparse package included by the standard installation. Custom installations without it hide .fit courses; the application and JSON/TCX course loading continue to work.

Performance graph

performance_graph-01

Language localization(Japanese)

language-ja

Experimental functions

ANT+ multiscan

it displays three of the people around you in the order in which you caught sensors using ANT+ continuous scanning mode.

Comparison with other bike computers

  • 314km ride with GARMIN Edge Explore 2 and Pizero Bikecomputer (strava activity)

  • 2023_TOJ_compare

ItemsEdge830Pi Zero Bikecomputer
Distance313.7 km314.3 km
Work3,889 kJ3,926 kJ
Moving time12:0312:04
Total Ascent2,271 m1,958 m

Hardware Installation

See hardware_installation.md for supported displays, GPS modules, I2C sensors, buttons, batteries, and assembly examples.

Software Installation

rpi-ble-tunnel

rpi-ble-tunnel integration is optional in install.sh. For an existing setup, run bash scripts/install/install-rpi-ble-tunnel.sh /path/to/rpi-ble-tunnel on the Pi using a checkout that includes caller-managed mode. Omitting the path clones it into tmp/ref/rpi-ble-tunnel. The service runs from system-installed files and does not depend on either checkout at runtime.

Open Menu → Connectivity → BLE Tunnel to enable the tunnel or prefer an external nRF52840 adapter. The entry is disabled when rpi-ble-tunnel integration is not installed or Bluetooth is off. Bluetooth power remains under Menu → System → Network → Bluetooth. Settings are saved in [RPI_BLE_TUNNEL] (enabled and use_secondary, both defaulting to False). Exiting the application keeps the tunnel running; disabling it or changing adapters disconnects BLE SSH. See the rpi-ble-tunnel operation guide for standalone service operations.

While the rpi-ble-tunnel Internet connection is active, queued downloads use the same single-download limit as Bluetooth tethering, including when Wi-Fi remains connected.

See software_installation.md.

For a new Raspberry Pi OS Trixie setup, the recommended entry point is:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/hishizuka/pizero_bikecomputer/refs/heads/master/install.sh)"

For macOS or Linux development, see the manual setup steps in software_installation.md.

Official Hardware (under development)

Official Pi Zero Bikecomputer hardware is being designed and prototyped for Raspberry Pi Zero-family configurations.

The official hardware design files will be published by this project under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S-2.0), unless otherwise stated.

Third-party boards are independent projects and are not official, endorsed, or supported by Pi Zero Bikecomputer unless they are explicitly listed in this repository.

  • 4inch-01
  • 4inch-02
  • 4inch-03

Q&A

License

The software in this repository is available under the GNU General Public License v3.0.

Official hardware design files, when published by this project, are available under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S-2.0), unless otherwise stated.

ANT and ANT+ are trademarks of Garmin Canada Inc. Official ANT+ icon files are not included in this repository. Authorized ANT+ Adopters may obtain the icons from the ANT+ Brand Tools package and place them at img/logos/ant_plus_icon_standard.png and img/logos/ant_plus_icon_reverse.png. Their use remains subject to the ANT+ Adopter Agreement and ANT Wireless Brand Guidelines. Without these files, the application displays (ANT+) instead.

The code shown below is ported and modified from Azumo's code under the Apache License 2.0 (third_party/apache/LICENSE.Apache2). See the NOTICE file for details.

  • modules/display/mip_display_base.py
  • modules/display/cython/mip_display.cpp

Sony CXD56xx GNSS support uses the separately installed rpi-cxd56xx-gnss package (Apache-2.0, including its NuttX-derived portions). See the installation instructions and the package's NOTICE and THIRD_PARTY.md for details.

This project also includes code adapted from swiftcontrol under the GNU General Public License v3.0. See the NOTICE file for details.

  • modules/sensor/ble/zwift_click_v2.py

This project also includes code ported and modified from Bosch Sensortec GmbH's code under the BSD 3-Clause License. See the NOTICE file for details.

  • Source APIs:
  • Adapted files:
    • modules/sensor/i2c/cython/bhi3_shuttle_board_3/common.c
    • modules/sensor/i2c/cython/bhi3_shuttle_board_3/common.h

This project also includes code vendored from hishizuka/crdp, which is based on the original biran0079/crdp project by Ran Bi, under the MIT License. See the NOTICE file for details.

Author

hishizuka (@pi0bikecomputer on X, pizero bikecomputer on STRAVA)

Link

Maker Faire Tokyo 2020 - Raspberry Pi Zero Cyclecomputer

HACKADAY - DEVELOPING AN OPEN SOURCE BIKE COMPUTER

antplus
bicycle
bicycle-computer
bike
cycling
fit
gps
gps-tracking
maps
offline-maps
openstreetmap
power-meter
pyqt5
pyqt6
pyside6
python
raspberry-pi
raspberry-pi-zero
sensor
tcx

Significant stargazers

Sergey Bronnikov

413 followers · starred Jan 2023

Sandy

89 followers · starred Jun 2025

Simon Rozet

642 followers · starred Jan 2023

Mike Ledger

35 followers · starred Dec 2025