- Version • 0.0.1
- Source
Velo
Hardware
Ai-Thinker ESP-12F
The heart of most ESP8266 Huzzah breakouts, it has on board WiFi and 4MB storage for user programs. It can be programmed with the Arduino IDE.
Quectel L80-M39 GPS Module
A low-power, surface mountable GPS module. It is capable of polling satellites at 10Hz but this project only requests the bikes position once every 10 seconds.
TS4056
The Li-Po charging IC, used in conjunction with an over-drain protection IC to safely charge and use the battery.
Generic ST7789 IPS Screen
A small 240x240 pixel IPS display, I'd prefer OLED for power reasons but there is a dedicated BLK pin on the breakout so it is trivial to power it off when not in use.
All of these components are mounted on a custom PCB and housed in a 3D printed case. The device then sits in the middle of the handlebars.
Software
On Device
All on device code is C++, uploaded via the Arduino IDE. The code is light and boots in seconds, GPS lock takes around a minute due to the lack of an external antenna.
Base Station
When the device is on charge the WiFi activates, searches for the Base Station which is a Raspberry Pi W running an HTTP server, and dumps it's logs in JSON format to a file ready to be processed. A route map is constructed with the GPS data and displayed using OpenStreetMaps. Stats such as average/top speed and estimated calories burned are also shown.