## Changelog ### v0.75-alpha1 - Include explicitly closed source license for now. - Auto-initialize optional submodules when needed. - Reduce number of watchdog timer resets. - Fix command parser tail pointer semantics. - Improve sensor log readability and minor naming fixes. - Add multiple README sections and use markdown formatting. - Reduce RXBUF size to match parser and space out log messages. - Prevent redundant writes and start implementing parser timeout. - Fix large serial command input triggering watchdog. - Implement serial command parser with floating point support. - Use reference sentinel to efficiently reset dirty flags on rollover. - Pass variable structure as argument for memory functions. - Fix possible race condition and ensure proper reset flag detection. - Check MCUCSR for WDRF flag only. - Implement memory wear leveling algorithm. - Define memory manager constants. - Dump EEPROM to ensure low level memory access is working correctly. - Implement raw EEPROM read and write functionality. - Burn EESAVE fuse to preserve EEPROM on chip erase. - Define basic EEPROM data structures and functions. - Implement alternate voltage divider equation. - Calculate average dewpoint from multiple sensor measurements. - Test different approach for resistance calculation. - Ensure math functions are named consistently. - Make sure dewpoint calculations are correct. - Split thermistor functions into separate logical units. - Implement all required conversion functions. - Define conversion functions for TD, T and RH. - Update planned FREQ, ARCH, MCU and fix superfluous whitespace. - Define basic structure for primary state machine. - Remove executable bit from pdf files. - Add data sheet for ATMEGA1284P. - Poll ADC mode bit until conversion has finished. - Set FAN03 to maximum duty and declutter log output. - Calculate temperature from thermistor resistance. - Set ADC gain to 6.144V and fix multiplexer channel documentation. - Define constants for ADC multiplexer settings and describe I2C status flags. - Define constants for watchdog timeout flags. - Initialize OCR1A to FAN02\_MIN\_DUTY and add PWM documentation. - Minor coding style and consistency fixes. - Jump to reset vector when program exceeds specified watchdog timeout. - Start implementing watchdog timer. - Make log output slightly more readable. - Implement ADS1115 register reading and writing. - Try setting variable PWM frequency with timer2. - Set pin for light MOSFET to low in MOS\_Init. - Remove invisible runtime assertions. - Rename module TWI to I2C and add comments. - Read and translate AHT20 sensor readings. - Move PWM and MOSFET implementations into separate module files. - Ensure correct naming for PWM devices. - Calculate PWM\_CYCLE\_TOP from F\_CPU. - Add more general SetMosState() and SetPwmValue() functions. - Configure PWM timers for 25 KHz. - Handle PWM on pin PD4, PD5 and PD7. - Start working on system initialization. - Add data sheets for ADS1115 and AHT20. - Handle I2C multiplexer channel selection. - Implement USART with bot RX and TX interrupts. - Rewrite logging system and sync state with clients. - Handle numeric arguments for TEMP/DEWP commands. - Update documentation and add USART specification. - Start implementing proper parser state machine. - Add optional project submodules 'tools' and 'webgui'. - Implement ring buffer and auxiliary functions. - Add swapfiles and bin/ to .gitignore. - Handle USART\_RXC interrupt. - Implement basic UART reading.