aboutsummaryrefslogtreecommitdiff
path: root/hw (unfollow)
Commit message (Collapse)AuthorFilesLines
2025-07-04made new settings apply to all button LEDs on lights bigger than 8K ROMSelene ToyKeeper9-9/+0
This replaces "USE_CONFIGURABLE_RGB_VOLTAGE_LEVELS" with "USE_AUX_THRESHOLD_CONFIG", which controls the brightness of button LEDs while the main LEDs are on, and during post-off voltage display. Same basic concept, but works on single-color LEDs too, and lets the user finally configure POVD thresholds. The code for this is a bit messy, but the aux LED code as a whole is pretty messy since it wasn't designed for the things it does now. The entire thing needs a refactor or rewrite someday. But not today. For now, this is just enough to make the pull request cover more use cases before merging into trunk. I've tested it on a variety of lights, but am not yet entirely comfortable with it. However, it worked on at least these: - 1-color button LED, no RGB - front RGB, 1-color button LED - front RGB, hardwired also to RGB button - RGB button, no other aux These may need extra changes, and may have extra config options which do nothing... - front RGB, no button LED - 1-color front aux, no button LED - no aux at all - attiny85 lights (some could theoretically support the new options, but none even try)
2025-06-04renamed wurkkos-ts25-boost to wurkkos-ts26Selene ToyKeeper4-5/+5
(the product name changed upstream)
2025-06-04wurkkos ts25-boost: calibrated for 20250210 prototypeSelene ToyKeeper2-11/+10
- changed from RGB button to RGB front aux - complete recalibration of voltage sensor - had to change party strobe timing to make it work again - still couldn't fix moon, it's flickery AF no matter what I do
2025-06-04emisar-d3aa: reduced preflash by changing timing of power enable stepsSelene ToyKeeper2-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.
2025-01-05changed hank-lume-x1 model number back on 2024-09-28Selene ToyKeeper1-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
2024-09-22hank-lume-x1: minor calibration and cleaningSelene ToyKeeper2-79/+39
- calibrated party strobe - removed duplicate or commented-out code - added a basic readme
2024-09-22hank-lume-x1 cleanup and calibration, part 1:Selene ToyKeeper7-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)
2024-09-22cherry-picked hank-lume-x1 code from ↵Selene ToyKeeper8-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.
2024-08-21merged SammysHP's fix for TS10 lower-Vf LEDs, reverted my fixSelene ToyKeeper3-2/+17
(they are now two separate build targets)
2024-08-20wurkkos-ts10-rgbaux: limit max power to 200/255, at Wurkkos's requestSelene ToyKeeper1-1/+2
(because otherwise the light destroys its own LEDs at full power)
2024-08-19ts25-boost: calibrated for new prototypeSelene ToyKeeper2-8/+13
- battery voltage readings - RGB button aux - less moon flicker (but brighter, less efficient moon) - reduced blink brightness (old brightness was so high it was throwing off battery readings)
2024-08-04Add Wurkkos TS10 RGB with reduced FET outputSammysHP2-0/+16
2024-04-02Add a feature to make RGB voltage configurableSiteRelEnby9-0/+9
Adds two entries to the battery voltage settings menu, the first isathreshold for switching aux to high, and the second sets a minimum level for it to be displayed, also effectively allowing the feature to be entirely disabled if not wanted.
2024-03-29d3aa: fixed voltage calculation to use 0.02V units instead of 0.025VSelene ToyKeeper2-7/+5
2024-03-29d3aa weak battery test: blink 3x instead of 2x, and omit number readoutSelene ToyKeeper3-5/+18
2024-03-27increased voltage precision from 0.025V to 0.02VSelene ToyKeeper4-9/+9
(so 0 to 255 now goes from 0.00V to 5.10V)
2024-03-26weak battery detection: use different thresholds for AA and Li-IonSelene ToyKeeper2-12/+17
(also, fixed bug where a totally empty li-ion didn't get limited)
2024-03-26d3aa: got weak battery detection actually working,Selene ToyKeeper2-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.
2024-03-25dammit, got alkaline detection half working and then my flashing adapter diedSelene ToyKeeper2-0/+73
(saving progress here so I can work on a different branch)
2024-03-12ts25-boost: reduced visible PWM, made party strobe less blurrySelene ToyKeeper1-5/+5
2024-03-12wurkkos-ts25-boost: calibrated the battery voltage measurementsSelene ToyKeeper1-2/+2
2024-03-11d3aa fine-tuning:Selene ToyKeeper3-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)
2024-03-04d3aa: fixed voltage measurementSelene ToyKeeper3-4/+5
2024-02-02thefreeman-avr32dd20-devkit: enable boost bypass at boot, so AA/NiMH can bootSelene ToyKeeper1-0/+1
2024-01-30avr32dd20-devkit: use unimplemented "CH" pin as a boost bypass controlSelene ToyKeeper2-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.
2024-01-21Add Fireflies PL47G2-219 variant.jim-p2-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.
2024-01-10added "emisar-2ch-fet-joined" build, for D4S w/ lighted switchSelene ToyKeeper5-0/+511
(it's an odd case with a 2 channel driver which only uses 1 set of LEDs)
2023-12-17documented FW3X swapped pins betterSelene ToyKeeper1-3/+7
2023-12-17documented Wurkkos TS25/TS11/FC13 distinctionsSelene ToyKeeper3-0/+38
2023-12-15use BLIP_LEVEL instead of 0 for "blip"sSelene ToyKeeper1-0/+1
This helps when using a regulator which doesn't like being turned off and back on quickly.
2023-12-10fw3x: reduced pulsing on low modesSelene ToyKeeper1-2/+2
2023-12-06added wurkkos-ts25-boost (early version made from spec, no clue if it works)Selene ToyKeeper4-0/+355
2023-12-05d3aa: made it easy to switch between vddio2 and external voltage dividerSelene ToyKeeper2-9/+14
2023-12-03updated MODELS, bin/models.py, and hw/BRANDS...Selene ToyKeeper1-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
2023-12-03fw3x: document how it ships with the wrong fuse values, and how to fix itSelene ToyKeeper1-0/+5
2023-11-30emisar-d3aa: new model number, since this is a new product lineSelene ToyKeeper1-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
2023-11-30added initial code for emisar-d3aa torchSelene ToyKeeper5-0/+450
2023-11-30sofirn-lt1s-pro: disable memory timer and extended simple UI by defaultSelene ToyKeeper1-3/+3
(users complained, and extended simple UI probably needs to be off by default in all factory builds anyway)
2023-11-30added a build target for FW3X with manually-fixed RGB aux wiringSelene ToyKeeper3-3/+21
2023-11-28fixed FW3X thermal regulationSelene ToyKeeper2-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.
2023-11-28FW3X: fixed external temperature sensorSelene ToyKeeper2-7/+41
(the MCU's internal sensor works too, but external is a bit better I guess?)
2023-11-27FW3X: multiple upgrades...Selene ToyKeeper4-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
2023-11-27fw3x: fixed swapped red+blue, fixed battery measurements, added police color ↵Selene ToyKeeper2-13/+29
strobe
2023-11-27fixed ADC on sp10-proSelene ToyKeeper1-2/+5
2023-11-27fixed ADC on attiny85 and related buildsSelene ToyKeeper3-4/+19
(also enabled smooth steps on BLF GT, but had to remove stuff to make room)
2023-11-27fixed ADC on attiny1634 and related buildsSelene ToyKeeper11-291/+49
2023-11-24more ADC / DAC / MCU progress...Selene ToyKeeper10-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)
2023-11-22avr32dd20-devkit: make the defaults a bit more dev friendlySelene ToyKeeper1-1/+5
(realtime voltage colors, and no simple UI by default)
2023-11-22ADC voltage: battcheck 3 digits, fixed t1616, switched back to 8-bit ↵Selene ToyKeeper4-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.
2023-11-21got ADC voltage+temp working on avrdd... but broke all other builds/MCUsSelene ToyKeeper2-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. :(