Firmware update fail after upgrade to ubuntu 22.04/humble

When I upgraded a stretch2 to ubuntu 22.04 and humble, the install scripts worked fine but then in the next step the firmware update failed. the arm and left wheel seem to not be recognized and i am not sure that the devices are mapped correctly.

This is the output from REx_firmware_updater.py --install

Collecting information...
[ERROR] [hello-motor-arm]: SerialException(2): could not open port /dev/hello-motor-arm: [Errno 2] No such file or directory: '/dev/hello-motor-arm'
[WARNING] [hello-motor-arm]: Unable to open serial port for device /dev/hello-motor-arm
Unable to communicate with device hello-motor-arm
[ERROR] [hello-motor-left-wheel]: SerialException(2): could not open port /dev/hello-motor-left-wheel: [Errno 2] No such file or directory: '/dev/hello-motor-left-wheel'
[WARNING] [hello-motor-left-wheel]: Unable to open serial port for device /dev/hello-motor-left-wheel
Unable to communicate with device hello-motor-left-wheel
WARNING: Device hello-motor-arm is not valid. Unable to attempt the firmware update. Skipping device.
WARNING: Device hello-motor-left-wheel is not valid. Unable to attempt the firmware update. Skipping device.
Collecting information........

Collecting information...
########################################## UPDATING FIRMWARE TO... ###########################################
HELLO-MOTOR-RIGHT-WHEEL   | Reinstalling Stepper.v0.5.1p3            
HELLO-PIMU                | Reinstalling Pimu.v0.5.1p3               
HELLO-WACC                | Reinstalling Wacc.v0.5.1p3               
HELLO-MOTOR-LIFT          | Reinstalling Stepper.v0.5.1p3            

------------------------------------------------
WARNING: (1) Updating robot firmware should only be done by experienced users
WARNING: (2) Do not have other robot processes running during update
WARNING: (3) Leave robot powered on during update
WARNING: (4) Ensure Lift has support clamp in place
WARNING: (5) Lift may make a loud noise during programming. This is normal.
------------------------------------------------
Proceed with update?? [y/N]: y




#################################################### HELLO-MOTOR-RIGHT-WHEEL  #####################################################
#################################### HELLO-MOTOR-RIGHT-WHEEL |  COMPILE AND FLASH FIRMWARE... #####################################
Looking for device hello-motor-right-wheel on bus
Waiting for device hello-motor-right-wheel to return to bus.
Starting programming. This will take about 5s...
Success in firmware compile
Success in firmware flash
################################ HELLO-MOTOR-RIGHT-WHEEL |   CHECK #1 IF DEVICE RETURNS TO BUS... #################################
Checking that device hello-motor-right-wheel returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-motor-right-wheel to return to bus.
..Device hello-motor-right-wheel returned to bus after 1.045862 seconds.
##################################### HELLO-MOTOR-RIGHT-WHEEL |   CHECK IF ESTABLISH COMMS... #####################################
PASS: Established comms with device HELLO-MOTOR-RIGHT-WHEEL 
##################################HELLO-MOTOR-RIGHT-WHEEL |  CHECK FOR CORRECT VERSION UPDATE... ##################################
Collecting information...
PASS: HELLO-MOTOR-RIGHT-WHEEL   | Installed Stepper.v0.5.1p3                         | Target Stepper.v0.5.1p3                         
#####################################HELLO-MOTOR-RIGHT-WHEEL |  RESTORING CALIBRATION DATA... #####################################
Waiting for device hello-motor-right-wheel to return to bus.
Writing gains to flash...
Gains written to flash

Reading calibration data from YAML...
Writing calibration data to flash...
..........................Successful write of FLASH.
Waiting for device hello-motor-right-wheel to return to bus.
####################################HELLO-MOTOR-RIGHT-WHEEL |  CHECK #2 IF RETURNED TO BUS... #####################################
Checking that device hello-motor-right-wheel returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-motor-right-wheel to return to bus.
Device hello-motor-right-wheel returned to bus after 0.006558 seconds.




