| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
symbols
|
| |
|
|
| |
16-bit numbers
|
| |
|
|
|
| |
(had only saved it so there would be a note in history about why it's gone)
|
| | |
|
| |
|
|
|
|
|
| |
which mostly impacts small errors (and reduces jitter during the flat phase of regulation)
while leaving large errors pretty much unaffected...
also, made acceptable thermal window smaller to make up for this new extra tolerance
|
| |
|
|
|
|
|
|
| |
count any more...
... just a boolean flag for whether this is the first sample or a later sample
(so I changed it and reduced the ROM size by ~28 bytes)
|
| | |
|
| |
|
|
|
|
|
|
| |
delay between warnings,
so large warnings can remain frequent while small warnings are separated by more time,
based on a cumulative error counter which must pass a threshold before the next warning is sent
(this is producing good test results so far on D4v2 and D4Sv2)
|
| |
|
|
|
| |
it regulates really fast on D4, but once it's stable, the adjustments are too large
|
| | |
|
| |
|
|
|
| |
(also, now treating smoothed ADC values as 11-bit, with the lowest 5 bits chopped off to eliminate noise)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
samples
(because, for some reason, even though 64 samples is plenty in a test program,
it ends up being extremely erratic when used inside Anduril... and I'm not sure why)
also, use 15-bit ADC values instead of 16 bits, in the temperature logic
(to help protect against integer overflows)
... but this code still doesn't work well. It regulates down *very* fast, and then
gradually rises until the next extra-fast drop-down. :(
... also, tempcheck mode sometimes changes by 4-5 C between readouts, which is worrisome.
... and factory reset is still broken.
|
| |
|
|
|
|
| |
(ceiling value was all wrong, and the response magnitude was way too big)
(also, temperatures here are unsigned, since freezing is about 270 in ADC units)
|
| |
|
|
| |
... doesn't work well, but I'm saving it so I can experiment with other methods and maybe revert back later.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
changed so far:
- removed LVP lowpass and thermal regulation lowpass logic; it's probably redundant now
- slowed ADC deferred logic timing to 4X per second instead of 16X,
because there doesn't seem to be much reason to do it any faster
- reduced thermal event rate-limit to just 1 second, for more responsive regulation
- added "EV_temperature_okay" signal, to help stop adjustments at an appropriate time instead of going to far
- sped up sleep LVP to one measurement every 8 seconds instead of 16,
to help the aux LEDs respond to voltage changes faster
(effect on standby time is negligible)
- make sure the WDT doesn't set the ADC channel or counter... except in standby mode
|
| |
|
|
| |
back to 64
|
| |
|
|
| |
sum-of-discrete-window method
|
| |
|
|
|
| |
(keeps stable values within ~0.46 to ~0.54 range, so truncated result has no noise)
|
| |
|
|
|
|
| |
eliminate noise and maybe increase precision
(thermal code still needs to be rewritten though)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- beacon mode off (suggested by Agro)
- tenclick shortcut on with thermal regulation off
|
| | |
|
| |
|
|
| |
of the previous attempt
|
| |
|
|
|
|
|
| |
match production units
(also made the factor configurable per build target)
|
| | |
|
| |\ |
|
| | |\
| |/
|/|
| | |
improvements
|
| | |
| |
| |
| | |
size! :)
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | | |
(by enabling the PCINT slightly sooner, before setting its "handled" flag)
|
| |\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- fixed occasional short/aborted frames in aux LED sleep animation
- fixed rare case of bogus voltage and/or temperature values
- fixed issue where nice_delay_ms() didn't work in setup()
- fixed theoretical possibility of extra-noisy buttons causing a hang
- fixed reboot loop which happened after any crashes
- fixed issue where button press in sleep mode could occasionally crash
(but the issue may have been created by this branch before being fixed by it)
- reduced occasional missed button events while asleep
(still seems to happen but not nearly as much)
Also does some other things:
- cleans up the ADC code significantly
- cleans up the WDT code
- adds a voltage stabilizer/lowpass option (enabled on t1634 builds)
- greatly reduces time spent per interrupt,
which might make a future PWM-DSM technique possible
- moves most interrupt-handling logic to a non-critical code path,
deferring that code until timing doesn't matter as much
- sped up button state measurements
- very slightly reduces power used in sleep mode
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
potential crashes
(even though I just fixed the only known bug which could trigger an unintentional reboot)
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
fixed bug where ticks_since_last could have the wrong value sometimes,
reduced power use in sleep mode very slightly by skipping button-handling code while asleep
|
| | | |
| | |
| | |
| | |
| | | |
(by turning off PCINT when the light is awake)
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
(but only on attiny1634 devices, since it costs a bit of space and isn't strictly necessary)
|
| | | |
| | |
| | |
| | |
| | |
| | | |
(also fixed issue where nice_delay_ms() was aborted during setup())
(and adjusted the timing to make factory reset similar to the speed it was before this change)
|
| | | |
| | |
| | |
| | |
| | |
| | | |
... but factory reset's auto-calibrate still doesn't get the right values for some reason
(manual calibration works, but not auto)
|
| | | |
| | |
| | |
| | | |
functions
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
set a flag and return immediately,
then handle the actual logic later during a less-critical code path
Enables smarter responses to standby wakeups.
Seems to fix missed button presses during standby,
and most of the too-fast sleep ticks.
Also eliminated waits from button state measurement, so it can happen easier during standby.
(also eliminates the chance of an infinite loop on extra-noisy hardware)
Also might improve timing-sensitive interrupts like attiny85 PWM channel 4,
or a PWM-DSM hybrid technique I'd like to try.
BUT this change also appears to break the thermal sensor, so that needs to be fixed.
|
| |/ / |
|
| | | |
|