Project in progress
Onboard computer for bicycle

Onboard computer for bicycle © GPL3+

Advanced Onboard Computer for Bicycle.

  • 23 respects

Components and supplies

STM32F103C8 BluePill
C8 or CB doesn't matter. Both have 20k of RAM and 128k of ROM
OLED Display
I2C bus, 128x64, 1.3", SH1106 driver
DS3231 RTC
With AT24C32/AT24C64 EEPROM chip (IMPORTANT!)
XT60 connector
Heatsinks recommended
8 DIP socket
Heatsinks recommended
Piezzo buzzer
12mm in diameter
Female headers
Bunch of these, straight and 90°, 0.1" pitch
Male headers
Bunch of these, straight and 90°, 0.1" pitch
Fuse holder
Glass fuse
5A, 20x5mm
With all protections it can have
18650 LiIon batteries
Minimum four LiIon batteries connected in series
White LED 3mm
Cold or warm, depends on you
See scheme for exact values and quantity, 1/4W, THT
SMD resistors
200 ohm, 1206, see scheme for exact quantity
3m 969102 0000 da image 75px
Generic Jumper (0.1")
Wire, Wrapping Wire
24, 26 & 32 AWG, recommended black, 20m for each AWG
SPST Switch
2 pin, cca 18mm in diameter.
Sponge rubber seal
3mm in diameter, 3m in length
Push button
2 pin, momentary, minimum 9.5mm in heigth
USB Type A female connector
Recommended with black color
Phillips screws
M3 and M4
M3, M4 and M5
SMD White LEDs
1206 package, for headlight
1206 package, for taillight
SMD Amber LEDs
1206 package, for turn signal lights

Necessary tools and machines

With 3.3V
71y9193 40
Breadboard, 270 Pin
88w2570 40
Servo Motor, Premium Male/Male Jumper Wires
09507 01
Soldering iron (generic)
Solder Wire, Lead Free
66y6421 40
Solder Flux, Soldering
Wire stipper
Wire cutter
For heat shrink tubes
Nail Polish
To make water resistant solder joints. Not needed, just for extra protection
3D Printer (generic)
Minimum dimensions 200x200x200mm. Recommended with enclosure. Print with ABS or ASA, PLA will get soft on direkt sun
26w6260 40
Multitool, Screwdriver
Phillips and hexagonal. Project uses screws from M3 to M5
Plexiglass razor
To cut plexiglass.
Heat shrink tubes
Various colors and dimensions
Light hammer, to insert nuts into enclosures
Hy gluegun
Hot glue gun (generic)

Apps and online services

About this project

Little background story

I like motorbikes, but I'm not old enough for supersport bikes, yet. Thing that fascinate me about bikes is taillight and rear end in general. One day I decided to do a little DIY project. The project was about making a circuit that behaves as bike's taillight. The idea for the project was taken from TSTIndustries' 2013+ Kawasaki Ninja ZX6R Programmable Integrated Tail Light. Project was too complicated for me, because my knowledge in electrical engineering was poor, so I gave up from idea.

A few months later professor in high school was talking about some microcontroller, that microcontroller was Arduino. That moment woke up this project. I have googled about Arduino, how-to, examples etc. I have learned a lot about electrical engineering, programming while I work on this project.

I did the first few schematics for the project. At the beginning project was very simple, few push buttons, Arduino, blue LED as an indicator for lights, hall sensors for brake levers and that is it. But, as a young DIY lover, I felt into a trap - adding new stuff to the project!

I said to myself once "I have more Resources to use, why I don't build onboard computer with display?". I decided to do more on the project. I added OLED display, RTC, turn signals, tachometer, and speedometer, etc... So the project has become complicated. Later I swapped Arduino Nano with STM32F103C8 board. Also, I didn't like the look of the project on perfboard, I decided to learn how to use EAGLE and design nice looking PCBs.


  • Total distance, daily, monthly, trip A, B, C
  • Top & Max speed
  • Average Speed
  • Total trip time and resettable trip time
  • Speedometer
  • Tachometer
  • Front light - Daily light ; Normal light ; High beam. Auto turn on/off
  • Rear light - Daily light ; Normal light ; Fog light ; Brake light. Auto turn on/off
  • Turn signals & hazard light
  • Handlebar light
  • Time, date & ambient temperature info
  • Screen saver
  • Dimmable screen (manully/auto)
  • Customizable tyre size
  • Supports metric and imperial units
  • USB charging port

First version

The first version was built on the Arduino Nano R3 board and plan for the project was much much simpler than it is today. Below you can see how it looked back then.

Little tachometer animation on startup

Second version

The second version is based on STM32F103C8 board. The reason why Arduino is not in use for the second version is lack of pins and memory. STM32 is a very good replacement for Arduino Nano. Also, the second version brings a completely new display design.

It is the first time for me to solder SMD components, it's not done well. It will be better for the next revision. Some pictures are not good quality and maybe a little bit out of focus. Below you can see how the project looks today.


The only thing that holds this project is lack of money. I started with this project while I was going to high school, spending half allowance on components and tools. Only thing left to do is to make models and 3D print them. Also, that is the reason why code and CAD files for PCBs don't match up. In the next month or two I'll match code with PCBs.


Custom parts and enclosures



Similar projects you might like

Atmospheric Air Analyser

Project in progress by Tejas Shah and Tejas Shah

  • 28 respects

Bluetooth-Enabled Bicycle Turn Signal

Project tutorial by simonwongwong

  • 15 respects

Arduino Nano as CP/M-Compatible Computer

Project in progress by FoxyLab

  • 38 respects

Computer Prank

Project in progress by theuser42

  • 1 comment
  • 6 respects

Omega Flight Computer

Project in progress by UniverseRobotics

  • 5 respects

Bicycle Odometer and Speedometer with 99 Lap/Period Recorder

Project in progress by alan_dewindt

  • 16 respects
Add projectSign up / Login