#################################################### HELLO-PIMU  #####################################################
#################################### HELLO-PIMU |  COMPILE AND FLASH FIRMWARE... #####################################
Looking for device hello-pimu on bus
Waiting for device hello-pimu to return to bus.
Starting programming. This will take about 5s...
Success in firmware compile
Success in firmware flash
################################ HELLO-PIMU |   CHECK #1 IF DEVICE RETURNS TO BUS... #################################
Checking that device hello-pimu returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-pimu to return to bus.
..................Trying again: 0 of 30

Waiting for device hello-pimu to return to bus.
..Device hello-pimu returned to bus after 11.556892 seconds.
##################################### HELLO-PIMU |   CHECK IF ESTABLISH COMMS... #####################################
PASS: Established comms with device HELLO-PIMU 
##################################HELLO-PIMU |  CHECK FOR CORRECT VERSION UPDATE... ##################################
Collecting information...
PASS: HELLO-PIMU                | Installed Pimu.v0.5.1p3                            | Target Pimu.v0.5.1p3                            
#####################################HELLO-PIMU |  RESTORING CALIBRATION DATA... #####################################
Successful flash of device calibration
####################################HELLO-PIMU |  CHECK #2 IF RETURNED TO BUS... #####################################
Checking that device hello-pimu returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-pimu to return to bus.
Device hello-pimu returned to bus after 0.002042 seconds.




#################################################### HELLO-WACC  #####################################################
#################################### HELLO-WACC |  COMPILE AND FLASH FIRMWARE... #####################################
Looking for device hello-wacc on bus
Waiting for device hello-wacc to return to bus.
Starting programming. This will take about 5s...
Success in firmware compile
Success in firmware flash
################################ HELLO-WACC |   CHECK #1 IF DEVICE RETURNS TO BUS... #################################
Checking that device hello-wacc returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-wacc to return to bus.
..Device hello-wacc returned to bus after 1.271009 seconds.
##################################### HELLO-WACC |   CHECK IF ESTABLISH COMMS... #####################################
PASS: Established comms with device HELLO-WACC 
##################################HELLO-WACC |  CHECK FOR CORRECT VERSION UPDATE... ##################################
Collecting information...
PASS: HELLO-WACC                | Installed Wacc.v0.5.1p3                            | Target Wacc.v0.5.1p3                            
#####################################HELLO-WACC |  RESTORING CALIBRATION DATA... #####################################
Successful flash of device calibration
####################################HELLO-WACC |  CHECK #2 IF RETURNED TO BUS... #####################################
Checking that device hello-wacc returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-wacc to return to bus.
Device hello-wacc returned to bus after 0.002539 seconds.




#################################################### HELLO-MOTOR-LIFT  #####################################################
#################################### HELLO-MOTOR-LIFT |  COMPILE AND FLASH FIRMWARE... #####################################
Looking for device hello-motor-lift on bus
Waiting for device hello-motor-lift to return to bus.
Starting programming. This will take about 5s...
Success in firmware compile
Success in firmware flash
################################ HELLO-MOTOR-LIFT |   CHECK #1 IF DEVICE RETURNS TO BUS... #################################
Checking that device hello-motor-lift returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-motor-lift to return to bus.
.Device hello-motor-lift returned to bus after 0.941190 seconds.
##################################### HELLO-MOTOR-LIFT |   CHECK IF ESTABLISH COMMS... #####################################
PASS: Established comms with device HELLO-MOTOR-LIFT 
##################################HELLO-MOTOR-LIFT |  CHECK FOR CORRECT VERSION UPDATE... ##################################
Collecting information...
PASS: HELLO-MOTOR-LIFT          | Installed Stepper.v0.5.1p3                         | Target Stepper.v0.5.1p3                         
#####################################HELLO-MOTOR-LIFT |  RESTORING CALIBRATION DATA... #####################################
Waiting for device hello-motor-lift to return to bus.
Writing gains to flash...
Gains written to flash

Reading calibration data from YAML...
Writing calibration data to flash...
..........................Successful write of FLASH.
Waiting for device hello-motor-lift to return to bus.
####################################HELLO-MOTOR-LIFT |  CHECK #2 IF RETURNED TO BUS... #####################################
Checking that device hello-motor-lift returned to bus 
It may take several minutes to appear on the USB bus.
Waiting for device hello-motor-lift to return to bus.
Device hello-motor-lift returned to bus after 0.008182 seconds.





