Skip to content

samples/subsys/usb/console hangs when opened with picocom on blackpill_f411ce (STM32F411, Zephyr 4.3.99) #104480

@dvcirilo

Description

@dvcirilo

Describe the bug

When running samples/subsys/usb/console on STM32F411 (Blackpill) (also tested o STM32U585), picocom blocks indefinitely while opening /dev/ttyACM0.

strace shows that the process blocks in:

ioctl(TCSETSF2)

minicom works with the Zephyr firmware.
cat /dev/ttyACM0 also works with the Zephyr firmware.

The blocking occurs specifically with picocom during TCSETSF2.

The same hardware running Arduino framework firmware does not exhibit this behavior. In that case, TCSETSF2 returns immediately and picocom operates normally.

Regression

  • This is a regression.

Steps to reproduce

  1. Build and flash Zephyr samples/subsys/usb/console to STM32F411 Blackpill.
  2. Connect USB to host.
  3. On host (Arch Linux):
picocom -b 115200  /dev/ttyACM0
  1. Observe that picocom:

    • Prints its startup banner
    • Hangs
    • Shows no device output
    • Becomes unresponsive to escape sequences

Relevant log output

# picocom strace output (hangs)
...
openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 3
flock(3, LOCK_EX|LOCK_NB)               = 0
ioctl(3, TCGETS2, {...})                = 0
ioctl(3, TCGETS2, {...})                = 0
ioctl(3, TIOCMGET, [...])               = 0
ioctl(3, TCSETSF2, {...})               = ?
+++ killed by SIGKILL +++

# minicom strace output (working case)
...
openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY) = 3
ioctl(3, TCGETS, {...})                = 0
ioctl(3, TCSETS, {...})                = 0
ioctl(3, TCFLSH, TCIOFLUSH)            = 0
...

# picocom (Arduino firmware, working case)
...
openat(AT_FDCWD, "/dev/ttyACM0", O_RDWR|O_NOCTTY|O_NONBLOCK) = 3
flock(3, LOCK_EX|LOCK_NB)               = 0
ioctl(3, TCGETS2, {...})                = 0
ioctl(3, TIOCMGET, [...])               = 0
ioctl(3, TCSETSF2, {...})               = 0
pselect6(...)
read(3, "KEY 2,1\r\n", ...)
...

Impact

Functional Limitation – Some features not working as expected, but system usable.

Environment

  • Zephyr version: 4.3.99
  • Zephyr SDK 0.17.4
  • Arch Linux desktop 6.18.9-arch1-2 zephyr-master_fork #1 SMP PREEMPT_DYNAMIC Mon, 09 Feb 2026 17:16:33 +0000 x86_64 GNU/Linux
  • minicom version 2.11
  • picocom v3.1

Additional Context

No response

Metadata

Metadata

Assignees

Labels

area: USBUniversal Serial BusbugThe issue is a bug, or the PR is fixing a bugpriority: lowLow impact/importance bug

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions