← index #18887Issue #17560
Related · high · value 2.688
QUERY · ISSUE

Utf8-Issue

openby tomhauffopened 2026-03-03updated 2026-03-04
bugunicode

Port, board and/or hardware

ESP32 WROOM

MicroPython version

MicroPython v1.27.0 on 2025-12-09; Generic ESP32 module with ESP32 Python 3.14.3 mpremote 1.27.0 . Issue: python3 -X utf8 -m mpremote exec "print('ü')" locks up in Windows 10 with all terminals and all codepages.

Reproduction

python3 -X utf8 -m mpremote exec "print('ü')" locks up on all terminals and all codepages in Windows 10. It works in Thonny, so it is a mpremote issue.

Expected behaviour

python3 -X utf8 -m mpremote exec "print('ü')" locks up on all terminals and all codepages in Windows 10. It works in Thonny, so it is a mpremote issue.

Observed behaviour

locks um in case of "ü" to be printed to the repl.

Additional Information

No, I've provided everything above.

Code of Conduct

Yes, I agree

CANDIDATE · ISSUE

ESP32-S3 `mpremote` sends corrupted fs hook when mounting local directory

closedby adzierzanowskiopened 2025-06-25updated 2025-09-10
bugtools

Port, board and/or hardware

ESP32-S3 N8R8

MicroPython version

MicroPython 6fee099ca-dirty on 2025-06-25; Generic ESP32S3 module with Octal-SPIRAM with ESP32S3

Compiled using

  • IDF 5.4.1
  • python 3.13.1
  • gcc-15
  • macOS Sequoia 15.5

mpremote is used directly from the micropython repository (but the results are same as with latest PyPI version)

Reproduction

  1. Have a local folder named local
  2. Run mpremote mount local

Expected behaviour

Expected to mount local directory on the device and enter the REPL

Observed behaviour

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File ".../micropython/tools/mpremote/mpremote/__main__.py", line 6, in <module>
    sys.exit(main.main())
             ~~~~~~~~~^^
  File ".../micropython/tools/mpremote/mpremote/main.py", line 615, in main
    handler_func(state, args)
    ~~~~~~~~~~~~^^^^^^^^^^^^^
  File ".../micropython/tools/mpremote/mpremote/commands.py", line 521, in do_mount
    state.transport.mount_local(path, unsafe_links=args.unsafe_links)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".../micropython/tools/mpremote/mpremote/transport_serial.py", line 304, in mount_local
    self.exec(fs_hook_code)
    ~~~~~~~~~^^^^^^^^^^^^^^
  File ".../micropython/tools/mpremote/mpremote/transport_serial.py", line 293, in exec
    raise TransportExecError(ret, ret_err.decode())
mpremote.transport.TransportExecError: Traceback (most recent call last):
  File "<stdin>", line 11
SyntaxError: invalid syntax

Additional Information

After some digging I found a recent thread #17465 which helped to resolve the issue.

After changing the size of a data chunk sent at once over REPL, mounting works as expected:

        for i in range(0, len(command_bytes), 32):
            self.serial.write(
                command_bytes[i : min(i + 32, len(command_bytes))]
            )
            time.sleep(0.01)

The mpremote mount command works with an earlier build I found on the internet (this one)

So I guess the real problem lies in some build flag.

Code of Conduct

Yes, I agree

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied