aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog.md
blob: a60b662b2fed78995939c2eafdc247f69cf837b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
# ChangeLog

Items should be sorted roughly in order of most to least important, with 
model-specific changes at the bottom.  Most items should use one of these 
formats:

  - Breaking change:
  - Added
  - Fixed
  - Removed
  - Changed
  - Documented
  - &brand-model: Hardware-specific change (NNNN, NNNN, ...)

# Next

# 2025-04-29

Pretty minor release.  Things have been weird lately.

General:

- Removed access to strobe/mood modes in Extended Simple UI, to make it more
  safe and simple by default.

New lights:

- Added &hank-lume-x1 (0281): Covers all of Hank's recent Lume X1-based lights.
- Added &wurkkos-ts10-rgbaux-lowfet (0712): Variant with lower max power,
  created at Wurkkos's request, to stop new batches of low-Vf lights from
  damaging themselves.

# 2024-04-20

General:

- Smooth steps now work in Lockout Mode, if enabled.
- Made eeprom access more reliable, by waiting for power to stabilize before
  reads and writes.
- Increased voltage resolution to 0.02V.  It can, for example, read out 1.20V,
  1.22V, 1.24V, 1.26V, 1.28V, or 1.30V.
- Added weak battery detection, to limit power on alkaline, on empty cells, and
  while powered by a flashing adapter.  Should prevent cell overload and magic
  smoke.  Weak battery mode blinks 3X at boot.  (d3aa only, so far)
- Made dark "blip"s work better on some types of regulators.
- Fixed bug: 3C in Tactical Mode would change the channel when it shouldn't.
- Fixed bug: Aux channels were off/off/high for levels 0/1/2.  Now uses
  off/low/high.
- Misc improvements to the build process.  Can build with Tactical Mode without
  Momentary Mode.  Can build with newer avr-libc.  Version strings calculated
  better now.  Github actions can be run manually.
- Documentation updates.

New lights:

- Added &hank-emisar-2ch-fet-joined, for the lighted-switch variant of the D4S.
  It uses a 2-channel driver with only 1 channel of LEDs.  (0137)
- Added &hank-emisar-d3aa, the first "3rd generation" torch (avr32dd20,
  thefreeman HDR driver).  (0161)
- Added &fireflies-pl47g2-219, a reduced-power version of the PL47G2.

Hardware-specific changes:

- &lumintop-fw3x-lume1: Reduced visible pulsing on low modes.

# 2023-12-03

This release is somewhat higher risk than usual, because so many large things
changed deep in the code.  I did major restructuring and refactoring across the
entire project.  It should work fine, but be on the lookout for any weird
problems.

General:

- Moved from Bzr + Launchpad to **Git + GitHub**, by popular request.
- **Completely reorganized the project** files.  Really, a *massive* amount of
  restructuring.  The flashlight end-user interface is still the same, but
  expect to have to learn the code layout from scratch.  Read the [README.md]
  for info about getting started with the new project layout.
- Added support for AVR DD MCUs like **avr32dd20**.  This is the recommended
  MCU to use in new flashlights.
- Added ability to use turbo in momentary mode.
- Upgraded **battery voltage resolution** from 0.1V steps to **0.025V** steps.
  Battery check has an extra digit which can be 0, 2, 5, or 7 (for example, for
  3.70V, 3.725V, .3.75V, and 3.775V).
- Made Battery Check more consistent, so it's less likely to give different
  values on the 1st and 2nd readout.
- Re-calibrated timing on each MCU type, so a 1-second beacon flasher should be
  closer to 1 actual second now... mostly.  Timing still varies significantly
  from one light to another.
- Fixed default bike flasher brightness on some builds.  It was sometimes way
  too high.
- Fixed RGB aux turning on during momentary mode sometimes.
- Converted documentation to markdown format, and rewrote a lot of it.
- Fixed some build issues with specific compile-time options.
- Changed the format of **version numbers**.  It now uses the most recent
  release tag instead of the build date, and **may have additional numbers at
  the end** to indicate distance from the last official release, and whether
  the repo was clean or dirty.  Today's release is `MODEL-2023-12-03`.  A
  derivative built 52 commits later in a dirty repo would look like
  `MODEL-2023-12-03-52-1`.

