Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:dev:tailcontrol-release-notes [2024/05/31 16:56] – darkgrue | en:dev:tailcontrol-release-notes [2026/09/25 20:35] (current) – darkgrue | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | ===== TailCoNTROL v5.0.9 ===== | + | ===== TailControl v5.4.8 ===== |
| + | |||
| + | ==== Fixed ==== | ||
| + | * Removed duplicated line in console banner logo. | ||
| + | * **Serial console dropping characters and lines on ESP32-S3 boards (EarGear 2 v4.1, ClawGear v4.1).** The Arduino-ESP32 3.3.7 HW USB CDC driver silently discards up to 64 bytes when '' | ||
| + | * **Console lines losing their beginning after brief USB link dropouts.** The HW USB CDC TX buffer is increased from 256 to 2048 bytes ('' | ||
| + | * **ClawGear: Tilt and Clap Mode only responded while a move was running.** The accelerometer servicing condition was inverted. The fix from '' | ||
| + | * **ClawGear: uninitialized '' | ||
| + | * **ClawGear: the tilt classifier low-pass filter is reseeded after missed updates** (a move running or modes off), so stale readings can't trigger a tilt right after a move. | ||
| + | * **ClawGear: the tilt state is reset when Tilt Mode is armed**, so the current tilt triggers immediately, | ||
| + | |||
| + | ==== Added ==== | ||
| + | * Added '' | ||
| + | * '' | ||
| + | * Each message is formatted in full and queued as one item. A single writer task performs every '' | ||
| + | * Uses a 2 KB queue with a static ring buffer, a static writer task and no heap allocation. | ||
| + | * API: '' | ||
| + | * The '' | ||
| + | * Output loss is now visible: a cut line ends in '' | ||
| + | |||
| + | ==== Changed ==== | ||
| + | * All console output in '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * The startup banner no longer calls '' | ||
| + | * Application tasks are created with '' | ||
| + | |||
| + | ==== Removed ==== | ||
| + | * **ClawGear: | ||
| + | |||
| + | ==== Internal ==== | ||
| + | * Native test mocks: added logger stubs, since '' | ||
| + | * Fixed warnings in release builds (no '' | ||
| + | |||
| + | |||
| + | ===== TailControl v5.4.7 ===== | ||
| + | |||
| + | === New Features === | ||
| + | * Added ClawGear hardware platform. | ||
| + | * Split move systems between servo and stepper. | ||
| + | * Added RGB support. | ||
| + | * Add RGB LED strip support for MiTail Mini on Servo 2 port. | ||
| + | * Add RGB LED strip support for ClawGear on Servo 2 port. | ||
| + | * Added RGB LED strip support on serial port RX pin for MiTail products, based on suggestion from Code-L (good idea 👍). | ||
| + | * Added terminal RX status. | ||
| + | * Added `remapConsoleRXtoGPIO` to NVS settings commands. | ||
| + | * Added per-product RGB setting defaults (number of LEDs, current limits, etc.). | ||
| + | * Added `SETRGB` to NVS settings commands to set RGB LED parameters. | ||
| + | * Added `SETBRT` to NVS settings commands to set RGB LED default global brightness parameter. | ||
| + | * All RGB commmands support brightness override (and can set hue, where appropriate). | ||
| + | * Added servo hold on stop to NVS settings commands (`SETHOLDONSTOP` / `UNSETHOLDONSTOP`). | ||
| + | * Added BLE disconnected countdown disable/ | ||
| + | * Added internal move enable/ | ||
| + | * Added `myColor` setting (request from Code-L) - device " | ||
| + | * Added `SETMYCOLOR` command. | ||
| + | * `MYCOLOR` returned as part of `VER` response. | ||
| + | |||
| + | === Bugfixes / Refactoring === | ||
| + | * Refactor to move PlatformIO platform to `pioarduino-stable`. | ||
| + | * Migrated to new I2S driver. | ||
| + | * Implemented unit testing for `taskconsole()` function. | ||
| + | * Minor shutdown code cleanup. | ||
| + | * Removed unused servo speed parameter. | ||
| + | * Fixed CRITICAL Conference Mode kernel panic, reported by SnowOwlX (thank you!) | ||
| + | * Increased stack size margins to be closer to 50% free at worst case. | ||
| + | * Refactored `platformio.ini` file. | ||
| + | * Re-baselined tilt mode zero points for EarGear 2. | ||
| + | * `TILTMODE` cooldown reduced to 3 seconds, down from 4. | ||
| + | * Renamed `timersTask` to be consistent with other task names. | ||
| + | * Fixed `WRITECONF`, | ||
| + | * Updated functionality for Python extra scripts to improve maintainability of the PlatformIO build process. | ||
| + | * Adjusted `.gitignore` file. | ||
| + | * Removed `extensions.json` from inclusion, as it's auto-generated. | ||
| + | * Stop including `esp-web-tools/ | ||
| + | * Change internal move references to `MOVE_HOME`, | ||
| + | * Fix `build_unify_binary.py` script not triggering reliably. | ||
| + | * `patch_libdeps.py` handles already-patched files more robustly. | ||
| + | * Performed code hygiene review: | ||
| + | * Fixed null-check `strtok()` results before calling `startOTA()`. | ||
| + | * Fixed reset OTA byte counter at the start of each OTA session. | ||
| + | * Fixed null-check `malloc()/ | ||
| + | * Fixed clamp BLE RX `memcpy()` length to actual string length. | ||
| + | * Replaced `xQueuePeekFromISR()` with `xQueuePeek()` in task context. | ||
| + | * Guard Autonomous Mode group bit shift against out-of-range index. | ||
| + | * Use `>=` instead of `==` for serial RX buffer overflow check. | ||
| + | * Removed contradictory signaling and makes the OTA state machine unambiguous. | ||
| + | * Robust null-handling for moving-average allocation and use is implemented in EG2 listen-mode processing. | ||
| + | * Correctly map `AUTOMODE` groups and guard bitflag generation. | ||
| + | * Skip zero-length BLE writes in `execOTA()` to prevent duplicate ACK. | ||
| + | * Guard against re-entrant `startOTA()` while a transfer is already active. | ||
| + | * Release OTA flash write handle when BLE disconnects mid-transfer. | ||
| + | * Pass actual BLE connection handle to `updateConnParams()`. | ||
| + | * Switch `p_characteristicRX` from `INDICATE` to `NOTIFY`. | ||
| + | * Replace blocking `delay()`/ | ||
| + | * Abort and restart on `Update.end()`/ | ||
| + | * Enforce 60-second inactivity timeout during OTA transfer. | ||
| + | * `ota.py` subscribe to TX characteristic for firmware status notifications. | ||
| + | * Fix multifunction button LED animations. | ||
| + | |||
| + | === Library Updates === | ||
| + | * Updated ESP32Servo library to v3.2.0. | ||
| + | * Updated NimBLE-Arduino library to v2.5.1. | ||
| + | * Updated ServoEasing library to v3.6.0. | ||
| + | * Added NeoPixelBus# | ||
| + | * Replaced JLed libary with custom class (`LedFx`) built on Core v3's native API. | ||
| + | |||
| + | === Updated Documentation === | ||
| + | * Added new Move Reference Wiki page. | ||
| + | * Bumped copyright year to 2026. | ||
| + | * Added notes about flying with devices that contain LiOn batteries to documentation. | ||
| + | * Added move mappings for FlutterWings. | ||
| + | * Documented new commands and command changes. | ||
| + | |||
| + | |||
| + | ===== TailControl v5.2.8 ===== | ||
| + | |||
| + | * Rebranded "TailCoNTROL" to " | ||
| + | * Add full EarGear 2 support: | ||
| + | * Add dedicated firmware moves for EarGear 2. | ||
| + | * Set EarGear 2 to maintain servo holding at all times to facilitate assembly (as per staff request). | ||
| + | * New I2S support added. | ||
| + | * Set configuration item for Listen Mode to send responses only. | ||
| + | * Set configuration item for Tilt Mode to send responses only. | ||
| + | * Add I2S debug task for Ear Gear. | ||
| + | * Add configuration parameter for Listen and Tilt mode to send triggers only (allows application to manage movements). | ||
| + | * Add configuration parameter for Listen move group selection. | ||
| + | * Support EG2 Tilt and Listen Mode in No-phone Mode. | ||
| + | * Move TailCoNTROL to new BLE UUIDs. | ||
| + | * Reorganized code units and functions to improve organization and readability. | ||
| + | * Add Device Information Service (DIS) BLE characteristics. | ||
| + | * Add SETHOLDONSTOP and RELEASEHOLDONSTOP commands. | ||
| + | * Fixed BATT characteristic response truncation (thank you Code-L). | ||
| + | * Implement simple message queue for ISR debug tracing. | ||
| + | * Fixed unsigned long int sprintf format strings. | ||
| + | * Improved commenting for hardware/ | ||
| + | * Fixed JLed invocation to address timer conflict. | ||
| + | * Clean up debug logging to make format consistent. | ||
| + | * Added Conference Mode and associated configuration settings. | ||
| + | * Fix move group selection logic. | ||
| + | * Fix LIS2DW12 library to support non-hardcoded SPI bus wiring. | ||
| + | * Rework button press servicing and visual indicators. | ||
| + | * Add new function to perform factory reset on extended button hold. | ||
| + | * Rename some variables and functions to better reflect their purpose. | ||
| + | * Reverted undesirable MiTail easing function settings for some moves. | ||
| + | * Refactored NVS options and compilation units. | ||
| + | * Added persistent setting for automatic power off when BLE is disconnected (default is OFF). | ||
| + | * Added persistent setting for home on POWEROFF command (default is ON). | ||
| + | * CONFRD command removed, replaced by READCONF and READNVS. | ||
| + | * CONFWR command replaced with WRITECONF. | ||
| + | * Added SETHOME command (and persistent setting) for FlutterWings, | ||
| + | * Added REBOOT command. | ||
| + | * Improved BLE MTU settings for iOS. | ||
| + | * Split RTOS tasks into separate unit files. | ||
| + | * Fix race condition between updateMoves() and setMove() / setDSSPMove() that caused stuttering/ | ||
| + | * Improved debug messages. | ||
| + | * Update ESP32Servo library to 1.2.1. | ||
| + | * Updated JLed library to v4.15.0. | ||
| + | * Updated NimBLE-Arduino library to v2.1.2 (made transitions for breaking changes). | ||
| + | * Updated ServoEasing library to v3.4.0 (made transitions for breaking changes). | ||
| + | * Updated BLE_OTA_Python scripts and documentation. | ||
| + | * Added script to build unified binary for EarGear 2 firmware. | ||
| + | * Added ESP Web Tools configuration for writing EarGear 2 firmware. | ||
| + | * Fix PlatformIO $extra_scripts to be cumulative. | ||
| + | * Update Tail Control Protocol to reflect as-built. | ||
| + | * Add additional details to Service Notes about the Glow Tip. | ||
| + | |||
| + | |||
| + | ===== TailControl | ||
| * Reverted changes to easing modes in MiTail moves. | * Reverted changes to easing modes in MiTail moves. | ||
| - | ===== TailCoNTROL | + | ===== TailControl |
| - | Initial release of TailCoNTROL | + | Initial release of TailControl |
| * Added #DEBUG compile-time flag to disable serial output. | * Added #DEBUG compile-time flag to disable serial output. | ||
| Line 40: | Line 207: | ||
| * Updated ESP32Servo library to v1.2.0. | * Updated ESP32Servo library to v1.2.0. | ||
| * Updated documentation. | * Updated documentation. | ||
| + | |||
