Board: Arduino UNO Q (SKU: ABX00162) OS: Ubuntu/Debian Linux — working directly on the board (keyboard + monitor physically connected) Arduino CLI version: 1.4.1 Core: arduino:zephyr (version 0.54.1) FQBN: arduino:zephyr:uno_q Arduino App Lab: Installed and working
Background
I am using the Arduino UNO Q as a standalone single board computer with a keyboard and monitor plugged directly into the board. I am developing using Arduino CLI from the board's own terminal — not from a remote computer and not using SSH.
I have successfully compiled and uploaded sketches using:
bash
arduino-cli compile --fqbn arduino:zephyr:uno_q .
arduino-cli upload --fqbn arduino:zephyr:uno_q .
What I am trying to do
I want to implement basic UART send/receive and verify the MCU is running my sketch by reading its serial output — all from the CLI terminal without opening App Lab in a browser.
Problem 1 — arduino-cli monitor not working
When I run:
bash
arduino-cli monitor --fqbn arduino:zephyr:uno_q --config baudrate=9600
I get:
no monitor available
The arduino:zephyr core does not seem to support the CLI monitor command.
Problem 2 — Cannot read tty ports directly
I listed all tty ports:
bash
ls /dev/tty*
Output includes: /dev/ttyHS1, /dev/ttyHS2, /dev/ttyMSM0, /dev/ttyS0 to ttyS3
From the official documentation I understand:
/dev/ttyMSM0— system console (my terminal) — busy/dev/ttyHS1— reserved byarduino-routerservice — busySerial1on MCU side — also reserved byarduino-router
When I try:
bash
cat /dev/ttyHS1
I get:
device or resource busy
When I try:
bash
cat /dev/ttyMSM0
Nothing happens.
When I try:
bash
cat /dev/ttyHS2
Nothing appears.
Problem 3 — Serial output not visible anywhere on CLI
Using this sketch:
cpp
void setup() {
Serial.begin(115200);
Serial.println("MCU ready");
}
void loop() {
Serial.println("Hello from MCU");
delay(1000);
}
There is no way to see the Serial output from the CLI terminal. I understand from the docs that Serial goes to physical pins D0/D1 only — not to any console.
Problem 4 — Monitor only works through App Lab
Using this sketch:
cpp
#include <Arduino_RouterBridge.h>
void setup() {
Monitor.begin();
Monitor.println("MCU ready");
}
void loop() {
Monitor.println("Hello from MCU");
delay(1000);
}
Monitor output is only visible when App Lab is open in a browser. There is no documented way to read Monitor output from a pure CLI terminal session.
What I tried
Attempted to read the Unix socket directly using Python msgpack:
python
import socket
import msgpack
SOCKET_PATH = "/var/run/arduino-router.sock"
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
s.connect(SOCKET_PATH)
request = [0, 1, "mon/read", []]
s.sendall(msgpack.packb(request))
unpacker = msgpack.Unpacker(raw=False)
while True:
data = s.recv(4096)
if not data:
break
unpacker.feed(data)
for msg in unpacker:
print(msg)
break
Got error:
ValueError: Unpack failed: incomplete input
Also tried system/list to discover available RPC methods but could not get a clean response.
My questions
- Is there an official way to read
Monitoroutput from the CLI terminal without opening App Lab in a browser? - What is the correct RPC method name to subscribe to Monitor output via the Unix socket at
/var/run/arduino-router.sock? - Is there any tty port on the UNO Q that exposes MCU Serial output and is safe to read with
catorscreen? - Does
arduino-cli monitorhave any plan to support thearduino:zephyrcore in a future release? - What is the recommended workflow for developers who want to use the UNO Q purely from CLI without App Lab?
System info
bash
arduino-cli version
# arduino-cli Version: 1.4.1 Commit: e39419312 Date: 2026-01-19T16:12:55Z
arduino-cli core list
# arduino:zephyr 0.54.1
systemctl status arduino-router
# active and running
ls /var/run/arduino-router.sock
# socket exists
Reference
Official UNO Q user manual communication section confirms:
/dev/ttyHS1andSerial1are reserved byarduino-routerMonitoruses RPC methodmon/writeinternally- App Lab is the intended interface for Monitor output
However there is no documentation for CLI-only workflows or reading Monitor output without App Lab.
Any help or pointers to documentation would be greatly appreciated. Thank you.

