- UiDensity moved to lvgl-module
- Deleted tt_hal and tt_hal_gpio (breaks apps, but will fix those right after merging)
- Added I2C 8 bit register operations
- Added device.properties to simulator
- Improved Tab5 hardware init, implement audio
- Add README.md to kernel
**New Features**
* Runtime font accessors and new symbol fonts for text, launcher, statusbar, and shared icons.
* Added font height base setting to device.properties
* Text fonts now have 3 sizes: small, default, large
**Improvements**
* Renamed `UiScale` to `UiDensity`
* Statusbar, toolbar and many UI components now compute heights and spacing from fonts/density.
* SSD1306 initialization sequence refined for more stable startup.
* Multiple image assets replaced by symbol-font rendering.
* Many layout improvements related to density, font scaling and icon scaling
* Updated folder name capitalization for newer style
* **Refactor**
* GPIO subsystem moved to a descriptor-based model for per-pin ownership and runtime pin management; many platform drivers now acquire/release descriptors.
* Device trees and drivers now use GPIO phandle-style pin specifications across all boards and all drivers.
* **Behavior**
* Device list now encodes per-device status (ok/disabled); boot will skip disabled devices accordingly.
* **Deprecation**
* Legacy GPIO HAL marked deprecated and replaced with descriptor-based interfaces.
* **Chores**
* Bindings and platform configs updated to the new GPIO pin-spec format.
* **DevicetreeCompiler**
* Binding properties now support default values.
* Compiler returns meaningful exit codes and reports errors more clearly.
* Stronger validation of device configurations with unified error handling.
* Added integration tests and a dedicated Devicetree test workflow.
* **Changes**
* Platform binding schemas updated: some fields made required, others gained explicit defaults.
* Many device-tree files simplified by removing unused/placeholder pin and transfer-size entries.
* **Documentation**
* Removed several outdated TODO items.
- Implement SPI devices in dts files for all devices
- Removed `tt::hal::spi` HAL and its configurations
- Fix for devicetree generator "boolean" support
- Remove unused custom locks in all `DisplayDevice` implementations
- Fixed some bugs with devices
- Updated XPT2046 driver
- Fix for `WifiEsp` deadlock
- Export a lot of new `math.h` symbols with `tt_init.cpp`
- Created `SpiDeviceLock` in `TactilityCore` as a wrapper for kernel SPI locking
- Improved `TactilityKernel` SPI driver.
- Add kernel support for SPI driver
- Add kernel support for UART driver
- Implemented ESP32 UART kernel driver
- Update existing UART-related code in Tactility to use new kernel driver
- Remove UART from tt::hal::Configuration
- Remove tt_hal_uart functionality but keep functions for now
- Update devicetrees for UART changes
- Kernel mutex and recursive mutex: improved locking API design
- Other kernel improvements
- Added device_exists_of_type() and device_find_by_name()
* **New Features**
* Added public accessors for querying module/device start and ready state.
* **Refactor**
* Internal state moved to opaque internal objects; module/device/driver initializers now explicitly initialize internal pointers.
* Lifecycle handling updated to construct/destruct internal state and use accessors.
* **Tests**
* Tests updated to use public accessors and explicit construct/destruct lifecycle calls.
* **Chores**
* Test build/include paths and small metadata updated.
* **New Features**
- Adds module symbol support and per-module symbol tables, including LVGL symbol exports moved into a dedicated table.
* **API**
- Adds symbol-resolution APIs and an accessor to enable dynamic lookup between modules.
* **Bug Fixes / Chores**
- Explicitly initializes module symbol pointers across device and platform modules to avoid uninitialized state.
* **Tests**
- Updates tests to account for symbol pointer initialization.
* **New Features**
* Added a HAL device module providing device enumeration, type queries and a HAL↔kernel bridge.
* **Improvements**
* Integrated HAL module into startup; standardized module names, includes and lifecycle logging; safer file append behavior; broader build support.
* **API Changes**
* Driver lifecycle now uses explicit add/remove semantics; C and HAL device type/lookup APIs clarified.
* **Chores**
* Added module README and Apache‑2.0 license; updated build configuration to include the new module.
* **Fixes**
* Updated tests and object file handling to behave correctly.
Standardised device module identifiers across all supported devices to use consistent naming conventions with lowercase alphanumeric and hyphen-separated formats.
* **New Features**
* Plugin-style modules for platforms and devices with start/stop lifecycle and a runtime-consumable device tree array.
* **Refactor**
* Consolidated initialization into a kernel/module startup flow.
* Generated devicetree artifacts moved to the build Generated directory.
* **Changes**
* Removed legacy no-op registration hooks and I2C lock/unlock wrappers.
* Driver ownership and private state moved to explicit module/owner model.
* Added ERROR_NOT_ALLOWED error code.
Devictree changes:
- Create DTS files for all remaining devices
- Update corresponding `devicetree.yaml`
- Remove `i2c` configuration from corresponding `tt::hal::Configuration`
Apps & HAL:
- Removed I2C Settings (we'll make a new one later after I rework that part of the HAL)
- Delete TactilityC GPIO and I2C functionality
- Delete Related SystemEvent types
- Refactor `tt::hal::i2c` to only use `struct Device*` wrapping
Scripting:
- Fix DevicetreeCompiler boolean parsing
- Create `build-all.py`
**New features**
- Created a devicetree DTS and YAML parser in Python
- Created new modules:
- TactilityKernel (LGPL v3.0 license)
- Platforms/PlatformEsp32 (LGPL v3.0 license)
- Platforms/PlatformPosix (LGPL v3.0 license)
- Tests/TactilityKernelTests
Most boards have a placeholder DTS file, while T-Lora Pager has a few devices attached.
**Licenses**
Clarified licenses and copyrights better.
- Add explanation about the intent behind them.
- Added explanation about licenses for past and future subprojects
- Added more details explanations with regards to the logo usage
- Copied licenses to subprojects to make it more explicit
- `TT_LOG_*` macros are replaced by `Logger` via `#include<Tactility/Logger.h>`
- Changed default timezone to Europe/Amsterdam
- Fix for logic bug in unPhone hardware
- Fix for init/deinit in DRV2605 driver
- Other fixes
- Removed optimization that broke unPhone (disabled the moving of heap-related functions to flash)