This is an old revision of the document!
TailCoNTROL Breaking Changes
This is a list of breaking changes in the TailCoNTROL Protocol from previous firmware versions.
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.
- Most command responses changed to
OK
andERR
. Move state responses still exist (e.g., <movename>BEGIN
upon start, and <movename>END
upon completion). - OTA responses now
BEGIN OTA
,OTA ERR
, andOTA SUCCESS
. - BLE MTU and Generic Access Profile (GAP) LE Suggested Data Length changed to 512.
- EarGear 2 support is currently intended to require a forced update of the application and the firmware so that both can support the significant changes to the EarGear 2:
- EarGear 2 moves are now internal to the firmware, and called with the same move commands as other products (e.g.,
TAILFA
). DSSP
andUSERMOVE
will operate identically across all products, including the EarGear 2.- Listen Mode and Tilt Mode for EarGear 2 runs onboard the firmware, but still emits triggers back to the application.
HWVER
ReturnsEG2 x.x
for EarGear 2 controller hardware, instead ofHWVER B
.
CONFRD
command removed, replaced byREADCONF
andREADNVS
.CONFWR
command replaced withWRITECONF
.VERA
command for iOS will be removed (no longer needed if applications supports larger MTU).- 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_SRV_UUID “19F8ADE2-D0C6-4C0A-912A-30601D9B3060”
- SYS_CHRC_RX_UUID “5E4D86AC-EF2F-466F-A857-8776D45FFBC2”
- SYS_CHRC_TX_UUID “567A99D6-A442-4AC0-B676-4993BF95F805”
- BATT_VOLTAGE_UUID “E818BDA3-88A7-43C0-8509-6E0BBB6F55D9”
HWVER
will return the hardware identifier strings prefixed byHWVER
(e.g.,HWVER EG 4.0
).- Design note: application is responsible for generating a random (strong) 6-digit passkey, setting that using the
SETPUSSKEY
command, and displaying that key to the user in order to proceed with the binding process.