aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-standby.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-09-24Added idle_mode() for slightly lower power use without turning off any ↵Selene ToyKeeper1-0/+17
regular functions. (PWM, ADC, WDT all still enabled; only useful in moon mode) Changed default ceilings in Anduril FW3A config.
2017-09-09Reworked thermal regulation.Selene ToyKeeper1-0/+5
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.
2017-08-30Made event handling a bit more reliable while asleep.Selene ToyKeeper1-1/+3
(was sometimes having difficulty getting out of soft lockout mode)
2017-08-19Completely reorganized SpaghettiMonster code into smaller logical pieces: ↵Selene ToyKeeper1-0/+53
fsm-*.c and fsm-*.h.