Rewrite on libavr
Same controller: thermistor on ADC0 averaged over 1000 free-running conversions, 50 kHz fan PWM on OC0B, 115200 Bd console with the full command set, EEPROM temperature histogram, watchdog-reset path into the boot section. The Steinhart-Hart math and the libm log are gone — the Beta equation and the cubic fan curve are consteval-evaluated into flash tables; the firmware never does floating point. Byte-identical .text in both libavr modes. Legacy stays on master. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
22
README.md
Normal file
22
README.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# fantemp
|
||||
|
||||
Temperature-controlled fan firmware (ATmega328P, 16 MHz), rewritten on
|
||||
[libavr](https://git.blackmark.me/avr/libavr): thermistor on ADC0 sampled
|
||||
free-running and averaged over 1000 conversions, fan on OC0B at 50 kHz,
|
||||
115200 Bd serial console (`help` lists the commands), temperature
|
||||
histogram persisted to EEPROM, watchdog-reset path into a boot-section
|
||||
bootloader.
|
||||
|
||||
The Steinhart–Hart math of the legacy firmware (runtime doubles + libm
|
||||
log) is gone: the Beta equation and the cubic fan curve are evaluated
|
||||
consteval into flash tables — the firmware itself never touches floating
|
||||
point.
|
||||
|
||||
Build against a libavr checkout:
|
||||
|
||||
```sh
|
||||
LIBAVR_ROOT=/path/to/libavr cmake --preset atmega328p-generated
|
||||
cmake --build --preset atmega328p-generated
|
||||
```
|
||||
|
||||
Legacy (yazoalfa submodules) stays on `master`.
|
||||
Reference in New Issue
Block a user