I wanted to share an old project that I once made and was even commercially available for a while. The project is more than 15 years old so I am happy to share the materials. Maybe it will inspire someone or they will want to make such a device themselves. The code is 100% working and everything needed is in the zip.
It is licensed by MIT, so you can use it at will Everything is in the file: firmware (atmega168), hardware (pcb) in altium designer, "bill of materials", website, manuals in two languages, box design.
There are two versions of the device standard and compact. The standard version consists of two parts: a module with batteries and microcontroller and a module with leds connected by an rj45 cable.
The compact version is cheaper because there is only 1 PCB with everything. It is a much slicker, improved version 2.
If you decide to make one, I suggest the compact version.
If anyone would need such specific RGB leds as in the project, sd card slots or buttons, I still have something in stock - please write on priv, I will give for what grace and shipping costs
Good luck.
@ElektrodaBot
Attachments:
swiatla.zip(62.97 MB)
You must be logged in to download this attachment.
I wanted to share an old project that I once made and was even commercially available for a while. The project is over 15 years old so I am happy to share the materials. Maybe ko...
Thanks for sharing the project and the MIT licence
Great job and a nod for the full package: firmware on the ATmega168, PCB designs in Altium, BOM, instructions, page and box design. From the description and materials, it appears to be a POV (Persistence of Vision) effect based LED display, with two hardware revisions: "standard" (driver + LED strip after RJ45) and "compact" (all on 1 PCB). The recommendation to build the 'compact' version makes a lot of sense - less mechanics and more reliability.
Below I've gathered specifics for those who will want to recreate the design in 2026, and suggestions for sensible upgrades without spoiling the spirit of the original.
---
What to check before ordering components (checklist 2026) ccc8e629
- Replacement availability: - ATmega168 → in case of shortages: ATmega168PA or drop-in ATmega328P (more Flash/RAM). - Linear stabiliser/buck: select under assumed LED current and battery voltage. - MicroSD slot: footprint compatible with BOM; beware of "card detect" (different logic). - Connectors: RJ45 in standard version can be replaced by JST-VH/MicroFit (better vibration resistance). - Power supply: - If the original used AA/AAA, today 1×18650 Li-Ion with BMS and USB-C charging is more practical. - Provide UVLO (low voltage cut-off) and polymer fuse. - LEDS: - If discrete 4-pin RGB: leave original or use LEDs with comparable Vf and brightness. - Check values of limiting resistors and current per channel (thermal!). - Mechanics and environment: - Balance the wheel (PCB and battery mass symmetrically). - Protection with conformal varnish, nylon spacers, cable extraction, sealing of sockets. - Programming: - ISP programmer (USBasp/Atmel-ICE). Check fuse bits (clock source, CKDIV8 divider, BOD). - File system: small FAT (e.g. PetitFS). Take care of short file names and alignment to sectors. - POV synchronisation: - Sensor (reed/Hall/accelerometer?) - critical for image quality. Good to have 'zero' angle calibration.
---
How it works (technical brief)
- The MCU (ATmega168) generates a line-by-line image based on timer interrupts, synchronising with the rotation pulse. - The image data is read streaming from the SD card (due to limited 1 kB SRAM). - LED control: - With discrete RGBs we usually have multiplex + PWM (software or hardware), transistors/N-MOSFETs for current. - Correct return ground, short current loops, decent decoupling (100 nF at sections + a few ×10 µF on the rail) are key. - Optics: - Brightness vs. speed: slow gear needs more turn-on/Gamma time, fast gear needs shorter time (anti-pull). - It is worth having a gamma correction board and simple compensation for non-linearities at low fills.
---
Proposed upgrades (without rewriting everything from scratch)
- Drop-in MCU: - ATmega328P as 1:1 replacement (more Flash for graphics/effects, same tool family). - Power supply: - 1×18650 + BMS + USB-C charger (e.g. module from TP4056/MP2615). Add UVLO ~3.0 V and soft-start inverter/buck. - LED and control: - Stay with discrete RGB (original look), but consider a 16-channel current driver (TLC5940/MBI5024/TPIC6B595) - stable brightness regardless of voltage. - If new: addressable WS2812B/WS2815 on flex tape - will simplify firmware but change nature of design. - Synchronisation: - Add accelerometer/gyro (MPU-6050/ICM-42688) - smoother operation for speed changes and better 'zero' position. - Firmware: - LUT arrays for gamma, angle correction, auto-start/auto-stop thresholds, simple playlist mechanism from SD. - ISR jitter minimisation (interrupt priorities, 'bare C', avoid long critical sections). - EDA and production: - Parallel export to Gerber + KiCad (for those willing) - will facilitate replication. - DFM: larger socket pads, M3/M2.5 mounting holes, keep-out at edge, ISP/GND/VCC test-points.
---
Safety, legal and operational ccc8e6262629
- This is a decorative light - not a replacement for approved lights. Use on a public road may be subject to local restrictions. - Vibration and moisture are the main enemy: cable lashings, silicone adhesive under heavier components, conformal coating. - Thermal: at full white, currents add up - check temperature of diodes and resistors after 10-15 min of operation.
---
For those building - a quick commissioning plan ccc8e6262629
1) Assemble just the power section + MCU + ISP. Check current consumption "empty" and clock. 2) Add one LED segment and run PWM test (palette, gamma). 3) Connect the rotation sensor and check the stability of the image at different speeds (the axis drill works surprisingly well for testing). 4) Finally, add a microSD and sector read test; only then FAT and graphics. 5) Secure the mechanics and do a field test after dark, controlling temperatures.
---
Questions/additions that will help the community ccc8e6262629 ccc8e6262629
- How many diodes are on the "line" and what is the control topology (multiplex/constant rows, current values)? - What sync sensor did you use in the final version (reed/Hall/IMU) and what is the "zero" calibration procedure? - What stack for SD/FAT did you use and what are the limitations of the graphics/animation formats? - Does the "compact" version already have ESD/TVS protection on the lines to the diodes and SD? - If you have a list of replacements (EOL → available today), it's worth adding it to the BOM as a "2026 alt".
---
If you upload a zip to the thread (or provide an abbreviated description of the pinout and block diagram), I can: - prepare a "2026-ready" variant of the BOM with replacements, - propose a modification under 18650 + USB-C, - throw in files for KiCad and a short startup note.
Great initiative - thanks for 'dusting off' the project and MIT. This is exactly the kind of material that teaches practical electronics from schematic to code to mechanics. Good luck to all who will be assembling!
You can call me in any topic by writing @ElektrodaBot. Disclaimer: Some answers provided by the ElektrodaBot may be inaccurate. Elektroda not responsible for accuracy, reliability or completeness of the information presented. All ElektrodaBot responses should be verified by the user. OpenAI can monitor and save information entered after calling ElektrodaBot.
In the file is everything: firmware (atmega168), hardware (pcb) in altium designer, "bill of materials", website, user manuals in two languages, box design.
Hello
Interesting project, I downloaded the package from the link expecting some kind of schematic but didn't find it, as I don't have Altium I only saw the gerber files. I have checked the *.cdr files but they are just the appearance of the finished pcb. Is it possible to see a schematic diagram somewhere?
Thanks for sharing the project! Just when the cycling season is starting and people are making / buying more and more gadgets for their wheels. Text me a Parcelmate on Private Message and I'll send a little thank you.
>>21850712 I don't remember exactly what the speed must be, but I remember that it is best to do 4 pieces per side i.e. a total of 8 pieces per wheel then driving really slowly the effect is great. With 1 piece you rather have to drive at least 15 km/h for there to be any effect.
The cost of making 1 wheel is not too high, as it is only 50-60 PLN, so if you want a super effect, you have to reckon with the cost of 200 PLN per wheel side (4 wheel pieces). You can also try two pieces to start with, which should be fine. With even numbers you don't need to do any counterweight, because the modules will be opposite each other. I attach an old film with 1 module standard version.
Attachments:
2.mp4(21.75 MB)
You must be logged in to download this attachment.
I should also add that the package also includes a programme for importing images as graphics suitable for display on the device, which means that you can upload and create your own images. The source code is also included. To run this program, there must be a file named "urbanbiker" on some disk in the root directory - the program is designed so that the user has to insert a micro sd card into the computer and then the program detects it and automatically edits it. The micro sd card is detected just as I described above.
The final version of the PCB is UBC_pcbv2-final.PcbDoc
The file panelv2.PcbDoc- is the version to order 10 pcb's per panel.
Regarding the BOM I have analysed and some components are poorly available today or the names have changed(below replacements or refreshed names):
LM3965S-3.3 -> LT1963AEST-3.3#PBF
10.00M SMDHC49S -> 10.00M-SMDHC49R
TC 68/6.3-SMDC -> TAJC686K010RNJ
TC 33/6.3-SMDC -> TAJC336K020RNJ
SMD0805-47K-1% -> 0805S8F4702T5E
SMD0805-750R -> 0805S8F7500T5E
KEYS2479B -> BC3AAAPC
I am attaching an old video with 1 module standard version.
Thank you for the video. Indeed 1 piece is not enough and as you write- an even number compensates each other in weight. Greetings.
Not only even, odd too (-: . Three pieces and more can also be given symmetrically without any problem (with four "sides" it's always a few gold cheaper).
Oh cool cool, nicely done.
My avatar is a remnant of a similar design about 25 years ago , ridden in my kid's bike.
Unfortunately I never did a commercial trial, due to the prohibition in Polish law of any modification of factory lighting devices on road vehicles and adding other than those required by law, people would have paid fines, I don't know what the legal status is today.
But cool project .
Yes, in Poland rather only for mass events or riding on the property . However, it mainly went abroad. People on e.g. Burning Man were buying for themselves.
On the other hand nothing stands in the way of e.g. making a fan with a screen. You can modify the code and make a clock, for example. Of course, you have to take centrifugal force into account, so that you do not get hit by e.g. a battery. The responsibility is on the builder. There are many possibilities. I have seen such ready-made Chinese screens that display advertisements.