############################################# CONGRATULATIONS... #############################################
HELLO-MOTOR-RIGHT-WHEEL   | No issues encountered. Firmware updated to Stepper.v0.5.1p3.
HELLO-PIMU                | No issues encountered. Firmware updated to Pimu.v0.5.1p3.
HELLO-WACC                | No issues encountered. Firmware updated to Wacc.v0.5.1p3.
HELLO-MOTOR-LIFT          | No issues encountered. Firmware updated to Stepper.v0.5.1p3.

I saw the other posts in the forum about the firmware and i suspect the devices might not be mapped correctly because i get a different output from the following two commands:
ll /dev/hello* outputs:

lrwxrwxrwx 1 root root  7 Sep 28 09:40 /dev/hello-dynamixel-head -> ttyUSB1
lrwxrwxrwx 1 root root  7 Sep 28 09:40 /dev/hello-dynamixel-wrist -> ttyUSB2
lrwxrwxrwx 1 root root  7 Sep 28 09:40 /dev/hello-lrf -> ttyUSB0
lrwxrwxrwx 1 root root  7 Sep 28 10:00 /dev/hello-motor-lift -> ttyACM0
lrwxrwxrwx 1 root root  7 Sep 28 09:59 /dev/hello-motor-right-wheel -> ttyACM4
lrwxrwxrwx 1 root root  7 Sep 28 09:59 /dev/hello-pimu -> ttyACM1
lrwxrwxrwx 1 root root 15 Sep 28 09:40 /dev/hello-respeaker -> bus/usb/001/016
lrwxrwxrwx 1 root root  7 Sep 28 10:00 /dev/hello-wacc -> ttyACM5

and ll /dev/ttyACM* outputs:

crw-rw-rw- 1 root dialout 166, 0 Sep 28 10:00 /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 1 Sep 28 09:59 /dev/ttyACM1
crw-rw---- 1 root dialout 166, 2 Sep 28 09:40 /dev/ttyACM2
crw-rw---- 1 root dialout 166, 3 Sep 28 09:40 /dev/ttyACM3
crw-rw-rw- 1 root dialout 166, 4 Sep 28 09:59 /dev/ttyACM4
crw-rw-rw- 1 root dialout 166, 5 Sep 28 10:00 /dev/ttyACM5

Hi @Michal, You are right the Left wheel motor and arm motor are not yet mapped to the right ttyACM* port. This could either be due to wrong Udev rules setup or USB devices entering a bad state during firmware updates which could happen very occasionally and could be recovered simply by physically pressing the reset buttons on the stepper boards using a guide we can provide.
But before we do that, could you perform the following debug steps to provide us with more info:

  • Power cycle the robot first.
  • Send the output of the following command REx_discover_hello_devices.py --list
  • Send the udev rules file in the path /etc/udev/rules.d/95-hello-arduino.rules

Hi @Mohamed_Fazil the contents of the command/file are the following:
REx_discover_hello_devices.py --list

{'/dev/ttyACM0': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0',
                  'serial': '2DC886B750555733352E3120FF0C331A',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM1': {'model': 'Hello_Pimu',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0/tty/ttyACM1',
                  'serial': '76510EF750555733352E3120FF0A2522',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM2': {'model': 'Arduino_Zero',
                  'model_id': '004d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/tty/ttyACM2',
                  'serial': None,
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM3': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2.2/1-4.2.2:1.0/tty/ttyACM3',
                  'serial': '139956A450555733352E3120FF0C1B1A',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM4': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.4/1-4.4:1.0/tty/ttyACM4',
                  'serial': '27A4F81950555733352E3120FF0B2A3F',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM5': {'model': 'Hello_Wacc',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2.3/1-4.2.3.3/1-4.2.3.3:1.0/tty/ttyACM5',
                  'serial': '4EEF9CC450555733352E3120FF0A0921',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyUSB0': {'model': 'CP2102_USB_to_UART_Bridge_Controller',
                  'model_id': 'ea60',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.3/1-4.3:1.0/ttyUSB0/tty/ttyUSB0',
                  'serial': '0001',
                  'vendor': 'Silicon_Labs',
                  'vendor_id': '10c4'},
 '/dev/ttyUSB1': {'model': 'FT232R_USB_UART',
                  'model_id': '6001',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.0/ttyUSB1/tty/ttyUSB1',
                  'serial': 'AB0NDXS6',
                  'vendor': 'FTDI',
                  'vendor_id': '0403'},
 '/dev/ttyUSB2': {'model': 'FT232R_USB_UART',
                  'model_id': '6001',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2.3/1-4.2.3.2/1-4.2.3.2:1.0/ttyUSB2/tty/ttyUSB2',
                  'serial': 'AB0NDXSW',
                  'vendor': 'FTDI',
                  'vendor_id': '0403'}}

