The UK maker of the Raspberry Pi is warning of an issue affecting its Pico device and other boards when using a Mac running the new MacOS Ventura, which has broken key functionality for flashing the $4 Raspberry Pi Pico microcontroller board over USB.
In a blogpost titled "The Ventura problem", Raspberry Pi Trading's head of documentation Alasdair Allan explains the glitch affecting the Pi Pico on Ventura and urges Pico users not to upgrade to Ventura, "at least not yet".
The issue affects the Pico and other boards using Raspberry Pi's RP2040 chip. Allan says these boards' virtual volume will mount as expected, but if users attempt to drag-and-drop a UF2 file onto that volume, they'll be met with a MacOS "error code 100093". UF2, or USB Flashing Format, is a file format that Microsoft developed for flashing microcontrollers over removable flash drives.
The issue, which appears to be related to M acOS Finder in Ventura and its treatment of "fake" USB drives, has also been raised by Adafruit. The "fake" USB drives are a widely used technique for boards, and not specific to Raspberry Pi.
"The new MacOS release 13.0 (Ventura), has trouble uploading files to "fake" USB drives that are used for firmware updates on microcontroller boards. These fake USB drives are presented by UF2 bootloaders and also ARMmbed DAPlink bootloaders. UF2 bootloaders take .uf2 files and are used on Adafruit boards, Raspberry Pi Pico boards, and many other manufacturer's boards. ARMmbed DAPlink takes .hex files and is used on the micro:bit and other boards," explains Adafruit.
"The problem is in the MacOS Finder. Dragging a firmware file to the drive produces "error code 100093". This error apparently occurs because the Finder is trying to copy extended attributes to the drive."
The problem is slightly different in Raspberry Pi's case and is related to its BOOTSEL button, which lets users mount the board as a mass storage volume on a Mac or other systems.
"The issue seems to be related to Finder trying to write, and then read back, extra metadata in addition to the UF2 file we're trying to copy. Unfortunately, the USB volume (RPI-RP2) that the RP2040 exposes when in BOOTSEL mode is a "fake" volume. There is no mutable storage backing the volume. Instead, the UF2 file sectors are recognised and processed as they are written to the volume. So while additional writes to the volume will succeed, reading back the data will give the wrong contents," explains Allan.
This issue doesn't affect older versions of MacOS, or current Windows and Linux.
Raspberry Pi doesn't know what exact changes happened in Ventura but it did raise the issue in August after trialing Ventura betas. It just hoped Apple would remedy the issue before general availability.
This Ventura issue also affects micro:bit and DAPLink/ST-Link based boards.
Because it affects other boards, Allan says this issue of using "fake" volumes is not Raspberry Pi's problem. But he also notes this is not a problem with the UF2 standard.
"The problem isn't specific to UF2 files and the UF2 standard, and it's not specific to Raspberry Pi devices. It will affect any device using a "fake" virtual volume, of which there are many," writes Allan.
There are several workarounds that Raspberry Pi recommends for MacOS users. The first involves taking "the MacOS Finder out of the picture". Then users can copy the UF2 to the virtual volume without involving extended attributes and additional resource forks.
Those already on Ventura can also instead use the command line in a Terminal app, which might be preferable to those who are familiar with coding.
Allan says Raspberry Pi is discussing the issue with Apple indirectly, via people associated with Arm, but it doesn't have contact with the Apple team behind Finder. As such, it's calling on its users report a bug to Apple and to use the Feedback Number "FB11725030".
Adafruit, which has also called on fans to report the issue to Apple with the same number, has listed several more workarounds available on the websites of affected devices. ZDNet has asked Apple whether it's aware of the issue and whether it will provide a fix.