All notable changes to OpenEMC will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- I2C: check for stuck SCL during recovery
- I2C: bus recovery
- STUSB4500: verify received PDOs by obtaining them twice
- Linux pstore support
- STUSB4500: always perform register reset after pin reset
- improve LED behavior
- supply: derate reported currents by 100 mA
- supply: connect data lines in charge mode
- supply: allow explicit disconnection of USB data lines via sysfs
- supply: use no input current when disconnected according to any detector
- STUSB4500: prohibit reset when battery is low
- BQ25713: only warn when readback fails
- supply: increase USB-SDP and negotiation current to 500 mA
- STUSB4500: avoid attach loop with mobile devices
- bootloader: avoid bootloader entry after power-on reset, if possible
- bootloader version 0.3.2
- STUSB4500: NVM programming
- STUSB4500: reset when BQ25713 I2C communication fails
- STUSB4500: log monitoring and hardware fault status
- power: switch to charging mode when battery is below minimum power-on voltage or reset was due to power loss with charger attached
- BQ25713: improve status logging
- BQ25713: enable ICO for USB-CDP supply
- charging mode: power off when charger is disconnected during grace period
- board IO support
- board ioctl support
- task spawning by board
- refactored board init
- allow querying whether power on was by charger attachment
- allow explicit reboot into charging mode
- allow usage of charge LED during init for debugging, enabled by feature
debug-blink
- handle board power on by charger connection in global init
- allow querying of bootloader CRC32 and flash size via sysfs
- power: switch to charging mode when battery is below critical voltage
- bootloader: dynamic flash size detection
- logging: gzip ELF images to save space on target
- logging: find bootloader ELF image based on CRC32 of bootloader
- configuration location in flash
- BQ25713: enable input current optimizer (ICO) algorithm on USB-DCP ports
- reliable configuration storage in flash memory
- power: configuration option to prohibit power off
- power: confiugration option to power on when charger is attached
- verify firmware fits into flash during packing
- support board power off request during initialization
- optimize firmware size
- build core crate when using Rust nightly toolchain to save flash space
- update dependencies
- bootloader version 0.2.7
- standby entry support from bootloader
- STUSB4500: avoid soft reset when PDO is unchanged
- Supply: reduce max current during negotiation
- set input current limit to zero if BQ25713 CHRG_OK pin is low and reprogram the configured value immediately after it goes high
- positions of log sections in RAM was unstable
- possible panic during RTC clock source change
- support for board-specific periodic handler function
- board software versioning
- reconfigure charger when setting input current failed
- read unique device identifier
- system not powering on after watchdog reset
- CRC32 checksumming and error correction for I2C requests to main firmware
- more robust ring buffer implementation
- logging to host via I2C with temporary storage in persistent memory buffer
- charging mode for charging with system power off
- charging indication via LED
- echo service for I2C testing
- support for MAX14636 USB charger detector
- bootloader version 0.2
- tolerate unreliable BQ25713 and STUSB4500 communication
- power loss during firmware start due to GPIO reset
- I2C timeout for unprocessed I2C read requests
- support for BQ25713 battery charger
- Linux drivers for battery and external power supply
- support for firmware-generated interrupts
- reset STUSB4500 if PD contract fails
- support for I2C bus 2 master
- support for STUSB4500 USB PD controller
- inconsistent logic levels on complementary PWM outputs if a channel on timer 1 is disabled
- use internal oscillator for system clock
- PWM output support
- initial release