Skip to content

Firmware parameters

The per-joint parameters of the control board's main firmware (constants.h, motor_init.cpp, main.cpp at release V1): what a builder edits when mastering, fitting a different tool, reducing the currents, or fixing a joint's direction. Steps are 32-microstep motor steps. Firmware says how to upload a change.

Currents (constants.h)

Define Value Note
MICROSTEP 32
MOTOR1_MAX_CURRENT 2000 mA motor rated 2100
MOTOR2_MAX_CURRENT 2000 mA motor rated 2100
MOTOR3_MAX_CURRENT 1900 mA motor rated 2000
MOTOR4_MAX_CURRENT 1700 mA reduced: the motor is enclosed in the forearm
MOTOR5_MAX_CURRENT 1700 mA reduced: enclosed
MOTOR6_MAX_CURRENT 965 mA motor rated 1000
VERSION 1

The driver is set to MOTORx_MAX_CURRENT × 0.85 as the running current and hold_multiplier of that for holding (the per-joint table below has both); the driver rounds them to its own current steps.

Per joint (motor_init.cpp)

Parameter J1 J2 J3 J4 J5 J6
reduction_ratio 6.4 20 18.0952 4 4 10
standby_position (steps at standby) 10240 −32000 57905 0 0 32000
homed_position (steps from the switch to standby) 13500 19588 23020 −10200 8900 (j5_homing_offset) 15900
joint_range_positive_steps 14000 −1200 92605 7500 6400 64000
joint_range_negative_steps −14000 −51587 34700 −7500 −6400 0
limit_switch_trigger (input level when triggered) 0 (inductive) 1 (switch) 1 (switch) 0 (inductive) 1 (switch) 0 (inductive)
direction_reversed 1 0 1 0 0 1
hold_multiplier 0.7 0.8 0.8 0.8 0.8 0.88
Running current, MOTORx_MAX_CURRENT × 0.85 1700 mA 1700 mA 1615 mA 1445 mA 1445 mA 820 mA
Holding current, the running current × hold_multiplier 1190 mA 1360 mA 1292 mA 1156 mA 1156 mA 722 mA
Driver position / LIMIT input 1 / 6 6 / 2 5 / 3 4 / 4 2 / 5 3 / 1

Joint 1's standby of 10240 steps is +90° (90 / 0.05625 × 6.4): the firmware homes to the pose the software reports as J1 = 90°. The firmware's "standby" is what these pages call the after-homing pose: the standby pose turned 90° about joint 1 (Joint limits and directions).

Joint 5 and the tool (main.cpp)

Variable Value Note
j5_homing_offset 8900 the pneumatic gripper holder; 8035 for the SSG-48

Homing speeds and distances (main.cpp, home_all)

The approach speeds in steps/s: J1 −2050, J2 −2550, J3 −2550, J4 5550, J5 −5050, J6 −9550; the back-off distances 850 (J1), 1050 (J2, J3), 1550 (J4, J5, J6) steps; the slow re-approach −750 steps/s for joints 1 to 3, ±4050 for 4 and 5, −8050 for 6. The firmware uses the second, slow trigger as the reference.

Serial.begin(3000000); the timing counter runs at 90 MHz / 128 = 703 125 Hz.

Comments


Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF