aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merged fsm branch, mostly to get new ADC code (thermal regulation and ↵Selene ToyKeeper2020-03-1635-443/+368
|\ | | | | | | voltage monitoring)
| * removed more references to THERM_HARD_TURBO_DROPSelene ToyKeeper2020-03-164-19/+0
| |
| * merged adc-rework branch, which rewrote all ADC code (voltage, temperature, ↵Selene ToyKeeper2020-03-1631-408/+365
| |\ | | | | | | | | | | | | | | | | | | and everything touched by those) and seems to greatly improve the thermal regulation
| | * fixed a few things in ramping-ui, rampingiosv3, and werner's UISelene ToyKeeper2020-03-163-14/+13
| | | | | | | | | | | | | | | (just copied a few updates from anduril, particularly regarding FSM's "temperature" variable)
| | * merged some misc fixes from pakutrai, cleaned up comments, removed unused ↵Selene ToyKeeper2020-03-1615-87/+18
| | | | | | | | | | | | symbols
| | * increased blink speed slightly, and added a library function to blink out ↵Selene ToyKeeper2020-03-161-3/+25
| | | | | | | | | | | | 16-bit numbers
| | * deleted commented-out WDT code from previous revisionSelene ToyKeeper2020-03-161-7/+0
| | | | | | | | | | | | | | | (had only saved it so there would be a note in history about why it's gone)
| | * cleaned up WDT ADC timer code slightly, and removed a bit of redundant codeSelene ToyKeeper2020-03-161-6/+8
| | |
| | * reduced regulation jitter by biasing errors toward zero by a constant amount,Selene ToyKeeper2020-03-161-1/+14
| | | | | | | | | | | | | | | | | | | | | which mostly impacts small errors (and reduces jitter during the flat phase of regulation) while leaving large errors pretty much unaffected... also, made acceptable thermal window smaller to make up for this new extra tolerance
| | * the ADC sample count doesn't need to be 16-bit any more, and isn't really a ↵Selene ToyKeeper2020-03-152-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | count any more... ... just a boolean flag for whether this is the first sample or a later sample (so I changed it and reduced the ROM size by ~28 bytes)
| | * removed dead comments and dead codeSelene ToyKeeper2020-03-151-28/+2
| | |
| | * replaced temperature_timer (which wasn't even being used) with a variable ↵Selene ToyKeeper2020-03-151-27/+43
| | | | | | | | | | | | | | | | | | | | | | | | delay between warnings, so large warnings can remain frequent while small warnings are separated by more time, based on a cumulative error counter which must pass a threshold before the next warning is sent (this is producing good test results so far on D4v2 and D4Sv2)
| | * tried to make thermal code a bit less twitchy...Selene ToyKeeper2020-03-133-13/+19
| | | | | | | | | | | | | | | it regulates really fast on D4, but once it's stable, the adjustments are too large
| | * went back to slower clk/128 ADC timingSelene ToyKeeper2020-03-139-9/+9
| | |
| | * went back to continuous lowpass because it had the best noise reductionSelene ToyKeeper2020-02-282-52/+74
| | | | | | | | | | | | | | | (also, now treating smoothed ADC values as 11-bit, with the lowest 5 bits chopped off to eliminate noise)
| | * brute force method for reducing ADC noise -- average a ridiculous number of ↵Selene ToyKeeper2020-02-052-20/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | samples (because, for some reason, even though 64 samples is plenty in a test program, it ends up being extremely erratic when used inside Anduril... and I'm not sure why) also, use 15-bit ADC values instead of 16 bits, in the temperature logic (to help protect against integer overflows) ... but this code still doesn't work well. It regulates down *very* fast, and then gradually rises until the next extra-fast drop-down. :( ... also, tempcheck mode sometimes changes by 4-5 C between readouts, which is worrisome. ... and factory reset is still broken.
| | * still doesn't work, but at least it's a bit less broken than before...Selene ToyKeeper2020-02-051-8/+12
| | | | | | | | | | | | | | | | | | (ceiling value was all wrong, and the response magnitude was way too big) (also, temperatures here are unsigned, since freezing is about 270 in ADC units)
| | * first pass at a smaller simpler thermal regulation algorithm...Selene ToyKeeper2020-02-051-75/+52
| | | | | | | | | | | | ... doesn't work well, but I'm saving it so I can experiment with other methods and maybe revert back later.
| | * replaced Anduril's gradual adjustment speed code with a smaller simpler versionSelene ToyKeeper2020-02-051-43/+17
| | |
| | * saving state of ADC / WDT refactoring before doing more changes... what ↵Selene ToyKeeper2020-01-305-76/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | changed so far: - removed LVP lowpass and thermal regulation lowpass logic; it's probably redundant now - slowed ADC deferred logic timing to 4X per second instead of 16X, because there doesn't seem to be much reason to do it any faster - reduced thermal event rate-limit to just 1 second, for more responsive regulation - added "EV_temperature_okay" signal, to help stop adjustments at an appropriate time instead of going to far - sped up sleep LVP to one measurement every 8 seconds instead of 16, to help the aux LEDs respond to voltage changes faster (effect on standby time is negligible) - make sure the WDT doesn't set the ADC channel or counter... except in standby mode
| | * switched to a pseudo-rolling-average method to reduce noise, set prescaler ↵Selene ToyKeeper2020-01-3010-17/+22
| | | | | | | | | | | | back to 64
| | * increased effective ADC resolution by switching from continuous-lowpass to ↵Selene ToyKeeper2020-01-291-64/+43
| | | | | | | | | | | | sum-of-discrete-window method
| | * remove truncation noise by adding 0.5 to each resultSelene ToyKeeper2020-01-291-24/+22
| | | | | | | | | | | | | | | (keeps stable values within ~0.46 to ~0.54 range, so truncated result has no noise)
| | * rewrote ADC code to use a continuous lowpass system on all measurements, to ↵Selene ToyKeeper2020-01-2914-139/+203
| | | | | | | | | | | | | | | | | | eliminate noise and maybe increase precision (thermal code still needs to be rewritten though)
| * | mention the maximum allowed temperature in the manualSelene ToyKeeper2020-02-031-1/+1
| |/
* | merged from fsm, mostly to get thermal regulation updatesSelene ToyKeeper2019-12-177-9/+187
|\|
| * fixed too-slow thermal response (was introduced in the irq-refactor branch)Selene ToyKeeper2019-12-171-5/+8
| |
| * added support for Fireflies ROT66 G2 and PL47 G2Selene ToyKeeper2019-12-112-0/+109
| |
| * added a compile-time flag to enable/disable momentary mode (suggested by Agro)Selene ToyKeeper2019-12-041-1/+18
| |
| * fixed compile errors to handle a couple USE_ flags better:Selene ToyKeeper2019-12-041-2/+8
| | | | | | | | | | | | - beacon mode off (suggested by Agro) - tenclick shortcut on with thermal regulation off
| * added a FW3A build with the FET turned off completelySelene ToyKeeper2019-12-031-0/+36
| |
| * adjusted lantern tint ramping power correction again, based on measurements ↵Selene ToyKeeper2019-12-031-1/+1
| | | | | | | | of the previous attempt
| * adjusted BLF Lantern (Sofirn LT1) tint ramping power correction factor to ↵Selene ToyKeeper2019-11-292-1/+8
| | | | | | | | | | | | | | match production units (also made the factor configurable per build target)
* | changed voltage colors to better match Noctigon K1Selene ToyKeeper2019-11-282-5/+5
| |
* | renamed Emisar D1S V2 -> Noctigon K1Selene ToyKeeper2019-11-252-6/+8
| |
* | merged upstream fsm branchSelene ToyKeeper2019-11-2511-31/+73
|\|
| * enabled muggle mode again in all build targets, since it fits nowSelene ToyKeeper2019-11-244-23/+0
| |
| * merged d4v2-buttonled branch, which makes the D4V2's lighted button workSelene ToyKeeper2019-11-246-8/+75
| |\
| | * merged from upstream fsm branch to get a whole bunch of kernel-level ↵Selene ToyKeeper2019-11-2421-318/+446
| | |\ | | |/ | |/| | | | improvements
| * | added -fwhole-program gcc flag, suggested by Agro. Signficantly reduces ROM ↵Selene ToyKeeper2019-11-221-1/+1
| | | | | | | | | | | | size! :)
| | * merged changes from fsm branch, including version check and stuck-button safetySelene ToyKeeper2019-10-1518-58/+596
| | |\
| | * | slowed down rainbow RGB mode, added a ramp-down on stuck-button for safety ↵Selene ToyKeeper2019-09-071-1/+7
| | | | | | | | | | | | | | | | purposes
| | * | added button LED support to D4v2Selene ToyKeeper2019-09-066-7/+72
| | | | | | | | | | | | | | | | | | | | (in a way which doesn't break backward compatibility... ... but it really needs some refactoring to reduce code duplication)
* | | | increased Noctigon K1's default temperature limit to 55 CSelene ToyKeeper2019-11-251-0/+4
| | | |
* | | | calibrated Noctigon K1, changed voltage divider calibration values to 10-bit ↵Selene ToyKeeper2019-11-254-7/+9
| | | | | | | | | | | | | | | | (was 8-bit before)
* | | | made the button LED turn off in momentary mode, instead of staying on foreverSelene ToyKeeper2019-11-201-2/+7
| | | |
* | | | merged more updates from fsm / irq-refactor branches, finishing up previous ↵Selene ToyKeeper2019-11-209-59/+98
|\| | | | | | | | | | | | | | | changes
| * | | merged tiny fix from irq-refactor branch (fixed spurious wakeup)Selene ToyKeeper2019-11-201-2/+2
| |\ \ \
| | * | | fixed unintentional wakeup right after going to sleepSelene ToyKeeper2019-11-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | (by enabling the PCINT slightly sooner, before setting its "handled" flag)
| * | | | merged irq-refactor branch, which fixes some small but long-standing issues:Selene ToyKeeper2019-11-1916-310/+399
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - fixed occasional short/aborted frames in aux LED sleep animation - fixed rare case of bogus voltage and/or temperature values - fixed issue where nice_delay_ms() didn't work in setup() - fixed theoretical possibility of extra-noisy buttons causing a hang - fixed reboot loop which happened after any crashes - fixed issue where button press in sleep mode could occasionally crash (but the issue may have been created by this branch before being fixed by it) - reduced occasional missed button events while asleep (still seems to happen but not nearly as much) Also does some other things: - cleans up the ADC code significantly - cleans up the WDT code - adds a voltage stabilizer/lowpass option (enabled on t1634 builds) - greatly reduces time spent per interrupt, which might make a future PWM-DSM technique possible - moves most interrupt-handling logic to a non-critical code path, deferring that code until timing doesn't matter as much - sped up button state measurements - very slightly reduces power used in sleep mode