Why this project compiles on Mac but failed on Windows?

platformio.ini:

[env:pico]
platform = raspberrypi
board = pico
framework = arduino
build_flags =
   -Wno-ignored-qualifiers
   -Wno-nonnull

My main.cpp has the following:

#include <Adafruit_TinyUSB.h>

The project compiles on Mac with no problem but fails on Windows (log below). Any suggestions? This is the standard Arduino core so I presume it’s not subject to the Windows long line issue.

The full project is here: https://github.com/zapta/GreenPAKs/tree/main/pico_i2c/platformio

My goal is to have USB/Serial that doesn’t require manual driver installation on Max/Windows/Linux and works well with the Arduino uploader (on platformio and Arduino IDE), and I prefer not to use the earlephilhower core.

Processing pico (platform: raspberrypi; board: pico; framework: arduino; build_flags: -Wno-ignored-qualifiers, -Wno-nonnull)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------CONFIGURATION: https://docs.platformio.org/page/boards/raspberrypi/pico.html
PLATFORM: Raspberry Pi RP2040 (1.10.0) > Raspberry Pi Pico
HARDWARE: RP2040 133MHz, 264KB RAM, 2MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, jlink, raspberrypi-swd)
PACKAGES:
 - framework-arduino-mbed @ 4.0.10
 - tool-rp2040tools @ 1.0.2
 - toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 42 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Wire (License: Unknown, Path: C:\Users\user\.platformio\packages\framework-arduino-mbed\libraries\Wire)
Building in release mode
arm-none-eabi-g++ -o .pio\build\pico\src\main.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -Isrc -IC:\Users\user\.platformio\packages\framework-arduino-mbed\libraries\Wire -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO src\main.cpp
arm-none-eabi-g++ -E -P -x c -DMBED_BOOT_STACK_SIZE=1024 -DXIP_ENABLE=1 C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\linker_script.ld -o .pio\build\pico\cpp.linker_script.ld
arm-none-eabi-g++ -o .pio\build\pico\libd06\Wire\Wire.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI 
-DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\libraries\Wire -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\libraries\Wire\Wire.cpp
arm-none-eabi-g++ -o .pio\build\pico\FrameworkArduinoVariant\double_tap_usb_boot.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\double_tap_usb_boot.cpp
arm-none-eabi-g++ -o .pio\build\pico\FrameworkArduinoVariant\variant.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\variant.cpp
arm-none-eabi-g++ -o .pio\build\pico\FrameworkArduino\Interrupts.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\Interrupts.cpp
arm-none-eabi-g++ -o .pio\build\pico\FrameworkArduino\Serial.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM 
-DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\Serial.cpp
arm-none-eabi-g++ -o .pio\build\pico\FrameworkArduino\Tone.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char -mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 
-DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\Tone.cpp
arm-none-eabi-g++ -o .pio\build\pico\FrameworkArduino\USB\PluggableUSBDevice.cpp.o -c -Wvla -fno-rtti -std=gnu++14 -Wno-ignored-qualifiers -Wno-nonnull -DMBED_TRAP_ERRORS_ENABLED=1 -Os -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -c -fdata-sections -ffunction-sections -fmessage-length=0 -fno-exceptions -fomit-frame-pointer -funsigned-char 
-mcpu=cortex-m0plus -mthumb -iprefixC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino @C:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO\includes.txt -nostdlib -DPLATFORMIO=60111 -DARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DARM_MATH_CM0PLUS -D__CMSIS_RTOS -DCOMPONENT_FLASHIAP=1 -D__CORTEX_M0PLUS -DDEVICE_ANALOGIN=1 -DDEVICE_FLASH=1 -DDEVICE_I2C=1 -DDEVICE_I2CSLAVE=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_PORT_IN=1 -DDEVICE_PORT_OUT=1 -DDEVICE_PWMOUT=1 -DDEVICE_RESET_REASON=1 -DDEVICE_RTC=1 -DDEVICE_SERIAL=1 -DDEVICE_SERIAL_FC=1 -DDEVICE_SPI=1 -DDEVICE_USBDEVICE=1 -DDEVICE_USTICKER=1 -DDEVICE_WATCHDOG=1 -D__MBED__=1 -DMBED_BUILD_TIMESTAMP=1700585028.014541 -D__MBED_CMSIS_RTOS_CM -DMBED_MPU_CUSTOM -DMBEDTLS_ENTROPY_NV_SEED -DPICO_NO_BINARY_INFO=1 -DPICO_ON_DEVICE=1 -DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 -DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED -DPICO_UART_ENABLE_CRLF_SUPPORT=0 -DTARGET_CORTEX -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M0 -DTARGET_LIKE_MBED -DTARGET_M0P -DTARGET_memmap_default -DTARGET_NAME=RASPBERRY_PI_PICO -DTARGET_RASPBERRYPI -DTARGET_RASPBERRY_PI_PICO -DTARGET_RELEASE -DTARGET_RP2040 -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -DMBED_NO_GLOBAL_USING_DIRECTIVE=1 -DCORE_MAJOR=4 -DCORE_MINOR=0 -DCORE_PATCH=10 -DUSE_ARDUINO_PINOUT -DARDUINO=10810 -DARDUINO_ARCH_MBED -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated -IC:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\api\deprecated-avr-comp -IC:\Users\user\.platformio\packages\framework-arduino-mbed\variants\RASPBERRY_PI_PICO C:\Users\user\.platformio\packages\framework-arduino-mbed\cores\arduino\USB\PluggableUSBDevice.cpp
src\main.cpp:1:10: fatal error: Adafruit_TinyUSB.h: No such file or directory

