aboutsummaryrefslogtreecommitdiff
path: root/arch (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'trunk' into wurkkos-ts25-boostSelene ToyKeeper2024-08-198-24/+24
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By Selene ToyKeeper (20) and others * trunk: (25 commits) removed "Off -> 3H" strobe/mood mode access from Extended Simple UI include hardware-specific readme files in the release .zip added change log for 2024-04-20 release Forgot to update model count after the last couple additions use low aux for chan-aux level 0 MODELS: added emisar-d3aa make-release.sh should use version-string.sh instead of duplicating code d3aa: fixed voltage calculation to use 0.02V units instead of 0.025V d3aa weak battery test: blink 3x instead of 2x, and omit number readout 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) weak battery detection: use different thresholds for AA and Li-Ion (also, fixed bug where a totally empty li-ion didn't get limited) d3aa: got weak battery detection actually working, and not letting the magic smoke out of updi adapters any more (probably) dammit, got alkaline detection half working and then my flashing adapter died (saving progress here so I can work on a different branch) fixed inaccurate comment (thanks to xikteny for spotting it) d3aa fine-tuning: - new ramp - production style config defaults (simple mode, Hank config) - candle tuning - fixed way-too-fast thermal regulation (might still be a bit fast, but it's a lot better) d3aa: fixed voltage measurement Allow manually running GitHub actions workflows Bugfix: Prevent switching channel modes when in tactical mode ... # Conflicts: # arch/attiny1616.c (fixed)
| * increased voltage precision from 0.025V to 0.02VSelene ToyKeeper2024-03-278-24/+24
| | | | | | | | (so 0 to 255 now goes from 0.00V to 5.10V)
* | attiny1616 mcu_vdivider_raw2cooked: factor in the offset, not just slopeSelene ToyKeeper2024-03-121-2/+3
|/
* eliminated direct CCP register access from arch/attiny1616Selene ToyKeeper2023-11-301-2/+2
| | | | (the protected write macro exists for a reason, and should be used instead)
* fixed ADC on attiny85 and related buildsSelene ToyKeeper2023-11-272-19/+61
| | | | (also enabled smooth steps on BLF GT, but had to remove stuff to make room)
* fixed ADC on attiny1634 and related buildsSelene ToyKeeper2023-11-272-37/+132
|
* more ADC / DAC / MCU progress...Selene ToyKeeper2023-11-243-6/+40
| | | | | | | | - fixed t1616 Vref values getting clobbered sometimes, wrapped setting those in a #define'd function for ease and consistency - moved some DAC definitions from hw/ to arch/ to reduce repetition - fixed thefreeman's other builds - switched from PWM_TOPS to PWM2_LEVELS (I'm trying to phase out _TOPS)
* ADC voltage: battcheck 3 digits, fixed t1616, switched back to 8-bit ↵Selene ToyKeeper2023-11-224-53/+133
| | | | | | | | | | | | | | | | | | | | | | | | | 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-212-29/+46
| | | | | | | | | | | | | | | | | 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. :(
* added *unfinished* support for avr32dd20, plus a build target for a dev kitSelene ToyKeeper2023-11-192-0/+356
| | | | | ADC doesn't work yet. No voltage, no temperature. I need to do a lot of refactoring on the ADC code. :(
* moved prevent_reboot_loop() and some other junk out of fsm/main.cSelene ToyKeeper2023-11-196-0/+39
|
* refactor checkpoint: splitting MCU-specific code into arch/$MCU.[ch]Selene ToyKeeper2023-11-108-136/+745
| | | | 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-071-16/+8
| | | | | 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-035-260/+4
|
* renamed tk*.h to arch/*.h or fsm/*.h (part 1)Selene ToyKeeper2023-11-035-0/+471
to get them out of the root dir, and to start cleaning up mcu/arch code