Archive for August, 2015
Bike computer with Nokia 1100 LCD
Posted by zenondorin in Hardware, Software on August 2, 2015
The biggest problem with cheap commercial speedometers is that they have volatile memory, so all data is gone after a battery replacement! There are already a couple of arduino bike speedometer projects, but none with a fully customizable matrix display.
I discovered that some old Nokia LCD’s are fairly easy to use, with a single SPI interface (non standard but it can be bit banged) and since I already had a Nokia 1100 handy, I set to make my own speedometer.
I then hooked up the LCD to a leaflabs STM32 dev board mainly because the MCU is 3.3v (and the LCD would be damaged by 5v signal levels) but also because it has more RAM than the arduino nano to easily handle the display data.
http://www.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/32214664071.html
A voltage divider for low battery detection, light sensor and backlight FET are some additional components on the breadboard.
The rest of the hardware is also very simple, just like any available odometer on the market, a GPIO pin pulled up or down and connected to a reed switch which closes the circuit when the magnet on the wheel passes by.
This is mainly a software project and features:
- main speed ex. 28.1kph
- total distance ex. 6.1km
- total runtime ex. 09min (increments when speed > 0)
- average speed ex. 38kph
- maximum speed ex. 98kph (resets after auto power off)
- battery indicator ex. ~60%
- switched backlight
- data retention after complete power off
- setup navigation menu (wheel size, reset data)
- ??? add anything you want, like speed logging and graphing
The code is for the LeafLabs Maple IDE but you can adapt it for anything.
Navigation is done with only one button! One short click of the button means Change (of menu index or digit) and one long click means Select. I use the on board button (only on leaflabs) for this.
In the video you can see an external button that I use instead of the reed switch to simulate the wheel spinning.