Bike alternator and LED headlight

I finally got something together that I can show on my project. My Arduino Duemilanove will be the brain for my bicycle headlight system. I've built a 3-phase alternator from scratch that will be used to run high-power LEDs and charge a (small) set of LiIon batteries that provide short-term power when you are stopped at a traffic light or fixing a flat.

The Arduino is managing the output of the alternator to avoid over-volting the rest of the system at high speeds (up to 50 MPH). It's controlling the output of the LEDs based on temperature - so as you ride faster, it will get brighter due to better cooling. And it's managing the charge status of the battery pack. It's also driving a number of indicator LEDs that show which of the three alternator phases are in use, what the temperature status is of the LEDs and an audible alarm in case the LEDs start to overheat (I'm driving them HARD).

Possible future plans include an LCD screen and speed/distance measurements.

I have a blog-of-sorts about it if you are interested in more information.


Is there any noticeable drag when producing 20 watts? I believe an off the shelf hub dynamo typically gets you 3 to 8 watts which is quite a bit less to generate.

Is there any noticeable drag when producing 20 watts? I believe an off the shelf hub dynamo typically gets you 3 to 8 watts which is quite a bit less to generate.

Good question. 20 watts is what around 3% of one horsepower. I too wonder if this is quite noticeable or not, say on a straight away?


The average person can put out about 120 watts for a long duration, so 20 watts is a good 1/6th of your effort. Also, the alternator is MAYBE 50% efficient due to internal electrical and mechanical resistance and other losses. So it's pretty heavy on the rider if you're using all that power. This unit has considerably less drag per watt than any of the cheaper store-bought generators, but I don't have the funds to test the high-end ones.

Drag on the rider is why I'm using LEDs and switch-mode power regulation rather than halogen bulbs and linear regulators. A primary goal is to not generate or consume any more power than necessary. So if it turns out how I want, it will only be drawing about 8-10 watts with 400-600 lumens output when the batteries don't need to be charged.

I'm a lot stronger of a rider than the average person and I don't consciously notice the load. But I do work up more of a sweat and wear out a bit sooner when riding with it on the 20 watt halogen. :)

Update: The headlight system is coming together pretty well, finally. It took me a long time to figure out a couple issues and I was stalled by frying my Duemillanove a couple months ago. But I'm back in business with a Pro Mini, which is what I wanted in the final product anyway. Below is the latest pic of it running.

And the complete code is kept here (updated as I go):

Nice! An Arduino controlled bicycle power/lighting system. A good light is invaluable on those early morning commutes.

Excellent project, useful too ^.^

Regarding the wattage, imagine this:

summer night, just rained, humidity 100%, 80 something °F or worse (like some places in texas), going up a steep hill.

not only will you complain about 8-10W power draw, you’ll curse my friend, curse and swear.

during winter time on the other hand it will be a good thing and make you warm up quickly.

Maybe you could reverse the function somehow. Suck in photons and make rinding uphill a bit easier. Just kidding.

In testing, the headlight drops to about 10% output in still, 85F air (which is still EXTREMELY bright!). Any air movement will cool it a little, so in those conditions, I would expect it to sit around 15-20% output. It consumes about 24 watts at 100%, so during a climb like that, it should be around 2-5 watts. I'm not sure how efficient the alternator is, but it feels very light even at 10-15 watts output.

I have been kicking around the idea of having a manual override that can shut off 1 or 2 of the LEDs or force the system to 50% max output for when you're riding slowly. But I really want all the light output management to be automated. So I have to monitor the alternator's electrical output and act on that. Haven't started down that path yet, but that's the beauty of microcontrollers. I can add the feature at any time with the click of a button! :)

Sitting here thinking - I just realized I have no protection against voltage dropouts that will cause the Arduino to reboot.... hmmmmm. I already need to add some sort of battery backup for brief stops, but I hadn't worked that in yet.

EDIT: And thanks for the kudos too!!

Here are some pics of the other parts of the project:

Alternator w/ rectifier:


Back on track. I just received my PCBs for interfacing the Arduino to everything.

So this weekend I should have a fully operational and completed headlight. However I cooked a coil in the alternator while testing its output. So I'm back to building another one. I wasn't fully happy with the first one any way. It had too much internal resistance and I learned a few things about the axle and bearings that I sort of wanted to resolve. So now I can do all that.

I've still got one more PCB to design and send out for fabrication - the alternator output controller. I had to scrap the idea of shutting off phases of the alternator due to it being ineffective and causing a lot of heat. So the new approach uses a switched capacitor regulator that keeps the output between 18 and 30 volts DC.