/etc/udev/rules.d/95-hello-arduino.rules

# INSTALLATION
#
# First, copy this rules file into the following directory:
#
# /etc/udev/rules.d/
#
# Second, run the following command to make the new rule files become
# active and then disconnect and reconnect the device.
#
# sudo udevadm control --reload
#
# When writing udev rules, you can find relevant information about a
# device by running commands like the following with the appropriate
# device file name. You can often find the device file name by running
# dmesg from the command line right after plugging in the device.
#
# udevadm info -a /dev/ttyUSB0
#
# REFERENCES
#
# http://www.linuxfromscratch.org/lfs/view/6.2/chapter07/symlinks.html
#


#This rule is to make all Arduinos r/w permissions for the IDE
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="76510EF750555733352E3120FF0A2522", SYMLINK+="hello-pimu", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="0F1BC5EC50555733352E3120FF0C291B", SYMLINK+="hello-motor-arm", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="2DC886B750555733352E3120FF0C331A", SYMLINK+="hello-motor-lift", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="AF27741250555733352E3120FF0B153E", SYMLINK+="hello-motor-left-wheel", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="27A4F81950555733352E3120FF0B2A3F", SYMLINK+="hello-motor-right-wheel", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="4EEF9CC450555733352E3120FF0A0921", SYMLINK+="hello-wacc", ENV{ID_MM_DEVICE_IGNORE}="1"

Thank you for sending the outputs. It certainly looks like one of the missing stepper motor board (arduino devices) has entered a bad state or stuck in bootloader mode [1], and the other stepper motor board is in a good state but with a different serial number not matched with anything in the existing Udev rules file [2].

[1] Device in bad state or bootloader mode (has serial: None).

[2] Device has a Mismatched Serial number not found in Udev rules

Here are the suggested next Steps:

  1. First, you must make the device in a bad state to return to a good state. For this step, you must first try flashing the Stepper firmware again to that unknown ttyACM device ( /dev/ ttyACM2).*
REx_firmware_flash.py --flash /dev/ttyACM2 hello_stepper

If the above method does not flash the firmware successfully, then the physical button on that specific device must be pressed to reset and flash the firmware. In that case, please contact support@hello-robot.com with your robot details. We can assist you further with our hardware guides.

  1. When there are mismatched or unmapped ttyACM devices found (/dev/ttyACM3), then they can discovered again using our device discovery tool REx_discover_hello_devices.py*
REx_discover_hello_devices.py --discover
  • The above command tries to re-discover all the hello* devices and motors present in the robot. For each stepper motor, it would expect the user to manually move the respective robot joint when prompted. This tool would discover and reconfigure the Udev rules for the mismatched or replaced devices.

After a successful discovery of all the devices, make sure all the joints can move individually. If a certain stepper motor/s does not move, there is a possibility that stepper calibration data is not flashed. If no motors were replaced on the robot, then each stepper motor’s calibration data mostly should be available in the robot’s stretch_user directory which consists of all the calibration data from the factory. You can reflash stepper calibration using our tools. For example, if the Left wheel is missing calibration data,

REx_stepper_calibration_YAML_to_flash.py hello-motor-left-wheel

If the motor was replaced or calibration data is missing, again, please contact support@hello-robot.com with your robot details to provide you with the factory calibration data.

