Flashlight Firmware Repository

Its most frustrating. I don’t want to be running an MTG2 on a FET without LVP

OK so I haven’t used this torch for a while and last time I powered it with 2x NCR18650B for long run time. This time I’m using 2x 30Q and I’m not suffering LVP problems, managed a whole 120 seconds turbo time (never happened before). So I guess the high discharge batteries don’t voltage sag anywhere near as much and that was the cause of my issue.

Scrap that. Its defiantly better but they just got to 7.9v and now LVP is cutting in. I think I’m just going to have to do this on by eye.

Using the 2x 30Q has caused me another issue, the springs aren’t long enough now.

P.S. My ADC critical is 120

If I actually used those lights for any real purpose it’d be a major problem, but since most of my lights are just to show off from time to time, I rarely let the cells go below 3.8v anyways. Still frustrating though.

Yes, open up battcheck.c and look for this part near the bottom:

    while(1) {
        PWM_LVL = 0;

This sets the output level it uses during measurement. Change that 0 to something higher, and you should be able to measure voltage under load.

Or you could turn off LVP entirely.

Or perhaps add a battcheck mode to whatever firmware you’re using, so you can check voltage without opening the light. It’ll probably be a little awkward at higher voltage though, since all the code assumes a voltage range of 2.5V to 4.4V. The easiest method is probably using the “4bar” or “8bar” style, with voltages measured from the actual light but cut in half for what the code sees. Like, if you measure an ADC value of 200 at 8.4V, you’d need to tell it that 200 is actually 4.2V to make it fit into the expected range. The relative full-ness meter should still work though.

I just got a thing which can measure current and voltage simultaneously, and tested it with a 2.8A Convoy light. My 20R cell measured at about 3.9V on moon mode but on turbo it said the voltage had sagged to about 3.4V. I’d imagine that a low-amp cell probably sags even more, but at the moment I can’t test it. Need to build a custom kernel for the thing before it’s working again.

Thanks. I didn’t know Batt check worked at higher outputs. I will be giving this a go later

The drawback to calibrating under load is that it could potentially make LVP useless. I mean, let’s say it’s calibrated for a 0.5V sag, with step-down or shutoff at 2.8V. The turbo mode would step down at a real (sagged) voltage of 2.3V, which might be okay. But after it steps down all the way, it wouldn’t shut off until the voltage gets down to 2.3V again, too low to be useful. So, it’d step down at an appropriate time on turbo, but it might try to stay on low mode until long after the battery is drained.

I haven’t tried it though. I’m not really sure what to expect. Be sure to test it before depending on it. :slight_smile:

I made a thing. Haven’t tried it yet; will have to wait until tonight.

It’s a “goodnight” mode on my CNQG brass 18650 light. The idea is that it’ll provide light for about an hour then shut itself off (as much as possible). It’s intended to be ceiling-bounced from a night stand while going to bed.

More specifically, it blinks out the voltage (whole volts then tenths), ramps up from moon mode to low over a couple seconds, then ramps back down over about an hour, then shuts itself off.

If my measurements and calculations are correct, it should last about a year per charge. It looks like it’ll use about 8mAh per night, or about 10mAh if I forget and leave it “on” all day. On a 3100mAh cell, that works out to very approximately a year of runtime. This mode bypasses LVP though, so I made it blink out the voltage first to let me know when it’s about ready to be charged.

At the moment I have it in the main mode sequence between moon and low. So, it’s moon, goodnight, low, med, high, turbo, then all the blinkies. On other lights I’d probably put it a bit later in the cycle though, like just after battcheck.

Does this sound like a thing anyone else might find useful?

I could see replacing battcheck with it.
I could also leave off the blinking the charge level every time and instead give a few warning blinks when it under 50% then go to low, and if the cell is under 25% give the warning blinks and stay in moon.

In “goodnight mode” it doesn’t actually enter the part of the code which checks the voltage. It also never goes above the “low” mode, since it ramps slowly from there to moon. Then it shuts down into the lowest-power mode it can, which uses a small fraction of what moon mode uses.

Warning blinks could be useful, but it’s likely they might not be seen since the user is presumably trying to sleep.

So, basically, it’s already executing the LVP procedure… just a bit slower and smoother, and without actually checking the voltage. With an estimated 300+ full nights worth of charge per cell, and a voltage reminder before starting, I’m not too worried about it.

Anyway, it’s kind of a quick kludge I added to one of my personal lights. I’m wondering if it’d be worth making it more robust for others to use.

This is pretty cool, & would be very useful in a lantern.

Configurable sleep time would be nice to have as well.

:beer:

I am intrigued. I often use my flashlights for this purpose. However, I usually is lights with a magnetic tail and an eswitch. Right now I’m using an Olight s30. This way it sticks nice to the metal on my night stand and I can still asp access the button on the side. Idk if this feature would be useful enough to sacrifice the side switch or not? I think it’s cool though.

Prior to the s30 I used the candle mode on one of dr jones rgbw drivers. I no longer have this light, but this would be a nice feature on lights with a candle mode as well.

Hah, so far the delay mechanism is designed to be small, not configurable. :slight_smile:
It just goes through each PWM level from ‘low’ to ‘moon’, in order, and delays at each step for 255 seconds. Then it shuts off. When I checked last night I think that ended up being 49 minutes total, but I’ll probably reflash it to get it closer to 60 minutes.

I didn’t mean warning blinks during the running, I was thinking of that instead of the voltage reminder at the start.

Latest updates to Narsil released and posted. Details in this 25/45/85 thread post: https://budgetlightforum.com/t/-/34900/914.

Sorry, but still feel I got more to go, but this version has a few good bug fixes, and some improvement tweaks to ramping..

Thanks Tom. I should be able to have a go at it this weekend. Theres still not enough hours in the day.

No prob! I know what you mean -- work pressure, backyard garden is in full stride, reviews, support, software, mod'n madness.

I feel like pull'n a quote from another movie, but no time..

Still house reorganizing. :weary:

Is there a ‘ready to go’ firmware available for;

Attiny13 / FET+1 / e-switch?

Just searching now, but thought I would post the question as well.

Cheers :beer:

-edit;

Looks like STAR_momentary version 1.6 should do the trick. Been a while since I built a 13a driver!

Alright guys, I need some help. Talk to me like I’m a total noob.

I am still using 13a’s, but I have found a few bugs in my version of blf-a6 that was adapted for Triple channel. So I figure now is as good a time as any to try bistro on a 25. I haev not even used the new system of config files or whatever they are called, I just alter the c file for every build and have a library of the ones I have used in other lights.

So, step by step, how do I configure bistro and flash to a 25, assuming I am already setup to flash hex files to 13’s?

Do you use linux or Atmel studio to compile right now?

Flashing the hex file is easy, exactly the same as what you are doing now, just with a command line change to the 25 instead of the 13A and the associated fuses.

Compiling is a bit different due to the extremely tight space constraints.

I have a hex file for bistro tripledown in the Texas Avenger thread that is setup for a 19.1K R1 that you can try, just make sure you get the correct fuse settings and command, I can dig the one I use out if you need.

The weather is supposed to cool down this weekend, hopfully it won’t be 90f in the house with 80-90% humidity and I will be able to work on the drivers a bit more. Gonna calibrate one for a 22k R1.

The nice thing about bistro is that since it has so many user adjustable settings you don’t need to adjust much on a light by light basis. Simply select a different mode group.