Friday, December 30, 2011

Sturmey Archer Dynohub magnet upgrade: progress report

I designed a magnet adapter to hold 20 neodymium magnets in the same positions as the poles of the original Sturmey Archer GH6 Dynohub ring magnet.  The first adapter I made was for 0.125" block magnets.  This adapter worked better than I expected, more than doubling the power output available from the original magnet.  Well, it turns out that, after calibrating my current monitor, the upgraded magnets work even better than I first thought, nearly tripling the dynamo's power output.  In a short-circuit current reading on my multimeter, the upgraded hub saturates at around 1.0A!  Running two power LEDs in series, it gets to around 0.9A at about 45 km/h.  

Great.  However, this is actually probably more power than I need.  While white power LEDs can take well over 1A, the brightest red LEDs I want to use in tail lamps are rated at a maximum of 700 mA.  I think I need to tone it down a bit and try to get that saturation current below 0.7A.  The other incentive to do this is to reduce the drag. Spinning the wheel by hand in the testing jig doesn't give the impression there is much more resistance from the new magnets, but spinning the armature itself on the upgraded hub is much harder than with the original magnet.  So, I designed a new adapter that places 20 0.0625 (1/16)" magnets with the same spacing from the armature (about 0.04").  The sixteenth inch magnets are N40s instead of the N42 eighth inch magnets and they are a lot cheaper.  This time I got them from these fine folks, just north of Toronto.  As before, they are epoxied on with JB-Weld.

Dynohub magnet adapter with 1/16" Nd magnets in place

Here's how it fits over the armature
I fitted this into the Dynohub wheel on my motorized testing jig and measured the current at different speeds, logging the data with an Arduino:

Current versus speed of GH6 Dynohub

The 1/16" magnets seem to be just about right.  At 45 km/h the hub hits just over 700 mA, although it doesn't look like it's quite plateaued.   I might be wise to incorporate some back up current limiting circuitry to protect my red LED at very high speeds.  The resistance from the 1/16" magnets is about as much as you'd expect from a contemporary hub dynamo.  Based on these results, I think I'm going to stick with 1/16" magnets. They're cheaper, easier to install, offer less resistance and produce a peak current that is mostly suitable for the red LEDs I want to use.

The current design leaves the magnets a little exposed.  I doubt they'd ever come loose, even in the exceptional case of contact with the armature.  Still, I've designed a new version of the magnet holder that leaves them less exposed:

Proposed protective magnet holder

 It's more complicated than my current design, so will be more expensive.  The exterior machining is to reduce the weight, but it doubles the price. This should weigh about 190 grams.  Without the outside machining, it would weigh about 270 grams.  Not sure if the extra cost is worth the reduced weight...

I could also get it made out of aluminium, which would make it very light and a little less expensive.  The advantage of using steel is that the magnets stick to it and the attraction acts as a clamp while the epoxy sets.  An aluminium adapter would require that each magnet be individually clamped to prevent them from jumping out of their slots and sticking to one another.

Tuesday, December 27, 2011

Upgrading the wedge base bulb in a Sturmey Archer tail lamp

I'm quite partial to the bullet-shaped tail lamps that were part of the Sturmey Archer Dynohub lighting set (and I'm not the only one). While the head lamp takes a standard E10/MES screw base bulb, the taillight takes a hard-to-find wedge base bulb.

Original capless wedge base bulb. Get 'em while you can at sjscycles.

When I converted my first set of Sturmey Archer lamps to LEDs, I resorted to soldering a jumbo leaded LED onto a piece of PCB that I could wedge into the the bulb holder.  Now, in order to take advantage of the extremely bright red Cree XP-E, I used a slightly modified version of my E10/MES LED heat sink to make a wedge base LED bulb.

Cree XP-E red. 131 lumens @ 0.7A!

Copper heat sink for red Cree XP-E
LED board and wedge base board.
The copper heat sink has a #4-40 tapped hole to mount a rectangular piece of PCB perpendicular to the LED platform with a machine screw.  Wires come through the heat sink platform and are soldered to the wedge contacts:

Completed wedge base bulb with copper heat sink and red Cree XP-E

To get a good fit in the lamp's spring contacts I added a blob of solder at the base of each contact, on both sides.   A tight fit is essential as the heat sink assembly is much heavier than the original glass bulb.

Original bulb and Cree XP-E replacement bulb mounted in lamp
The beautiful bullet!
The Cree XP-E has a maximum current rating of 0.7A.  In a passive dynamo system, it'll get up to 0.6A, so I'll need to ensure that the heat sinking is sufficient.  Unlike my screw base LED bulb, there isn't really any thermal connection between the heat sink and the bulb base, preventing much heat transfer to the lamp body.  I'm hoping that it will run up to 0.7A in flashing mode, the off time lowering the steady state heat sink temperature.

