I’m aware there’s a GUI firmware updater tool, but as of this writing doesn’t support IronOS v2.16 which has moved from .bin/.hex to .dfu files which the firmware updater doesn’t yet support. Here’s a way you can update your Pinecil’s firmware without it. Frankly it’s so easy I might keep using this method going forward.
dfu-util can be installed via Homebrew. I won’t go over how to install Homebrew, but after you get it on your system, run the following:
brew install dfu-util
Download IronOS and decompress it
The Pinecil runs IronOS, the latest release can be downloaded here. The file you want is Pinecil.zip.
Put the Pinecil into DFU mode
The Pinecil can be put into DFU mode by holding down the minus button and connecting directly to the Mac. Do not connect via a hub. The display will not turn on while in DFU mode.
Run the following in Terminal. You don’t need to specify a Device ID, it’s embedded into the .dfu file. dfu-util knows what device to update.
dfu-util -D Pinecil_EN.dfu
You should expect output like below:
dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Match vendor ID from file: 28e9 Match product ID from file: 0189 Multiple alternate interfaces for DfuSe file Opening DFU capable USB device... Device ID 28e9:0189 Device DFU version 011a Claiming USB DFU Interface... Setting Alternate Interface #1 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Option Bytes " DfuSe interface name: "Internal Flash " Found GD32VF103, which reports a bad page size and count for its internal memory. Fixed layout based on part number: page size 1024, count 128. File contains 1 DFU images Parsing DFU image 1 Target name: ST... Image for alternate setting 0, (1 elements, total size = 51048) Setting Alternate Interface #0 ... Parsing element 1, address = 0x08000000, size = 51040 Erase [=========================] 100% 51040 bytes Erase done. Download [=========================] 100% 51040 bytes Download done. Done parsing DfuSe file
Confirm firmware was updated
At this point the firmware on your Pinecil is updated. It’s a fairly quick process taking under a minute. Disconnect the Pinecil and connect it to a power supply. Hold down the minus button to confirm the version of firmware matches the version you’re expecting.