Example Code for AT command

Last revision 2026/06/08

To use AT commands, connect the sensor to a PC via USB and open a serial terminal. Common commands include querying device ID with `AT+ID?`, restarting the device with `AT+RST`, and switching output protocol to JSON with `AT+TPROTO=0`. For more, refer to the documentation.

AT Command Tutorial

Common AT commands are listed below. For more, please refer to the additional documentation: SEN0670_UART_Communication_Protocol_V.10.pdf.

AT Command Description Response
AT+ID? Query device ID {"type":0,"name":"ID?","code":0,"code_text":"EL_OK","ok":1,"data":"3343029e"}
AT+NAME? Query device name {"type":0,"name":"NAME?","code":0,"code_text":"EL_OK","ok":1,"data":"DFRobot Human Pose"}
AT+VER? Query firmware version {"type": 0, "name": "VER?", "code": 0, "code_text": "EL_OK", "ok": 1, "data": {"at_api": "v0", "software": "2026.04.14", "hardware": "v1.0.0"}}
AT+RST Restart device The device resets immediately; usually no complete success packet is received.
AT+MODELS? Query model list {"type": 0, "name": "MODELS?", "code": 0, "code_text": "EL_OK", "ok": 1, "data": [{"id": 4, "type": 0, "address": 11669504, "size": 3010560}, {"id": 3, "type": 0, "address": 9322496, "size": 2347008}, {"id": 2, "type": 0, "address": 6963200, "size": 2359296}, {"id": 1, "type": 0, "address": 4194304, "size": 2768896}]}
AT+MODEL? Query current model {"type": 0, "name": "MODEL?", "code": 0, "code_text": "EL_OK", "ok": 1, "data": {"id": 3, "type": 0, "address": 9322496, "size": 2347008}}
AT+MODEL=1 Switch to hand model (custom gesture) {"type": 0, "name": "MODEL", "code": 0, "code_text": "EL_OK", "ok": 1, "data": {"model": {"id": 1, "type": 0, "address": 4194304, "size": 2768896}}}
AT+MODEL=3 Switch to posture model (custom posture) {"type": 0, "name": "MODEL", "code": 0, "code_text": "EL_OK", "ok": 1, "data": {"model": {"id": 3, "type": 0, "address": 9322496, "size": 2347008}}}
AT+MODEL=4 Switch to gesture model (fixed gestures) {"type": 0, "name": "MODEL", "code": 0, "code_text": "EL_OK", "ok": 1, "data": {"model": {"id": 4, "type": 0, "address": 11669504, "size": 3010560}}}
AT+INVOKE=<n_times>,<differed>,<result_only> Perform inference, e.g., one inference only result: AT+INVOKE=1,0,1 {"type": 0, "name": "INVOKE", "code": 0, "data": {"timestamp_ms": 1248979, "model": {"id": 4, "type": 0, "address": 11669504, "size": 3010560}, "algorithm": {"type": 6, "categroy": 1, "input_from": 1, "config": {"tscore": 60, "tiou": 45}}, "sensor": {"id": 1, "type": 1, "state": 1, "opt_id": 0, "opt_detail": "240x240 Auto"}}}

{"type": 1, "name": "INVOKE", "code": 0, "data": {"count": 1, "seq": 1, "timestamp_ms": 1249074, "image_base64_len": 0, "perf": [9, 85, 0], "boxes": [], "resolution": [240, 240]}}
AT+BREAK Stop current task {"type": 0, "name": "BREAK", "code": 0, "code_text": "EL_OK", "ok": 1, "data": 1346635}
AT+TPROTO=0 Switch to JSON output {"type": 0, "name": "TPROTO", "code": 0, "data": 0, "message": "TPROTO updated"}
AT+TPROTO? Query output protocol {"type":0,"name":"TPROTO?","code":0,"data":0}
AT+TKPTS=0 Disable keypoint output {"type": 0, "name": "TKPTS", "code": 0, "data": 0, "message": "TKPTS updated"}
AT+TKPTS=1 Enable keypoint output {"type": 0, "name": "TKPTS", "code": 0, "data": 1, "message": "TKPTS updated"}
AT+TKPTS? Query keypoint output configuration {"type": 0, "name": "TKPTS?", "code": 0, "data": 1}
AT+TSCORE? Query confidence threshold {"type": 0, "name": "TSCORE?", "code": 0, "code_text": "EL_OK", "ok": 1, "data": 60}
AT+TSCORE=60 Set confidence threshold to 60 {"type":0,"name":"TSCORE","code":0,"code_text":"EL_OK","ok":1,"data":60}
AT+TIOU? Query IoU threshold {"type": 0, "name": "TIOU?", "code": 0, "code_text": "EL_OK", "ok": 1, "data": 45}
AT+TIOU=45 Set IoU threshold to 45 {"type": 0, "name": "TIOU", "code": 0, "code_text": "EL_OK", "ok": 1, "data": 45}
AT+TSIMILARITY? Query learning similarity threshold {"type": 0, "name": "TSIMILARITY?", "code": 0, "code_text": "EL_OK", "ok": 1, "data": 60}
AT+TSIMILARITY=80 Set learning similarity threshold to 80 {"type": 0, "name": "TSIMILARITY", "code": 0, "code_text": "EL_OK", "ok": 1, "data": 80}
AT+HANDAUTOLEARN Automatically name and start gesture learning {"type": 0, "name": "HANDAUTOLEARN", "code": 0, "data": {"hand_name": "Gesture_1"}}
AT+HANDLIST? Query learned gestures {"type": 0, "name": "HANDLIST?", "code": 0, "data": []}
AT+HANDCLEAR Clear all gestures {"type": 0, "name": "HANDCLEAR", "code": 0}
AT+POSEAUTOLEARN Automatically name and start posture learning {"type": 0, "name": "POSEAUTOLEARN", "code": 0, "data": {"pose_name": "Posture_1"}}
AT+POSELIST? Query learned postures {"type": 0, "name": "POSELIST?", "code": 0, "data": []}
AT+POSECLEAR Clear all postures {"type": 0, "name": "POSECLEAR", "code": 0}

AT Communication Example

Preparation: Connect the sensor to the PC via USB and open a serial terminal software such as sscom.
SEN0670-AT Command

NOTE:
If there are garbled or invisible characters in the content returned by the serial port, but some valid fields can be seen, it indicates that the module may not currently be in JSON text output mode. Please send the following command to switch the output protocol first:

AT+TPROTO=0

After successful switching, send again:

AT+ID?

Normally, JSON format data will be returned, for example:

{"type":0,"name":"ID?","code":0,"code_text":"EL_OK","ok":1,"data":"3343029e"}

Was this article helpful?

TOP