User talk:Daveb

From London Hackspace Wiki
Jump to navigation Jump to search

Dave Brown - hacker in spirit.

Project Ideas

Project Status Notes
Reconfigurable sailing proa plan Rob Denny at http://www.harryproa.com has some interesting things to say about Proas and how they could be the basis for a cheap, high performance, spacious sailing cruising boat. Perhaps the ideal cruising boat :). I want to explore the sailing characteristics in a model.
LED lights and lenses for my bike plan http://pilom.com/BicycleElectronics/DynamoCircuits.htm explains the matching of LEDs to bike generators. I plan to have several strings of LEDs with different beam angles and aiming points - and the appropriate string of LEDs turned on for the curent bike speed.

Success criteria:

  • generate some light at low speed
  • generate more light at high speed
  • get it too work
  • dont break the bank

Project Status

Bike Headlight

Have ordered LEDs, reflectors and lenses. Have an attiny85 from the space components. Still need a dynamo, some diodes, mosfets, npns, a circuit and some firmware - oh and maybe a heatsink for the LEDs:). The project is moving along.

Have received the LEDs (white Lambertian (but not the reflectors etc). Have a bottle dynamo, but dont know much about it yet.

Still thinking about what the maximum voltage for the LED strings will be ..

At 0.7A and 25deg junction temp, voltage per LED varies between 3.03(min), 3.7(typ), 4.47(max). And 3.9V(typ) at 1A current.

Some uncertaintity - current might just get to 0.5 A but I am sure the junction will be hotter than 25C, and see but no indication of change in V drop with temp in the datasheet :(.


Assume 4.0V per LED - gives 16V for 4 LEDs, and 24V for 6 LEDs.

Am expecting 4x30deg, 3x15deg and 3x5deg reflecters.

Originally thinking of four LED strings 1 - very low speed - just a 120 deg med power LED (with voltage doubler to get the reqd V) 2 - low speed - one 30deg 3 - med speed - one 30deg, one 15deg 4 - high speed - one 15deg, two 5deg

Of course, the length of the strings depend on the V generated by my bike speed.. not really predictable/

Simplify (only last 3 strings) and no V doubler.


thinking space

New link on impedance matching and MCU control of bike lights :). I am not sure what this means for my circuit and plans.

Switches for LED current

  • This SMD Dual Logic Level MOSFET will control two sets of LEDs directly from the MCU - given enough heat-sink capability on the board and enough voltage from the MCU (3.3 or 5v compatibke , Has ESD, over temp and over current protection... is really tiny! If the logic level REALLY needs to be 3.3v then that is an issue :( 3.3v logic turns into about +3.45v regulator (3.3v + a 200mV diode drop to allow the MCU tp be reprogramed in circuit) with 415mV regulation margin - nearly 4v reqd for the MCU.. when the LEDs start to light up near 3v :(.
  • This TO220 MOSFET should carry the 0.5a curent - perhaps without any heatsinking at all. and combined with a small transister should operate well at a supply voltage of 3v.
  • This PNM34UN is 2A mosfet, with Rds of 0.08 at 1.8V throu to about 0.05 at 4.5V; max Vds of 30V; £0.16 each. there are several similar parts at Vds 30V for a bit more money.
  • PMN27UN is similiar to the above; but 20V max Vds with a bit smaller Rds(on) - also marginally cheaper.

There are a few impacts of this choice..

  • SMD or through hole!!!
  • Many fewer devices from the SMD integrated logic level MOSFETS
  • Higher operating voltages might be required by the SMD MOSFETs

I need to establish the maximmum operating voltage!

Voltage regulator for the MCU

Needs to operate of a widely varied supply voltage. The dynamo generates a voltage proportional to the bike speed. Potentially reaching hundreds of volts. And the higher the voltage climbs, the more power I can use in the LEDs! Many components to deal with 0.5A are specced at about 40 to 60V - so that is a very high limit for the working voltage. A chain of 6 LEDs would need 24v. My plans are for 3 LEDs in a chain - so 20V is a good target. MCU Vcc of 3V (supporting 10MHz clock) these are some possible regulators.

MCU Vcc of 2.5V (max clock of 8Mhz)

Diodes fro rectifying AC

This diode should allow be low voltage drop - to get the LEDs working at lower speeds. Need to be >10V barrier. Higher barrier gives higher drops. So chosen 15V barrier diode.

light sensor

All the Farnell photo-resistors are through hole; makes sense I guess as that way they can be poked through a hole in the casing.

  • photo-resistor or LDR is cheapest at £0.27 - now to find out how to use it, and if there is a reason to spend more.

20V, 30V or 60V diode bridge.

From what I read yesterday, the voltage drop of a schottky diode is a function of the junction temp, the current passed, the reverse voltage barrier, and the size of the diode junction (which I guess becomes cost). There is this £3.19 diode 9A/15V that has a Vf for 1A at 25C less than 250mV. If you could heat the junction to 100C it would be about .1V!! AT 100mA it is less than 200mV Vf.

Since the voltage out of the dynamo is essentially a function of the road speed, it could be quite high. leading to my difficulties in finding low Vf diodes..

If I put a pair of zener diodes across the output of the dynamo - before the rectifier, then the rest of the circuit is limited to only that voltage, and the diodes in the bridge recifier are limited to half of that.

I am not sure if 20V or 30V is the right target voltage for the rectifier. Higher voltages get more complex, as larger logic level MOSFETs seem to need 5.5 to 4.5V gate voltages rather than 3V, 2.5V or even 1.8V. Also, low-drop-out v-reg that will take > 30V as input are rare.

I am leaning towards 20V (or 18V to split the diff between LEDs and specs).


If 20V then 10V/1A seems a useful diode to rectify 0.5A with low losses.

MCU programming

All AVR MCUs come with debugWire disabled :( - see Connecting to a board with JTAG MK2.

To enable debugWire I need to use ISP/ which needs MISO,MOSI,SCK and RESET, VCC, and GND! Can do with the DIP by programming before putting in the board; using a socket.

I wonder how the users of SMD packages manage it?

rough design

  • dynamo->AC
  • AC->2 crossed 5% 19V zener diodes to clip(+/- 5% -> 18 to 20V output) to safe range of rest of system
  • AC->diode bridge->DC (using 10-15V diodes, loose .5V so 17.5 to 19.5 max V)
  • (three of)DC->LED strings->logic level 20V mosfets->GND
  • DC->2.5V reg->Vcc->MCU->GND (requires DC >= 2.8V)
  • AC->diode-> 100k resister->(MCU int0 pin)->2.5V zener diode->GND
  • MCU_reset->Reset_debugWire->100k resistor->Vcc
  • MCU_[3*gpios]->MOSFET Gates
  • DC->1M resister->MOSFET_on->2.7V zener diode->GND (hardware default this MOSFET to on)
  • MOSFET_off(two off)->1M resistor->GND (hardware default these MOSFETs to off)
  • Vcc->LightDependentResistor->MCU_[ADC]->10k resistor->GND

(Micro-controller programming)

  • DC->prog supply pin
  • Vcc->Vref_debugWire
  • Gnd->Gnd_debugWire

NOTES

If the LEDs light up below 2.8V, then I need to think about lower voltage supply for MCU.
One LED string should default to ON - so that while the MCU is booting there is a power consumer to stop capacitors charging to unsafe voltages.
Not sure what the failure modes are and what protection should be added.
Plans for cooling of LEDs are still vaugue.

firmware design

pseudo code


isr(int0)
 {
 freq++ ;
 }

isr(counter_2_overflow)
 {
 // copy current freq to main line, reset freq.
 }

isr(adc_complete)
 { 
 copy adc value to mainline;
 }

isr(counter1_...)
 {
 // implement the lighting policy 
 ?flip the current MOSFETs bit..
 ?change the current MOSFET
 ?change the counter target
 } 

void 
main()
 {
 setup() ; // set the ports, direction etc.
 for(;;)
  {
  if (newFreq)
   {
    {
    DISABLE_ISR ;
    copy new freq ;
    }
   if new freq != old freq
    adjust policy;
   }
  if (newLumons)
   {
    {
    DISABLE_ISR;
    copy new lumons;
    }
   if new lumons != old lumons
    adjust policy ;
   }
  }
 }

inputs and conditioning

policy ideas

  1. if it is dark provide constant light immediately.
  2. if it becomes light, wait for a few seconds to confim it stays light, and then start flashing the lights to make it easier for others to see the bike.
  3. as the speed increases, spend more time with tightly focussed lights lit
  4. as the speed decreases, spend more time with flood lights lit.
  • Flashing LEDs use less power, maybe can lit up high speed strings at lower speeds?
  • Flashing LEDs have higher power limits, so should be able to flash low speed floods even at high speed - to get attention from road users at large angles to the bikes direction of travel.
  • Aim to match the power available to the power consumed by the LED strings

policy mechanism

Four intervals of variable length, applied to selected string of LEDs: off, string-a on, off, string-b on.

The intervals are defined as an array of counter[4]. The LED strings by the MOSFET number in an array of mosfet[4];

This will allow:

  • the fading from spots to floods gradually:).
  • day lashing patterns to be set using any two strings of LEDs.

policy config

  • night vs day lumonosity value.
  • samples of day light required for flashing to start.
  • freq exponential smoothing factor (power of 2)
  • night freq bounds[4] between {floods | mix | medium | mix | spots}
  • day freq bounds[N] between flash patterns
  • day flash patterns[N]

user config

policy values in miles per hour? or are they automated from load/power info?