Animated Wheel Mounted Bike Lights

Dr Alexander Paul Cave

Project Description


Figure 1 - Prototype operating at 10 km/h

This project explores the creation of disk-shaped colour animations on a rotating bicycle wheel using spoke-mounted LED pixel banks. As the wheel spins, timed flashes from the LEDs generate continuous streaks of colour through persistence of vision. The length of each streak is governed by the wheel’s angular velocity, while adding additional LED banks reduces visible strobing and improves image density.

To determine the angular position of the LEDs during rotation, a Hall-effect sensor is integrated into the LED bank, paired with a fixed magnet mounted on the fork. This configuration provides reliable rotational indexing without relying on external wiring. All computation and power storage are housed within the rotating wheel assembly itself due to the practical constraints of routing cables to the hub.

Figure 1 shows an early prototype operating on a test rig at an equivalent wheel speed of approximately 10 km/h. The apparent artefacts in the footage are a result of the video camera’s frame rate, and not the behaviour of the LEDs. In this demonstration, the LEDs illuminate with consistent colours across 12 angular segments of the wheel.

The light banks are built from two custom-designed printed circuit boards, each incorporating a Texas Instruments TLC5916 LED driver with 15 pulse-width modulation (PWM) channels. Every controller is addressable over the I²C bus, with its device address configured via onboard DIP switches. Each PWM channel also includes its own sub-address and duty-cycle setting, allowing colour and brightness control through simple addressed byte writes.

Schematic

Figure 2 - Schematic diagram

PCB Board

Figure 3 - PCB layout

Five RGB colour LEDs are mounted directly on each PCB. The PWM channels are grouped in sets of three—one each for red, green, and blue—providing full RGB control for every pixel. With this architecture, each LED driver and LED bank can be assigned a unique address, while requiring only four wires for operation: two for the 5 V power and ground, and two for the I²C data and clock lines.

Figure 2 shows the schematic for the LED bank, Figure 3 illustrates the PCB layout, and Figure 4 presents the final assembled board. Both the schematic and PCB layout were created in Autodesk Eagle CAD, with fabrication and assembly outsourced to Seeed Studio in Hong Kong.

Autodesk Inventor was used to design the in-hub spoke mountings for several key components:

  • the LED PCB assemblies that form each light bank,
  • the power banks used to supply the system from mobile-phone batteries, and
  • the enclosure for the control electronics.

Designing these mounts was particularly challenging due to the irregular geometry of the wheel hub and spokes, which required accurate measurement and the creation of a detailed 3D model. The LED bank mounts also incorporated precise features to secure the PCB, position the hall-effect sensor, and route wiring through dedicated internal cavities. Once finalised, all mounts were produced using 3D printing.

PCB Board

Figure 4 - Assembled PCB

CAD Design

Figure 5 - CAD design of spoke mounts

The test rig was also developed in Autodesk Inventor, combining the base of an office chair with a bicycle fork to create a stable and adjustable platform. A DC motor and PWM speed controller were selected to drive the wheel, powered by a Makita lithium-ion battery. The speed controller and battery mount were sourced from eBay, while all braces, fittings, and structural adapters were custom-designed and 3D-printed. A view of the complete test-rig assembly is shown in Figure 5.

During the first design iteration, a Raspberry Pi Zero (RPI) was used for system control. This choice was largely driven by convenience—the RPI provides a full operating system, Wi-Fi connectivity, a filesystem, and straightforward Python-based hardware interfaces, which made it easy to prototype and get the system operating quickly. However, the setup introduced several limitations. The hall-effect sensor interrupt suffered from inconsistent latency, leading to unreliable timing measurements. Boot time and power consumption were also higher than ideal.

Controlling and programming the RPI over SSH via Wi-Fi while the wheel was spinning worked surprisingly well, but for the next design iteration it became clear that a more efficient and deterministic platform was needed. To reduce cost, power usage, and startup time—and to achieve more precise timing with Bluetooth support—the Nordic nRF52840 was selected as the new controller.

effort. Fortunately, Nordic microcontrollers are well supported by the Zephyr Real-Time Operating System (RTOS). Zephyr offers the flexibility of near–bare-metal programming while providing threads, memory management, and a wide range of plug-and-play subsystems that accelerate development. The decision was made to run the nRF52840 with Zephyr using a Seeed XIAO evaluation board. This configuration proved reliable and was used for the demonstration video. Additional advantages of the nRF52840 included its compact size and low cost.

In the next design iteration, each spoke mount will carry four LED banks, with an MCU integrated into each bank. This modular approach will allow additional banks to be added easily, increasing animation resolution and visual quality. It will also reduce wiring complexity—each bank will require only two power wires, and the shortened I²C paths will allow higher bus speeds and improved LED responsiveness.

MCU Firmware Overview


The firmware powering the system includes a range of features designed for flexibility, reliability, and easy field updates.
Key capabilities include:
  • Bluetooth Over-the-Air (OTA) Updates - Seamless wireless delivery of firmware upgrades without the need for physical connections.
  • Custom Animation Data Format - A purpose-built file structure that defines LED animations, allowing new visual patterns to be uploaded via OTA.
  • OTA Logging & Test Commands - Remote access to system logs and diagnostic commands to support development, testing, and troubleshooting.
  • Real-Time Timing & Hardware Interfaces - Precise control of timing signals and integration with the system's electronic interfaces.
For a detailed technical description and full access to the source code, please visit the GitHub repository link or the menu.