aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* made gradual_tick() work on K9.3 (via override), fixed strobe config,Selene ToyKeeper2020-10-154-9/+87
| | | | | made blink_once() more configurable (and more reliable on K9.3)
* got K9.3 2nd LEDs working (and modified FSM to allow this sort of thing)Selene ToyKeeper2020-10-146-2/+86
| | | | | | | | added a way to include per-model code overrides added an override mechanism for logic inside set_level() wrote K9.3's set_level() function added TINT_RAMP_TOGGLE_ONLY mode for tint ramping
* configured K9.3 cfg (mostly), assigned a model number, fixed typo in hwdefSelene ToyKeeper2020-10-143-18/+20
| | | | | | (main LEDs work now; 2nd LEDs not yet) (aux and button LEDs work too, plus switch)
* copied KR4 cfg to K9.3 cfgSelene ToyKeeper2020-10-141-0/+65
|
* configured K9.3 hwdefSelene ToyKeeper2020-10-141-34/+48
|
* renamed LED_ENABLE2_* to LED2_ENABLE_*Selene ToyKeeper2020-10-143-11/+11
|
* copied KR4 hwdef to K9.3Selene ToyKeeper2020-10-141-0/+150
|
* improved docs, changed blinky order: Battcheck, Tempcheck, Beacon, SOSSelene ToyKeeper2020-09-306-94/+127
|
* fixed factory reset (forgot one line in previous commit)Selene ToyKeeper2020-09-271-0/+1
|
* reworked nice_delay interrupt system and fixed some old issues:Selene ToyKeeper2020-09-277-37/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - added set_state_deferred(), to avoid timing issues when changing state in loop() (fixes bug where first button press after version check was sometimes ignored, and similar issue after battcheck in simple UI) - reduced chance of eating first button press after simple UI's battcheck, because it spent an extra second waiting after finishing the readout, and it wasn't intuitive for a single click to go from "post-battcheck darkness" to "off" during that period - made interrupt_nice_delays() happen every time the state changes, instead of having nice_delay() explicitly check for state changes while it waits... (because the explicit check was buggy and used more ROM) - made nice_delay_ms() abort immediately when interrupt is set, instead of waiting 1ms before it even checks for the interrupt condition... this makes aborted animations end a lot faster, with less visible flickering - made blink_num() smaller and simpler, because changes listed above make it possible - slightly changed order of events in main(), to accommodate for changes above - fixed issue where battcheck would keep trying to blink out numbers while the user was holding 10H for voltage config mode - ... and reduced ROM size by about 38 bytes
* fixed bug: momentary bike mode could sometimes get stuck on for a few ↵Selene ToyKeeper2020-09-271-0/+1
| | | | seconds after releasing button
* merged from fsm to get K1-12V thermal fixSelene ToyKeeper2020-09-251-2/+6
|\
| * reduced temperature limit for Noctigon K1-12V, to avoid overheating the ↵Selene ToyKeeper2020-09-251-2/+6
| | | | | | | | boost circuit
* | tiny clarification in the manual about memorySelene ToyKeeper2020-09-251-0/+5
| | | | | | | | | | (committed despite being tiny, so I can do a merge in a moment)
* | removed ROM-size reduction options from larger build targets; not needed any ↵Selene ToyKeeper2020-09-253-11/+0
| | | | | | | | more
* | reduced ROM size by ~58 to ~88 bytes by making lookup tables constSelene ToyKeeper2020-09-251-5/+5
| | | | | | | | | | | | | | patch by SammysHP and Grumsel: https://gist.github.com/SammysHP/48347a770995921444a6e91b187cb55b http://budgetlightforum.com/comment/1699350#comment-1699350
* | reduced ROM 4 bytes by rearranging thermal_config_save() logic a bitSelene ToyKeeper2020-09-251-7/+6
| | | | | | | | | | | | patch is from SammysHP: https://gist.github.com/SammysHP/48347a770995921444a6e91b187cb55b
* | documentation improvements:Selene ToyKeeper2020-09-246-35/+122
| | | | | | | | | | | | | | | | | | | | - moved MODELS to BRANDS - added MODELS file generated from "make models" - added version check info to manual - clarified how memory options work - fixed docs for auto-lock feature - small code comment clarifications
* | reduced ROM another 24 bytes by refactoring config-mode.cSelene ToyKeeper2020-09-241-16/+4
| | | | | | | | | | | | | | | | | | | | (also fixed a corner case bug with calling savefunc() with a config step of 0 if the user has frame-perfect timing) (and a bug which could have affected later revisions, calling savefunc(0,N) when invoked via click instead of hold) Patch contributed by SammysHP: https://gist.github.com/SammysHP/78af437c6723112ddfdc6b6d6b5e3022
* | fixed bug: zero clicks in ceiling config set ceiling to nonsense valueSelene ToyKeeper2020-09-241-3/+3
| |
* | re-added features to build targets which were too big beforeSelene ToyKeeper2020-09-243-4/+4
| |
* | changed menu style and moved menus from "click" events to "hold" eventsSelene ToyKeeper2020-09-2411-175/+180
| | | | | | | | | | (also reduced ROM size by 126 bytes)
* | clearer comments about "Ramp 2C" behaviors with each build optionSelene ToyKeeper2020-09-181-6/+7
| |
* | added USE_2C_MAX_TURBO option from Tom ESelene ToyKeeper2020-09-182-4/+19
| | | | | | | | | | | | | | | | | | Makes "Ramp 2C" behave like Anduril1 instead of Anduril2. So it goes to full power turbo in the advanced UI, or ceiling in the simple UI. Otherwise, default Anduril2 behavior is for "Ramp 2C" to go to/from the ceiling level... unless already ramped up to that level in advanced mode, in which case it'll go to full turbo.
* | forgot to add hybrid memory to the documentationSelene ToyKeeper2020-09-151-3/+14
| |
* | added hybrid memory option (a.k.a. manual memory timer)Selene ToyKeeper2020-09-1511-12/+91
| | | | | | | | | | | | | | | | | | | | Hybrid memory is a combination of automatic and manual, depending on how long the light was off. If it was a short time, automatic mem is used. For a longer time, it resets to the manual memory level. Also tweaked some of the larger build targets again to make sure they fit in ROM.
* | added "disco" mode to RGB aux LEDs (fast random colors)Selene ToyKeeper2020-09-147-16/+14
| | | | | | | | | | | | | | (patch to aux-leds.c contributed by SammysHP as "acid" mode) (also removed RGB config for a few lights because they were just duplicating the defaults, and were redundant)
* | merged upstream fsm branch to get fix for laggy voltage readings on FW3ASelene ToyKeeper2020-09-145-12/+16
|\| | | | | | | | | (and other build targets which don't use sleep ticks during standby)
| * steps.py: fixed python3 floating-point errorSelene ToyKeeper2020-08-301-1/+1
| | | | | | | | | | (division of integers produces floats in python3, but not python2... so make int result explicit)
| * attempt to fix laggy voltage readings right after waking, on FW3ASelene ToyKeeper2020-08-234-11/+15
| | | | | | | | | | | | | | | | | | (with no sleep ticks, the voltage value never gets reset to the raw value, and instead only goes through the lowpass filter) (this fix is not yet tested... will test before uploading) (also carries a risk of messing up thermal values after being asleep, so that needs to be tested too)
* | reorganized code in fsm-events.* to put things in a more coherent orderSelene ToyKeeper2020-09-143-87/+95
| | | | | | | | | | | | (no functional changes, but it does change the order of some code in ROM, so the compiled md5sum is different now)
* | fixed bug: ticks_since_last_event wasn't getting reset on button hold releaseSelene ToyKeeper2020-09-144-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The visible symptom was: Ramp up for 1s or longer, release, wait more than 1s, then hold again. It should ramp up, but it would ramp down instead. The clause for resetting ramp_direction wasn't happening, because the EV_tick counter started at a value higher than 1s where it would normally trigger. The underlying cause was a bit complicated. Recent changes in PCINT_inner() were causing ticks_since_last_event to get set to 0 (at push_event()) and then back to its previous value (at emit_current_event()). The EV_tick counter would then start at whatever the button release event used. The fix involved removing the part of emit_current_event() where it would set ticks_since_last_event to "arg". That line was a very old bug which simply hadn't caused any visible issues until recently. Instead, it needs to set ticks_since_last_event more carefully, at other locations. Specifically, it resets to 0 now in empty_event_sequence() and one more location in the deferred WDT handler (when HOLD_TIMEOUT triggers). Additionally, push_event() was only ever used from PCINT_inner()... so I moved the tick reset logic to PCINT_inner() instead. This allows us to decrease size by about 10 bytes, since PCINT_inner() no longer needs to copy the counter before it gets reset. However, it also means push_event() should never be called from any other function.
* | fixed bug: ramp 2H at floor went up instead of staying at floorSelene ToyKeeper2020-09-141-3/+3
| | | | | | | | | | (thanks to SammysHP for suggesting this fix)
* | added model numbers to each build target, and to version check functionSelene ToyKeeper2020-08-3139-2/+79
| |
* | reduced size 18 bytes by removing unnecessary duplications of blink_once()Selene ToyKeeper2020-08-312-5/+1
| |
* | removed blink_confirm() because it's not used any moreSelene ToyKeeper2020-08-312-2/+12
| | | | | | | | | | (only commented out though, for now)
* | removed unnecessary blink_once calls, made blink_once a bit less brightSelene ToyKeeper2020-08-313-4/+1
| |
* | made manual memory work when unlocking lightSelene ToyKeeper2020-08-311-0/+5
| |
* | made text manual consistent with UI reference tableSelene ToyKeeper2020-08-251-38/+54
| |
* | set more sensible defaults for simple UI levelsSelene ToyKeeper2020-08-241-2/+2
| |
* | changed "Off 2H" to "ceil or turbo, based on simple UI active", andSelene ToyKeeper2020-08-243-9/+18
| | | | | | | | | | changed "Full UI Ramp 2C" to "ceil or turbo, based on whether already ramped up or not"
* | raised ceiling levels for simple UI in each build targetSelene ToyKeeper2020-08-2027-26/+152
| | | | | | | | | | | | (the idea is "high but not crazy", or around 100% to 150% of thermally-sustainable level) ... and set the default steps to 5 instead of 3
* | made FF ROT66G2 and MF01-Mini build targets fit in 8192 bytes againSelene ToyKeeper2020-08-182-2/+2
| | | | | | | | | | (they were slightly too big)
* | fixed auto-lock timings again, based on measurement averages of several lightsSelene ToyKeeper2020-08-181-6/+6
| | | | | | | | | | (it turns out they're not very consistent)
* | fixed auto-lock timing, this time based on measurements of a D4v2 instead of ↵Selene ToyKeeper2020-08-181-6/+6
| | | | | | | | just data sheets and math
* | fixed timing of auto-lock function, added SLEEP_TICKS_PER_MINUTE constantsSelene ToyKeeper2020-08-182-1/+14
| |
* | shuffled functions around to make 4C lockout and 3C battcheck againSelene ToyKeeper2020-08-184-40/+62
| | | | | | | | | | | | | | | | | | | | | | | | - moved all battcheck to 3C - moved all lockout to 4C - moved all unlock to 4C/4H - moved manual mem from 4C/4H to 10C/10H - moved auto-lock from 5C/5H to 10C/10H - added ramp 4C -> lockout - added ramp 5C -> momentary - added lockout 5C -> ramp ceiling
* | remapped "Off -> 2H" to momentary ceilingSelene ToyKeeper2020-08-092-4/+10
| | | | | | | | | | (instead of going to ceiling in ramp mode, and ramping down)
* | Added a reference table to the manual, listing all button mappingsSelene ToyKeeper2020-08-061-0/+77
| |
* | many button remappings:Selene ToyKeeper2020-08-065-53/+98
| | | | | | | | | | | | | | | | | | | | | | - swapped lockout and battcheck - 3C/3H to exit lockout instead of 4C/4H - 4C/4H for manual mem instead of 5C/5H - 5C from ramp to momentary - 5H for sunset timer instead of 4H Also added tint ramping info to the manual.