aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-adc.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Reworked thermal regulation.Selene ToyKeeper2017-09-091-31/+54
| | | | | | | | | | | | | | | | 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.
* Started a Meteor M43 clone UI.Selene ToyKeeper2017-08-311-0/+5
| | | | | | | 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?
* Avoid suspending at weird times by deferring the call to standby mode.Selene ToyKeeper2017-08-261-0/+4
| | | | | | 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.
* Made 4bar and 8bar battcheck styles work.Selene ToyKeeper2017-08-251-2/+3
| | | | | Added LVP handling for other modes, including battcheck.
* Added battcheck mode to ramping-ui. It's bigger than I had hoped. :(Selene ToyKeeper2017-08-251-0/+24
| | | | | | Added fsm-misc.*, which currently only has interruptible blink functions in it. (for blinking out numbers and such)
* Don't send underheat warnings when LVP is active. The signals conflict.Selene ToyKeeper2017-08-241-5/+5
| | | | Also, avoid immediate thermal step-down after battery change. (init array with correctly-scaled values)
* Added a ramping UI example.Selene ToyKeeper2017-08-241-0/+2
| | | | | Added ramping support in general.
* Added thermal regulation to SpaghettiMonster / Baton.Selene ToyKeeper2017-08-231-4/+132
| | | | | | Made some LVP values configurable. Removed high_temperature() / low_temperature() shortcuts for now.
* Completely reorganized SpaghettiMonster code into smaller logical pieces: ↵Selene ToyKeeper2017-08-191-0/+136
fsm-*.c and fsm-*.h.