| Commit message (Collapse) | Author | Files | Lines |
|
It's the same as &hank-emisar-d3aa, but needed some minor tweaks:
- wait longer before measuring the battery,
because it's hard to tighten the tailcap fast enough
- ramp adjustments to compensate for slightly different "gear ratio"
|
|
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.
|
|
|
|
|
|
(also, fixed bug where a totally empty li-ion didn't get limited)
|
|
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.
|
|
(saving progress here so I can work on a different branch)
|
|
- 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)
|
|
|
|
|
|
|
|
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.
|
|
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. :(
|
|
ADC doesn't work yet. No voltage, no temperature.
I need to do a lot of refactoring on the ADC code. :(
|
|
(also modified the build scripts to work with the new file structure)
|
|
(just moved files, didn't change the contents yet,
and nothing will work without updating #includes and build scripts and stuff)
|
|
|
|
(works well in a FW3A host)
|