this post was submitted on 27 Jul 2023
15 points (100.0% liked)

flashlight

2985 readers
9 users here now

Portable illumination

Rules:

  1. Be excellent to each other
  2. Don't be the reason we need to make more rules

Related:

founded 2 years ago
MODERATORS
 

Being able to measure open circuit battery voltage is great, but it would also be useful to measure current while the light is running. That in turn can map to battery runtime and/or lumens. I wonder if any existing boards can do this, e.g. if they have adc pins connected to the relevant sense resistors. If not, it could be a cool feature in future boards.

top 7 comments
sorted by: hot top controversial new old
[–] NightmareQueenJune 5 points 1 year ago (1 children)

While I agree that this would certainly be interesting I don't really know how this could work. First of all: Real current sensing can only really be done with a constant current driver. Not saying that this would be accurate but this should indeed work for an estimation. But now the first problem arises: Most CC drivers also include a FET for turbo and/or the higher range of the ramp. The moment this switches on you're out of luck. Another option would be to add a sense resistor. This - again - would surely work to measure current. But you now have the problem that you introduce an (unnessisary) resistance in the driver, limiting the output of the flashlight (if it includes a FET). And lastly I just think that while it surely sounds like a cool feature it's just not something most flashlight enthusiasts would use regularly. Altering the flashlight circuit for a feature some people may use once or twice out of curiosity with a given flashlight does not seem reasonable and ToyKeeper IIRC has many things on her to do list that she wants to implement. Since this is such a nieche feature that (for what I know) would need hardware modifications on many flashlights out there, I don't think that this will get implemented.

[–] solrize 2 points 1 year ago* (last edited 1 year ago) (2 children)

Thanks both of you. It was intended as a pure hardware question since I can make the software changes myself in principle. So I wanted to know if there were adc inputs on usable places for this on existing boards, and it sounds like there are not. Oh well.

As for the FET in turbo mode, good point. I'm mostly interested in the lower levels though.

I guess tailcap current measurements with a DMM are good enough for my purposes. It would just be cool if it were built into the light.

[–] [email protected] 4 points 1 year ago (1 children)

I guess tailcap current measurements with a DMM are good enough for my purposes.

Only as long as you use a clamp meter.

[–] solrize 1 points 1 year ago

Hmm is that to avoid voltage sag at high current? I think I'm satisfied with just low current, say below 0.5 amp at 1.2v (SP10 Pro on Eneloop) if I can do that with a DMM. I think a DC clamp meter that goes that low is quite expensive. Maybe someday.

[–] thefreeman 3 points 1 year ago* (last edited 1 year ago) (1 children)

if you have an emisar light and can disassemble it, then you can try soldering an airwire from the sense resistor to the button LED pad (sacrificing it for that) or a free ADC pin, but that's more difficult. If that cause problems with the current regulation, add a 10k resistor or the likes.
with a linear driver Iout=Iin so it's simple, with a boost driver Iin=(Vout x Iout)/(Vin x efficiency), thankfully Vin is already bein measured, Vout and efficiency need to be guesstimated.

[–] solrize 1 points 1 year ago

Thanks, I do have a d4v2 but that's a level of modding that I wouldn't want to do for this. I s hoping enough capability might already be in the hardware, to make accessing it into a matter of programming. Maybe I'll just go with lux measurements.

[–] [email protected] 4 points 1 year ago

Reading a voltage would be possible (but the ADC code is already very complex and messy). Some types of drivers have a sense resistor already, but usually it is connected to an opamp and adding another load might cause visible fluctuations in the output.

So yes, it could be possible, but requires a driver redesign and lots of refactoring of Anduril.