Device plugged into USB port interferes with Stretch

Hello,

I have some students working on a project with a Stretch RE2. For their project, the students want to attach a thermometer to the Stretch and they found this thermometer that can connect via USB: Medical Digital Infrared Thermometer K3 Pro | Nex Inno Tech

We are able to plug the device into a USB port on a desktop computer and get readings from the thermometer. However, when we plug the device into any of the USB ports on the Stretch it seems to crash the Stretch… the Lidar sensor on the base stops spinning and when we try to launch the stretch_driver we get this error:

[stretch_driver-3] [INFO] [1709243083.857899466] [stretch_driver]: For use with S T R E T C H (TM) RESEARCH EDITION from Hello Robot Inc.
[stretch_driver-3] [INFO] [1709243083.858396840] [stretch_driver]: stretch_driver started
[stretch_driver-3] [ERROR] [pimu]: Port /dev/hello-pimu is busy. Check if another Stretch Body process is already running
[stretch_driver-3] [WARNING] [pimu]: Unable to open serial port for device /dev/hello-pimu
[stretch_driver-3] [ERROR] [head]: SerialException(2): could not open port /dev/hello-dynamixel-head: [Errno 2] No such file or directory: '/dev/hello-dynamixel-head'
[stretch_driver-3] HW Not Valid
[stretch_driver-3] [ERROR] [tool_stretch_dex_wrist]: SerialException(2): could not open port /dev/hello-dynamixel-wrist: [Errno 2] No such file or directory: '/dev/hello-dynamixel-wrist'
[stretch_driver-3] [WARNING] [robot]: Not able to use asyncio for transport communications. Defaulting to sync.
[stretch_driver-3] HW Not Valid
[stretch_driver-3] [FATAL] [1709243085.027356412] [stretch_driver]: Robot startup failed.
[INFO] [stretch_driver-3]: process has finished cleanly [pid 7998]

Are there any diagnostic scripts we can run or logs to look at that might shed light on what’s going wrong here? And do you have any tips for how we might be able to workaround the issue?

Thanks!

Hi @mmurr, welcome to the forum! It’s interesting that the Lidar sensor on the base stops spinning when this thermometer is plugged in. Additionally, the errors from stretch_driver seem to indicate that the USB ports for the “pimu”, a power management PCB inside the robot, the head, and the wrist are also not present when the thermometer is plugged in. I suggest we start by looking at “dmesg”. Dmesg is a log kept by Linux of every hardware event that occurs while the operating system is running. I suspect that dmesg will capture whatever is happening when the thermometer is plugged in.

After the robot has powered up and before the thermometer is plugged in, run:

sudo dmesg -c

This will print out the entire dmesg log captured up until that point (the hardware seen during bootup) and also clear the log. Then plug in the thermometer, and run:

sudo dmesg

This will print out a much smaller amount of text, but ideally, it captures what the USB system is seeing when the thermometer is plugged in. Capture both logs (before and after plugging in the thermometer) and send them here as attached .txt files (or you can paste them as markdown codeblocks).

Hi @bshah, thank you for the quick response. It won’t let me attach a .txt here, and pasting the full “before” logs exceeds the max message limit, but here is the log after plugging in the thermometer:

[  192.047439] workqueue: output_poll_execute [drm_kms_helper] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[  205.266082] usb 1-3.3.3: new full-speed USB device number 23 using xhci_hcd
[  205.414810] usb 1-3.3.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.32
[  205.414827] usb 1-3.3.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[  205.414835] usb 1-3.3.3: Product: USB Serial
[  205.464601] usbcore: registered new interface driver ch341
[  205.464627] usbserial: USB Serial support registered for ch341-uart
[  205.464659] ch341 1-3.3.3:1.0: ch341-uart converter detected
[  205.467418] usb 1-3.3.3: ch341-uart converter now attached to ttyUSB3
[  205.551504] input: PC Speaker as /devices/platform/pcspkr/input/input14
[  206.068233] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input15
[  206.193397] usb 1-3.3.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[  206.193950] ch341-uart ttyUSB3: ch341-uart converter now disconnected from ttyUSB3
[  206.193966] ch341 1-3.3.3:1.0: device disconnected
[  207.364482] usb 1-4.2.3.2: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[  207.366059] ftdi_sio ttyUSB2: FTDI USB Serial Device converter now disconnected from ttyUSB2
[  207.366142] ftdi_sio 1-4.2.3.2:1.0: device disconnected
[  210.951456] usb 1-4.3: usbfs: interface 0 claimed by cp210x while 'brltty' sets config #1
[  210.952437] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[  210.952519] cp210x 1-4.3:1.0: device disconnected

Thanks for catching that @mmurr. Attaching .txt files is now allowed. Would you send me the before log as well?
test.txt (27 Bytes)