New lights:

- Added &thefreeman-avr32dd20-devkit.  It's only used for development purposes,
  but otherwise it's pretty neat.  It'll be the basis for many new lights in
  the future.  (model 1632dd20)

Hardware-specific changes:

- Improved idle efficiency on attiny1616, which was spending entirely too much
  time doing math it didn't actually need.
- &hank-\*-boost: Fixed flicker while holding button at moon level.  Reduced
  ripple on low modes. (0216, 0253, 0273)
- &lumintop-blf-gt: Added smooth steps.  Removed a couple other things to make
  room.  (0321)
- &lumintop-fw3x: Multiple fixes and upgrades...  (0314, 0315)
  - Fixed thermal regulation.  Also fixed the external temperature sensor.
  - Made moon much lower, and made ramp much smoother, by upgrading to DSM.
  - Fixed the aux RGB pinouts because Lumintop got the wiring backward.
  - Added a second build target for people who fixed the wires manually.
  - Added red/blue police color strobe.
  - Made low modes more efficient with underclocking.  Moon should run at least
    4X as long as it did before.
  - Fixed party strobe being blurry.
  - Added documentation for the FW3X's multiple, uh, quirks.
- &sofirn-lt1s-pro: Disabled manual memory, memory timer, and extended simple
  UI by default.  Simple mode is simpler, and the factory settings should be
  more consistent with other lights now.  (0623)

# 2023-10-31

General:

- Finally finished converting all lights to the multi-channel API.
  (but a few are untested due to hardware being unavailable)
- Enabled smooth steps on almost all supported lights, including old ones.
  (in some cases, on old t85 lights, some other things may have been removed
   to make room)
- Made smooth steps work better, and fixed several bugs.
- Added/fixed RGB aux voltage on dual-fuel AA/li-ion drivers.
- Fixed delay timing on all supported MCUs, so 1 "second" is closer to an
  actual second (like in beacon mode or biking mode).
  (especially attiny1616, which was 17% too slow)
- Raised default thermal limit to 50C on attiny1616-based lights, since
  it doesn't need as big an error margin as older MCUs.
- Fixed missing item in globals menu on some lights.
- Misc internal improvements and per-light tweaks.
- Added a ChangeLog.md, to periodically summarize changes in a format which is
  more readable than the raw commit logs.

New lights:

- &thefreeman-boost21-6a: Added.  (1631)
  (very nice HDR boost driver which fits into a FW3A)
- &thefreeman-boost-fwaa: Added.  (1632)
  (very nice AA/li-ion HDR boost driver which fits into a FWAA)

Hardware-specific changes:

- Upgraded several builds to use delta-sigma modulation (DSM), for
  lower lows and smoother ramping with less flicker or ripple:
  - &blf-lt1  (0621)
  - &blf-lt1-t1616  (0622)
  - &emisar-d4k-3ch  (0151)
    (**dramatically** improves resolution and low modes on its 8-bit channel)
  - &noctigon-dm11-boost  (0273)
  - &noctigon-kr4-boost  (0216)
  - &noctigon-k1-boost  (0253)
  - &noctigon-m44  (0143)

- Upgraded some builds to use dynamic PWM, for lower lows and smoother ramping:
  - &blf-q8-t1616,  &sofirn-sp36-t1616  (0613, 0614)
  - &gchart-fet1-t1616  (1618)
  - &noctigon-k1-sbt90  (0252)

- &wurkkos-ts10, &wurkkos-ts10-rgbaux: Fixed too-high default ceiling.  (0713, 0714)

# 2023-10-01

General:

- Updated a bunch of lights to work with the new multi-channel API.
- Added "smooth steps" a.k.a. "soft start", to make on/off and step changes
  smooth.  (enabled by default, can be turned off in Ramp Extras menu)
- User can save a different channel mode for each strobe-group mode.
- Made strobes/blinkies more responsive in Tactical Mode.
- Fixed bug: Tactical Mode clobbers strobe group memory.
- Fixed some minor post-off voltage display bugs.
- Made RGB button brightness update faster in blinky modes.
- Fixed bug: Wrong channel after colored factory reset.
- &attiny1616, &attiny1634: Partially fixed oscillating aux LED voltage 
  colors while off.  Better than before, but can still happen in some cases.
- &attiny1616: Fixed spurious voltage warnings in sleep mode.  (it could 
  sometimes go from Lockout mode to Off mode by itself)
- Lots of internal refactoring.

New lights:

- &emisar-2ch-fet: Added.  (0136)
- &emisar-d4k-3ch: Added.  (0151)
- &noctigon-m44: Added.  (0143)
- &wurkkos-ts10-rgbaux: Added.  (0713)

Hardware-specific changes:

- &ff-e01, &ff-pl47, &ff-pl47g2: Enabled smooth steps instead of SOS mode.
  (0421, 0422, 0423, 0441)
- &emisar-2ch, &noctigon-m44: Added RGB aux channel modes.  (0135, 0143)
- &emisar-2ch-fet, &noctigon-k9.3: New ramps with better-calibrated shape.
  (0136, 0261)
- &emisar-d4v2-nofet: New ramp table.  (0115)
- &emisar-d4sv2-tintramp: Removed / renamed.  (0135, 0136)
- &noctigon-k9.3: Fixed years-old mess.  Merged builds, converted to
  multi-channel, removed old builds, generally got K9.3 working quite a bit
  better.  (0261, 0262, 0263, 0265, 0266, 0267)
- &noctigon-m44: Lower moon, and greatly reduced flicker.  (0143)
- &sofirn-lt1s-pro: Allow configuring the blink channel.  (0623)
- &wurkkos: Raised default temperature limit to 50 C.  (07xx)
- &wurkkos-ts10: Better / smoother ramp.  (0713, 0714)

# 2023-06-29

- Fixed red aux blink on 1st frame of post-off voltage display
- Removed Harry Potter references because its author (J.K. Rowling) spreads 
  hate
- &noctigon-kr4: Fixed thermal regulation (0211, 0212, 0213, 0214, 0215, 0216)

# 2023-05-30

- Breaking change: Changed version check from YYYYMMDDXXXX to XXXX.YYYY-MM-DD, 
  where the punctuation makes a "buzz" instead of number blinks.
- Fixed issue where some lights always thought they were overheating (when 
  cold, or after a factory reset)
- Fixed aux pre-flash
- Fixed a rare corner case where gradual brightness adjustments stopped at 99% 
  power instead of 100% power while going up from level 149/150 to 150/150 on 
  some lights
- Changed "0" digit readout to use the same timing as other short blinks, to 
  help ensure it works on all lights.
- Minor code changes with no runtime impact
- Documented new version check format
- &wurkkos: Added red+blue police strobe (0715, 0716, 0717)
- &noctigon-kr4: Broke thermal regulation (oops) (0211, 0212, 0213, 0214, 
  0215, 0216)
- &noctigon-kr4: Use 7 aux channel modes instead of 3 (0211, 0212, 0213, 0214, 
  0215, 0216)
- &emisar-d4v2: Changed number blinks from aux to main LEDs by default (0113, 
  0114, 0115, 0123)

# 2023-05-17

- &noctigon-dm11-12v: Renamed to noctigon-dm11-boost (0273)
- &noctigon-dm11-boost: Now supported in multi-channel branch (0273)

# 2023-05-02

- Added ability to set channel mode for number readouts (batt check, temp 
  check, version check). Press 3C in batt check mode to change the blink 
  channel.
- Changed post-off voltage display:
  - Display for 4s by default, not 5s
  - Made timing user-configurable in battcheck 7H menu item 2
    (1 click per second the display should last)
  - Use low brightness when torch was at moon level before
  - Skip the voltage display after UI actions which didn't change the mode 
    (like "Off -> 7C" to change aux LED settings)
- Changed RGB button behavior: While torch is on, use low mode below a 
  configured level for real-time voltage color display, instead of always 
  using high mode
