What's fixed
Native haptics and controller speaker audio now work reliably at 150 MHz alongside the auto-haptics feature.
Root cause (issue #11)
PICO_FLASH_ASSUME_CORE1_SAFE=1 was an unsafe shortcut: it told the SDK that core1 never touches flash, but TinyUSB, btstack and cyw43 still had code in flash. When core0 called config_save() (flash erase/program), core1 was mid-flight in flash — causing XIP cache corruption, audio dropout, and native haptic regression.
Fix
PICO_FLASH_ASSUME_CORE1_SAFE=0— SDK now properly parks core1 before any flash operationflash_safe_execute_core_init()incore1_entry()— registers core1 as a flash-safe victimPICO_EMBED_XIP_SETUP=1— reinitialises XIP cache after eachconfig_save()src/ram_mem.c— RAM-residentmemcpy/memset/memmove(RP2350 bootrom no longer exports these)- WDL_Resampler, libopus (celt/silk), pico_util queue relocated to SRAM via
cmake/relocate_to_ram.cmake
How to update
Flash the .uf2 file: hold the BOOTSEL button on the Pico 2W while plugging it in, then drag-and-drop the file onto the drive that appears.