Thursday, December 22, 2011

Flashing dynamo light prototype

As I've discussed previously, I'd like to build a dynamo powered lighting system with a powerful standlight and the option of having the lights flash.  This is a feature that doesn't seem to be available on commercially available dynamo lighting systems, which don't flash and typically have rather weak standlights.  It took me a long time to develop the circuit and I got a lot of help from the fine people on CPF, particularly in this thread.  After a couple of months of tinkering I had a working circuit breadboarded.  It charges a 20F supercapacitor using a current limiting load switch and uses a Zetex boost driver to power the LEDs while stopped.  A high side P-channel MOSFET switches the LEDs between dynamo power and capacitor power and a low-side N-channel  MOSFET is used to flash the LEDs with the output of a (special low-voltage CMOS) 555 timer.

Now the challenge was to turn the breadboarded circuit into something that could fit into the housing of a vintage lamp.  This is what I started with:

Breadboarded dynamo circuit with standlight.
First, I needed to capture the schematic:

Schematic of flashing dynamo standlight circuit (click to enlarge)

I used EagleCAD to do this, which is a very capable and free piece of schematic capture and PCB layout software.  Most of the components I had to make in my own custom library, which I'll eventually post someday.  Most standard packages (SOT23, 0805, SOIC, etc) are already available.  I placed the parts as logically as I could and used the autorouter, which did a pretty darn good job of routing everything in a circle about 1.6" in diameter.  My design rules included larger minimum trace widths and more generous spacing around components than the default rules. After much revision, I wound up with a two-sided PCB design:

PCB layout in EagleCAD
Sparkfun has an excellent PCB layout tutorial using EagleCAD.  I sent the Gerbers off to BatchPCB and a few weeks later received the boards:

BatchPCB boards. Not bad for $3 each!

Now came the hard part.  In order to keep things small I chose all surface mount parts.  I don't have much experience soldering SMT components, but there are several tutorials on Youtube plus some from Sparkfun.  After a couple of hours I felt I had the hang of it and wound up with a reasonably good looking board.   For most components I used a soldering iron and occasionally would resort to using a hot air rework station.

Populated PCB. Huge 20F supercapacitor dominates!

It really wasn't as bad as I thought it would be.  Fine tweezers are essential!  Having a stereomicroscope didn't hurt either (all the time I spent dissecting fruit fly larvae brains and injecting zebrafish embryos is finally paying off...).

To my amazement, the whole thing worked on the first try.  The only problem was that I didn't include an input capacitor for the 555 timer which I had on the breadboard.  Without it, the 555's output is very erratic while the supercapacitor is charging.  I soldered a 10µF leaded capacitor across pin 1 (GND) and pin 8 (Vcc) of the 555 and it worked exactly as it did on the breadboard.  Revision 1.1 of the PCB will have to correct that!

The 6.8V Zener, which regulates the input voltage, gets darned hot as it shunts all the dynamo current during the off cycle in flashing mode.  This could cause a potential failure of the Zener.  I need to test it extensively to see if it fails. If it does, then I'll have to figure out what to do with the dynamo voltage when the LEDs are disconnected during the off period of the flash.  No ideas yet.

Another potential pitfall is that the LEDs are connected in series, so if the rear light becomes disconnected, the  series circuit will be broken and the front light won't work.  The advantage of being in series is that both LEDs get the same current, simplifying the standlight circuit. For now, I think it's a good compromise.

Wednesday, December 21, 2011

Sturmey Archer GH6 Dynohub magnetic keeper ring

The Sturmey Archer Dynohub 'Keeper Ring' has become the stuff of legends. Frequently mentioned in discussions about servicing the Dynohub but never described, it is as rare as hens teeth.  It is, apparently, essential to maintain the GH6 ring magnet's field strength during circumstances in which the armature needs to removed.   A google search did turn up one on auction back in February, which even included a photograph:

The only photograph of a Dynohub keeper ring I could find on the internet

Update: just after posting this I found a wealth of information on the keeper ring in this thread on bike forums, including dimensions and part number!

Other than infrequently turning up on eBay, they are unavailable. Gentleman Cyclist does, however, mention on their parts page that they will soon have keeper rings for the Dynohub (you should take a look at the other interesting bits and bobs they carry for the 3-speed enthusiast).

