aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Made ramp config mode significantly easier to use.Selene ToyKeeper2017-08-272-59/+50
| | | | | | Added delays around each step. Fixed wrong number of blinks for each option.
* Ramp config mode actually works now...Selene ToyKeeper2017-08-274-23/+196
| | | | | | Added EV_reenter_state event to indicate an obscuring state was popped off the stack and the underlying one is now on top again.
* Reduced ROM size, simplified logic, made sure discrete ramp won't overflow ↵Selene ToyKeeper2017-08-271-53/+27
| | | | outside uint8_t range.
* Made discrete ramping to work significantly better.Selene ToyKeeper2017-08-272-22/+89
| | | | | | Added momentary mode. Can only be exited by disconnecting power. Rearranged some mappings from off to other states.
* Added TICKS_PER_SECOND because it's handy to avoid hardcoding the WDT speed ↵Selene ToyKeeper2017-08-271-0/+2
| | | | in UI code.
* Started on Anduril, a Narsil-inspired UI.Selene ToyKeeper2017-08-272-0/+532
|
* Made it easier to configure the maximum number of clicks it'll try to count ↵Selene ToyKeeper2017-08-271-1/+57
| | | | | | | | in one sequence. (use #define MAX_CLICKS 5, for example) Keeps data sizes from being excessively large without having to edit FSM sources per UI.
* Revert DarkHorse back to no wear-levelling.Selene ToyKeeper2017-08-261-15/+15
| | | | | | It's smaller, and WL is probably not needed for this UI. I only converted it as a test, and it worked, so ... woot.
* Made wear-levelling work. Takes a bunch of extra ROM though.Selene ToyKeeper2017-08-263-21/+63
| | | | | Also, I've only tested it a tiny amount.
* Added eeprom load/save API (no wear levelling yet), verified it works in ↵Selene ToyKeeper2017-08-265-1/+179
| | | | DarkHorse.
* Replaced bare config errors with the preprocessor's intended method of ↵Selene ToyKeeper2017-08-261-2/+2
| | | | throwing config errors.
* Avoid suspending at weird times by deferring the call to standby mode.Selene ToyKeeper2017-08-262-24/+32
| | | | | | 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.
* Fixed bug: strobes could interfere with hold-from-off next time light was used.Selene ToyKeeper2017-08-261-20/+24
| | | | | | | (because it'd enter standby mode during the strobe pulse, then continue the flow at next activation by turning the light off) Replaced bare return values with ones defined in the FSM library.
* Made DarkHorse always start at low when holding the button, like a real ↵Selene ToyKeeper2017-08-261-24/+19
| | | | | | | ZebraLight does. (previously ramped up one mode instead of resetting to low each time)
* Forgot to handle beacon/strobe in LVP earlier.Selene ToyKeeper2017-08-261-7/+4
|
* Added beacons/strobes to DarkHorse.Selene ToyKeeper2017-08-263-7/+64
| | | | | Added a way to explicitly cancel the current "nice" delay without changing state.
* Removed ancient unfinished version of DarkHorse.Selene ToyKeeper2017-08-262-317/+0
| | | | | I basically didn't even start on it; just had an idea and then didn't touch it again.
* Forgot to wrap one line for making thermal regulation optional.Selene ToyKeeper2017-08-261-0/+2
|
* Added DarkHorse, a clone of the ZebraLight UI.Selene ToyKeeper2017-08-261-0/+290
| | | | | Still needs strobe, beacon, and memory which lasts across battery changes.
* Added a temperature check mode to ramping-ui, mostly for testing purposes.Selene ToyKeeper2017-08-261-0/+19
|
* Made 4bar and 8bar battcheck styles work.Selene ToyKeeper2017-08-255-5/+21
| | | | | Added LVP handling for other modes, including battcheck.
* Added battcheck mode to ramping-ui. It's bigger than I had hoped. :(Selene ToyKeeper2017-08-258-3/+209
| | | | | | Added fsm-misc.*, which currently only has interruptible blink functions in it. (for blinking out numbers and such)
* Started on some documentation, spaghetti-monster.txt.Selene ToyKeeper2017-08-244-32/+285
| | | | | | | Added #defines for State return values: EVENT_HANDLED, EVENT_NOT_HANDLED Improved handling of delay includes. Managed mischief.
* Added loop() to API, executes constantly.Selene ToyKeeper2017-08-247-35/+84
| | | | | | Added nice_delay_ms() to process events while waiting, and abort on state change. Converted ramping-ui strobe to smoothly variable with party and tactical modes.
* Fixed repeating blinks at ends of ramp -- only blinks once now.Selene ToyKeeper2017-08-241-4/+10
|
* 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)
* Set default brightness to max 7135 level.Selene ToyKeeper2017-08-241-9/+16
| | | | | | Made thermal regulation adjust proportional to how far above/below the target range the light is. Replaced turn-on blinks with single shorter/dimmer blip.
* Made ramping UI able to toggle between smooth and discrete ramping with 4 ↵Selene ToyKeeper2017-08-242-5/+40
| | | | clicks.
* Added a ramping UI example.Selene ToyKeeper2017-08-246-6/+404
| | | | | Added ramping support in general.
* Added thermal regulation to SpaghettiMonster / Baton.Selene ToyKeeper2017-08-234-9/+206
| | | | | | Made some LVP values configurable. Removed high_temperature() / low_temperature() shortcuts for now.
* Made Baton a little easier to read:Selene ToyKeeper2017-08-231-12/+13
| | | | | | Renamed set_mode() to set_level(). Replaced sizeof() thingy with a MAX_LEVEL define.
* Added LVP to Baton UI. Was super easy.Selene ToyKeeper2017-08-231-1/+13
|
* Added missing returns, made strobe-from-off use memorized strobe speed,Selene ToyKeeper2017-08-191-2/+5
| | | | | set initial brightness to ~10lm after battery change.
* Baton: Strobe should be full-power.Selene ToyKeeper2017-08-191-3/+3
|
* Completely reorganized SpaghettiMonster code into smaller logical pieces: ↵Selene ToyKeeper2017-08-1915-734/+1128
| | | | fsm-*.c and fsm-*.h.
* Extra debouncing in PCINT (don't emit event if push was rejected).Selene ToyKeeper2017-08-193-29/+17
| | | | | | Fixed memory error in Baton -- long-press from off didn't restart at moon. Made Momentary and Baton go to sleep while light is off.
* Fixed momentary UI (API changed a little).Selene ToyKeeper2017-08-191-1/+1
|
* Improved memory handling in FSM Baton.Selene ToyKeeper2017-08-191-22/+36
| | | | | | | Improved brightness ramp. (lower low) Added double-click to/from turbo in steady modes. Moved strobes to triple-click.
* Fixed unreliability of short-click detection.Selene ToyKeeper2017-08-193-11/+25
| | | | | | | | | (it was doing stuff like "press, release, release, timeout" so it didn't match "press, release, timeout") (it may have also been missing the exact tick it needed, so I made it use >= instead of ==, but this is theoretical and harmless if I was wrong) Made baton mode memory work a bit better for both regular and strobe modes. Made baton fast strobe pulses shorter for better motion freezing. Added USE_DELAY_ZERO option as an alternate for USE_FINE_DELAY.
* Added unfinished UI similar to Olight Baton series.Selene ToyKeeper2017-08-193-68/+267
| | | | | | | | Fixed 2nd PWM channel init. May have fixed 3rd and 4th too. Added handling for complete normal clicks, but it's kind of flaky so far. Added handling for sustained button holds. Added missing 'arg' to state change functions.
* Renamed from RoundTable to SpaghettiMonster (FSM).Selene ToyKeeper2017-08-194-9/+10
|
* Added missing GPL header, fixed typo, fixed missing return.Selene ToyKeeper2017-08-192-1/+25
|
* Made LVP work.Selene ToyKeeper2017-08-192-62/+177
| | | | | | | | | Converted emit handling to an async queue, to avoid long-running interrupts. (moved potentially long parts to main()) Improved button press debouncing (was getting stuck sometimes). Added an EV_debug event for testing. Added and turned off some voltage averaging/lowpass logic.
* First RoundTable example actually works (simple momentary 1-mode UI).Selene ToyKeeper2017-08-184-159/+423
| | | | | | | | Changed how tk-attiny.h detects whether a layout was defined. Changed how tk-attiny.h detects number of PWM channels for new-style layouts. Added no-underscore versions of delay functions. Lots of RoundTable refactoring and blank-filling.
* Some early ideas for Round Table. Nothing close to compile-able yet.Selene ToyKeeper2017-08-184-1/+542
|
* merged crescendo updates: added thermal regulationSelene ToyKeeper2017-07-281-5/+35
|\
| * Got 10-bit temperature measurement working.Selene ToyKeeper2017-06-251-5/+35
| |
* | Merged convoy/biscotti updates.Selene ToyKeeper2017-07-110-0/+0
|\ \ | | | | | | | | | | | | Calibration in .hex file is slightly different than Convoy build though. Use the Convoy branch for Convoy lights.
| * | Updated voltage calibration values. Upgraded from regular strobe to police ↵Selene ToyKeeper2017-03-171-24/+24
| | | | | | | | | | | | strobe.
| * | Added _delay_4ms() stuff, to save space on projects which need a few bytes ↵Selene ToyKeeper2017-03-161-0/+13
| | | | | | | | | | | | | | | | | | more than they need millisecond delay precision. (may break other projects unless I add a different way to enable the code, beware)