nabil.me

Bike Computer V0.1 Build

November 2, 2011 #electronics

Back: Screen

I’ve built the first prototype of my bike computer and have been developing the firmware for a couple of weeks now. Everything except the temperature sensor, accelerometer, servo headers, and Li-ion fuel gauge has been populated.

There were a few minor electrical bugs, like forgetting resistors for the ISP programmer, but nothing too difficult to fix for the next prototype. The bigger issues have appeared on the software side. First, I’ve filled all 32K of the ATmega’s memory — mostly due to lengthy sensor configurations, USB libraries, and FATFS. Second, RAM is tight when processing things like NMEA strings or rendering complex graphics.

I’ve realized there’s little point in having a vibrant TFT LCD screen if the 16MHz ATmega can’t keep up with decent refresh rates. So, I’ll probably switch to an ARM processor for the next version — likely something from the STM32F4 series.

Features

Back: Electronics

  • ATmega32U4
  • 2 servo outputs to control an electronic derailleur
  • 3-axis accelerometer — MMA7260Q
  • GPS — Linx RXM-GPS-SG
  • Altimeter — BMP085
  • Micro SD card
  • LiPo charger — MCP73871
  • Fuel gauge — MAX1704X
  • 2.4" x 2.0" board
  • Electronic derailleur controller (see details)

Planned Improvements

  • Heart rate monitor & pulse oximeter
  • LCD touch screen
  • More accurate energy output measurement (maybe calibrate per user instead of curve fitting)

← Back to blog