Let me know if these steps are able to resolve your issue. Else we can resolve it via support call.

Both steps failed for me, details below. I have contacted support to schedule a call.

Step 1: REx_firmware_flash.py --flash /dev/ttyACM2 hello_stepper
Output:

For use with S T R E T C H (R) RESEARCH EDITION from Hello Robot Inc.
---------------------------------------------------------------------

Collecting information........

------------------------ Compile Arduino Firmware hello_stepper ------------------------
Running: arduino-cli compile --config-file /tmp/stretch_firmware_update/arduino-cli.yaml --fqbn hello-robot:samd:hello_stepper /tmp/stretch_firmware_update/arduino/hello_stepper
Compiled Arduino Sketch:hello_stepper Successfully.
Putting /dev/ttyACM2 into bootloader mode.
------------------------ Flashing firmware /dev/ttyACM2 | hello_stepper ------------------------
Running: arduino-cli upload --config-file /tmp/stretch_firmware_update/arduino-cli.yaml -p /dev/ttyACM2 --fqbn hello-robot:samd:hello_stepper /tmp/stretch_firmware_update/arduino/hello_stepper
No device found on ttyACM2
Failed uploading: uploading error: exit status 1
Firmware flash. Failed to upload to /dev/ttyACM2
Failed to burn Arduino Sketch:hello_stepper to port:/dev/ttyACM2.

Step 2: REx_discover_hello_devices.py --discover
Output:

For use with S T R E T C H (R) RESEARCH EDITION from Hello Robot Inc.
---------------------------------------------------------------------

