Skip to content

hishizuka/pizero_bikecomputer

Repository files navigation

title

Pi Zero Bikecomputer

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

https://github.com/hishizuka/pizero_bikecomputer

News

  • 2023/10/20 The program has now been substantially modified with significant contributions from Ptosiek . timezonefinder is now required. Also, qasync does not work with the latest version, so install version 0.24.0.
  • 2023/9/15 Add receiving route from Android Google Maps with Bluetooth File Transfer Protocol. So, install bluez-obexd and dbus-x11 package.
  • 2023/6/26 Replace hishizuka/pyqtgraph with original pyqtgraph. So uninstall and re-install pyqtgraph.
  • 2023/6/26 Add GadgetBridge documents in software_installation.md.
  • 2023/6/26 Add LiveTrack(ThingsBoard) documents in software_installation.md and thingsboard_setup.md
2023/10/20 update
$ sudo pip3 install timezonefinder
$ sudo pip3 install qasync --upgrade

2023/9/15 update
#For Android only
$ sudo apt install bluez-obexd dbus-x11

#2023/6/26 update
$ sudo pip3 uninstall pyqtgraph
$ sudo pip3 install pyqtgraph

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 integrated with necessary hardwares and software for modern bike computer. It measures and records position(GPS), ANT+ sensor(speed/cadence/power) and I2C sensor(pressure/temperature/accelerometer, etc). It also displays these values, even maps and courses in real-time. In addition, it write out log into .fit format file.

In this project, Pi Zero Bikecomputer got basic functions needed for bike computers. Next target is to add new functions which existing products do not have!

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

Here is detail articles in Japanese.

Daily update at twitter (@pi0bikecomputer), and my cycling activity at 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, some Linux, macOS and Windows.
  • Good balance between battery life and performance

Specs

Some functions depend on your parts.

Summary

Specs Support Detail
Logging Yes See below.
Sensors Yes ANT+ sensors and I2C sensors. See below.
Maps and navigations Yes A GPS module or the Android app GadgetBridge is required. See below.
GUI Yes Implemented using PyQt. See below.
Wifi & Bluetooth Yes Using built-in modules.
Smartphone connections Yes Android only. Mirroring notifications and getting locations via GadgetBridge.
Battery life(Reference) 18h with 3100mAh mobile battery(Garmin Charge Power Pack) and MIP Reflective color LCD.

Logging

Specs Support Detail
Stopwatch Yes Timer, Lap, Lap timer
Average value Yes [Total, Lap ave, Pre lap ave] x [HR, Speed, Cadence, Power], [3s, 30s, 60s] x [HR, Power]
Cumulative value Yes [Total, Lap, Pre lap] x [Distance, Works, Ascent, Descent]
Gross Yes Elapsed time, gross average speed(=distance/elapsed time), gained time from average speed 15km/h(for brevet)
Auto stop Yes Automatic stop at speeds below 4km/h(configurable), or in the state of the acceleration sensor when calculating the speed by GPS alone
Recording insterval 1s Smart recording is not supported.
Resume Yes Recording continues even if the power is suddenly turned off and restored.
Output .fit log file Yes The standard format used by famous services as Strava and Garmin Connect. Also .csv format output is supported.
Upload Yes Strava, Garmin and Ride with GPS.
Live Track Yes Track data is uploaded in real time to ThingsBoard.io dashboard service, so you can share your activity with friends and family.

Dashboard(ThingsBoard) example

thingsboard-01 thingsboard-02

Sensors

USB dongle is required if using ANT+ sensors.

Specs Support Detail
ANT+ Heartrate sensor Yes
ANT+ Speed sensor Yes
ANT+ Cadence sensor Yes
ANT+ Speed&Cadence sensor Yes
ANT+ Powermeter Yes Calibration is not supported.
ANT+ Light Yes Bontrager Flare RT only.
ANT+ Control Yes Garmin Edge Remote only.
ANT+ Environment Yes Garmin tempe (temperature sensor)
Bluetooth sensors No developping now...
Barometric altimeter Yes I2C sensor(pressure, temperature)
Accelerometer Yes I2C sensor
Magnetometer Yes I2C sensor
Light sensor Yes I2C sensor. Use for auto backlight and lighting.

Maps and navigations

Specs Support Detail
GPS module Yes UART GPS module(via GPSd) and I2C GPS are supported.
Positioning from smartphones Yes Using the Android app GadgetBridge.
Map Yes Support 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 map Yes Local file(.tcx), or cloud course from Ride with GPS with internet connection.
Search route Yes Google Directions API
Course profile Yes
Detect climbs Yes Like Garmin ClimbPro. Only climbs on the course, not detect nearby climbs.
Cuesheet Yes Use course points included in course files(.tcx).
Map overlay Yes Heatmap (Strava / Ride with GPS) and weather(rain / wind).

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

Specs Detail Note
Basic page(values only) Yes
Graph Yes Altitude and performance(HR, PWR, W prime balance)
Customize data pages Yes With layout.yaml
ANT+ pairing Yes
Select course Yes local .tcx file and Ride with GPS.
Upload activity Yes Strava, Garmin and Ride with GPS.
Select map Yes maps and overlays(heatmap and weather)
Adjust parameter Yes wheel size, altitude, CP and W prime balance
Network setting Yes Toggle wifi and BT, BT tethering.
Language localization Yes Font and translation file of items are required.
No GUI option Yes headless mode

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

Items Edge830 Pi Zero Bikecomputer
Distance 313.7 km 314.3 km
Work 3,889 kJ 3,926 kJ
Moving time 12:03 12:04
Total Ascent 2,271 m 1,958 m

Hardware Installation

See hardware_installation.md.

Software Installation

See software_installation.md.

Q&A

License

This repository is available under the GNU General Public License v3.0

Author

hishizuka (@pi0bikecomputer at twitter, pizero bikecomputer at STRAVA)

Link

Maker Faire Tokyo 2020 - Raspberry Pi Zero Cyclecomputer

HACKADAY - DEVELOPING AN OPEN SOURCE BIKE COMPUTER