Firmware that implements the Toy Code (T-Code) v0.3 protocol over USB/Serial Port for the Nimble Connectivity Module, an ESP32 controller for the NimbleStroker.
Tested with Intiface Central (using custom configuration) and MultiFunPlayer's Serial output type, which connects to the Serial COM port interface of the NimbleConModule and sends T-Code commands as messages to the device. The T-Code commands are converted into position values which are then sent to the NimbleStroker actuator.
D0
- Identity device and firmware version: NimbleStroker_TCode_Serial_v0.3
D1
- Identify TCode version: TCode v0.4
D2
- List available axes and user range preferences:
L0 0 9999 Up
: Up/down position linear motion (default: 5000
)V0 0 9999 Vibe
: Vibration intensity (default: 0
)A0 0 9999 Air
: Auxilliary air in/out valve (default 5000
)0000
= air-out valve (looser)5000
= stop valve (default)9999
= air-in valve (tighter)A1 0 9999 Force
: Force command (default 9999
)A2 0 9999 VibSpeed
: Vibration speed (default: 9999
)Other info:
D2
) to test.On Windows with Intiface Central installed...
C:\Users\(User)\AppData\Roaming\com.nonpolynomial\intiface_central\config\buttplug-device-config.json
tcode-v03
. Change the port
to the one with your attached NimbleConModule, and add a ScalarCmd
for the vibration parameter. ie:
...
"tcode-v03": {
"serial": [
{
"port": "COM3",
"baud-rate": 115200,
"data-bits": 8,
"parity": "N",
"stop-bits": 1
}
],
"defaults": {
"name": "NimbleStroker Connectivity Module (Serial TCode v0.3)",
"messages": {
"LinearCmd": [
{
"StepRange": [
0,
100
],
"ActuatorType": "Position",
"FeatureDescriptor": "Up/Down Position (L0)"
}
],
"ScalarCmd": [
{
"StepRange": [
0,
100
],
"ActuatorType": "Vibrate",
"FeatureDescriptor": "Vibration (V0)"
}
]
}
}
},
...
Settings -> Device Managers
, toggle on Serial Port
.Start Server
Icon (top left) to start the server.Devices
click Start Scanning
...Toggle Oscillation
button and watch the NimbleConModule LEDs spin.TCode-0.3 (default)
config, name it NimbleTcodeSerial
.L0
Up/Down (Select "Load unnamed script") - Default value: 50%
V0
Vibrate - Default value: 0%
(off state)A0
Valve - Default value: 50%
(off state)A1
Force (can rename) - Default value: 100%
(max)A2
Vibspeed (can rename) - Default value: 100%
(max)