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 [2026/05/16 04:42] – darkgrue | en:dev:tailcontrol-command-protocol [2026/09/25 20:24] (current) – darkgrue | ||
|---|---|---|---|
| Line 67: | Line 67: | ||
| - **Constant on** when charging. | - **Constant on** when charging. | ||
| | | ||
| - | For the EarGear 2, the Red LED has two states: | + | For the ClawGear and EarGear 2, the Red LED has two states: |
| - **Off** when charging is disconnected. | - **Off** when charging is disconnected. | ||
| - **Constant on** when charging. | - **Constant on** when charging. | ||
| - | **Note:** Unlike the DIGITAiL, MiTail, MiTail Mini, and FlutterWings devices **can** be used while charging. | + | **Note:** Unlike the DIGITAiL, ClawGear, EarGear 2, MiTail, MiTail Mini, and FlutterWings devices **can** be used while charging. |
| Line 83: | Line 83: | ||
| - **Blink on-off** indicates a fault condition. | - **Blink on-off** indicates a fault condition. | ||
| - | The EarGear 2 does not have a Green LED. | + | The ClawGear and EarGear 2 does not have a Green LED. |
| Line 182: | Line 182: | ||
| ===== RGB LED Commands ===== | ===== RGB LED Commands ===== | ||
| - | RGB support is experimental, and not included | + | RGB support is new with the introduction of the ClawGear, and support is experimental on other hardware. |
| + | |||
| + | All **RGB**'' | ||
| | **RGBOFF** | **RGB** LEDs **OFF**, returns '' | | **RGBOFF** | **RGB** LEDs **OFF**, returns '' | ||
| - | | **RGBRBO** | **RGB** **R**ain**B**ow pattern, returns '' | + | | **RGBBRT** | Set **RGB** **BR**igh**T**ness percentage in NVS and running configuration (e.g., '' |
| - | | **RGBRB2** | **RGB** **R**ain**B**ow pattern with random sparkly glitter, returns '' | + | | **RGBCHS** | **RGB** **CH**a**S**e; theater marquee chase; optionally takes a hue color (in RGB Hexidecimal, |
| - | | **RGBCON** | **RGB** **CON**fetti; random-colored speckles that blink in and fade smoothly, returns '' | + | | **RGBCLN** | **RGB** **CY**lo**N**; color dot sweeping back and forth, with fading trails; optionally takes a hue color (in RGB Hexidecimal, |
| - | | **RGBSIN** | **RGB** **SIN**e; a colored dot sweeping back and forth, with fading trails, returns '' | + | | **RGBDMO** | **RGB** **DE**m**O**; cycle through all the preceding patterns, changing every 10 seconds (e.g., '' |
| - | | **RGBJUG** | **RGB** **JUG**gle; eight colored dots, weaving | + | | **RGBFDE** | **RGB** **F**a**DE**; fade in/out effect (e.g., '' |
| - | | **RGBBPM** | **RGB** **BPM**; colored stripes pulsing at a defined Beats-Per-Minute, returns '' | + | | **RGBFIR** | **RGB** **FIR**e; fire effect (e.g., '' |
| - | | **RGBDMO** | **RGB** **DE**m**O**; cycle through | + | | **RGBRBW** | **RGB** **R**ain**B**o**W** pattern (e.g., '' |
| - | | **RGBTST** | **RGB** **TE**s**T**; | + | | **RGBSLD** | **RGB** **S**o**L**i**D**; display a solid color (in RGB Hexidecimal) on all pixels (e.g., '' |
| - | | **SETRGB** | **SET** **RGB** configuration; returns '' | + | | **RGBSNO** | **RGB** **SNO**w; snow effect; optionally takes a hue color (in RGB Hexidecimal, |
| + | | **RGBTST** | **RGB** **TE**s**T**; | ||
| + | | **RGBTWK** | **RGB** **TW**in**K**le; random twinkle effect (e.g., '' | ||
| + | | **RGBWPE** | **RGB** **W**i**PE**; color wipe (e.g., '' | ||
| + | |||
| + | |||
| + | ==== RGB Hardware Support ==== | ||
| + | |||
| + | RGB LED support is provided through various headers, depending on the hardware. Certain hardware configurations require amounts of soldering and electronics design skill to modify, and can damage the board if current draw or other limits are exceeded. Mods are performed solely at user's risk. | ||
| + | |||
| + | |||
| + | ==== ClawGear ==== | ||
| + | |||
| + | The ClawGear supports a **maximum** of 42, 5 VDC, WS2811-protocol RGB LED pixels on the Servo 2 connector: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ==== MiTail ==== | ||
| + | |||
| + | The MiTail supports **externally-powered**, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ==== MiTail Mini ==== | ||
| + | |||
| + | The MiTail Mini supports a **maximum** of 42, 5 VDC, WS2811-protocol RGB LED pixels on the Servo 2 connector: | ||
| + | |||
| + | {{ : | ||
| Line 215: | Line 246: | ||
| | **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** |
| - | | **UNSETHOLDONSTOP** | **UNSET** servo **HOLD** when the servos **STOP** (servo PWM is dropped when not moving, default for tail-based devices); returns '' | + | | **UNSETHOLDONSTOP** | **UNSET** servo **HOLD** when the servos **STOP** |
| - | | **SETHOME** | **SET** **HOME** position (0 through 8) for eac2h servo (e.g., '' | + | | **SETHOME** | **SET** **HOME** position (0 through 8) for each servo (e.g., '' |
| - | | **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 '' | + | | **SETRGB** | **SET** **RGB** configuration in NVS and running configuration; |
| - | | **SETTILTMOVES** | **SET** internal **LISTEN** Mode **MOVES** to play on a tilt event in addition to sending event notifications; | + | | **UNSETLISTENMOVES** | **UNSET** internal **LISTEN** Mode **MOVES** to play on a listen event in NVS and running configuration, 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 '' | + | | **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 in NVS and running configuration, 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 '' | ||
| Line 426: | Line 458: | ||
| ===== Listen Mode ===== | ===== Listen Mode ===== | ||
| - | Listen Mode is only available on the EarGear 2. When Listen Mode is active, a detected sound above ambient will trigger a random move and a '' | + | Listen Mode is only available on the EarGear 2. When Listen Mode is active, a detected sound above ambient will send a '' |
| - | + | ||
| - | Development support for basic sound localization for future hardware is supported, replacing the '' | + | |
| - | '' | + | |
| '' | '' | ||
| Line 480: | Line 509: | ||
| ===== Tilt Mode ===== | ===== Tilt Mode ===== | ||
| - | Tilt Mode is only available on the EarGear 2. When Listen Mode is active, a detected | + | Tilt Mode is only available on the ClawGear and EarGear 2. When Listen Mode is active, a detected |
| + | |||
| + | Triggering by Tilt Mode is inhibited when the ears are in motion, as well as a 3-second counter that runs once a sound trigger has finished executing a move AND the ClawGear/ | ||
| + | |||
| + | |||
| + | ==== Notes about ClawGear Tilt Mode ==== | ||
| + | |||
| + | The minimum tilt is 75° of pitch for up, and −75° for down. Pitch is '' | ||
| + | |||
| + | Invalid readings: if '' | ||
| + | |||
| + | ClawGear does not have a cooldown timer enabled on it's Tilt Mode. | ||
| + | |||
| + | |||
| + | ==== Notes about EarGear 2 Tilt Mode ==== | ||
| + | |||
| + | |||
| + | In order to prevent erratic and constant movement of the ears while Tilt Mode is enabled, there is a reset and cooldown timer. The way it works is once the ears move out of the "dead zone," which is 14° off of center, the associated move is played. While the ears are moving, the tilt classifier is suspended (because the ear movement itself is tilting the ears). Once the ears have stopped moving, a 3000 ms (3 sec) cooldown is started. Once that timer has expired, the tilt triggers are re-enabled if the ears have EITHER returned to the center at any time during the cooldown timer OR have tilted to another trigger position other than the one that last triggered. | ||
| - | Triggering by Tilt Mode is inhibited when the ears are in motion, as well as a 3-second counter that runs once a sound trigger has finished executing a move AND the EarGear 2 has returned to the neutral tilt position during that time. This prevents tilt re-triggering if the user stays in the tilt position for an extended time. | + | < |
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | [xx: | ||
| + | </ | ||
| == 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, | == 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, | ||
