Open Cycling Computer
Raspberry Pi model Pi Zero W based
up to 8h of battery life (*)
bluetooth low energy (BLE)
equipped with high precision GPS MTK3339 (**)
high precision barometer, thermometer and altimeter Bosch BMP280
PiTFT 2.8" colour touch screen
easily editable layouts in YAML
(*) 8h21m without wifi on 2500mAh battery
(**) Work in progress.
Designed in FreeCAD. Coded in python3.
Open hardware and open software.
This is work in progress, so currently most of the info is hosted under other addresses:
Buy me a coffee, no pressure :-)
Software documentation is here
Changelog v0.14:
- Add ds18b20 1-wire thermometer plugin
- One-page-per-file layouts.
- Add rel_origin option, abs_origin option in page definition. Allows more consistent definition or repeated elements
- Add kalman filtered heart rate
- Add BLE services/characteristics scanning & logging
- Filter for devices providing required service, so user looking for heart rate BLE device won't see neighbour's TV set
- Add text alignment on point. Text aligned "on point" will keep the point (comma or any rightmost non-digit) fixed
- Code cleaning, formatting, typos, and hardening
Changelog v0.13:
- More formats, units and layouts
- BLE scanning and device selection
- More flexibility in layout/plugin design with long_click and short_click calls
- Updated documentation [WIP]
- Approximate gear ratio calculation in bicycle plugin
- Graphical overlays to show messages to the user. Used for BLE scanning and battery status
- Pimoroni LiPo shim plugin to show battery status
- Split data dumping and writing to file to avoid file corruption
- Fixed problem with finger on the screen, but not moving (long click)
- Code cleaning and hardening
Changelog v0.12:
- plugin methods can be linked to layout buttons, i.e short click on button runs method "do_something_awesome" from plugin "my_plugin"
- page text colour is now used
- list editor (select item from list) added. Used for wheel size. Allowed values are stored in config file
- Code cleaning, refactoring, decoupling and hardening
- documentation
- initial version of demo code how tu use pyplum (PYthon PLUgin Manager) to make simple weather station. See weather.sh (WORK IN PROGRESS)
Changelog v0.11:
- added draft of plugins and layout API description
- added simple example of sensor monitoring (weather.py) with independent config and layout
- ride log defined in config file
- added plugins system, cadence resetting session distance
- fixed average heart rate calcs, added pounds to weight units
- use Gidole font, bug fixes, code cleaning and hardening
Changelog v0.10:
- Odometer editable from Statistics, editors use zoom & colour, pressure sensor bmp183 replaced with bmp280 (kernel driver), bug fixes & code cleaning
Changelog v0.09:
- Change to notification system, code hardening and lot, lot of code cleaning
Changelog v0.08:
- Added slope calculation, new stats page, lot of code cleaning
Changelog v0.07:
- Added altitude calculation, BLE icon now shows number of connected bluetooth devices
Changelog v0.06:
- Added schematic (KiCad), multpile layout changes, code cleaning, fixed ghost click, bmp183 sensor activated
Changelog v0.05:
- pygame replaced with cairo and python-evdev, python3 migration, BLE connection hardening
Changelog v0.04:
- Convert config and layout files to yaml
Changelog v0.03:
- Add working BLE scanner / selector
Changelog v0.02:
- Lot of BLE changes, (heart rate sensor, icon showing connection states)
Changelog v0.01:
- BLE connectivity to speed & cadence sensor (initial version, hardcoded address)
- various bug fixes & code cleaning