feetech_protocol.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Inria
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for more
6  * details.
7  */
8 
9 #pragma once
10 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #define FEETECH_START (0xFF)
27 
28 typedef enum {
29  SCS15_B_1M = 0,
30  SCS15_B_0_5M = 1,
31  SCS15_B_250K = 2,
32  SCS15_B_128K = 3,
33  SCS15_B_115200 = 4,
34  SCS15_B_76800 = 5,
35  SCS15_B_57600 = 6,
36  SCS15_B_38400 = 7
37 } scs15_baudrate_t;
38 
39 typedef enum {
40  SCS15_ID = 5,
41  SCS15_BAUD_RATE = 6,
42  SCS15_RETURN_DELAY_TIME = 7,
43  SCS15_RETURN_LEVEL = 8,
44  SCS15_LIMIT_TEMPERATURE = 13,
45  SCS15_MAX_LIMIT_VOLTAGE = 14,
46  SCS15_MIN_LIMIT_VOLTAGE = 15,
47  SCS15_ALARM_LED = 18,
48  SCS15_ALARM_SHUTDOWN = 19,
49  SCS15_COMPLIANCE_P = 21,
50  SCS15_COMPLIANCE_D = 22,
51  SCS15_COMPLIANCE_I = 23,
52  SCS15_CW_DEAD = 26,
53  SCS15_CCW_DEAD = 27,
54  SCS15_TORQUE_ENABLE = 40,
55  SCS15_LED = 41,
56  SCS15_LOCK = 48,
57  SCS15_PRESENT_VOLTAGE = 62,
58  SCS15_PRESENT_TEMPERATURE = 63,
59  SCS15_REGISTERED_INSTRUCTION = 64,
60  SCS15_ERROR = 65,
61  SCS15_MOVING = 66,
62 } scs15_register8_t;
63 
64 typedef enum {
65  SCS15_MODEL_NUMBER = 0,
66  SCS15_VERSION = 3,
67  SCS15_MIN_ANGLE_LIMIT = 9,
68  SCS15_MAX_ANGLE_LIMIT = 11,
69  SCS15_MAX_TORQUE = 16,
70  SCS15_PUNCH = 24,
71  SCS15_IMAX = 28,
72  SCS15_OFFSET = 30,
73  SCS15_GOAL_POSITION = 42,
74  SCS15_GOAL_TIME = 44,
75  SCS15_GOAL_SPEED = 46,
76  SCS15_PRESENT_POSITION = 56,
77  SCS15_PRESENT_SPEED = 58,
78  SCS15_PRESENT_LOAD = 60,
79  SCS15_VIR_POSITION = 67,
80  SCS15_CURRENT = 69,
81 } scs15_register16_t;
82 
83 typedef enum {
84  INST_PING = 0x01,
85  INST_READ = 0x02,
86  INST_WRITE = 0x03,
87  INST_REG_WRITE = 0x04,
88  INST_ACTION = 0x05,
89  INST_RESET = 0x06,
90  INST_SYNC_WRITE = 0x83,
91 } feetech_intruction_t;
92 
93 #ifdef __cplusplus
94 }
95 #endif
96