Well, I had an old Dynohub from '75 that was rusty as all heck. It came from a trashed ladies Raleigh Superbe that was languishing in the basement of Polly's Recycle in the east end.  The armature could barely spin within the ring magnet and the whole assembly was covered in a coat of rusty grit.  Usually a Dynohub can be serviced without the need for removing the armature from the ring magnet, but in this particular hub's case, the armature need a good going over with a wire brush.  So, I had my Internet Material Synthesizer make one out of mild steel #45.  Now, I think my Dynohub magnet upgrade makes the original magnet kind of obsolete, but I was getting a bunch of other parts made so I thought I'd get a keeper ring made as well.  It arrived today:

Machined Dynohub Keeper Ring

It has a 2.700" outer diameter, the same as the armature, and is 0.75" thick.

Dynohub Alnico ring magnet with armature.  Don't remove that magnet without a keeper!

Dynohub ring magnet with keeper

Does it work? I don't know.  I pushed the armature out with the keeper, so the field wasn't disrupted.  The magnet feels about as strong as it did before the armature was removed.  The design is very similar to the original, so I expect it's doing its job.

Do you want one?  I can easily get more made.  They would cost between $15-$30 each, depending on number I get made in one go.  I'm also thinking of offering a magnet upgrade for the Dynohub (this is still a work in progress though...)

If you're interested send me an email (find the address in my profile).

Sunday, December 18, 2011

Copper-based LED bulb fitting and performance testing

I must admit that I was rather enamoured with the elegant design of the finned copper heat sink I had made.  Unfortunately, it didn't actually perform as well as I'd hoped, so I revised the design with the aim of getting the LED lower in the parabola of the reflector and giving up on improving the thermal properties (which were just OK).  This is basically just a chopped down version of the previous design with a larger hole through the centre and a couple of countersunk holes on the top to ensure complete electrical isolation from the PCB.

Revised LED bulb pillar heat sink design
The Internet Material Synthesizer took about 10 days to make this:

I soldered the Cree XP-G LED (still tricky even with a hot air rework station), ran the wires and used a thermal epoxy to stick it into an E10/MES Edison threaded bulb base:

E10/MES Edison LED bulb with copper heat sink
This can now be threaded into any flashlight or vintage bike lamp that takes a miniature screw bulb (albeit in need of a separate driver circuit).  I first tried it out in a Sturmey Archer head lamp:

Flimsy bulb holder of SA headlight 
Unfortunately, the SA lamp has a rather low quality and flimsy way of mounting the bulb in the reflector.  The actual bulb holder is a thin piece of stamped metal that doesn't hold the bulb straight.  This is then pressed in and held by friction in the base of the reflector, where the positive bulb end makes contact with a springy metal tab:

The switch quality is terrible and even a NOS lamp had enough oxidation on the contacts to make switching finicky and provided enough resistance that getting the full current available current from the power supply wasn't possible. So, the original switch and contacts are useless. I'll have to retrofit a higher quality switch on the bottom of the lamp and leave the original switch purely for aesthetics.

Ok, so I've given up on fitting a screw bulb into the original holder of the SA head lamp. I think I can design something that can be pressed (and maybe epoxied) into the reflector.  It will be simpler, won't rely on the flaky original contacts and will probably have better thermal properties.

So, how does the bulb perform in a decent quality lamp holder? For this, I turned to the trusty and well-designed bulb holder of a Luxor lamp.  Conveniently (and unlike SA lamps), both head and tail lights use the same well-made bulb holder:

Luxor makes a better bulb holder than Sturmey Archer
It uses side springs to snap securely into a the base of the lens, which is then fitted into the lamp body with clips.  I drove the LED at different currents from a bench top supply and measured the temperature with my thermocouple-equipped multimeter.

LED bulb ready for testing!  Brown wire is thermocouple.

Now that I've automated data logging of wheel speed, LED current and light output, I should probably just go ahead and make an Arduino-based thermocouple to log temperature as well.  However, that hasn't happened yet, so all I did was log lux data over 20 minutes, and make note of the steady state end temperature.

One requirement of my LED bulb is that it outperform commercially available E10 LED bulbs, so I pitted my bulb against the (I think) now discontinued TerraLUX MiniStar1 TLE-1S (the flanged version still seems to be available).  It is rated at 50 lumens and is the same bulb that I used in my original (and doomed) Sturmey Archer LED retrofit.  I also tried out the 35 lumen E10-WHP, but it put out a paltry 6 lux at 1 meter, so I didn't bother logging the data.  The TLE-1S is rated 1W with its own built in driver. Given 3.4V, it sucked up 0.35A,  so about 1.2W.

The defending champion: TLE-1S

Here are the results:

Lux data (no secondary optics) collected every 30 seconds over twenty minutes. 

