Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:dev:tailcontrol-command-protocol [2025/11/04 16:20] – [Autonomous Mode] darkgrue | en:dev:tailcontrol-command-protocol [2026/07/04 19:44] (current) – darkgrue | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| **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. | **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. | ||
| </ | </ | ||
| + | |||
| ===== Bluetooth Low Energy (BLE) ===== | ===== Bluetooth Low Energy (BLE) ===== | ||
| Line 14: | Line 15: | ||
| The hardware platform uses the "Just Works" Bluetooth Low Energy (BLE) pairing method to connect. If Conference Mode ([[# | The hardware platform uses the "Just Works" Bluetooth Low Energy (BLE) pairing method to connect. If Conference Mode ([[# | ||
| - | + | ==== Device Advertisement ==== | |
| - | ===== Device Advertisement | + | |
| Device name is one of the following: | Device name is one of the following: | ||
| Line 46: | Line 46: | ||
| For tail-series (MiTail, MiTail Mini, and FlutterWings) v3.6 controller hardware, the battery charging characteristic is unset (charging state is not available). | For tail-series (MiTail, MiTail Mini, and FlutterWings) v3.6 controller hardware, the battery charging characteristic is unset (charging state is not available). | ||
| </ | </ | ||
| + | |||
| ===== TailControl Device Indicators ===== | ===== TailControl Device Indicators ===== | ||
| Line 93: | Line 94: | ||
| - | ==== Automatic Actions ==== | + | ===== Automatic Actions |
| TailControl will automatically shut down the device if there is no BLE connection for '' | TailControl will automatically shut down the device if there is no BLE connection for '' | ||
| Line 156: | Line 157: | ||
| | **STOPTILT** (or **ENDTILTMODE**) | Stops Tilt Mode ([[#Tilt Mode|see below]]), returns '' | | **STOPTILT** (or **ENDTILTMODE**) | Stops Tilt Mode ([[#Tilt Mode|see below]]), returns '' | ||
| | **TILTMODE** (or **TILTMODE START**) | Starts Tilt Mode ([[#Tilt Mode|see below]]), returns '' | | **TILTMODE** (or **TILTMODE START**) | Starts Tilt Mode ([[#Tilt Mode|see below]]), returns '' | ||
| + | |||
| ===== RGB LED Commands ===== | ===== RGB LED Commands ===== | ||
| + | |||
| + | All **RGB**'' | ||
| | **RGBOFF** | **RGB** LEDs **OFF**, returns '' | | **RGBOFF** | **RGB** LEDs **OFF**, returns '' | ||
| - | | **RGBRBO** | **RGB** **R**ain**B**ow pattern, returns '' | + | | **RGBCHS** | **RGB** **CH**a**S**e; theater marquee chase; optionally takes a hue color (in RGB Hexidecimal, |
| - | | **RGBRB2** | **RGB** **R**ain**B**ow pattern | + | | **RGBCLN** | **RGB** **CY**lo**N**; color dot sweeping back and forth, |
| - | | **RGBCON** | **RGB** **CON**fetti; random-colored speckles that blink in and fade smoothly, returns '' | + | | **RGBDMO** | **RGB** **DE**m**O**; cycle through all the preceding patterns, changing every 10 seconds (e.g., '' |
| - | | **RGBSIN** | **RGB** **SIN**e; a colored dot sweeping back and forth, with fading trails, returns '' | + | | **RGBFDE** | **RGB** **F**a**DE**; fade in/out effect (e.g., '' |
| - | | **RGBJUG** | **RGB** **JUG**gle; eight colored dots, weaving in and out of sync with each other, returns '' | + | | **RGBFIR** | **RGB** **FIR**e; fire effect (e.g., '' |
| - | | **RGBBPM** | **RGB** **BPM**; colored stripes pulsing at a defined Beats-Per-Minute, returns '' | + | | **RGBRBW** | **RGB** **R**ain**B**o**W** pattern (e.g., '' |
| - | | **RGBDMO** | **RGB** **DE**m**O**; cycle through | + | | **RGBSLD** | **RGB** **S**o**L**i**D**; display a solid color (in RGB Hexidecimal) on all pixels (e.g., '' |
| - | | **RGBTST** | **RGB** **TE**s**T**; | + | | **RGBSNO** | **RGB** **SNO**w; snow effect; optionally takes a hue color (in RGB Hexidecimal, |
| - | | **SETRGB** | **SET** **RGB** configuration; | + | | **RGBTST** | **RGB** **TE**s**T**; |
| + | | **RGBTWK** | **RGB** **TW**in**K**le; | ||
| + | | **RGBWPE** | **RGB** **W**i**PE**; | ||
| + | | **SETRGB** | **SET** **RGB** configuration; | ||
| ===== Other Commands ===== | ===== Other Commands ===== | ||
| Line 189: | Line 197: | ||
| | **BATT** | **BATT**ery percentage, returns the integer value of estimated battery capacity remaining | | **BATT** | **BATT**ery percentage, returns the integer value of estimated battery capacity remaining | ||
| - | | **READCONF** | **READ** running **CONF**iguration; | + | | **READCONF** | **READ** running **CONF**iguration; |
| - | | **WRITECONF** | **WRITE** **CONF**iguration to NVS and set running configuration to match (e.g., '' | + | | **WRITECONF** | **WRITE** **CONF**iguration to NVS and set running configuration to match (e.g., '' |
| | **SETDISCONNECTEDCOUNT** | **SET** BLE **DISCONNECTED** power off **COUNT**down parameter in NVS and running configuration (in minutes, '' | | **SETDISCONNECTEDCOUNT** | **SET** BLE **DISCONNECTED** power off **COUNT**down parameter in NVS and running configuration (in minutes, '' | ||
| | **SETHOLDONSTOP** | **SET** servo **HOLD** is maintained when the servos **STOP** (maintains servo PWM when not moving, default for EarGear 2); returns '' | | **SETHOLDONSTOP** | **SET** servo **HOLD** is maintained when the servos **STOP** (maintains servo PWM when not moving, default for EarGear 2); returns '' | ||
| Line 197: | Line 205: | ||
| | **SETLISTENMOVES** | **SET** internal **LISTEN** Mode **MOVES** to play on a listen event in addition to sending event notifications; | | **SETLISTENMOVES** | **SET** internal **LISTEN** Mode **MOVES** to play on a listen event in addition to sending event notifications; | ||
| | **UNSETLISTENMOVES** | **UNSET** internal **LISTEN** Mode **MOVES** to play on a listen event, only an event notification will be sent and it is the responsibility of the connected application to send commands to react to events; returns '' | | **UNSETLISTENMOVES** | **UNSET** internal **LISTEN** Mode **MOVES** to play on a listen event, only an event notification will be sent and it is the responsibility of the connected application to send commands to react to events; returns '' | ||
| + | | **SETMYCOLOR** | **SET** **MYCOLOR** (in RGB Hexidecimal) to persist in app UI display for this device (e.g., '' | ||
| | **SETTILTMOVES** | **SET** internal **LISTEN** Mode **MOVES** to play on a tilt event in addition to sending event notifications; | | **SETTILTMOVES** | **SET** internal **LISTEN** Mode **MOVES** to play on a tilt event in addition to sending event notifications; | ||
| | **UNSETTILTMOVES** | **UNSET** internal **LISTEN** Mode **MOVES** to play on a listen event, only an event notification will be sent and it is the responsibility of the connected application to send commands to react to events; returns '' | | **UNSETTILTMOVES** | **UNSET** internal **LISTEN** Mode **MOVES** to play on a listen event, only an event notification will be sent and it is the responsibility of the connected application to send commands to react to events; returns '' | ||
| | **OTA** | Starts firmware **O**ver **T**he **A**ir update process (e.g., '' | | **OTA** | Starts firmware **O**ver **T**he **A**ir update process (e.g., '' | ||
| | **FORMATNVS** | **FORMAT** **NVS** (erase all contents of the default NVS partition, including BLE bonds), returns '' | | **FORMATNVS** | **FORMAT** **NVS** (erase all contents of the default NVS partition, including BLE bonds), returns '' | ||
| - | | **READNVS** | **READ** **CONF**iguration from NVS; returns space-delimited configuration parameters stored in NVS (e.g., '' | + | | **READNVS** | **READ** **CONF**iguration from NVS; returns space-delimited configuration parameters stored in NVS (e.g., '' |
| | **REBOOT** | **REBOOT**; returns '' | | **REBOOT** | **REBOOT**; returns '' | ||
| | **TASKU** | Prints to the hardware serial console the minimum amount of remaining stack space that was available to the task since the task started executing (high water mark), returns '' | | **TASKU** | Prints to the hardware serial console the minimum amount of remaining stack space that was available to the task since the task started executing (high water mark), returns '' | ||
| + | |||
| + | |||
| ===== Directly Set Servo Position ===== | ===== Directly Set Servo Position ===== | ||
| Line 338: | Line 349: | ||
| * **L100L100** Each brightness point is reached in 100 * 20 ms = 2 s | * **L100L100** Each brightness point is reached in 100 * 20 ms = 2 s | ||
| + | |||
| + | ===== Autonomous Mode ===== | ||
| + | |||
| + | Defines a sequence of random moves, selected from any of three groups as below; interval between moves varies randomly | ||
| + | from T1 to T2. | ||
| + | |||
| + | **AUTOMODE G< | ||
| + | |||
| + | The tail will select a random move from the specified group(s), pausing for a random number of seconds between each move (min and max specified by the first and second '' | ||
| + | |||
| + | Autonomous Mode is ended (after completing any ongoing move) if a BLE connection is made. | ||
| + | |||
| + | ^ Group ^ Move Group Name ^ Move List ^ | ||
| + | | 1 | Calm and Relaxed | Slow Wag 1, Slow Wag 2, Slow Wag 3 | | ||
| + | | 2 | Fast and Excited | Fast Wag, Short Wag, Happy Wag, Erect | | ||
| + | | 3 | Frustrated and Tense | Tremble 1, Tremble 2, Tremble Erect, High Wag | | ||
| + | |||
| + | The parameter order is not important, except that the three '' | ||
| + | |||
| + | ^ Prefix | ||
| + | | **G** | Move Group (see table above) | <1 ... 3> | | ||
| + | | **T1** | Minimum random pause between moves in 1-second increments | <1 ... 240> (1 s ... 4 min) | | ||
| + | | **T2** | Maximum random pause between moves in 1-second increments | <1 ... 240> (1 s ... 4 min) | | ||
| + | | **T3** | Total duration in 15-second increments | <1 ... 240> (15 s ... 60 min); <251 ... 254> are reserved, see [[en: | ||
| + | |||
| + | **STOPAUTO** | ||
| + | |||
| + | '' | ||
| Line 445: | Line 484: | ||
| - | == 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, | + | == Copyright 2024-2026 © The Mechanical Tail Company Limited contact@thetailcompany.com. All Rights Reserved. The Mechanical Tail Company Limited also claims trademark rights in the following: TailControl, |
