aboutsummaryrefslogtreecommitdiff
path: root/fsm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* hank-lume-x1 cleanup and calibration, part 1:Selene ToyKeeper2024-09-221-15/+37
| | | | | | | | | | | | | | | - changed model number from 0281 to 0171 - cleaned up blink_negative and AUXLED_RGB_DIFFERENT_PORTS a little (but the latter needs a complete refactor, as soon as the hardware abstraction code can handle aux LEDs better) - cleaned up USE_LONG_BLINK_FOR_NEGATIVE_SIGN a little - removed USE_OTG_IN_MOMENTARY since it's not actually used - moved hw/loneoceans/lume-x1-avr32dd20/* files into hw/hank/lume-x1/ - superficial cleanup on hank/lume-x1/hwdef.* - removed some of the extra stuff from hank/lume-x1/anduril.h - adjusted calibration (especially ramp table) on hank-lume-x1 (ramp shape is pretty close to a D4K-boost now, but with more firefly modes) (calibration is based on a sample size of 1, further testing needed)
* cherry-picked hank-lume-x1 code from ↵Selene ToyKeeper2024-09-222-0/+37
| | | | | | | | | | https://github.com/loneoceans/anduril/commit/d83ebb75dab8c462b7efa841bccc00a136ff15a2 The [PR](https://github.com/ToyKeeper/anduril/pull/37) has a lot of other stuff in it, so I'm just picking out the parts needed for this particular light, and leaving the rest for later. Will need further edits before merging into trunk.
* Merge branch 'as/low-chan-aux' of github.com:aslotnick/anduril into ↵Selene ToyKeeper2024-04-192-8/+8
|\ | | | | | | | | | | | | | | | | pr47-aslotnick-as/low-chan-aux Aux LEDs should be off/low/high at level 0/1/2+, instead of off/high at 1-/2+. * 'as/low-chan-aux' of github.com:aslotnick/anduril: use low aux for chan-aux level 0
| * use low aux for chan-aux level 0Andrew Slotnick2024-04-172-8/+8
| |
* | Merge branch 'trunk' into emisar-d3aaSelene ToyKeeper2024-03-292-32/+36
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FIXME: The d3aa's voltage calculator needs to be fixed after this merge. * trunk: use smooth steps in lockout mode, if enabled fixed Tactical Mode's strobes when Momentary Mode not enabled increased voltage precision from 0.025V to 0.02V (so 0 to 255 now goes from 0.00V to 5.10V) fixed inaccurate comment (thanks to xikteny for spotting it) Allow manually running GitHub actions workflows Bugfix: Prevent switching channel modes when in tactical mode Bugfix: Tactical mode has a dependency on momentary mode
| * | increased voltage precision from 0.025V to 0.02VSelene ToyKeeper2024-03-272-32/+36
| | | | | | | | | | | | (so 0 to 255 now goes from 0.00V to 5.10V)
| * | fixed inaccurate comment (thanks to xikteny for spotting it)Selene ToyKeeper2024-03-231-1/+1
| | |
* | | d3aa: got weak battery detection actually working,Selene ToyKeeper2024-03-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and not letting the magic smoke out of updi adapters any more (probably) The alkaline detection might be a little too lenient though; it could potentially fail to activate limits when the cell is completely full or stronger than an average alkaline. One of my test cells measured at 72 / 75, so if it was just a little stronger it'd pass... but most alkalines I tried were in the 40 to 60 range and failed easily. OTOH, if I make it easier to fail, it's likely to trip on normal li-ion cells, and I don't want that. So as a future enhancement idea, maybe it should have a smaller sag threshold for AA and a larger threshold for li-ion. That would reduce false negatives for AA, while still preventing false positives for li-ion.
* | | dammit, got alkaline detection half working and then my flashing adapter diedSelene ToyKeeper2024-03-252-0/+8
|/ / | | | | | | (saving progress here so I can work on a different branch)
* / enabled eeprom read/write stabilization by default on recent MCUs,Selene ToyKeeper2024-02-022-4/+12
|/ | | | | | | | | | | to prevent corrupt data This was enabled on more build targets before, but the *_ENABLE_PIN definition names changed and the eeprom code didn't, so it was not compiled in for a few months on some lights which probably needed it. To fix that, it's now enabled by default on everything bigger than attiny85, since it doesn't really hurt anything if it's enabled when not needed.
* fixed incorrect temperature history for a few seconds after wakingSelene ToyKeeper2023-11-282-13/+11
| | | | | (it used raw ADC units instead of cooked Kelvin units ... ... which was only noticeable on hardware which has different ADC units)
* fsm/adc: removed dead codeSelene ToyKeeper2023-11-281-57/+32
|
* ADC voltage: battcheck 3 digits, fixed t1616, switched back to 8-bit ↵Selene ToyKeeper2023-11-222-20/+31
| | | | | | | | | | | | | | | | | | | | | | | | | internal volt unit Before this branch, `voltage` was 6 bits: Volts * 10 A couple patches ago, I upgraded it to 16 bits: 65535 * Volts / 10.24 That costs too much extra ROM on attiny85 though, for extra precision it doesn't even use... so I switched back to an 8-bit value. It's still more precise than before though: Volts * 40 ... and battcheck displays an extra digit now, on devices with ROM for it. ... and battcheck waits a second to get a more accurate measurement before displaying the first value. It has *much* less variation between first and later readings now. Also: - got t1616 builds working again (tested fc13 and thefreeman-boost-fwaa) - upgraded t1616 voltage and temp to 12-bit (10 bits + 4x oversampling) - removed expensive temp conversion from t1616 ADC interrupt - recalibrated t1616 bogomips again; runs faster after interrupt fix - increased t1616 internal VDD measurement resolution by 36% (1.5V Vref, not 1.1V) - fixed sloppy setting of Vref bits I still need to test / update other t1616 builds, and fix all the t85 + t1634 code and build targets.
* got ADC voltage+temp working on avrdd... but broke all other builds/MCUsSelene ToyKeeper2023-11-211-2/+29
| | | | | | | | | | | | | | | | | This patch changes the ADC code to use two internal standard units, and everything else must convert to these units: - FSM Volts: centiVolts << 6 (range 0 to 10.24 V per cell) - FSM Kelvin: Kelvin << 6 (range 0 to 1024 K) UI-level voltage is still "Volts * 10", and temperature is still Celsius. FSM expects functions to be provided, to convert from the hardware's raw ADC measurements to these internal units: `voltage_raw2cooked()` and `temp_raw2cooked()`. Defaults will be provided by arch/*.[ch] for each MCU type, or the hwdef can make its own. Anyway, gotta go fix all the other MCUs and builds now. :(
* started refactoring fsm/adc.*, but need a checkpoint before continuingSelene ToyKeeper2023-11-192-24/+14
|
* moved prevent_reboot_loop() and some other junk out of fsm/main.cSelene ToyKeeper2023-11-191-47/+3
|
* temporary fix for aux LEDs on avrdd; needs proper refactoringSelene ToyKeeper2023-11-191-3/+6
|
* refactor checkpoint: splitting MCU-specific code into arch/$MCU.[ch]Selene ToyKeeper2023-11-1010-366/+47
| | | | Phew, that's a lot of changes! And there's still a lot more to do...
* made build fail if eeprom data bigger than MCU's eeprom sizeSelene ToyKeeper2023-11-072-22/+41
| | | | | Based on techniques suggested by DurvalMenezes here: https://github.com/ToyKeeper/anduril/pull/4
* renamed tk*.h in file contents, and deleted unused filesSelene ToyKeeper2023-11-031-2/+2
|
* renamed tk*.h to arch/*.h or fsm/*.h (part 1)Selene ToyKeeper2023-11-031-0/+26
| | | | to get them out of the root dir, and to start cleaning up mcu/arch code
* got things to compile again, renamed #includesSelene ToyKeeper2023-11-028-707/+33
| | | | (also modified the build scripts to work with the new file structure)
* reorganized project files (part 1)Selene ToyKeeper2023-11-0231-0/+4681
(just moved files, didn't change the contents yet, and nothing will work without updating #includes and build scripts and stuff)