An open source bike computer based on Raspberry Pi Zero (W, WH) with GPS and ANT+. Including offline map and navigation.

Overview

title

Pi Zero Bikecomputer

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

https://github.com/hishizuka/pizero_bikecomputer

News

  • 2021/4/18 Please reinstall pyqtgraph when using python3-pyqt5 in Raspberry Pi OS (skip check if using).
  • 2021/4/3 Please reinstall openant and pyqtgraph because both libraries are re-forked.
$ sudo pip3 uninstall pyqtgraph
$ sudo pip3 install git+https://github.com/hishizuka/pyqtgraph.git
$ sudo pip3 uninstall openant
$ sudo pip3 install git+https://github.com/hishizuka/openant.git

Table of Contents

Abstract

Pi Zero Bikecomputer is a GPS and ANT+ bike computer based on Raspberry Pi Zero(W, WH). This is the first DIY project in the world integrated with necesarry hardwares and softwares 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

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.

General

Specs Detail Note
Logging Yes See as below
Sensors Yes See as below
Positioning Yes A GPS module is required. See as below.
GUI Yes See as below
Wifi Yes Built-in wifi
Battery life(Reference) 18h with 3100mAh mobile battery(Garmin Charge Power Pack) and MIP Reflective color LCD.

Logging

Specs Detail Note
Stopwatch Yes Timer, Lap, Lap timer
Lap Yes [Total, Lap ave, Pre lap ave] x [HR, Speed, Cadence, Power]
Cumulative value Yes [Total, Lap, Pre lap] x [Distance, Works, Ascent, Descent]
Elapsed time Yes Elapsed time, 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
Output .fit log file Yes
Upload to STRAVA Yes
Live sending Yes But I can't find a good dashboard service like as Garmin LiveTrack

Sensors

USB dongle is required if using ANT+ sensors.

Specs Detail Note
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.
Bluetooth sensors No
Barometric altimeter Yes An I2c sensor(pressure, temperature) is required.
Accelerometer Yes An I2c sensor is required.
Magnetometer Yes An I2c sensor is required.
Light sensor Yes An I2c sensor is required. For auto backlight and lighting.

Positioning

Specs Detail Note
Map Yes Support map tile format like OSM. So, offline map is available with local caches.
Course on the map Yes A course file(.tcx) is required.
Course profile Yes A course file(.tcx) is required.
Cuesheet Yes Use course points included in course files.
Search Route Yes Google Directions API
  • Map with Toner Map
    • Very useful with 2 colors displays (black and white).
  • Map with custimized Mapbox
    • Use 8 colors suitable for MIP Reflective color LCD.
  • Course profile

GUI

Specs Detail Note
Basic page(values only) Yes
Graph Yes Altitude and performance(HR, PWR)
Customize data pages Yes With layout.yaml
ANT+ pairing Yes
Adjust wheel size Yes Set once, store values
Adjust altitude Yes Auto adjustments can be made only once, if on the course.
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)

  • title-03.png

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

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)

Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding (CVPR2022)

Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding by Qiaole Dong*, Chenjie Cao*, Yanwei Fu Paper and Supple

Qiaole Dong 190 Dec 27, 2022
A PyTorch Implementation of Gated Graph Sequence Neural Networks (GGNN)

A PyTorch Implementation of GGNN This is a PyTorch implementation of the Gated Graph Sequence Neural Networks (GGNN) as described in the paper Gated G

Ching-Yao Chuang 427 Dec 13, 2022
Official implementation for “Unsupervised Low-Light Image Enhancement via Histogram Equalization Prior”

HEP Unsupervised Low-Light Image Enhancement via Histogram Equalization Prior Implementation Python3 PyTorch=1.0 NVIDIA GPU+CUDA Training process The

FengZhang 34 Dec 04, 2022
Evolution Strategies in PyTorch

Evolution Strategies This is a PyTorch implementation of Evolution Strategies. Requirements Python 3.5, PyTorch = 0.2.0, numpy, gym, universe, cv2 Wh

Andrew Gambardella 333 Nov 14, 2022
Implementation of popular SOTA self-supervised learning algorithms as Fastai Callbacks.

