aboutsummaryrefslogtreecommitdiff
path: root/hw (follow)
Commit message (Collapse)AuthorAgeFilesLines
* hank-lume-x1: enable RGB button while main LEDs are onSelene ToyKeeper2025-09-181-5/+8
| | | | | | (side effect: also enables RGB front aux while main LEDs are on, since the two are a single circuit internally and can't be separated) (changed at Hank's request)
* emisar-d3aa: reduced preflash by changing timing of power enable stepsSelene ToyKeeper2025-06-042-9/+24
| | | | | | | | | | | | | | | | | | | After testing on every device I can, and getting several users to also test this, it appears to reduce and sometimes completely eliminate preflash on most devices... and the cases where it wasn't reported to help, at least it didn't make things worse. Some units apparently just can't get the flash eliminated completely, despite trying lots of things. Instead of turning the chips on and then waiting 4ms, it now turns the preflash absorber on, waits ~0.6ms, sets misc params, then turns the boost chip on, then waits ~0.6ms, then turns the preflash absorber off. This seems to work best on li-ion power, where on my devices it completely eliminates any preflash. There is still a very mild flash on AA though, which I wasn't able to get rid of. But it's like... 0.003 lm for just a few milliseconds, really not bad. Even in the worst case reported by a user, based on the video they took, it looks like just 0.01 lm for a few milliseconds.
* changed hank-lume-x1 model number back on 2024-09-28Selene ToyKeeper2025-01-051-1/+1
| | | | | for some reason, and didn't commit... saving now to change branches, but should delete this commit if it turns out there was no reason for it
* hank-lume-x1: minor calibration and cleaningSelene ToyKeeper2024-09-222-79/+39
| | | | | | - calibrated party strobe - removed duplicate or commented-out code - added a basic readme
* hank-lume-x1 cleanup and calibration, part 1:Selene ToyKeeper2024-09-227-278/+219
| | | | | | | | | | | | | | | - 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-228-0/+597
| | | | | | | | | | 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.
* merged SammysHP's fix for TS10 lower-Vf LEDs, reverted my fixSelene ToyKeeper2024-08-213-2/+17
| | | | (they are now two separate build targets)
* Merge branch 'wurkkos-ts10-lowfet' of github.com:SammysHP/anduril into ↵Selene ToyKeeper2024-08-212-0/+16
|\ | | | | | | | | | | | | | | | | pr90-SammysHP-wurkkos-ts10-lowfet Add Wurkkos TS10 RGB with reduced FET output PR #90 * 'wurkkos-ts10-lowfet' of github.com:SammysHP/anduril: Add Wurkkos TS10 RGB with reduced FET output
| * Add Wurkkos TS10 RGB with reduced FET outputSammysHP2024-08-042-0/+16
| |
* | wurkkos-ts10-rgbaux: limit max power to 200/255, at Wurkkos's requestSelene ToyKeeper2024-08-201-1/+2
|/ | | | (because otherwise the light destroys its own LEDs at full power)
* Merge branch 'ff-pl47g2-219' of github.com:jim-p/anduril into ↵Selene ToyKeeper2024-04-192-0/+14
|\ | | | | | | | | | | | | pr43-jim-p-ff-pl47g2-219 * 'ff-pl47g2-219' of github.com:jim-p/anduril: Add Fireflies PL47G2-219 variant.
| * Add Fireflies PL47G2-219 variant.jim-p2024-01-212-0/+14
| | | | | | | | | | | | | | | | Same as PL47G2 but with FET PWM levels safe for 219 emitters. Same as difference between PL47 and PL47-219. PL47G2 base allows low mode for aux LEDs, PL47 does not.
* | d3aa: fixed voltage calculation to use 0.02V units instead of 0.025VSelene ToyKeeper2024-03-292-7/+5
| |
* | Merge branch 'trunk' into emisar-d3aaSelene ToyKeeper2024-03-294-9/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-274-9/+9
| | | | | | | | | | | | (so 0 to 255 now goes from 0.00V to 5.10V)
* | | d3aa weak battery test: blink 3x instead of 2x, and omit number readoutSelene ToyKeeper2024-03-293-5/+18
| | |
* | | weak battery detection: use different thresholds for AA and Li-IonSelene ToyKeeper2024-03-262-12/+17
| | | | | | | | | | | | (also, fixed bug where a totally empty li-ion didn't get limited)
* | | d3aa: got weak battery detection actually working,Selene ToyKeeper2024-03-262-38/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+73
| | | | | | | | | | | | (saving progress here so I can work on a different branch)
* | | d3aa fine-tuning:Selene ToyKeeper2024-03-113-46/+35
| | | | | | | | | | | | | | | | | | | | | | | | - 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 measurementSelene ToyKeeper2024-03-043-4/+5
| | |
* | | Merge branch 'trunk' into emisar-d3aaSelene ToyKeeper2024-03-0413-7/+593
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trunk: enabled eeprom read/write stabilization by default on recent MCUs, to prevent corrupt data thefreeman-avr32dd20-devkit: enable boost bypass at boot, so AA/NiMH can boot avr32dd20-devkit: use unimplemented "CH" pin as a boost bypass control added "emisar-2ch-fet-joined" build, for D4S w/ lighted switch documented FW3X swapped pins better documented Wurkkos TS25/TS11/FC13 distinctions build.sh: don't require DFPs, newer avr-libc doesn't need them use BLIP_LEVEL instead of 0 for "blip"s clarified which-hex-file.md a bit; make sure the model number matches fw3x: reduced pulsing on low modes
| * | thefreeman-avr32dd20-devkit: enable boost bypass at boot, so AA/NiMH can bootSelene ToyKeeper2024-02-021-0/+1
| | |
| * | avr32dd20-devkit: use unimplemented "CH" pin as a boost bypass controlSelene ToyKeeper2024-01-302-2/+33
| |/ | | | | | | | | | | | | For 3V LEDs on a boost/buck dual fuel driver, this allows routing power around the boost converter in li-ion mode, to reduce resistance and increase maximum output. The AA/NiMH mode is unaffected, and boosts as normal.
| * added "emisar-2ch-fet-joined" build, for D4S w/ lighted switchSelene ToyKeeper2024-01-105-0/+511
| | | | | | | | (it's an odd case with a 2 channel driver which only uses 1 set of LEDs)
| * documented FW3X swapped pins betterSelene ToyKeeper2023-12-171-3/+7
| |
| * documented Wurkkos TS25/TS11/FC13 distinctionsSelene ToyKeeper2023-12-173-0/+38
| |
| * use BLIP_LEVEL instead of 0 for "blip"sSelene ToyKeeper2023-12-151-0/+1
| | | | | | | | | | This helps when using a regulator which doesn't like being turned off and back on quickly.
| * fw3x: reduced pulsing on low modesSelene ToyKeeper2023-12-101-2/+2
| |
* | Merge branch 'trunk' into emisar-d3aaSelene ToyKeeper2023-12-052-1/+10
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trunk: moved version string calculation to bin/version-string.sh forgot one item in the ChangeLog ChangeLog: added 2023-12-03 release notes, converted @modelname to &modelname docs: expanded / reorganized info on Version Check formats updated MODELS, bin/models.py, and hw/BRANDS... fw3x: document how it ships with the wrong fuse values, and how to fix it github CI: fetch history too, to allow detection of version tags build-all: handle the case where "git describe" can't get any tags run CI on all branches, not just on trunk fetch tags on CI checkout, so 'git describe' can work added docs/battery-rainbow.png from old repo, since it's still relevant added bin/make-release.sh to generate a .zip file ready for release build-all.sh: re-indented, started organizing code into functions changed version number to use the latest release tag instead of build date
| * updated MODELS, bin/models.py, and hw/BRANDS...Selene ToyKeeper2023-12-031-1/+5
| | | | | | | | | | | | | | | | - changed column order to (model, mcu, name) - changed column sizes (auto-sized w/ 2 spaces between columns) - made it handle hex digits in model numbers - reserved 1900 to 2199 for years only, not model numbers - noted gChart and thefreeman sharing a brand ID
| * fw3x: document how it ships with the wrong fuse values, and how to fix itSelene ToyKeeper2023-12-031-0/+5
| |
* | d3aa: made it easy to switch between vddio2 and external voltage dividerSelene ToyKeeper2023-12-052-9/+14
| |
* | emisar-d3aa: new model number, since this is a new product lineSelene ToyKeeper2023-11-301-1/+1
| | | | | | | | | | | | | | | | The 0144 model number is reserved for the successor to the Meteor M44. This is Hank's first AA light, so it's assigned as 0161: - 01: Emisar - 6: product line 6 - 1: model 1
* | added initial code for emisar-d3aa torchSelene ToyKeeper2023-11-305-0/+450
|/
* sofirn-lt1s-pro: disable memory timer and extended simple UI by defaultSelene ToyKeeper2023-11-301-3/+3
| | | | | (users complained, and extended simple UI probably needs to be off by default in all factory builds anyway)
* added a build target for FW3X with manually-fixed RGB aux wiringSelene ToyKeeper2023-11-303-3/+21
|
* fixed FW3X thermal regulationSelene ToyKeeper2023-11-282-4/+7
| | | | | | | | It had no minimum thermal stepdown defined, so it used MAX_7135 by default, which was level 149/150 ... thus virtually no regulation. I also made it easier to switch between internal and external temperature sensors by just commenting out a few lines in the hwdef.h.
* FW3X: fixed external temperature sensorSelene ToyKeeper2023-11-282-7/+41
| | | | (the MCU's internal sensor works too, but external is a bit better I guess?)
* FW3X: multiple upgrades...Selene ToyKeeper2023-11-274-54/+132
| | | | | | | | - upgraded to DSM: lower lows, *much* smoother ramp - made lows more efficient with underclocking - fixed party strobe being too blurry - calibrated UI speed / bogomips multiplier - added readme to document this hardware's multiple quirks
* fw3x: fixed swapped red+blue, fixed battery measurements, added police color ↵Selene ToyKeeper2023-11-272-13/+29
| | | | strobe
* fixed ADC on sp10-proSelene ToyKeeper2023-11-271-2/+5
|
* fixed ADC on attiny85 and related buildsSelene ToyKeeper2023-11-273-4/+19
| | | | (also enabled smooth steps on BLF GT, but had to remove stuff to make room)
* fixed ADC on attiny1634 and related buildsSelene ToyKeeper2023-11-2711-291/+49
|
* more ADC / DAC / MCU progress...Selene ToyKeeper2023-11-2410-151/+96
| | | | | | | | - 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)
* avr32dd20-devkit: make the defaults a bit more dev friendlySelene ToyKeeper2023-11-221-1/+5
| | | | (realtime voltage colors, and no simple UI by default)
* ADC voltage: battcheck 3 digits, fixed t1616, switched back to 8-bit ↵Selene ToyKeeper2023-11-224-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+22
| | | | | | | | | | | | | | | | | 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-195-0/+453
| | | | | ADC doesn't work yet. No voltage, no temperature. I need to do a lot of refactoring on the ADC code. :(
* thefreeman/boost*: define Vref values more explicitly without magic numbersSelene ToyKeeper2023-11-194-18/+22
|