# 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`.