Defaults¶
The settings of the firmware, read from its source at the release this site describes. The table leaves out the firmware's internal state (counters, flags, scratch variables).
- Start value is the value in the firmware's structures (
common.h). At power-up the firmware loads the saved settings from the EEPROM over it, so for a setting that#Savekeeps the start value only shows until the EEPROM is read. - After
#Defaultis what the driver runs with after#Default, which writes the factory values to the EEPROM and loads them. A fresh board, and a board whose saved configuration fails its check at power-up, gets the same values. - Kept by
#Savesays whether the setting survives a power cycle. No means the driver starts with the start value again after every power-up.
#Default also sets the CAN node ID to 0 and erases the calibration; see
Saving the configuration.
| Variable | Start value | After #Default |
Kept by #Save |
Firmware comment |
|---|---|---|---|---|
SERIAL_NUMBER |
1 | 1111 in the EEPROM, not read back | written, not read back | |
HARDWARE_VERSION |
1 | 1 | yes | Version of the Spectral BLDC driver PCB |
BATCH_DATE |
1 | 24092024 | yes | Date the batch was produced |
SOFTWARE_VERSION |
1 | 107 | no: set by the firmware | Software release |
I_AM_GRIPPER |
1 | 0 | yes | Is motor controller gripper (1) or not (0) |
LED_ON_OFF |
1 | 1 | yes | Use LED for status indication |
theta_offset |
0.0f | 0 | yes | will be determined at calibration |
pole_pairs |
11 | 7 | yes | Number of pole pairs of your BLDC motor |
current_control_bandwidth |
500 | — | no | default 200 HZ; Will set PI gains for Q and D current loops based on phase resistance |
DIR_ |
1 | 0 | yes | When looking at the magnetic encoder counter-clockwise is POSITIVE rotation. |
Phase_order |
2 | 0 | yes | |
commutation_dir |
1 | 1 | yes | +1 or -1, auto-detected at calibration so +Iq/+velocity/+rotation map to +encoder rotation |
Thermistor_on_off |
0 | 0 | yes | Are we taking termistor mesurements? 0 is off, 1 is on |
brake_coast |
0 | — | no | Idle-mode (Controller_mode == 0) phase behavior: 0 = coast (driver disabled, Hi-Z), 1 = brake (driver stays enabled, zero-voltage PWM vector shorts the phases together) |
Resistance |
0 | 0 | yes | Resistance of SINGLE PHASE of your BLDC motor |
Total_Resistance |
0 | 0 | yes | = 2 * Resistance + 2 * R_sense + 2 *Rdson |
Inductance |
0 | 0 | yes | Inductance of SINGLE PHASE of your BLDC motor |
Kt |
0 | 0 | yes | Torque constant of your BLDC motor |
flux_linkage |
0 | 0 | yes | Flux linkage of your BLDC motor |
KV |
0 | 0 | yes | |
Max_temperature |
75 | 75 | yes | Max temperature in degrees |
Min_temperature |
-20 | — | no | Min temperature in degrees |
Max_Vbus |
29500 | 29000 | yes | Max vbus voltage in mV |
Min_Vbus |
9000 | — | no | Min vbus voltage in mV |
watchdog_time_ms |
0 | 0 | yes | |
watchdog_action |
0 | 0 | yes | Hold position, Idle, brake |
Heartbeat_rate_ms |
0 | 0 | yes | Motor controller will send data every Heartbeat_rate_ms |
Calibrated |
0 | 0 | yes | 0 if motor is not calibrated, 1 if it is calibrated |
Resistance_calc_voltage |
1000 | — | no | Voltage used to calculate resistance //1000 |
Calibration_power |
12 | — | no | Max power that can dissipate during inductance test. |
Open_loop_voltage |
5000 | — | no | Voltage to use when spinning the motor open loop. In mV |
Open_loop_speed |
20.0 | — | no | Speed to be used when spinning the motor open loop. In RAD/s |
Phase_voltage |
5000 | — | no | Max voltage to be used during Kv calculation |
cyclic_period |
0 | — | no | We send messages every cyclic_period |
CAN_ID |
0 | 0 | yes | CAN id of THIS motor driver! No 2 motor drivers can share the same ID. |
calibration_offset_current |
300 | — | no | |
Voltage_limit |
0 | 0 | yes | Voltage limit for Ud and Uq voltages. If 0 value of controller.VBUS_mV will be used |
Reset_integral_accumulator |
0 | 0 | yes | |
Kp_p |
11 | 11 | yes | |
Position_setpoint |
0 | — | no | |
Kp_v |
0.03 | 0.03 | yes | 0.006 basic values that work for most motors but not optimal |
Ki_v |
0.0003 | 0.0003 | yes | 0.0001 basic values that work for most motors but not optimal |
Feedforward_speed |
0 | — | no | |
Velocity_setpoint |
0 | — | no | -1.5 |
Velocity_limit |
800000 | 800000 | yes | Clamp integrals to this [TICKS/s] |
Velocity_limit_error |
20000000 | — | no | [TICKS/s] ; Velocity when we will report error |
Kp_id |
3 | 3 | yes | |
Ki_id |
1.5 | 1.5 | yes | |
Id_setpoint |
0 | — | no | |
Kp_iq |
3 | 3 | yes | |
Ki_iq |
1.5 | 1.5 | yes | |
Iq_current_limit |
1000 | 1000 | yes | |
Id_current_limit |
0 | 0 | yes | |
Feedforward_current |
0 | — | no | |
KD |
0.002800 | 0.0028 | yes | [Nm*s/rad] KD 0.002800 |
KP |
0.14000 | 0.1400 | yes | [Nm/rad] KP 0.14000 |
Uq_setpoint |
0 | — | no | |
Ud_setpoint |
0 | — | no | |
position_setpoint |
0 | — | no | |
speed_setpoint |
20 | — | no | |
current_setpoint |
200 | — | no | |
action_status |
0 | — | no | -0 Stopped(or performing activation /automatic release). |
activated |
0 | — | no | |
release_direction |
0 | — | no | |
estop_status |
0 | — | no |
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