Releases: srobo/servo-v4-fw
Releases · srobo/servo-v4-fw
Release 4.4
Version 4.3
A full rewrite of the servo board firmware using a USB-serial interface.
Additional changes:
- Added full handling for I2C NACKs & hangs to prevent I2C issues stalling MCU
- Servo setpoint is set as a microsecond pulse length between 500-4000us, allowing the API to define the active servo range
- Added reset command
- Added regulator current and voltage sensing
- Added active servo LEDs
- Added command to read back the servo positions
- Added status command to monitor for I2C and power supply issues
A notable change is the disabling of the power link for the upper 4 servos. This protects the servo board from accidental damage if power is applied to the AUX power input.
Serial Commands
Action | Description | Command | Parameter Description | Return | Return Parameters |
---|---|---|---|---|---|
Identify | Get the board type and version | *IDN? | - | Student Robotics:SBv4B:<asset tag>:<software version> | <asset tag> <software version> |
Status | Get board status | *STATUS? | - | <Watchdog fail>:<pgood> | <Watchdog fail> - watchdog timeout, int, 0-1 <pgood> - power good, int, 0-1 |
Reset | Reset board to safe startup state - Disable all servos - Reset the lights |
*RESET | - | ACK | - |
Disable output | Disable a servo output,set to 0 pulse width | SERVO:<n>:DISABLE | <n> servo number, int, 0-11 | ACK | - |
Set position | Set the position of a servo | SERVO:<n>:SET:<value> | <n> servo number, int, 0-11 <value> servo duty time, us, 500-4000 |
ACK | - |
Get position | Get the current position setting for a servo | SERVO:<n>:GET? | <n> servo number, int, 0-11 | <value> | <value> servo duty time, us, 500-4000 |
Read servo current | Get total 5V current draw | SERVO:I? | - | <current> | <current> - current, int, measured in mA |
Read servo voltage | Get 5V SMPS output voltage | SERVO:V? | - | <voltage> | <voltage> - voltage, int, measured in mV |
Debug servo values | Print the internal values for servo pulses | *DBG:SERVO:<phase> | <phase> - Servo output phase number, int, 0-3 | <phase data> | <phase data> - Raw servo phase values |