Bike Blinker

4 minute read

PCB

Introduction

I love to ride my bike, usually I use it to get to school. In the winter time, it is often still dark outside and it is hard for other vehicles to see my hand turn signals. To solve the problem of truck drivers not seeing the hand signs, I build this blinker light for bikes. However, you should check if it is allowed to mount such lights to your bike. If not done correctly, it could irritate other drivers and lead to dangerous situations.

Overall, I am not very happy how this project turned out. The weird look and size of it lead to me remove it from my bike again. Nevertheless I want to share my findings with you.

Material

I ordered a custom PCB to make everything neat in one case. The Arduino NANO also adds to the small footprint of this project. Along with various small electronics components (WS2812b/NeoPixel), you will need some sort of power source. I decided on using a 18650 battery, which provides enough energy. Being a bit unexperienced, I bought a more expensive board to charge and boost the battery. However, the Adafruit PowerBoost 500C made a good job.

A battery holder will help to keep everything tidy. Also consider the maximal temperature rating for your battery!

I made a custom 3D-printed case for the project using PLA. It was kindly provided by the manufacturer, along with the Arduino.

Build

I started this project with the disassembly of an old IR-remote. I planned to use it to transmit the signal from the buttons on the handle to the light (on the helmet). But I quickly switched to a wired solution, because in such an application you need a lot of reliability and that could not be provided with a signal transmitted by infrared light. I also wanted to have the light in the back of the bike instead on the helmet.

To make the buttons water-tight, I first experimented with a small plastic foil over the buttons. But it didn’t seem like it had a very long life, so I got the idea of printing a TPU case for it. This worked out pretty well and seems to be enough watertight. Remember to use a direct extruder though, the stock extruder on the Ender 3 is not suitable!

IR-Remote

First tests were conducted with a LED strip, and a pre-made ring. However, both solutions were not what I wanted. The solder pads were very weak and it was hard to get them in a decent size.

That’s when I got into Fritzing and made a custom PCB. Besides the ugly routing, it turned out fantastic, I had it manufactured by Aisler in Germany. Remember to solder the LEDs with the right polarity, I soldered all the wrong way around first! After correcting this rather frustrating mistake, I was ready to think about the driving detection. Why that, you might ask?

PCB

Remember me saying animations? That would be counter productive on the street, so I wanted to have some sort of sensor that can detect when I am not moving and then play some cool animation. Inspired by other bike computers, I tried using a reed contact to sense the motion. They were really hard to solder because of the glass housing. That is why I removed it for now.

I printed a case for it on my Ender 3, but having very limited CAD skills at the time, I made some unlucky design choices. To name a few:

  • I used wood screws
  • The walls were way too thick
  • Many dimensions were off

Nevertheless I was able to put it on my bike and wire everything up. I was even able to still attach the basket onto it. Using transparent PLA, I was able to make it water-resistant but you were still able to see the light from the LEDs. After some coding the project was finished!

Lessons learned

As mentioned previously, there are a lot of things I would change if I build this again. Most notably the look of the case. You need to find a good compromise between blinker distance and compactness - the circular shape turned out to be unsuitable.

I mounted the blinker with cable ties, that was not a great idea. For a more stable connection, you should use some sort of clamping mechanism. I also had to program the Arduino via the ICSP header, because one component was blocking the USB-port. Additionally, there was no way to see if the battery is empty. That can be a serious problem when riding the bike.

It would also be nicer to have some sort of sensor integrated in the handles to further improve the safety of it. Additional features could include a charging circuit over a generator.

If you want to print TPU, a direct extruder is mandatory, because it shortens the filament path. Nevertheless it is an interesting material to work with and I found a good application for it.

Result