# Unable to Open Serial Port for PIMU - SerialException: No such file or directory

**URL:** <https://forum.hello-robot.com/t/unable-to-open-serial-port-for-pimu-serialexception-no-such-file-or-directory/1148>\
**Category:** Ask\
**Created:** [October 22, 2024, 5:00pm UTC](https://forum.hello-robot.com/t/unable-to-open-serial-port-for-pimu-serialexception-no-such-file-or-directory/1148 "2024-10-22T17:00:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![allen](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/allen/32/914_2.png) [@allen](https://forum.hello-robot.com/u/allen)\
**Post date:** [October 22, 2024, 5:00pm UTC](https://forum.hello-robot.com/t/unable-to-open-serial-port-for-pimu-serialexception-no-such-file-or-directory/1148/1 "2024-10-22T17:00:38Z")

</div>

Hello everyone,

I’m experiencing an issue with my Stretch 3 robot when running the system check. Below is the output I’m seeing when running `system_check` and `robot_home` :

```auto
hello-robot@stretch-se3-3045:~$ stretch_system_check.py 
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------

Model = Stretch 3
Tool = DexWrist 3 w/ Gripper
Serial Number = stretch-se3-3045

[ERROR] [pimu]: SerialException(2): could not open port /dev/hello-pimu: [Errno 2] No such file or directory: '/dev/hello-pimu'
[WARNING] [pimu]: Unable to open serial port for device /dev/hello-pimu
[WARNING] [robot]: Not able to use asyncio for transport communications. Defaulting to sync.
hello-robot@stretch-se3-3045:~$ 

```

Here’s what I’ve tried so far:

- Updated the Python tools for Stretch.
- Reinstalled the workspace.
- Verified the physical connection of the device.

Despite these steps, I’m still unable to resolve the issue. The `/dev/hello-pimu` device doesn’t appear to exist, and I’m not sure what might be preventing it from being recognized.

Any guidance on troubleshooting this issue would be greatly appreciated!

Thanks in advance for your help.

---

<div class="post-metadata">

**Author:** ![bshah](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/bshah/32/55_2.png) [@bshah](https://forum.hello-robot.com/u/bshah)\
**Post date:** [October 30, 2024, 6:16pm UTC](https://forum.hello-robot.com/t/unable-to-open-serial-port-for-pimu-serialexception-no-such-file-or-directory/1148/2 "2024-10-30T18:16:17Z")

</div>

Hi @allen, Would you run the following debug steps?

1. Start by power cycling the robot.
2. Run REx\_firmware\_flash.py --map and post the output here.
3. Run REx\_discover\_hello\_devices.py --list and post the output here.
4. Run cat /etc/udev/rules.d/95-hello-arduino.rules and post the output here.

---

<div class="post-metadata">

**Author:** ![lstegner](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/lstegner/32/90_2.png) [@lstegner](https://forum.hello-robot.com/u/lstegner)\
**Post date:** [October 31, 2024, 6:57pm UTC](https://forum.hello-robot.com/t/unable-to-open-serial-port-for-pimu-serialexception-no-such-file-or-directory/1148/3 "2024-10-31T18:57:07Z")

</div>

Hi @bshah, @allen is working with me, and I have run into the same issue today with the robot. Allen let me know that after a few days, when he tried the robot, the error seemed to disappear. Today, however, we have the same issue.

Thanks for the assistance! Here is the output from the debug steps:

1. Start by power cycling the robot – done!

2. Run REx\_firmware\_flash.py --map and post the output here:

```auto
hello-robot@stretch-se3-xxxx:~$ REx_firmware_flash.py --map 
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------

ls: cannot access '/dev/hello-pimu': No such file or directory
------------------------------------------
hello-motor-arm | ttyACM3
hello-motor-right-wheel | ttyACM2
hello-motor-left-wheel | ttyACM0
hello-pimu | None
hello-wacc | ttyACM4
hello-motor-lift | ttyACM1
------------------------------------------
ttyACM0 | hello-motor-left-wheel
ttyACM1 | hello-motor-lift
ttyACM2 | hello-motor-right-wheel
ttyACM3 | hello-motor-arm
ttyACM4 | hello-wacc
------------------------------------------

```

1. Run REx\_discover\_hello\_devices.py --list and post the output here.

```auto
hello-robot@stretch-se3-xxxx:~$ REx_discover_hello_devices.py --list
For use with S T R E T C H (R) from Hello Robot Inc.
---------------------------------------------------------------------

{'/dev/ttyACM0': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.1/3-2.1:1.0/tty/ttyACM0',
                  'serial': '9F3B5D2F514E52544A4A2020FF0C2106',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM1': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/tty/ttyACM1',
                  'serial': '90287E9C514E52544A4A2020FF0D131B',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM2': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.4/3-2.4:1.0/tty/ttyACM2',
                  'serial': '5342FFCE514E52544A4A2020FF0D051C',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM3': {'model': 'Hello_Stepper',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3.2/3-2.3.2:1.0/tty/ttyACM3',
                  'serial': '9EA21BE3514E52544A4A2020FF0C1206',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyACM4': {'model': 'Hello_Wacc',
                  'model_id': '804d',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3.3/3-2.3.3.3/3-2.3.3.3:1.0/tty/ttyACM4',
                  'serial': '0353706150303247482E3120FF162A34',
                  'vendor': 'Arduino_LLC',
                  'vendor_id': '2341'},
 '/dev/ttyUSB0': {'model': 'FT232R_USB_UART',
                  'model_id': '6001',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.1/3-1.1.2/3-1.1.2:1.0/ttyUSB0/tty/ttyUSB0',
                  'serial': 'AQ04PD5E',
                  'vendor': 'FTDI',
                  'vendor_id': '0403'},
 '/dev/ttyUSB1': {'model': 'FT232R_USB_UART',
                  'model_id': '6001',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3.3/3-2.3.3.2/3-2.3.3.2:1.0/ttyUSB1/tty/ttyUSB1',
                  'serial': 'A10P3WU7',
                  'vendor': 'FTDI',
                  'vendor_id': '0403'},
 '/dev/ttyUSB2': {'model': 'CP2102_USB_to_UART_Bridge_Controller',
                  'model_id': 'ea60',
                  'path': '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.2/3-2.2:1.0/ttyUSB2/tty/ttyUSB2',
                  'serial': '0001',
                  'vendor': 'Silicon_Labs',
                  'vendor_id': '10c4'}}

```

1. Run cat /etc/udev/rules.d/95-hello-arduino.rules and post the output here:

```auto
hello-robot@stretch-se3-xxxx:~$ cat /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}=="C4200132514E52544A4A2020FF0D0727", SYMLINK+="hello-pimu", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="9EA21BE3514E52544A4A2020FF0C1206", SYMLINK+="hello-motor-arm", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="90287E9C514E52544A4A2020FF0D131B", SYMLINK+="hello-motor-lift", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="9F3B5D2F514E52544A4A2020FF0C2106", SYMLINK+="hello-motor-left-wheel", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="5342FFCE514E52544A4A2020FF0D051C", SYMLINK+="hello-motor-right-wheel", ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804d",MODE:="0666", ATTRS{serial}=="0353706150303247482E3120FF162A34", SYMLINK+="hello-wacc", ENV{ID_MM_DEVICE_IGNORE}="1"

```

---

<div class="post-metadata">

**Author:** ![bshah](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/bshah/32/55_2.png) [@bshah](https://forum.hello-robot.com/u/bshah)\
**Post date:** [November 1, 2024, 1:55pm UTC](https://forum.hello-robot.com/t/unable-to-open-serial-port-for-pimu-serialexception-no-such-file-or-directory/1148/4 "2024-11-01T13:55:36Z")

</div>

Thanks @lstegner! Looks like one of power management PCB isn’t appearing to the onboard computer. Given that the robot boots, I’m guessing there’s a loose USB cable. Would you email us at [support@hello-robot.com](mailto:support@hello-robot.com) and I’ll send you a debugging guide to inspect the cables.
