| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
readings to improve randomness.
Adjusted candle mode to use lower bits instead of upper bits, because the lower bits are more random.
(also, the lower-bit method is slightly smaller in ROM)
|
| | |
|
| |
|
|
| |
therm_cal_offset var).
|
| |
|
|
|
|
| |
(was firing off 1000 times faster than desired, causing several issues)
(now only executes when explicitly requested by the WDT)
|
| | |
|
| |
|
|
|
|
| |
My lights seemed to measure just a bit low, so hopefully this will help.
It bumps up reported values by 0.05V.
|
| |
|
|
|
|
| |
It was bouncing before, and now it's not.
(cut response magnitude in half, increased width of null zone)
|
| |
|
|
|
|
|
|
|
|
|
| |
state, and slightly smaller.
Added a bit of overflow protection since I think I saw it overflow with the prediction weight increased.
Uses immediate temperature (instead of avg) for lowpass reset, to make it less noisy at stable state.
(more trigger-happy reset switch biases it toward inaction)
Avoid using volatile var, to reduce space.
Overflow prevention also caps the maximum adjustment step, which should slightly help prevent overshooting the target.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now actually works on turbo (was previously emitting "temp low" instead of "temp high" while in direct-drive, probably due to an overflow).
Made stepdown work based on an average of the last few temperature predictions instead of just the most recent one. (reduced noise sensitivity)
Made each temperature sample based on 8 measurements instead of 4, to reduce noise.
Made standby mode re-init thermal measurement arrays, to avoid weird behavior next time light is used.
Reduced fixed-point precision to avoid overflows.
Reduced prediction strength to encourage stepping down faster while hot.
(unfortunately also steps down later, I think, if it wasn't already hot)
Not totally happy with new algorithm, but it's the least crappy of a whole bunch of things I tried.
(for example, a PID approach with correction based mostly on I... didn't work very well)
(taking an average of the last few predictions is very similar though, and works)
(but the result is still kind of meh)
Saving this so I'll have a functional base next time I try to improve it.
|
| |
|
|
|
|
|
| |
So far, UI1 and battcheck both work. UI2 and UI3 and other blinkies aren't implement yet.
Added 6-bar battcheck style to match Meteor (ish).
Increased maximum number of clicks to 12, because WTF. If your UI needs 12 clicks, what are you even doing in life?
|
| |
|
|
|
|
| |
Turned strobe into a function to avoid repeating code, and made it tolerate interruption better.
Got rid of delay after battcheck, since it caused problems if the user didn't wait long enough before trying to turn the light back on.
|
| |
|
|
|
| |
Added LVP handling for other modes, including battcheck.
|
| |
|
|
|
|
| |
Added fsm-misc.*, which currently only has interruptible blink functions in it.
(for blinking out numbers and such)
|
| |
|
|
| |
Also, avoid immediate thermal step-down after battery change. (init array with correctly-scaled values)
|
| |
|
|
|
| |
Added ramping support in general.
|
| |
|
|
|
|
| |
Made some LVP values configurable.
Removed high_temperature() / low_temperature() shortcuts for now.
|
|
|
fsm-*.c and fsm-*.h.
|