The Whispering Gallery - Modified Category - 7th Annual BLF/OL contest entry

Great work and persistence :wink:
Surely a keeper after all this :beer:

Wait, what, you have a laser that does that? Impressive The Whispering!

Thanks all. I’m really grateful to those that organized this contest and to BLF in general. I learned a lot doing this project, and that is by far the most valuable takeaway. Stay tuned as I’ll be giving away this light as well as a few kits from the leftover resistors to raise awareness for next year’s contest and encourage more projects and new participants (will take some time to sort through the resistors).

P.S. I don’t own a laser engraver, just had the opportunity to use one.

Here is my bro’s report. This is all his work and I didn’t contribute anything. Note that his example of the light had consistent NMM of 10 s, unlike mine.

1. Reverse engineer the design and capture schematics.

Here is a description of the main circuit components/functions:

  • B1: AAA battery
  • D2: The LED
  • U2: Microcontroller (Probably ATTiny4 or PIC10F200)
  • U1, C1, L1, D1, C2, C3: Boost converter to drive forward voltage of LED
  • FB node of U1: feedback pin - constant voltage reference that provides control loop input for regulating current through D2. I_LED =
  • V_FB/R_Sense, where R_Sense is the parallel combination of all enabled sense resistors R1, R2, R3.
  • R3: LOW mode resistor (always on)
  • Q1A/R1, and Q1B/R2: FET which enables the corresponding sense resistor; enabled by MCU to change brightness
  • R4/R5: Pull-down resistor on gate of FET to prevent undefined state
  • C4: The decoupling capacitor for the MCU. This is what allows the MCU to stay alive during the NMM time. In general a decoupling capacitor provides a low-inductance voltage supply to satisfy the load’s (IC) transient current spike requirements.
  • D3: prevents discharge of decoupling capacitor through LED. This is what allows the MCU to stay alive during the NMM time.
  • Methods
    R1 and R2 values were read off the resistor and confirmed to be within range using multimeter. Since the values were so low, a 4-wire resistance measurement out of circuit would have been required, but was not done since the value was printed on the resistor.
    R3 was measured in-circuit
    C4 was measured in-circuit

2. Take key measurements

The circuit was instrumented for measurements. I soldered 18AWG stranded silicone wire to the board for low resistance connections, since we are dealing with very low sense resistors, and a very low current in LOW mode. The LED anode wire had to be lengthened to fit the current clamp probe. For the battery power input, I scratched off the soldermask on the back side and soldered the wires there because I didn’t want to get solder on the battery contacts (and I wanted to preserve the ENIG finish) in case I wanted to reassemble this flashlight. These wires were connected to a 1.5V DC bench top supply.



  • High mode measured current implies a combined parallel sense resistance of 0.13 ohms, or an R2 value of 0.15 ohms. It is very plausible that the extra 0.15-0.075 = 0.075 ohms comes from the on-state resistance of the pass transistor, Q1B.
  • Low mode current is very difficult to measure. 0.68mA is very close to expected.

3. Determine voltage threshold for moving to next state

  • Initially this was attempted by probing the voltage decay on the microcontroller power rail using an oscilloscope. However, the 10Mohm input impedance of the oscilloscope seemed to cause a fast decay of the power rail. After about 6s the capacitor has fully discharged.

  • Next a bench top multimeter with a 10Gohm input impedance was used. Since this could not capture the waveform, I set a 10s timer (NMM time determined in previous experiments and stated in the user manual) and read the voltage at this time. The voltage was about 300mV. Image is for reference only, not the actual voltage that was seen at 10s.

  • Now, taking into account the 1uF capacitor, a 300mV threshold, and a 10s NMM time, we can approximate the load presented by the microcontroller. It turns out to be about 4.5Mohm.

  • Next, we can use a resistor to model the microcontroller load in simulation. Our results confirm that ~300mV is reached at 10s.

  • Now we can add a second resistor and adjust until we achieve the 300mV threshold at the desired NMM time. In these tests we achieve a 3s NMM time by adding a 1.8Mohm resistive load.

4. Limitations to this study

  • The sense resistors (1.2 ohms and 0.075 ohms) are very low values. The resistance of the transistors (Rds_on and LED wiring will start to play a role here, explaining why the measured currents (especially in HIGH mode) were different than what you would calculate using ohms law (theoretical current calculations in table above).
  • The threshold voltage measured to be ~300mV was found empirically using a stopwatch with a human in the loop. Not incredibly scientific, but a good approximation. A better way would be to place a high-impedance op-amp across the capacitor and read the output of that with the oscilloscope.
  • D3 forward voltage is 0.24V. This was not taken into account in simulations.
  • 3.0V was used for V_BOOST, but really it varied from 2.5 to 3V, minus the forward voltage drop of D3.

5. Works Cited

Finally, here is a photo of the driver with components labelled.

Giveaway is now posted: Completed: Giveaways from my OL contest 2019

Well done on completing your build :THUMBS-UP:

Love it!

I added the red arrows and white text
to show where the pencil line goes

thank for the info

is the pencil graphite enough to eliminate the NMM on the Thrunite Ti3 AAA lights, without getting into soldering tiny smds?

Hi Jon, I would bet that you would see a reduction in the NMM time with just pencil. However, the capacitor I first tested with the pencil trick turned out not to be the one that controls NMM. The correct one is in the photo below, with red arrow (resistor is soldered on in the photo).