Upgrading your Pinecil’s firmware on macOS

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.

Install dfu-util

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.

Update firmware

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.

Leave a Comment

Your email address will not be published.

Scroll to Top