Skip to content

[Bug] EV3 WebUSB connects but 'Run program' and 'REPL' buttons stay disabled in Chrome on Ubuntu #2772

Description

@BertLindeman

Describe the bug
Chrome successfully connects to the EV3 over WebUSB WebSerial .
The connect button shows the hub as connected, and chrome://device-log shows normal USB detection:

USB device added: LEGO MINDSTORMS EV3 + Pybricks
Serial device added: /dev/ttyACM0

However, the "Run program" and "Start REPL" buttons sometimes remain disabled indefinitely.

To reproduce
Steps to reproduce the behavior:

  1. Run google-chrome 150 on Ubuntu Trixie
  2. Go to "beta.pybricks.com"
  3. connect an EV3 (with current beta firmware)
  4. See the USB connect button show there is a connection
  5. select a file (at the left side)
  6. expect the "run program" and the REPL button be enabled.
  7. Intermittent in separate sessions both buttons are disabled. And the last test they were enabled.

Expected behavior
Buttons to be enabled on an established USB connection.

Environment

  • Ubuntu Trixie
  • Google Chrome 150.0.7871.181
  • beta.pybricks.com Pybricks Beta v3.1.0-beta.3
  • EV3 firmware v4.1.0b2

Observations

  • No USB errors are shown in chrome://device-log.
  • No JavaScript errors are visible in the Developer Tools Console.
  • The SharedArrayBuffer warning appears in both working and failing cases and does not seem related.
  • The same Chrome installation works correctly when Chrome is displayed remotely through MobaXterm X11 forwarding.
  • Running Chrome locally from the Ubuntu desktop menu and from a terminal uses the same executable.
  • After repeating the test without changing anything, the REPL button eventually became enabled, so the problem may be intermittent.

This suggests that WebUSB WebSerial connection itself is working, but the Pybricks web application may not always complete the hub initialization state after connecting.
Race condition?
The traffic via X11 to remote is obviously slower and that seems to help.

Is there any additional logging or debugging information that would help identify where initialization stops or fails?

Metadata

Metadata

Assignees

No one assigned

    Labels

    software: pybricks-codeIssues with https://code.pybricks.com application

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions