Skip to content

SCF4-M RevC status inconsistencies #24

@hshakula

Description

@hshakula

Here is an annotated dump of serial port communication with the controller:

$S -> EVB.1.3.0, SCF4-M RevC, Kurokesu, 5DBFF39-394D5730-43185222
$B2 -> OK
M238 -> OK
M234 A190 B190 C190 D90 -> OK
M235 A120 B120 C120 -> OK
M240 A3000 B3000 C3000 -> OK
M232 A400 B400 C400 E700 F700 G700 -> OK
G91 -> OK
M7 -> OK
# seek_ref_b
!1 -> 0, 0, 0, 0, 1, 0, 0, 0, 0
# Motor forced mode
M231 B -> OK
# Move forward
G0 B+100 -> OK
# Waiting for move
!1 -> 0, 1, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 24, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 46, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 67, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 91, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 112, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 134, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 155, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 179, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 200, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 223, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 245, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 268, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 289, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 311, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 333, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 356, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 378, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 399, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 421, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 442, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 470, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 492, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 513, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 536, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 559, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 585, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 606, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 628, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 649, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 671, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 694, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 717, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 739, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 760, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 782, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 804, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 826, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 849, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 870, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 892, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 916, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 938, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 959, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 982, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1003, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1025, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1047, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1068, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1092, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1113, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1135, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1156, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1178, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1200, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1226, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1248, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1269, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1293, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1315, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1336, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1359, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1381, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1402, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1424, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1446, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1467, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1490, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1511, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1533, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1555, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1576, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1598, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1621, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1642, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1670, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1694, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1715, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1737, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1759, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1780, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1802, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1824, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1846, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1868, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1890, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1911, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1933, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1955, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 1976, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2000, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2021, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2043, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2064, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2086, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2107, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2129, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2152, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2173, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2195, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2216, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2238, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2260, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2281, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2303, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2324, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2347, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2369, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2390, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2412, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2435, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2457, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2478, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2500, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2521, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2543, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2564, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2586, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2607, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2629, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2653, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2674, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2696, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2718, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2739, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2761, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2783, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2804, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2826, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2832, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2869, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2892, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2914, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2935, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2957, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2978, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 3000, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 3021, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 3043, 0, 0, 0, 0, 0, 1, 0
# Got movement status
# Waiting for stop
!1 -> 0, 3045, 0, 0, 0, 0, 0, 1, 0
!1 -> 0, 3067, 0, 0, 0, 0, 0, 1, 0
!1 -> 0, 3089, 0, 0, 0, 0, 0, 1, 0
!1 -> 0, 3110, 0, 0, 0, 0, 0, 1, 0
!1 -> 0, 3132, 0, 0, 0, 0, 0, 1, 0
!1 -> 0, 3137, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3137, 0, 0, 0, 0, 0, 0, 0
# Stopped
# Reduce speed
M240 B12000 -> OK
# Move back
G0 B-100 -> OK
# Waiting for move
!1 -> 0, 3137, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3132, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3126, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3121, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3115, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3110, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3104, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3099, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3093, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3095, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3082, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3077, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3071, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3066, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3060, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3055, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3049, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3044, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3039, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3033, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3028, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3022, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3017, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3012, 0, 0, 0, 0, 0, 0, 0
!1 -> 0, 3006, 0, 0, 1, 0, 0, 1, 0
# Got movement status
# Waiting for stop
!1 -> 0, 3005, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 3000, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2994, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2989, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2983, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2978, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2972, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2967, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2962, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2956, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2951, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2945, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2939, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2934, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2928, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2923, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2917, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2912, 0, 0, 1, 0, 0, 1, 0
!1 -> 0, 2909, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 2909, 0, 0, 1, 0, 0, 0, 0
# Stopped
# Set speed back
M240 B3000 -> OK
M230 B -> OK
!1 -> 0, 2909, 0, 0, 1, 0, 0, 0, 0
# Set B coordinate to 32000
G92 B32000 -> OK
!1 -> 0, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 0, 32000, 0, 0, 1, 0, 0, 0, 0
# seek_ref_a
M231 A -> OK
# Move forward
G0 A+100 -> OK
# Waiting for move
!1 -> 1, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 23, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 45, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 66, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 88, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 109, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 131, 32000, 0, 1, 1, 0, 1, 0, 0
# Got movement status
# Waiting for stop
!1 -> 134, 32000, 0, 1, 1, 0, 1, 0, 0
!1 -> 155, 32000, 0, 1, 1, 0, 1, 0, 0
!1 -> 177, 32000, 0, 1, 1, 0, 1, 0, 0
!1 -> 198, 32000, 0, 1, 1, 0, 1, 0, 0
!1 -> 220, 32000, 0, 1, 1, 0, 1, 0, 0
!1 -> 229, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 229, 32000, 0, 1, 1, 0, 0, 0, 0
# Stopped
# Reduce speed
M240 A12000 -> OK
# Move back
G0 A-100 -> OK
# Waiting for move
!1 -> 229, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 224, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 218, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 213, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 207, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 202, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 197, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 191, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 185, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 179, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 174, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 169, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 163, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 157, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 152, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 146, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 141, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 136, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 130, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 125, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 119, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 113, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 108, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 102, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 97, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 92, 32000, 0, 1, 1, 0, 0, 0, 0
!1 -> 86, 32000, 0, 0, 1, 0, 1, 0, 0
# Got movement status
# Waiting for stop
!1 -> 86, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 80, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 75, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 69, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 64, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 59, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 53, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 63, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 42, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 37, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 31, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 26, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 20, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 14, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 9, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 3, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 65534, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 65528, 32000, 0, 0, 1, 0, 1, 0, 0
!1 -> 65523, 32000, 0, 0, 1, 0, 0, 0, 0
!1 -> 65523, 32000, 0, 0, 1, 0, 0, 0, 0
# Stopped
M240 A3000 -> OK
M230 A -> OK
!1 -> 65523, 32000, 0, 0, 1, 0, 0, 0, 0
G92 A32000 -> OK
!1 -> 32000, 32000, 0, 0, 1, 0, 0, 0, 0

There are 2 inconsistencies:

  1. seek_ref_b starts by setting the motor into the forced mode and moving until the limit switch changes its state. From the control status (!1) we see that motor is indeed moving because its position counter changes but the moving status does not change until the limit switch toggles. Why is that so?
  2. The next inconsistency follows the previous one immediately. The motor does not stop (according to the status !1) after the limit switch changes its state but moves for at least 46 ms without changing its speed and travels 89 steps. Then it decelerates in less than 12 ms.

The same happens with the A motor.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions