Edge IO Node-RED: "Permission denied" on USB Serial Port (/dev/ttyACM0)

Hi everyone,

I am trying to connect a Datalogic TC1200 industrial barcode scanner to the embedded Node-RED instance on my Edge IO.

I want to process the raw serial data inside Node-RED before routing it, so I cannot use the native Tulip Barcode driver for this specific use case.

My Setup & Steps Taken:

  1. Scanner Configuration: Configured the TC1200 via Datalogic Aladdin into USB-COM Standard mode (Virtual COM Port). I verified it on a Windows PC; it is correctly recognized as a USB Serial Device (COM Port) and no longer acts as a keyboard.

  2. Edge IO Drivers: Turned OFF both the Barcode and Generic Serial drivers in the Edge IO Device Portal to avoid any conflict or port capturing by Tulip’s native OS.

  3. Reboot: Performed a full hard reboot of the Edge IO with the scanner connected.

The Problem:

Inside Node-RED, the serial in node fails to open the port and throws the following error: [serialconfig:xxxx] serial port /dev/ttyACM0 error: Error: Error: Permission denied, cannot open /dev/ttyACM0

Diagnostics via Node-RED exec node:

I ran a few commands within Node-RED to check what is happening under the hood.

  • lsusb successfully detects the device:

Bash

Bus 006 Device 004: ID 05f9:2206 PSC Scanning, Inc.

  • ls /dev/tty* confirms that the port /dev/ttyACM0 is created by the OS.

  • However, checking the permissions with ls -l /dev/ttyACM0 && whoami && groups returns this:

Plaintext

c--------- 0 nobody nogroup 166, 0 Jun  1 14:54 /dev/ttyACM0
node-red
nogroup node-red nogroup

Questions:

As we can see, /dev/ttyACM0 is created with 000 permissions and owned by nobody:nogroup, which prevents the node-red user container from accessing it. Since the node-red user doesn’t have root/sudo privileges inside the container, I cannot manually chmod or chown the device path.

  1. Is this a known restriction regarding how USB-serial devices are mapped into the Node-RED Docker container on the Edge IO?

  2. Is there a way to trigger a udev rule or configure the Edge OS so that dynamically plugged USB-serial devices are created with the correct group permissions (e.g., dialout) or read/write access for Node-RED?

Any insights or workarounds from the Tulip team or community would be greatly appreciated!

Thanks,
Paul

1 Like