Self Supervised Learning with Fastai Implementation of popular SOTA self-supervised learning algorithms as Fastai Callbacks. Install pip install self-

Kerem Turgutlu 276 Dec 23, 2022
Elegy is a framework-agnostic Trainer interface for the Jax ecosystem.

Elegy Elegy is a framework-agnostic Trainer interface for the Jax ecosystem. Main Features Easy-to-use: Elegy provides a Keras-like high-level API tha

435 Dec 30, 2022
This repository is an unoffical PyTorch implementation of Medical segmentation in 3D and 2D.

Pytorch Medical Segmentation Read Chinese Introduction:Here! Recent Updates 2021.1.8 The train and test codes are released. 2021.2.6 A bug in dice was

EasyCV-Ellis 618 Dec 27, 2022
Unofficial Implement PU-Transformer

PU-Transformer-pytorch Pytorch unofficial implementation of PU-Transformer (PU-Transformer: Point Cloud Upsampling Transformer) https://arxiv.org/abs/

Lee Hyung Jun 7 Sep 21, 2022
End-to-End Speech Processing Toolkit

ESPnet: end-to-end speech processing toolkit system/pytorch ver. 1.3.1 1.4.0 1.5.1 1.6.0 1.7.1 1.8.1 1.9.0 ubuntu20/python3.9/pip ubuntu20/python3.8/p

ESPnet 5.9k Jan 04, 2023
WarpRNNT loss ported in Numba CPU/CUDA for Pytorch

RNNT loss in Pytorch - Numba JIT compiled (warprnnt_numba) Warp RNN Transducer Loss for ASR in Pytorch, ported from HawkAaron/warp-transducer and a re

Somshubra Majumdar 15 Oct 22, 2022
Official PyTorch Implementation of "AgentFormer: Agent-Aware Transformers for Socio-Temporal Multi-Agent Forecasting".

AgentFormer This repo contains the official implementation of our paper: AgentFormer: Agent-Aware Transformers for Socio-Temporal Multi-Agent Forecast

Ye Yuan 161 Dec 23, 2022
Learning Domain Invariant Representations in Goal-conditioned Block MDPs

Learning Domain Invariant Representations in Goal-conditioned Block MDPs Beining Han, Chongyi Zheng, Harris Chan, Keiran Paster, Michael R. Zhang, Jim

Chongyi Zheng 3 Apr 12, 2022
A GridMixup augmentation, inspired by GridMask and CutMix

GridMixup A GridMixup augmentation, inspired by GridMask and CutMix Easy install pip install git+https://github.com/IlyaDobrynin/GridMixup.git Overvie

IlyaDo 42 Dec 28, 2022
PyTorch implementations of Generative Adversarial Networks.

This repository has gone stale as I unfortunately do not have the time to maintain it anymore. If you would like to continue the development of it as

Erik Linder-Norén 13.4k Jan 08, 2023
Source codes of CenterTrack++ in 2021 ICME Workshop on Big Surveillance Data Processing and Analysis

MOT Tracked object bounding box association (CenterTrack++) New association method based on CenterTrack. Two new branches (Tracked Size and IOU) are a

36 Oct 04, 2022
Learning Open-World Object Proposals without Learning to Classify

Learning Open-World Object Proposals without Learning to Classify Pytorch implementation for "Learning Open-World Object Proposals without Learning to

Dahun Kim 149 Dec 22, 2022
Mixup for Supervision, Semi- and Self-Supervision Learning Toolbox and Benchmark

OpenSelfSup News Downstream tasks now support more methods(Mask RCNN-FPN, RetinaNet, Keypoints RCNN) and more datasets(Cityscapes). 'GaussianBlur' is

AI Lab, Westlake University 332 Jan 03, 2023
A PyTorch-based library for semi-supervised learning

News If you want to join TorchSSL team, please e-mail Yidong Wang ([email protected]<

1k Jan 06, 2023
A reimplementation of DCGAN in PyTorch

DCGAN in PyTorch A reimplementation of DCGAN in PyTorch. Although there is an abundant source of code and examples found online (as well as an officia

Diego Porres 6 Jan 08, 2022
A series of convenience functions to make basic image processing operations such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and Python.

imutils A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, and displ

Adrian Rosebrock 4.3k Jan 08, 2023