Patched build: Chromium 156.0.8065.0, commit f3275a23d1536.
SHA-256: 349b3c57a9b64ca4dcadb140bb2cd8e1d0336d29e97672e82e8e5cde83232ae3
FTHRSNSBOOT drive appears.FTHRSNSBOOT.CIRCUITPY.code.py above and copy it to the root of CIRCUITPY.Always test at 115200 baud. Opening this board at 1200 baud triggers its bootloader reset.
# Find the port.
ls -l /dev/serial/by-id/
PORT=/dev/ttyACM0
# Simulate the termios state left by pyserial.
stty -F "$PORT" min 0 time 0
# Must print: min = 0; time = 0
stty -F "$PORT" -a | grep -o 'min = [0-9]*; time = [0-9]*'
Do not unplug or reset the board after poisoning it. Replugging resets termios and hides the bug.
ExpectedError: The device has been lost. appears immediately.
# Verify the download.
sha256sum chromium-i-559872992-linux-amd64.deb
# Install it on Debian or Ubuntu.
sudo apt install ./chromium-i-559872992-linux-amd64.deb
# Launch it with a clean profile.
chromium-browser-stable \
--user-data-dir=/tmp/chromium-i-559872992 \
https://googlechromelabs.github.io/serial-terminal/
stty -F "$PORT" min 0 time 0.PING, and press Enter. It returns PONG.LED and press Enter. It returns OK and toggles the red LED.Expected
The device stays connected and both commands work.
# After disconnect, the patched build has corrected the tty state.
stty -F "$PORT" -a | grep -o 'min = [0-9]*; time = [0-9]*'
# min = 1; time = 0
dialout: sudo usermod -aG dialout "$USER", then log out and back in.stty -F "$PORT" min 1 time 0 makes unpatched Chrome work too.