Build failing - Arduino ESP32 Project

When I build, the build task just hangs at “Building”. I dont see any log files other than a couple of longcmd file.

This is my output:

Processing esp32doit-devkit-v1 (platform: espressif32; board: esp32doit-devkit-v1; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32doit-devkit-v1.html
PLATFORM: Espressif 32 (2.0.0) > DOIT ESP32 DEVKIT V1
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 3.10004.201016 (1.0.4)
 - tool-esptoolpy 1.20600.0 (2.6.0)
 - toolchain-xtensa32 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <lvgl> 7.1.0
|-- <lv_drivers> 7.7.0
|   |-- <lvgl> 7.1.0
|   |-- <Time> 1.5.0
|-- <NtpClientLib> 3.0.2-beta
|   |-- <Time> 1.5.0
|   |-- <ESPAsyncUDP> 0.0.0-alpha+sha.697c75a025
|   |-- <ESP32 Async UDP> 1.0.0
|   |-- <Ticker> 1.1
|   |-- <WiFi> 1.0
Building in release mode
Compiling .pio\build\esp32doit-devkit-v1\src\Logger\Logger.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\src\Time\Clock.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\src\Tools\RingBuf.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\src\main.cpp.o
Generating partitions .pio\build\esp32doit-devkit-v1\partitions.bin
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_core\lv_disp.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_core\lv_group.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_core\lv_indev.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_core\lv_obj.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_core\lv_refr.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_core\lv_style.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_arc.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_blend.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_img.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_label.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_line.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_mask.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_rect.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_draw_triangle.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_img_buf.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_img_cache.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_draw\lv_img_decoder.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_dejavu_16_persian_hebrew.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_fmt_txt.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_12.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_12_subpx.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_14.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_16.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_18.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_20.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_22.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_24.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_26.c.o
Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Users\rohme\AppData\Local\Programs\Python\Python39\lib\threading.py", line 950, in _bootstrap_inner
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_28.c.o
    self.run()
  File "C:\Users\rohme\AppData\Local\Programs\Python\Python39\lib\threading.py", line 888, in run
    self._target(*self._args, **self._kwargs)
  File "c:\users\rohme\.platformio\penv\lib\site-packages\platformio\proc.py", line 46, in run
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_28_compressed.c.o
    self.do_reading()
  File "c:\users\rohme\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in do_reading
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
  File "c:\users\rohme\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in <lambda>
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
  File "C:\Users\rohme\AppData\Local\Programs\Python\Python39\lib\encodings\cp1252.py", line 23, in decode
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_30.c.o
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 201: character maps to <undefined>
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_32.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_34.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_36.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_38.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_40.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_42.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_44.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_46.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_montserrat_48.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_simsun_16_cjk.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_font\lv_font_unscii_8.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_gpu\lv_gpu_stm32_dma2d.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_hal\lv_hal_disp.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_hal\lv_hal_indev.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_hal\lv_hal_tick.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_anim.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_area.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_async.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_bidi.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_color.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_debug.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_fs.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_gc.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_ll.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_log.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_math.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_mem.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_printf.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_task.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_templ.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_txt.c.o
Compiling .pio\build\esp32doit-devkit-v1\lib599\lvgl\lv_misc\lv_txt_ap.c.o

It just sits there. In verbose there arent any errors shown either.

I havent the faintest idea about the encodings issue (Dont know what file its on either :()

Any suggestions? Ive reinstalled VS.Code, PlatformIO, tried the beta, done clean rebuilds, tried creating a new project

A python thread crashed when it attempted to read a weird character encoded by 0x9d at position 201 in some file or stream.

… suspicious maybe due to encoded characters…

Do you have the project uploaded or a minimal-reproducable-example of it?

Ok, I think it may be just that. I am looking at the files and they have things like:
/* U+F00C “” */

The files are encoded to UTF-8, so its a bit odd.

Ok, this is weird… I have removed lvgl, which had the suspect files.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32doit-devkit-v1.html
PLATFORM: Espressif 32 (2.0.0) > DOIT ESP32 DEVKIT V1
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 3.10004.201016 (1.0.4)
 - tool-esptoolpy 1.20600.0 (2.6.0)
 - toolchain-xtensa32 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <NtpClientLib> 3.0.2-beta
|   |-- <Time> 1.5.0
|   |-- <ESPAsyncUDP> 0.0.0-alpha+sha.697c75a025
|   |-- <ESP32 Async UDP> 1.0.0
|   |-- <Ticker> 1.1
|   |-- <WiFi> 1.0
Building in release mode
Compiling .pio\build\esp32doit-devkit-v1\src\Logger\Logger.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\src\Time\Clock.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\src\Tools\RingBuf.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\src\main.cpp.o
Generating partitions .pio\build\esp32doit-devkit-v1\partitions.bin
Compiling .pio\build\esp32doit-devkit-v1\lib503\Time\DateStrings.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\lib503\Time\Time.cpp.o
Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Users\rohme\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Users\rohme\AppData\Local\Programs\Python\Python37\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "c:\users\rohme\.platformio\penv\lib\site-packages\platformio\proc.py", line 46, in run
    self.do_reading()
  File "c:\users\rohme\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in do_reading
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
  File "c:\users\rohme\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in <lambda>
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
  File "C:\Users\rohme\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 210: character maps to <undefined>

Compiling .pio\build\esp32doit-devkit-v1\lib4c3\ESPAsyncUDP\AsyncUDP.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\lib94c\AsyncUDP\AsyncUDP.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\lib151\Ticker\Ticker.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\lib1de\WiFi\ETH.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\lib1de\WiFi\WiFi.cpp.o

Well somehow it reads the pipe in CP1252 encoding, which is just 8-bit extended ASCII (Windows-1252 - Wikipedia) and not UTF-8. Can you temparily move font files which have problematic comments in them to somewhere else to see if the build goes further (but then of course errors out with undefined symbols at the very end)?

Yeah, I removed them completely. Thats the baffling part

If I could just figure out WHERE it was dying, I’d be golden

Yeah the multi-threaded nature of the compilation doesn’t make this easy, but it’s got to be in one of the last #number of CPU threads your computer has files. If assuming 16 threads, candidates are

I’ll shorty try to compile an example project from PlatformIO Registry to see if it’s replicatable.

Yeah, I removed all of those. Thats the weird part.

I have now stripped everything out of the project…
DF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 29 compatible libraries
Scanning dependencies…
No dependencies
Building in release mode
Compiling .pio\build\esp32doit-devkit-v1\src\main.cpp.o
Generating partitions .pio\build\esp32doit-devkit-v1\partitions.bin
Archiving .pio\build\esp32doit-devkit-v1\libFrameworkArduinoVariant.a
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\Esp.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\IPv6Address.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\Print.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\WString.cpp.o
Exception in thread Thread-3:
Traceback (most recent call last):
File “C:\Users\rohme\AppData\Local\Programs\Python\Python37\lib\threading.py”, line 926, in _bootstrap_inner
self.run()
File “C:\Users\rohme\AppData\Local\Programs\Python\Python37\lib\threading.py”, line 870, in run
self._target(*self._args, **self._kwargs)
File “c:\users\rohme.platformio\penv\lib\site-packages\platformio\proc.py”, line 46, in run
self.do_reading()
File “c:\users\rohme.platformio\penv\lib\site-packages\platformio\proc.py”, line 69, in do_reading
for byte in iter(lambda: self._pipe_reader.read(1), “”):
File “c:\users\rohme.platformio\penv\lib\site-packages\platformio\proc.py”, line 69, in
for byte in iter(lambda: self._pipe_reader.read(1), “”):
File “C:\Users\rohme\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py”, line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: ‘charmap’ codec can’t decode byte 0x9d in position 201: character maps to

Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\base64.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\cbuf.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-dac.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-i2c.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-rmt.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-spi.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\main.cpp.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\esp32doit-devkit-v1\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\esp32doit-devkit-v1\libFrameworkArduino.a
Linking .pio\build\esp32doit-devkit-v1\firmware.elf
Building .pio\build\esp32doit-devkit-v1\firmware.bin
Retrieving maximum program size .pio\build\esp32doit-devkit-v1\firmware.elf
Checking size .pio\build\esp32doit-devkit-v1\firmware.elf
Advanced Memory Usage is available via “PlatformIO Home > Project Inspect”
RAM: [ ] 4.5% (used 14700 bytes from 327680 bytes)
Flash: [== ] 16.0% (used 209799 bytes from 1310720 bytes)
esptool.py v2.6
================================================================================================ [SUCCESS] Took 9.84 seconds ================================================================================================

Terminal will be reused by tasks, press any key to close it.

Its building now, but I still get that python error.

I removed everything and am slowly adding stuff back, recompiling after each try.

https://raw.githubusercontent.com/wizard97/ArduinoRingBuffer/master/RingBuf.h

That is the offending file. Why I have no clue, but it is.

This file has “smart quotes” which differ from ASCII quotes:

        #warning “This library only fully supports AVR and ESP8266 Boards.”
        #warning "Operations on the buffer in ISRs are not safe!"

can you replace the “ with "?

Ahhh… I missed em.

Well, I suppose this exposes something that could definitely be added to platformio, and that is hardening of the input.

How does this library get in the project anyway? It’s a ring buffer library which doesn’t support the ESP32 architecture you’re compiling for. It’s not thread-safe, which is pretty much one of the main points for a ringbuffer.

I also don’t see ArduinoRingBuffer in your library depedency graph.

Or did you install this as a global library?

@ivankravets the following error is reproducable: If GCC emits a warning which has non-ASCII / CP1252 encoded characters in it, PIO crashes when reading the GCC output.

platformio.ini

[env:uno]
platform = atmelavr
board = uno
framework = arduino

main.cpp

#include <Arduino.h>

#warning "Normal warning. Does not crash PIO"
#warning “This warning with smart quotes crashes PIO.”

void setup() { }

void loop() { }

The project must be cleaned and built again to trigger the GCC output and crash. GCC still creates the object file, so building the project twice works… but every time the source code is changed and the file is recompiled and the warning is outputted, it crashes again.

Exception in thread Thread-3:
Traceback (most recent call last):
  File "c:\users\maxi\appdata\local\programs\python\python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "c:\users\maxi\appdata\local\programs\python\python37\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "c:\users\maxi\appdata\local\programs\python\python37\lib\site-packages\platformio\proc.py", line 46, in run
    self.do_reading()
  File "c:\users\maxi\appdata\local\programs\python\python37\lib\site-packages\platformio\proc.py", line 69, in do_reading
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
  File "c:\users\maxi\appdata\local\programs\python\python37\lib\site-packages\platformio\proc.py", line 69, in <lambda>
    for byte in iter(lambda: self._pipe_reader.read(1), ""):
  File "c:\users\maxi\appdata\local\programs\python\python37\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 84: character maps to <undefined>

Latest pio upgrade --dev core is used.

Does it seem like a bug of Python 3.8+? We ship PlatformIO Core installer with Python 3.7 for Windows. Could you try the latest Python 3.7?

This happens in python 3.7 as well, that was one of the attempted “fixes” I tried

Running 3.7.6 here, 2 minors away from the 3.7.8 highest possible one, but still.

I guess it’s this bug (ignore the title, it’s misleading):

It has quite a history (fixed, reverted, reopened)…