Found 6 Arduino devices:
{'/dev/ttyACM0': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0',
                  'serial': '2DC886B750555733352E3120FF0C331A',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM1': {'model': 'Hello_Pimu',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0/tty/ttyACM1',
                  'serial': '76510EF750555733352E3120FF0A2522',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM2': {'model': 'Arduino_Zero',
                  'model_id': '004d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/tty/ttyACM2',
                  'serial': None,
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM3': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2.2/1-4.2.2:1.0/tty/ttyACM3',
                  'serial': '139956A450555733352E3120FF0C1B1A',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM4': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.4/1-4.4:1.0/tty/ttyACM4',
                  'serial': '27A4F81950555733352E3120FF0B2A3F',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM5': {'model': 'Hello_Wacc',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2.3/1-4.2.3.3/1-4.2.3.3:1.0/tty/ttyACM5',
                  'serial': '4EEF9CC450555733352E3120FF0A0921',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'}}


Found 3 hello_stepper devices.
Unable to find the correct no. hello_stepper devices.
Found hello-pimu serial: 76510EF750555733352E3120FF0A2522
Found hello-wacc serial: 4EEF9CC450555733352E3120FF0A0921
Found 2 dxl devices:
{'/dev/ttyUSB0': {'model': 'FT232R_USB_UART',
                  'model_id': '6001',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.0/ttyUSB0/tty/ttyUSB0',
                  'serial': 'AB0NDXS6',
                  'vendor': 'FTDI',
                  'vendor_id': '0403'},
 '/dev/ttyUSB1': {'model': 'FT232R_USB_UART',
                  'model_id': '6001',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2.3/1-4.2.3.2/1-4.2.3.2:1.0/ttyUSB1/tty/ttyUSB1',
                  'serial': 'AB0NDXSW',
                  'vendor': 'FTDI',
                  'vendor_id': '0403'}}
WARNING: The Lift would drop, make sure the clamp is underneath lift. Then hit ENTER
Move the Lift joint manually and place the clamp underneath when done. Then hit ENTER
Motor in /dev/ttyACM0 was moved by -4.78220272064209
Found hello-motor-lift serial: 2DC886B750555733352E3120FF0C331A
Move the Arm joint manually and hit ENTER
More than one motor or none moved
Unable to find Arm Serial
Move the Base backward manually and hit ENTER
Motor in /dev/ttyACM4 was moved by -3.7727038860321045
No. motors moved=1. Wrong number of motors or none moved

Scanning for servo at port: /dev/ttyUSB1
----------------------------------------------------------
Checking at ID 0 and baud 115200
Checking at ID 1 and baud 115200
Checking at ID 2 and baud 115200
Checking at ID 3 and baud 115200
Checking at ID 4 and baud 115200
Checking at ID 5 and baud 115200
Checking at ID 6 and baud 115200
Checking at ID 7 and baud 115200
Checking at ID 8 and baud 115200
Checking at ID 9 and baud 115200
Checking at ID 10 and baud 115200
Checking at ID 11 and baud 115200
Checking at ID 12 and baud 115200
Checking at ID 13 and baud 115200
Found servo at ID 13 and Baud 115200
Checking at ID 14 and baud 115200
Found servo at ID 14 and Baud 115200
Checking at ID 15 and baud 115200
Found servo at ID 15 and Baud 115200
Checking at ID 16 and baud 115200
Found servo at ID 16 and Baud 115200
Checking at ID 17 and baud 115200
Checking at ID 18 and baud 115200
Checking at ID 19 and baud 115200
FOUND Servo IDs: [13, 14, 15, 16] at port: /dev/ttyUSB1

Scanning for servo at port: /dev/ttyUSB0
----------------------------------------------------------
Checking at ID 0 and baud 115200
Checking at ID 1 and baud 115200
Checking at ID 2 and baud 115200
Checking at ID 3 and baud 115200
Checking at ID 4 and baud 115200
Checking at ID 5 and baud 115200
Checking at ID 6 and baud 115200
Checking at ID 7 and baud 115200
Checking at ID 8 and baud 115200
Checking at ID 9 and baud 115200
Checking at ID 10 and baud 115200
Checking at ID 11 and baud 115200
Found servo at ID 11 and Baud 115200
Checking at ID 12 and baud 115200
Found servo at ID 12 and Baud 115200
Checking at ID 13 and baud 115200
Checking at ID 14 and baud 115200
Checking at ID 15 and baud 115200
Checking at ID 16 and baud 115200
Checking at ID 17 and baud 115200
Checking at ID 18 and baud 115200
Checking at ID 19 and baud 115200
FOUND Servo IDs: [11, 12] at port: /dev/ttyUSB0


Found hello-dynamixel-head serial: AB0NDXS6
Found hello-dynamixel-wrist serial: AB0NDXSW
Assigning Stepper motor SN to robot....
Overwriting existing entry...
ERROR [hello-motor-arm]: can only concatenate str (not "NoneType") to str
ERROR [hello-motor-right-wheel]: can only concatenate str (not "NoneType") to str
ERROR [hello-motor-left-wheel]: can only concatenate str (not "NoneType") to str
Assigning Pimu and Wacc SN to robot....
Overwriting existing entry...
Overwriting existing entry...
UDEV rules and stretch configuration files specific to arduino devices updated
Assigning FTDI devices SN to robot....
Overwriting existing entry...
Pushing Udev files to /etc/udev/rules.d/....
Overwriting existing entry...
Pushing Udev files to /etc/udev/rules.d/....
UDEV rules and stretch configuration files specific to Dynamixels updated

Step 2: REx_stepper_calibration_YAML_to_flash.py hello-motor-left-wheel
Output:

For use with S T R E T C H (R) RESEARCH EDITION from Hello Robot Inc.
---------------------------------------------------------------------

[ERROR] [hello-motor-left-wheel]: SerialException(2): could not open port /dev/hello-motor-left-wheel: [Errno 2] No such file or directory: '/dev/hello-motor-left-wheel'
[WARNING] [hello-motor-left-wheel]: Unable to open serial port for device /dev/hello-motor-left-wheel

Thanks for trying to perform the steps above. I think I can better assist you on a support call to fix the issue. And will post a support round up here later.

Support Roundup
We were able fix the issues through a Support call. Here are brief on two fixes we performed:

  1. The robot’s arm stepper motor’s serial number was mismatched in the Udev rules. We updated the Udev rules and reflashed the Arm motor’s stepper calibration which was missing to get it working again.
  2. The Left Wheel motor had entered a bad state and felt bricked. We had to physically double press the reset button on the Stepper board to revive it and put in bootloader mode. Then we re-flashed the firmware and the stepper calibration back to get it running.