Great, the TLE-1S gets blown out of the water by my LED bulb.  It also got surprisingly hot (74.5°C!), although its output didn't drop much as a consequence. Now, to be fair, I didn't collect data for my bulb at 0.35A, but that's because I have no intention of running it at 0.35A.  Ultimately, it will get any one of the three currents tested: 0.5-0.6A from direct dynamo output or 0.75-1A from a dynohub magnet upgrade or buck driver.  Still, speaking as a former scientist, this experiment was not properly controlled...

Surprisingly, the revised LED bulb performance is better than my original design; although the initial output is about 3-5 lux lower across the board (this could be due to LED-to-LED variability as well as the fact that I burned off the LED dome of my first prototype!), the thermal performance is better, resulting in lower steady state temperatures and, consequently, less light drop.  This is probably because the bulb base is in contact with the fairly bulky Luxor bulb holder, which is increasing the surface area by at least two fold.  Although the contact area between the bulb base and holder is small it seems to be enough to improve thermal performance.

Overall, I'm pleased with the result.  This bulb will work at high currents in a variety of vintage tail lamps and, at the very least, in the Luxor head lamp.  Unfortunately, the bulb holders of both the Sturmey Archer head lamp and the Radios No. 18 are too flimsy and will require individualized solutions.  I think I can design a simple replacement LED/holder combination  that won't require any modification to the lamp.

One problem is that I still think the LED is a little high in the parabola of the Luxor reflector.  Not sure how much more length I can shave off my copper pillar while leaving enough room for mounting and wire routing holes...

Thursday, December 15, 2011

Logging lux data with a hacked DX light meter

I've been using an Arduino Uno to log data for my buck converter project.  I've been logging the LED current using a high side current monitor and the wheel speed on my testing jig using the pulsed output of the dynamo, which I can count using a clever zero cross detector that is inherent to the inputs of all AVR microcontrollers.  The data is sent to a computer via serial interface.  Measuring LED current is all well and good, but the real performance measurement is the LED light output, which is not only current dependent, but also temperature dependent.  So, I got a cheap-o digital lux meter from DealExtreme branded as 'Ceto', which allowed me to take a few readings to see how the light output dropped with increased LED temperature.  

DealExtreme SKU 5100 digital light meter

