My best hint is not to tryI know it's a blasphemy, but any hint how to compile under Windows (without WSL or virtual machine)?
Not for MicroPython at least. It used to work a long time ago but it also stopped working a long time ago and I've never managed it since. But, I haven't tried in a while. I presume the MicroPython team do build under Windows Native to prove it does compile and others seem to have achieved that so YMMV.
You could perhaps try building as a VS Code project, even using the Pico SDK Extension. I've never tried that.
If you understand Github CI that might be another route. I don't so haven't tried that either.
Code:
c:\pico\micropython\ports\rp2\build>cmake ..PICO_SDK_PATH is C:/pico/micropython/lib/pico-sdkTarget board (PICO_BOARD) is 'pico'.Using board configuration from C:/pico/micropython/lib/pico-sdk/src/boards/include/boards/pico.hPico Platform (PICO_PLATFORM) is 'rp2040'.Defaulting compiler (PICO_COMPILER) to 'pico_arm_cortex_m0plus_gcc' since not specified.Configuring toolchain based on PICO_COMPILER 'pico_arm_cortex_m0plus_gcc'Defaulting PICO_GCC_TRIPLE to 'arm-none-eabi'-- The C compiler identification is GNU 10.3.1-- The CXX compiler identification is GNU 10.3.1-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: C:/Program Files/Raspberry Pi/Pico SDK v2.2.0/gcc-arm-none-eabi/bin/arm-none-eabi-gcc.exe - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: C:/Program Files/Raspberry Pi/Pico SDK v2.2.0/gcc-arm-none-eabi/bin/arm-none-eabi-g++.exe - skipped-- Detecting CXX compile features-- Detecting CXX compile features - done-- The ASM compiler identification is GNU-- Found assembler: C:/Program Files/Raspberry Pi/Pico SDK v2.2.0/gcc-arm-none-eabi/bin/arm-none-eabi-gcc.exeBuild type is MinSizeRel-- Found Python3: C:/Program Files/WindowsApps/PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0/python3.9.exe (found version "3.9.13") found components: InterpreterTinyUSB available at C:/pico/micropython/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.BTstack available at C:/pico/micropython/lib/btstacklwIP available at C:/pico/micropython/lib/lwipFound User C Module(s):CMake Warning at C:/pico/micropython/lib/pico-sdk/tools/Findpicotool.cmake:28 (message): No installed picotool with version 2.1.0 found - building from source It is recommended to build and install picotool separately, or to set PICOTOOL_FETCH_FROM_GIT_PATH to a common directory for all your SDK projectsCall Stack (most recent call first): C:/pico/micropython/lib/pico-sdk/tools/CMakeLists.txt:138 (find_package) C:/pico/micropython/lib/pico-sdk/tools/CMakeLists.txt:485 (pico_init_picotool) C:/pico/micropython/lib/pico-sdk/src/cmake/on_device.cmake:57 (picotool_postprocess_binary) CMakeLists.txt:599 (pico_add_extra_outputs)Downloading Picotool-- Configuring done-- Generating done-- Build files have been written to: C:/pico/micropython/ports/rp2/buildc:\pico\micropython\ports\rp2\build>Code:
c:\pico\micropython\ports\rp2\build>makec:\pico\micropython\ports\rp2\build>mingw32-make[ 0%] Building ASM object pico-sdk/src/rp2040/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj[ 0%] Linking ASM executable bs2_default.elf[ 0%] Built target bs2_default[ 0%] Generating bs2_default.bin[ 1%] Generating bs2_default_padded_checksummed.S[ 1%] Building ASM object pico-sdk/src/rp2040/boot_stage2/CMakeFiles/bs2_default_library.dir/bs2_default_padded_checksummed.S.obj[ 1%] Built target bs2_default_library[ 1%] Built target picotoolForceReconfigure[ 1%] Creating directories for 'picotoolBuild'[ 1%] No download step for 'picotoolBuild'[ 2%] No update step for 'picotoolBuild'[ 2%] No patch step for 'picotoolBuild'[ 2%] Performing configure step for 'picotoolBuild'Not searching for unused variables given on the command line.-- The C compiler identification is GNU 8.1.0-- The CXX compiler identification is GNU 8.1.0-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: C:/pico/mingw/mingw32/bin/gcc.exe - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: C:/pico/mingw/mingw32/bin/c++.exe - skipped-- Detecting CXX compile features-- Detecting CXX compile features - done-- Using the single-header code from C:/pico/micropython/ports/rp2/build/_deps/picotool-src/lib/nlohmann_json/single_include/lib/mbedtls submodule needs to be initialized for bintool hashing/signingmbedtls not found - no signing/hashing support will be builtPICOTOOL_NO_LIBUSB is set - no USB support will be built-- Configuring done-- Generating done-- Build files have been written to: C:/pico/micropython/ports/rp2/build/_deps/picotool-build[ 2%] Performing build step for 'picotoolBuild'-- The C compiler identification is GNU 8.1.0-- The CXX compiler identification is GNU 8.1.0-- The ASM compiler identification is GNU-- Found assembler: C:/pico/mingw/mingw32/bin/gcc.exe-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: C:/pico/mingw/mingw32/bin/gcc.exe - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: C:/pico/mingw/mingw32/bin/c++.exe - skipped-- Detecting CXX compile features-- Detecting CXX compile features - doneUsing precompiled enc_bootloader.elf-- Configuring done-- Generating done-- Build files have been written to: C:/pico/micropython/ports/rp2/build/_deps/picotool-build/enc_bootloader[ 27%] Built target enc_bootloader[ 37%] Built target unreadable_rom_data[ 44%] Built target errors[ 51%] Built target model[ 58%] Built target elf[ 65%] Built target elf2uf2[ 68%] Built target embedded_data_no_libusb[ 75%] Built target bintool[100%] Built target picotool[ 3%] Performing install step for 'picotoolBuild'[ 27%] Built target enc_bootloader[ 37%] Built target unreadable_rom_data[ 44%] Built target errors[ 51%] Built target model[ 58%] Built target elf[ 65%] Built target elf2uf2[ 68%] Built target embedded_data_no_libusb[ 75%] Built target bintool[100%] Built target picotoolInstall the project...-- Install configuration: "Release"[ 3%] Performing test step for 'picotoolBuild'picotool v2.2.1-develop (Windows, GNU-8.1.0, Release)c:\pico\micropython\ports\rp2\build>mingw32-make[ 0%] Building ASM object pico-sdk/src/rp2040/boot_stage2/CMakeFiles/bs2_default.dir/compile_time_choice.S.obj[ 0%] Linking ASM executable bs2_default.elf[ 0%] Built target bs2_default[ 0%] Generating bs2_default.bin[ 1%] Generating bs2_default_padded_checksummed.S[ 1%] Building ASM object pico-sdk/src/rp2040/boot_stage2/CMakeFiles/bs2_default_library.dir/bs2_default_padded_checksummed.S.obj[ 1%] Built target bs2_default_library[ 1%] Built target picotoolForceReconfigure[ 1%] Creating directories for 'picotoolBuild'[ 1%] No download step for 'picotoolBuild'[ 2%] No update step for 'picotoolBuild'[ 2%] No patch step for 'picotoolBuild'[ 2%] Performing configure step for 'picotoolBuild'Not searching for unused variables given on the command line.-- The C compiler identification is GNU 8.1.0-- The CXX compiler identification is GNU 8.1.0-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: C:/pico/mingw/mingw32/bin/gcc.exe - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: C:/pico/mingw/mingw32/bin/c++.exe - skipped-- Detecting CXX compile features-- Detecting CXX compile features - done-- Using the single-header code from C:/pico/micropython/ports/rp2/build/_deps/picotool-src/lib/nlohmann_json/single_include/lib/mbedtls submodule needs to be initialized for bintool hashing/signingmbedtls not found - no signing/hashing support will be builtPICOTOOL_NO_LIBUSB is set - no USB support will be built-- Configuring done-- Generating done-- Build files have been written to: C:/pico/micropython/ports/rp2/build/_deps/picotool-build[ 2%] Performing build step for 'picotoolBuild'-- The C compiler identification is GNU 8.1.0-- The CXX compiler identification is GNU 8.1.0-- The ASM compiler identification is GNU-- Found assembler: C:/pico/mingw/mingw32/bin/gcc.exe-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: C:/pico/mingw/mingw32/bin/gcc.exe - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: C:/pico/mingw/mingw32/bin/c++.exe - skipped-- Detecting CXX compile features-- Detecting CXX compile features - doneUsing precompiled enc_bootloader.elf-- Configuring done-- Generating done-- Build files have been written to: C:/pico/micropython/ports/rp2/build/_deps/picotool-build/enc_bootloader[ 27%] Built target enc_bootloader[ 37%] Built target unreadable_rom_data[ 44%] Built target errors[ 51%] Built target model[ 58%] Built target elf[ 65%] Built target elf2uf2[ 68%] Built target embedded_data_no_libusb[ 75%] Built target bintool[100%] Built target picotool[ 3%] Performing install step for 'picotoolBuild'[ 27%] Built target enc_bootloader[ 37%] Built target unreadable_rom_data[ 44%] Built target errors[ 51%] Built target model[ 58%] Built target elf[ 65%] Built target elf2uf2[ 68%] Built target embedded_data_no_libusb[ 75%] Built target bintool[100%] Built target picotoolInstall the project...-- Install configuration: "Release"[ 3%] Performing test step for 'picotoolBuild'picotool v2.2.1-develop (Windows, GNU-8.1.0, Release)This version of picotool was compiled without USB support. Some commands are not available.[ 3%] Completed 'picotoolBuild'[ 3%] Built target picotoolBuildGEN C:/pico/micropython/ports/rp2/build/genhdr/mpversion.h[ 3%] Built target BUILD_VERSION_HEADER[ 3%] Generating C:/pico/micropython/mpy-cross/build/mpy-crossUse make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity. - Cannot openmake[3]: *** [build/genhdr/mpversion.h] Error 1make[3]: *** remote_status: No children. Stop.make[3]: *** Waiting for unfinished jobs....make[3]: *** wait: No children. Stop.mingw32-make[2]: *** [CMakeFiles\BUILD_FROZEN_CONTENT.dir\build.make:75: C:/pico/micropython/mpy-cross/build/mpy-cross] Error 2mingw32-make[1]: *** [CMakeFiles\Makefile2:1877: CMakeFiles/BUILD_FROZEN_CONTENT.dir/all] Error 2mingw32-make: *** [Makefile:90: all] Error 2c:\pico\micropython\ports\rp2\build>Statistics: Posted by hippy — Tue Feb 03, 2026 9:27 pm