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/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/5/27 Please delete log/log.db (
rm log/log.db
) because column layouts is changed. - 2023/5/26 There are so many updates, so you might want to look over software_installation.md.
- 2023/5/26 Install dbus-next and bluez-peripheral if you want to link your Android smartphone. GadgetBridge is also required, which can mirror Android notifications and get location without GPS modules.
- 2023/5/26 Install tb-mqtt-client if you want to send to ThingsBoard, which is an online dashboard. You can share your location in the map with your course or track.
#2023/6/26 update
$ sudo pip3 uninstall pyqtgraph
$ sudo pip3 install pyqtgraph
#2023/5/26 update
$ sudo pip3 install dbus-next bluez-peripheral
$ sudo pip3 install tb-mqtt-client
Table of Contents
- Abstract
- Features
- Specs
- Comparison with other bike computers
- Hardware Installation
- Software Installation
- Q&A
- License
- Author
- Link
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.
- I tried to make a bikecomputer, the result was pretty good
- Let's make a bikecomputer with Raspberry Pi Zero (W, WH)
Daily update at twitter (@pi0bikecomputer), and my cycling activity at STRAVA.
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
andgit
command.
-
Customization
- Need only modules you want to use. Pi Zero Bikecomputer detects your modules.
-
Easy to develop
-
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
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.
Heatmap overlay
Strava heatmap.
Weather map overlay
RainViewer and openportguide are available worldwide.
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
Language localization(Japanese)
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
-
200km ride with Garmin Edge 830 and Pizero Bikecomputer (strava activity)
Items | Edge830 | Pi Zero Bikecomputer |
---|---|---|
Distance | 193.8 km | 194.3 km |
Work | 3,896 kJ | 3,929 kJ |
Moving time | 9:12 | 9:04 |
Total Ascent | 2,496 m | 2,569 m |
Hardware Installation
Software Installation
Q&A
License
This repository is available under the GNU General Public License v3.0
Author
hishizuka (@pi0bikecomputer at twitter, pizero bikecomputer at STRAVA)