Both my IronOS devices were sitting at 2.22E for a while. Got some time and decided to get both of them to 2.23E. Done on a Mac M3 (Apple Silicon). Here is what worked for each one.

MHP30 #

The MHP30 uses the same DFU drag-and-drop approach used on Miniware devices. To check the version first, hold the B button while plugging in USB-C. The screen will show the firmware version along with PCB version and some voltage readings.

To enter DFU 2.0 mode, hold the left A button (the one closer to the screen) while connecting the USB-C cable. On Mac M3 this worked without any extra steps. A drive appeared, I copied MHP30_EN.hex onto it, and the file got renamed to MHP30_EN.RDY. Done, no fuss.

Pinecil V2 #

The Pinecil V2 does not show up as a USB drive. It uses a different chip (Bouffalo BL706) and needs the blisp CLI tool, installable via Homebrew:

brew install blisp

To check the version, plug it in normally and immediately hold the minus (-) button for about one second after it starts. The version will flash briefly on the screen.

To enter flashing mode, hold the minus (-) button while plugging in USB-C. The display stays completely dark. To confirm the device is actually in bootloader mode, lsusb shows an extra entry that is not there otherwise:

Bus 000 Device 006: ID ffff:ffff ffff CDC Virtual ComPort  Serial: 000000020000

With the device in that state I downloaded the firmware zip from the IronOS releases, extracted it, and went into the folder:

cd Downloads/Pinecilv2/

The correct chip type for blisp is bl70x, not bl706 as I first tried:

blisp write --chip bl706 Pinecilv2_EN.bin
Chip type is invalid.

The working command:

blisp write -c bl70x Pinecilv2_EN.bin
Testing if we can skip the handshake...
Failed to receive response, ret: 0
We can't; ignore the previous error.
Sending a handshake...
Received incorrect handshake response from chip (attempt 1/5).
Could not find 0x4F 0x4B ('O', 'K') in:
Handshake successful!
Getting chip info...
BootROM version 1.0.2.7, ChipID: 00007FD741CF0EB4
...
Checking program...
Program OK!
Flash complete!

The “incorrect handshake response” line on the first attempt is normal, it retries and succeeds. Both devices are now on 2.23E. Enjoy!