aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-ramping.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* reorganized project files (part 1)Selene ToyKeeper2023-11-021-167/+0
| | | | | (just moved files, didn't change the contents yet, and nothing will work without updating #includes and build scripts and stuff)
* converted Sofirn LT1-t1616 to new API, using SiteRelEnby's branch for referenceSelene ToyKeeper2023-10-261-1/+3
| | | | | | (needs further updates though, to improve ramping, since this version is basically a straight conversion of the old t85 code with 8-bit ramps)
* started splitting set_level(0) into its own set_level_zero(), andSelene ToyKeeper2023-08-251-0/+1
| | | | | | | | | | | made USE_AUX_RGB_LEDS_WHILE_ON work more like the old indicator LEDs, where it gets set automatically with set_level() Using set_level_zero() reduces space used by channel modes, and simplifies code for each mode's set_level_*() functions. I measured about 220 bytes less in the emisar-d4k-3ch build this way, while also reducing the chance of bugs.
* converted all K9.3 builds and D4Sv2-tintramp-fet (now emisar-2ch-fet)Selene ToyKeeper2023-08-031-0/+6
| | | | | | to multi-channel, and removed old K9.3 builds which aren't relevant any more, and old D4Sv2-tintramp builds
* refactored how channel modes are defined, and converted emisar-2ch buildSelene ToyKeeper2023-07-101-82/+3
|
* gradual adjustments: handle 0-to-255 in one step on the way up too, not just ↵Selene ToyKeeper2023-05-301-1/+1
| | | | down
* post-off voltage display: use low brightness when torch was at moon level ↵Selene ToyKeeper2023-05-021-0/+2
| | | | | | | | before, and skip the voltage display after UI actions which didn't change the mode (like "Off -> 7C" to change aux LED settings)
* Noctigon KR4: updated to use new channel systemSelene ToyKeeper2023-04-291-0/+7
| | | | | | (also tweaked D4v2 build to match KR4 as much as possible) (also added Extended Simple UI to Hank's config)
* updated D4Sv2-tintramp -> Emisar 2-channel build target ...Selene ToyKeeper2023-04-251-12/+1
| | | | | | ... and reworked how gradual_tick() works ... and updated LT1S Pro to use new method
* made "Ramp 3H" do momentary turbo if current channel mode has no argsSelene ToyKeeper2023-04-171-2/+6
|
* switched the rest of FSM + Anduril to use SPDX license headersSelene ToyKeeper2023-04-171-19/+3
| | | | | | | instead of full GPL headers (or all too often, nothing at all) There are a few "FIXME" entries where I'm not sure about the correct copyright.
* reduced ROM by ~600 bytes by moving all eeprom config values to a "cfg" structSelene ToyKeeper2023-04-161-32/+51
| | | | | (this also made some parts of the code cleaner)
* LT1S: added thermal regulationSelene ToyKeeper2023-04-141-1/+40
| | | | | | | ... and a bunch of gradual_tick functions ... and abstracted out some of the tint calculations ... and moved some UI settings into cfg.h
* LT1S Pro: added dynamic PWM (much better low modes!)Selene ToyKeeper2023-04-141-1/+1
|
* refactor progress checkpoint ... got Sofirn LT1S Pro and Emisar D4v2 workingSelene ToyKeeper2023-04-131-90/+106
| | | | | with the new channel mode system ... but there's a lot more left to do
* added "200%" turbo on tint-ramping lights: D4S and LT1Selene ToyKeeper2021-10-311-17/+17
| | | | | | | | | | Normal ramp from 0% to 100% power on levels 1 to 130, then 101% to 200% power at levels 131 to 150 using both channels at maximum for turbo. When either channel would go over 100%, the extra spills over to the other channel.
* fixed K9.3 builds (oops, new update_tint() needed to be compiled out for K9.3)Selene ToyKeeper2021-09-101-1/+1
|
* got D4Sv2 tint ramping to work, with dynamic PWM (PFM)Selene ToyKeeper2021-09-081-0/+8
| | | | | | | | | and (maybe) thermal regulation (untested) (also broke BLF LT1 in the process; need to fix that now) Rewrote how tint ramping works, so it provides a virtual "PWM1_LVL" for other code to use, and it translates that internally into actual hardware controls. This should, in theory, allow smooth thermal regulation (gradual_tick) to work on tint-ramp lights.
* moved jump start into FSM so it'll be more universal and the app won't need ↵Selene ToyKeeper2021-08-231-0/+10
| | | | | | | special clauses (also adjusted KR4 jump start levels a bit)
* got PFM / dynamic PWM actually working on Noctigon KR4Selene ToyKeeper2021-08-121-0/+8
| | | | | | (and also added "jump start moon" to it) (and generally finished adding dynamic PWM support to FSM)
* start tint at 0 instead of 128 on lights with toggle instead of rampSelene ToyKeeper2020-10-161-0/+4
|
* reduced ROM another 12+6 bytes with more non-volatile varsSelene ToyKeeper2020-07-301-1/+1
| | | | | (because they don't need to be volatile any more)
* reduced ROM size 56 bytes by making actual_level non-volatileSelene ToyKeeper2020-07-291-1/+1
| | | | | (seems unnecessary now; doesn't change in the middle of an event handler any more)
* un-hardcoded 255 as the highest PWM level, and used a "PWM_TOP" value insteadSelene ToyKeeper2019-08-061-0/+3
| | | | | (should make gradual adjustments work better on devices with more than 8 bits of PWM resolution)
* fixed weird ramp behavior on D1S v2 (by trusting the compiler more)Selene ToyKeeper2019-08-051-1/+4
|
* fsm-ramping: made it possible to change bit depth of PWM values (8-bit or ↵Selene ToyKeeper2019-07-301-23/+35
| | | | 16-bit)
* added tint ramping power correction for middle tintsSelene ToyKeeper2019-05-141-0/+1
| | | | | (it actually needs a surprisingly large correction factor)
* configured lantern stepped ramp and button LED mode, set default tint to 128 ↵Selene ToyKeeper2018-12-191-1/+1
| | | | (balanced)
* Added tint ramping. Not tested yet. Also added BLF Lantern build target.Selene ToyKeeper2018-09-131-0/+4
|
* Made high levels regulate down even faster. Added missing save_config() at ↵Selene ToyKeeper2018-06-271-8/+8
| | | | | | | the end of, um, config modes. Fixed ramp table indentation.
* Move driver-specific ramp tables into the driver's config file.Selene ToyKeeper2018-06-271-25/+17
| | | | | Added a method to allow driver configs to override default ramp tables.
* Added BLF GT 150-level ramp. Is a bit of a mess though.Selene ToyKeeper2018-05-011-11/+26
|
* Working toward a FW3A release now. Made strobes use Nx7135 (when available) ↵Selene ToyKeeper2017-12-111-1/+5
| | | | | | | instead of FET. Added some ideas. Simplified some syntax.
* Added dynamic underclocking to FSM, instead of doing it manually in Anduril.Selene ToyKeeper2017-09-261-0/+2
|
* Cut moon power from ~4mA to ~2.5mA by running clock at half speed on very ↵Selene ToyKeeper2017-09-241-1/+1
| | | | | | | | | low modes. Adjusted default FET+1 ramp to compensate for speed bump. Added define(s) for whether to blink at ramp floor/ceiling/channel edges. Lowered default moon level to 1, since slower speed makes it brighter and more stable.
* Added FW3A driver support to FSM and Anduril.Selene ToyKeeper2017-09-221-6/+6
| | | | | | Made lightning storm mode look a bit more like real lightning. Minor refactoring on how single-option config modes save state.
* Made thermal regulation adjust smoothly (1 PWM step at a time) to make ↵Selene ToyKeeper2017-09-091-0/+7
| | | | | | | | | | | adjustments less noticeable. Added set_level_gradually() and gradual_tick() to ramping lib. Not terribly happy with it yet, but it at least works in practice. Added extra thermal regulation checks because I was running into stupid behavior in edge cases. Increased lowest thermal stepdown level to MAX_LEVEL/3 because it was going down way too low before. (is still pretty low, but not quite as bad)
* Adjusted default 2-channel 150-step ramp to start at 1/255.Selene ToyKeeper2017-08-271-1/+6
| | | | | (this makes the newly-configurable moon mode able to work on pretty much any hardware)
* Added a ramping UI example.Selene ToyKeeper2017-08-241-6/+79
| | | | | Added ramping support in general.
* Renamed from RoundTable to SpaghettiMonster (FSM).Selene ToyKeeper2017-08-191-0/+26