Tired of risking his life every time he had to signal a turn using his hands while riding his bicycle in rainy Vancouver, [Simon Wong] decided he needed something a bit higher tech. But rather than buy something off the shelf, he decided to make it into his first serious Arduino project. Given the final results and the laundry list of features, we’d say he really knocked this one out of the park. If this is him getting started, we’re very keen to see where he goes from here.
So what makes these turn signals so special? Well for one, he wanted to make it so nobody would try to steal his setup. He wanted the main signal to be easily removable so he could take it inside, and the controls to be so well-integrated into the bike that they wouldn’t be obvious. In the end he managed to stuff a battery pack, Arduino Nano, and an HC-05 module inside the handlebars; with just a switch protruding from the very end to hint that everything wasn’t stock.
On the other side, a ATMEGA328P microcontroller along with another HC-05 drives two 8×8 LED matrices with MAX7219 controllers. Everything is powered by a 18650 lithium-ion battery with a 134N3P module to bring it up to 5 VDC. To make the device easily removable, as well as keep the elements out, all the hardware is enclosed in a commercial waterproof case. As a final touch, [Simon] added a Qi wireless charging receiver to the mix so he could just pull the signal off and drop it on a charging pad without needing to open it up.
It’s been some time since we’ve seen a bike turn signal build, so it’s nice to see one done with a bit more modern hardware. But the real question: will he be donning a lighted helmet for added safety?











His source code is available on request but he does detail a neat software trick he uses for rotating the view. It may be confusing for some but as you move through the maze, your viewpoint rotates so that up is always the direction you’re facing. Luckily, the walls surrounding the user can be represented using 8-bits, four for east, west, north, and south, and four more for the corners. The maze is stored as a bitmap and from it, 8-bit values are extracted for the current position, each bit representing a wall around the position. To rotate the walls to match the user’s current orientation, the bits are simply shifted as needed. Then they’re shifted out to set each LED. Check it out in the video below.