Skip to content

pio monitor fails when stdin is a pipe #5113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Raupinger opened this issue Mar 19, 2025 · 0 comments
Open

pio monitor fails when stdin is a pipe #5113

Raupinger opened this issue Mar 19, 2025 · 0 comments

Comments

@Raupinger
Copy link

When I call pio like this echo "" | pio run -t monitor, it fails with "Inappropriate ioctl for device":

full command output
Processing htit-wb32la (platform: espressif32; framework: arduino; board: heltec_wifi_lora_32)
--------------------------------------------------------------------------------------------
error: Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/platformio/__main__.py", line 103, in main
  cli()  # pylint: disable=no-value-for-parameter
  ~~~^^
File "/usr/lib/python3.13/site-packages/click/core.py", line 1157, in __call__
  return self.main(*args, **kwargs)
         ~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/click/core.py", line 1078, in main
  rv = self.invoke(ctx)
File "/usr/lib/python3.13/site-packages/platformio/cli.py", line 85, in invoke
  return super().invoke(ctx)
         ~~~~~~~~~~~~~~^^^^^
File "/usr/lib/python3.13/site-packages/click/core.py", line 1688, in invoke
  return _process_result(sub_ctx.command.invoke(sub_ctx))
                         ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/site-packages/click/core.py", line 1434, in invoke
  return ctx.invoke(self.callback, **ctx.params)
         ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/click/core.py", line 783, in invoke
  return __callback(*args, **kwargs)
File "/usr/lib/python3.13/site-packages/click/decorators.py", line 33, in new_func
  return f(get_current_context(), *args, **kwargs)
File "/usr/lib/python3.13/site-packages/platformio/run/cli.py", line 147, in cli
  process_env(
  ~~~~~~~~~~~^
      ctx,
      ^^^^
  ...<9 lines>...
      verbose,
      ^^^^^^^^
  )
  ^
File "/usr/lib/python3.13/site-packages/platformio/run/cli.py", line 213, in process_env
  ctx.invoke(
  ~~~~~~~~~~^
      device_monitor_cmd,
      ^^^^^^^^^^^^^^^^^^^
      port=monitor_port,
      ^^^^^^^^^^^^^^^^^^
      environment=name,
      ^^^^^^^^^^^^^^^^^
  )
  ^
File "/usr/lib/python3.13/site-packages/click/core.py", line 783, in invoke
  return __callback(*args, **kwargs)
File "/usr/lib/python3.13/site-packages/platformio/device/monitor/command.py", line 154, in device_monitor_cmd
  start_terminal(options)
  ~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3.13/site-packages/platformio/device/monitor/terminal.py", line 54, in start_terminal
  term = new_terminal(options)
File "/usr/lib/python3.13/site-packages/platformio/device/monitor/terminal.py", line 102, in new_terminal
  term = Terminal(
      new_serial_instance(options),
  ...<2 lines>...
      filters=list(reversed(options["filters"] or ["default"])),
  )
File "/usr/lib/python3.13/site-packages/platformio/device/monitor/terminal.py", line 28, in __init__
  super().__init__(*args, **kwargs)
  ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/serial/tools/miniterm.py", line 395, in __init__
  self.console = Console()
                 ~~~~~~~^^
File "/usr/lib/python3.13/site-packages/serial/tools/miniterm.py", line 198, in __init__
  self.old = termios.tcgetattr(self.fd)
             ~~~~~~~~~~~~~~~~~^^^^^^^^^
termios.error: (25, 'Inappropriate ioctl for device')

============================================================

An unexpected error occurred. Further steps:

* Verify that you have the latest version of PlatformIO using
`python -m pip install -U platformio` command

* Try to find answer in FAQ Troubleshooting section
https://docs.platformio.org/page/faq/index.html

* Report this problem to the developers
https://github.com/platformio/platformio-core/issues

============================================================

pio core version is 6.1.17 as packaged for arch.

My use case for this is that I am trying to automate some hardware tests that require two way communication between the host system and the device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants