Arduino uno input/output error

I'm experiencing issues uploading sketches to my Arduino Uno using the Arduino IDE on Zorin OS 17. The Arduino IDE recognizes the board on /dev/ttyACM0, but I get an Input/output error when trying to upload. The connection appears unstable, with the board repeatedly disconnecting and reconnecting. I’ve already tried various troubleshooting steps, as detailed below, but the issue persists.
System Information:

  • OS: Zorin OS 17 (based on Ubuntu, using Wayland and GNOME)
  • Kernel Version: 6.8.0-47-generic
  • USB Drivers: Using cdc_acm for USB ACM (serial devices)
  • Arduino Model: Arduino Uno R3 (ID 2341:0043)
  • USB Port: /dev/ttyACM0
  • Hardware: HP Pavilion 15 cs2093nl
    Steps I’ve Tried:
    USB Permissions:
  1. Added my user to the dialout group to ensure access to serial devices.
  • Created a udev rule (/etc/udev/rules.d/99-arduino.rules) to set appropriate permissions for the Arduino:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE:="0666"

  • Reloaded udev rules and reconnected the Arduino after this.
  1. Disabling ModemManager:
  • Disabled and stopped ModemManager as it sometimes interferes with serial devices.
  1. Testing the Serial Connection Directly:
  • Attempted to connect to /dev/ttyACM0 using screen, but both programs terminate with [screen is terminating] or similar messages.
  • Tried setting the baud rate on /dev/ttyACM0 directly with stty, but received an Input/output error.
  1. Checking dmesg Logs:
  • dmesg logs show repeated messages of the Arduino disconnecting and reconnecting. Here’s a sample:

usb 1-2: reset full-speed USB device number 22 using xhci_hcd
usb 1-2: USB disconnect, device number 22
usb 1-2: new full-speed USB device number 23 using xhci_hcd
cdc_acm 1-2:1.0: ttyACM0: USB ACM device

  1. USB Cables and Ports:
  • Tried different USB cables and ports to rule out a hardware issue with the cable or specific USB port.
  1. Disable USB Autosuspend:
  • Disabled USB autosuspend for the Arduino device to prevent the system from automatically putting it to sleep.
    I can see the Arduino listed in lsusb, and it’s assigned to /dev/ttyACM0, but attempts to communicate with it fail, leading to repeated disconnects and resets.
    The Arduino IDE and related packages were installed via an AppImage. Are there any known compatibility issues with the cdc_acm driver or with Zorin OS? What else can I try to solve this? It used to work perfectly on windows a couple of weeks ago, so the problem shouldn't be the hardware.

On Linux it is also common for brltty to be installed by default. This is used for Braille readers and like modemmanager, it interferes with serial TTY operations. If you are not using a Braille reader then this service should be disabled as well.

Just checked. Brltty was already disabled :frowning:

Hi @pietrofarag.

This seems more likely to be caused by a hardware problem than a software problem.

I see you already performed experiments to check whether it was caused by the USB cable or the socket on the computer, which was very wise, but there are some other things that can be checked:

Make sure the USB cable is fully inserted into the socket on the board and on the computer.

Make sure the board is not sitting on anything conductive that could short the contacts on the bottom of the board. Make sure there isn't any conductive debris (e.g., strands of wire or component leads) on the board or on the surface the board is sitting on.

If you have a shield or any external circuitry or components connected to your Arduino board, try this experiment:

  1. Disconnect the USB cable of the Arduino board from your computer.
  2. Disconnect any shields, modules, external circuitry, etc. from your board.
  3. Connect the Arduino board to your computer with a USB cable.

Now try uploading a sketch to the board again. Does the upload succeed?

I did all of this but still nothing. I will try tomorrow with a computer of a friend of mine to see if the problem is the computer or the board.

1 Like

Does your system have a plugdev group? Is your username added as a member of that group?