- Fixed bug: Channel change could stick when activating a config menu from 
  battcheck (the blink function changed the channel, then the config menu 
  saved it, then the blink function restored it, then the config menu restored 
  it to the value it saved, which was wrong)
- Documented ramp 6C, ramp 4C, ramp 4H, lockout 3H, battcheck 3C, and post-off 
  voltage display config
- &emisar-d4v2: Added the rest of the aux RGB colors as channel modes, and set 
  aux "white" as the mode it uses to blink out numbers (0113, 0114, 0115, 
  0123)
- &wurkkos-ts10: Converted to multi-channel, and gave it a new ramp with 
  better low modes (0714)
- &wurkkos-ts25: Converted to multi-channel, and gave it a smoother ramp 
  (0715)
- &wurkkos: Added Wurkkos FC13 and TS11 (0716, 0717)

# 2023-04-29

- Changed lockout mode:
  - Fixed manual memory timer and tint
  - Added 3H for next channel (to change channels without unlocking, was 
    possible before but needed to be updated for the new channel system)
  - Made 3H+ use mem level instead of lowest moon (this is needed for
    making the channel discernible, and also helps make aux LED controls
    stand out more)
- &emisar, &noctigon: Added Extended Simple UI to Hank's config, so a few more 
  features are allowed in simple mode
- &emisar-d4v2, &noctigon-kr4: Slightly smaller ROM size
- &emisar-d4sv2: Converted to multi-channel, and updated it to use dynamic PWM 
  for a smoother ramp with lower lows (0133, 0134)
- &noctigon-kr4: Converted to multi-channel (0211, 0212, 0213, 0214)
- &noctigon-kr4: Don't blink at top of regulated power (0211, 0213, 0214)

# 2023-04-28

- Added voltage display (by color) on RGB aux LEDs after turning the main LEDs 
  off
- Changed RGB aux: Always preview in high mode while changing color or pattern
- Changed default RGB aux color in lockout mode: Uses blinking voltage, 
  instead of blinking disco (unless model-specific config defines a different 
  default)
- Changed tactical mode default config: only use 2-color strobe if it's on 
  main LEDs, not aux LEDs
- &emisar-d4v2: Smoother ramp (0113, 0114)
- &emisar-d4v2: Added hidden channel modes for RGB aux LEDs (0113, 0114, 0115)

# 2023-04-27

- Changed channel mode menu to preview channels during configuration
- Changed tactical mode default config: use 2-color police strobe if it 
  exists, instead of single-color strobe
- Fixed unnecessary flickering when changing channel modes from/to the same 
  value
- Fixed sleep voltage measurement on attiny1616
- &noctigon-kr4-tintramp: Converted to multi-channel, renamed to 
  noctigon-kr4-2ch (0215)

# 2023-04-25

- Fixed old old bug(s) with voltage measurement while asleep, while also 
  adding other improvements:
  - Fixed oscillating RGB aux colors while asleep in voltage mode, mostly.  
    Some much smaller oscillations are still possible, but the primary issue 
    has been fixed, I think.
  - Fixed old old bug which could cause spurious low-voltage warnings while 
    asleep (previously required a messy code workaround).
  - Reduced avg standby power by ~15uA.
  - Now measures voltage every 1s instead of 8s while asleep.
  - Changed RGB aux behavior: Puts aux LEDs in high mode for 3 seconds after 
    light goes to sleep (much easier to see the voltage this way)
    (this change was obsoleted soon by a better post-off voltage display)
  - Broke sleep voltage measurement on attiny1616 (oops)
- Changed internal details for how gradual ramping works
- &emisar-d4sv2-tintramp: Converted to multi-channel, renamed to emisar-2ch. 
  (0135)
- &sofirn-lt1s-pro: Updated to use today's new code internals (0623)

# 2023-04-19

- Added stepped tint ramping
- Documented new channel modes system
- &sofirn-lt1s-pro: Added white-only auto-tint mode (0623)

# Older: TODO

- Need to import old commit logs as changelog items


<!-- vim: set textwidth=78 shiftwidth=2 -->