Both sides previous revisionPrevious revision | |
en:dev:tailcontrol-command-protocol [2025/02/04 00:44] – darkgrue | en:dev:tailcontrol-command-protocol [2025/02/05 03:23] (current) – darkgrue |
---|
====== TailCoNTROL Command Protocol ====== | ====== TailControl Command Protocol ====== |
| |
| |
Command list for the Tail Company TailCoNTROL firmware. TailCoNTROL is the unified firmware platform (version 5.//x//.//x// and higher) for the MiTail, MiTail Mini, FlutterWings, and EarGear 2, and covers the shared features that exist across all those devices. | Command list for the Tail Company TailControl firmware. TailControl is the unified firmware platform (version 5.//x//.//x// and higher) for the MiTail, MiTail Mini, FlutterWings, and EarGear 2, and covers the shared features that exist across all those devices. |
| |
All commands are case-sensitive. Trailing whitespace (e.g., `NULL`, `CR`, etc.) are ignored. The space between a command keyword and the parameters is mandatory. | All commands are case-sensitive. Trailing whitespace (e.g., `NULL`, `CR`, etc.) are ignored. The space between a command keyword and the parameters is mandatory. |
| |
<WRAP round todo 90%> | <WRAP round todo 90%> |
**IMPORTANT NOTICE:** TailCoNTROL and the TailCoNTROL Protocol is still under development. Some commands and features described here relate to a future release and are subject to change at this time, especially EarGear 2 features. | **IMPORTANT NOTICE:** TailControl and the TailControl Protocol is still under development. Some commands and features described here relate to a future release and are subject to change at this time, especially EarGear 2 features. |
</WRAP> | </WRAP> |
| |
| |
<WRAP round todo 90%> | <WRAP round todo 90%> |
TailCoNTROL will use a new Service and Characteristics UUIDs going forward, to distinguish it from previous firmwares (and to further enforce the “forklift upgrade” required). | TailControl will use a new Service and Characteristics UUIDs going forward, to distinguish it from previous firmwares (and to further enforce the “forklift upgrade” required). |
| |
The BLE Device Service for TailCoNTROL is ''19F8ADE2-D0C6-4C0A-912A-30601D9B3060'': | The BLE Device Service for TailControl is ''19F8ADE2-D0C6-4C0A-912A-30601D9B3060'': |
* RX Characteristic is ''5E4D86AC-EF2F-466F-A857-8776D45FFBC2''. | * RX Characteristic is ''5E4D86AC-EF2F-466F-A857-8776D45FFBC2''. |
* TX Characteristic is ''567A99D6-A442-4AC0-B676-4993BF95F805'', and the | * TX Characteristic is ''567A99D6-A442-4AC0-B676-4993BF95F805'', and the |
</WRAP> | </WRAP> |
| |
===== TailCoNTROL Device Indicators ===== | ===== TailControl Device Indicators ===== |
| |
==== Blue LED ==== | ==== Blue LED ==== |
==== Automatic Actions ==== | ==== Automatic Actions ==== |
| |
TailCoNTROL will automatically shut down the device if there is no BLE connection for 5 minutes. This behavior is suspended if a PD-capable adapter is attached (to allow for charging and/or operating from a external battery) **OR** if the firmware is compiled with a compile-time option to disable the timer (to facilitate wired serial console control where BLE connectivity is not used) [Note: to be moved to a configuration option in NVS in a future release]. | TailControl will automatically shut down the device if there is no BLE connection for 5 minutes. This behavior is suspended if a PD-capable adapter is attached (to allow for charging and/or operating from a external battery) **OR** if the firmware is compiled with a compile-time option to disable the timer (to facilitate wired serial console control where BLE connectivity is not used) [Note: to be moved to a configuration option in NVS in a future release]. |
| |
Additional automatic actions are described in [[en:dev:tailcontrol-command-protocol#No-phone Mode|No-phone Mode]], below. | Additional automatic actions are described in [[en:dev:tailcontrol-command-protocol#No-phone Mode|No-phone Mode]], below. |
===== Conference Mode ===== | ===== Conference Mode ===== |
| |
Conference mode pairs the user's phone with the TailCoNTROL device and establishes a bond that performs long-term storage of encryption info (particularly keys) so that the devices “know” each other and can easily reconnect in an encrypted way. This protects your device in a number of different ways: | Conference mode pairs the user's phone with the TailControl device and establishes a bond that performs long-term storage of encryption info (particularly keys) so that the devices “know” each other and can easily reconnect in an encrypted way. This protects your device in a number of different ways: |
| |
* **Authentication:** verifying the identity of the device connecting. | * **Authentication:** verifying the identity of the device connecting. |
==== Enabling Conference Mode (Pairing and Binding) ==== | ==== Enabling Conference Mode (Pairing and Binding) ==== |
| |
Pairing is performed with a 6-digit number entered on each of the devices. In the case of TailCoNTROL, the passkey is set on the device in a "safe" location and saved to the firmware configuration. | Pairing is performed with a 6-digit number entered on each of the devices. In the case of TailControl, the passkey is set on the device in a "safe" location and saved to the firmware configuration. |
| |
**SETPUSSKEY <nnnnnn>** | **SETPUSSKEY <nnnnnn>** |
==== Unbinding ==== | ==== Unbinding ==== |
| |
Resetting/removing bonds requires two separate actions: resetting the TailCoNTROL device, and removing the bond on the phone or other device. | Resetting/removing bonds requires two separate actions: resetting the TailControl device, and removing the bond on the phone or other device. |
| |
There are two different methods of factory-resetting a TailCoNTROL device (which resets all persistent options to defaults and removes all bonding information): | There are two different methods of factory-resetting a TailControl device (which resets all persistent options to defaults and removes all bonding information): |
| |
* Sending a ''FORMATNVS'' command to the TailCoNTROL console. This will factory-reset and reboot. | * Sending a ''FORMATNVS'' command to the TailControl console. This will factory-reset and reboot. |
* Performing a factory reset using the single button: | * Performing a factory reset using the single button: |
- Press and hold the power button. | - Press and hold the power button. |
===== No-phone Mode ===== | ===== No-phone Mode ===== |
| |
No-phone mode is a feature exclusive of MiTail firmware 4.0.0 or greater or TailCoNTROL. | No-phone mode is a feature exclusive of MiTail firmware 4.0.0 or greater or TailControl. |
| |
**AUTOMODE G<n>[G<n>[G<n>]] T<nnn>T<nnn>T<251 ... 254>** | **AUTOMODE G<n>[G<n>[G<n>]] T<nnn>T<nnn>T<251 ... 254>** |
| |
| |
== Copyright 2024 © The Mechanical Tail Company Limited contact@thetailcompany.com. All Rights Reserved. == | == Copyright 2024-2025 © The Mechanical Tail Company Limited contact@thetailcompany.com. All Rights Reserved. The Mechanical Tail Company Limited also claims trademark rights in the following: TailControl, MiTail, MiTail Mini, FlutterWings, and EarGear. Any unauthorized use is expressly prohibited. == |
| |