It would be nice, though, if I could log this data digitally in the same way I can log current and velocity data.  I thought there might be a way to decode the signal going to the LCD to get a digital output, but it turns out that this is way complicated, requiring, at the very least, a datasheet for the LCD (and a touch of genius doesn't hurt either).  Disappointed, I resorted to looking up the identifiable ICs on the printed circuit board. There are some quad gatesbilateral switches and a dual flip flop, which I speculate are involved in analog to digital conversion and range switching.  Anyway, there was one lonely 27M2BC dual opamp right by the sensor input that looked promising.  The datasheet even has a little "Photo-Diode Amplifier" application circuit on page 32.

27M2B opamp on lux meter circuit board
Pin 7 has an output whose voltage matches the lux reading on the LCD

I probed around a bit to see if the designers had used the same circuit in the datasheet, but quickly found out that this chip didn't have the same pinouts as the label on the package suggested. Maybe it's a counterfeit? The Texas Instruments logo sure does look a bit fuzzy.  In any case, I found one pin (pin 7) whose voltage changes with light input, from 0 to about 2.2V.  Turns out the lux value displayed on the LCD is a base 10 multiple of the voltage on pin 7, the order of magnitude being determined by the range switch.  For example, when in the 2000 lux range, 0.178V = 178 lux:

Opamp output voltage is scaled by some factor of 10 to the actual lux reading
So, all that needs to be done is to read the voltage on the opamp's pin into the Arduino, multiply according to the range setting and be done with it.  The only issue is that my current monitor is read relative to the Arduino's 1.1V internal reference, so any value over 1.1 volts will be clipped by the ADC.  This essentially halves the lux value that each range can read, which isn't too big a deal.  The default reference of 5V would allow the full range to be measured.

I put a 3.5 mm mono jack in the front panel to get the signal out to the Arduino:

Pin 7 is brought out to the front panel via 3.5 mm mono jack
Some tweaking in code was required to get an accurate voltage reading. I'm using a fast ADC conversion on the Arduino, which makes things a little noisier.

Arduino pulling data from lux meter

So, now I'll be able to gather lux data at different speeds!

Tuesday, December 13, 2011

Vintage Radios bicycle lamps

I've only been able to find a little bit about these lamps.  I have a Radios No. 18 head lamp. Its reflector is slightly splotchy and tarnished and there is a little dent at the point.  They are a pretty and classic example of the streamlined bullet style of the era with a little Art Deco flare on the spring loaded lens release.   A recent auction on Ebay France turned up a couple of really nice specimens.   Unfortunately, somebody else wanted them more badly than I did.   Photos are from the seller.

They seem to be going up in price with some NOS examples going for over $100.  Someday I'd like to get a nicer No. 18 like the one pictured here, with what looks like a spotless and well-preserved reflector.  The fender-mounted tail lamp is also very beautiful:

Friday, December 9, 2011

Hot LED: lux readings of a Cree XP-G on a copper heatsink

After musing about it for a while, I got some advice from Kevin, of Lambda Lights, on designing a copper heat sink for my LED E10 bulb project.  Kevin's elegant solution to heat sinking is to solder the LED's thermal pad directly to a copper nub poking through a slot milled in the PCB.  However, he ultimately concluded that there would be little point to machining pillars out of copper for an LED light bulb application as the heat has nowhere to go beyond the surface of the copper (ie. it is not attached to a larger heat sink or in contact with a housing or chassis of any kind).   My enthusiasm and greenness beat out Kevin's sage wisdom and I went ahead and had a prototype copper heat sink made for a Cree XLamp XP-G.  I had them machined by a company in Shenzhen that did a great job for a great price (less than one tenth what a couple of USA prototyping services quoted me).  I reasoned that adding a few fins would aid in shedding heat to the surrounding air, so the design became fairly baroque:

Copper LED heat sink for Cree XP-G. The fins add about 2 square inches of surface area.

In a nifty kind of internet 'digital to analogue' conversion, my design went from virtuality to reality in 10 days:

Copper nub pokes through hole milled in PCB
For the first time I used Seeed Studio's (yes, there are 3 Es there!) Fusion PCB service, which turned out to be cheaper and faster than than BatchPCB, although the board quality doesn't seem to be quite as nice.  The main impetus for using Seeed was that they can mill internal slots in their boards, whereas BatchPCB cannot.  

I soldered the LED on to the board and heat sink with a heat gun, which proved to be a challenge; I quite literally blackened one side of the PCB and melted off the dome of the LED!  The LED survived, although I don't know if its performance is at all affected by its rather rough (and out of spec) treatment.  This experience prompted me to finally invest in a hot air rework station, which is currently in the mail.

Cree XP-G soldered directly to copper heat sink.  Overzealous heat gun use

After a few days of admiring my creation, a couple of things arrived that actually allowed me to test its performance.  After wanting one for years, I finally caved and got a Fluke multimeter. It's the 'Not For Sale Outside of China' 17B model available through DealExtreme.  Genuine Fluke for a about one third of a similarly equipped US market model, although the warranty is automatically voided by export.  Most relevant for this application though is that it has a thermocouple thermometer, so I can measure the temperature of the heat sink by direct contact.  With a bit of thermal grease, I was able to wedge it into the space between fins and make good contact with the heat sink.

Thermocouple on LED heat sink with thermal grease

New Fluke 17B multimeter!

 In the same package was a cheap lux meter to let me measure the relative output of the LED being driven at different currents at different temperatures.

Rudimentary lux meter set up. Response time is impressive: meter is showing lux from the camera flash!

My excitement was tempered almost immediately by two realizations:  First, my design puts the LED way too far above the vertex of the parabola of the reflector, negating any advantage of using the original vintage optics.  That was kind of a dumb oversight! Second, as Kevin predicted, the heat sink just gets hot; there isn't enough air flow to cool the heat sink sufficiently, even with the addition of fins.  Running at 1A it takes about 20 minutes or so for the heat sink to plateau at almost 100°C.  That is considerably hotter than my goal of keeping the heat sink at or below 80°C.  Luminous flux decreases as the junction temperature of the LED increases, reducing efficiency and LED life.  

I measured the lux at different currents, reading the initial lux as well as the lux once the heat sink had reached a steady state temperature.  Readings were taken at 1 meter in an otherwise dark room (lux = 0) without any secondary LED optics (and a missing LED dome!). Ambient temperature was about 22°C.

As you can see, a higher steady state temperature results in less light output.  About 20% reduction at 1A, 13% at 0.75A and 9% at 0.5A.  So, I think there will be little point to driving these LED bulbs beyond 0.75A, which is about what an upgraded GH6 Dynohub can put out.  Of course, I have to change the design to drop the LED down to the approximate level of a bulb filament so that it's in the optimal position within the parabola of the reflector.  This necessarily will be a smaller heat sink (lower mass and surface area), so it will heat up faster but I expect the steady state temperature shouldn't be too much higher.  Waiting for the new design in the mail to find out...