**************************************************************************
* Looking for Adafruit_TinyUSB.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_TinyUSB.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_TinyUSB.h
*
**************************************************************************

    1 | #include <Adafruit_TinyUSB.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio\build\pico\src\main.cpp.o] Error 1
============================================================================ [FAILED] Took 20.10 seconds ============================================================================

 *  The terminal process "C:\Users\user\.platformio\penv\Scripts\platformio.exe 'run', '--verbose', '--environment', 'pico'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

The Adafruit TinyUSB library is not builtin with the mbed core (source), so in fact it should not compile at all by default. But the Adafruit TinyUSB definitely has support for the mbed core, even if the core doesn’t natively call in e.g. it’s init function.

So the first countermeasure would be to add adafruit/Adafruit TinyUSB Library@^2.2.8 to lib_deps.

This may be a ruse, e.g., if you installed Adafruit TinyUSB as a global library once (in ~/.platformio/lib), then it will compile too. I would be willing to bet if you rm -rf ~/.platformio on the Mac and recompiled, it would fail compilation, too.

Thanks @maxgerhardt. You was right on two counts, deleting platformio/.pio and ~/.platformio reproduced the build error on the Mac and adding the library to platformio.ini made it build correctly on both Mac and Windows.

I am now stuck with another Windows only issue. I can upload the program on the Mac but not on Windows. The Windows uploader does switch the board to bool mode and I can see it as drive D and even update it by manually by writing to it a .uf2 file, but the platformio loader can’t seems to find that drive and timeout (?).

Are there special installation instructions for Windows? I saw some chatter about Zadig but nothing on the platformio Pico board.

platformio.ini

[env:pico]
platform = raspberrypi
board = pico
framework = arduino
lib_deps =
   adafruit/Adafruit TinyUSB Library@^2.2.8
build_flags =
   -Wno-ignored-qualifiers
   -Wno-nonnull

Verbose loader error: Executing task: C:\Users\user\.platformio\penv\Scripts\platformio.exe run --verb - Pastebin.com

EDIT: I had some progress and wrote my notes here https://github.com/zapta/GreenPAKs/tree/main/pico_i2c/tools/win_driver , it seems that the upload requires on Windows Arduino drivers which the Arduino IDE installs for Arduino RP2040 boards but not for generic RP2040 boards. Does platformio has a RP2040 board that install these drivers? I did find the drivers and installers at:

~/.platformio/packages/framework-arduino-mbed/drivers

PlatformIO does not autoinstall drivers. For Windows being able to upload via the picotool, you have to use https://zadig.akeo.ie/ on the “RP2 Boot2 (Interface 1)” and change the drivers to “WinUSB”.

Thanks @maxgerhardt!

I don’t know who controls the platformio docs but may be worth mentioning it here Raspberry Pi Pico — PlatformIO latest documentation

BTW, installing the driver from ~/.platformio/packages/framework-arduino-mbed/drivers also works.

Docs are open source at https://github.com/platformio/platformio-docs/blob/develop/platforms/raspberrypi.rst.