Skip to content

Instantly share code, notes, and snippets.

@Dids
Last active December 20, 2023 13:17
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dids/2aa950d075bcf58fca98eb975a42d72b to your computer and use it in GitHub Desktop.
Save Dids/2aa950d075bcf58fca98eb975a42d72b to your computer and use it in GitHub Desktop.
Pinecil Flashing & Firmware Guide

Pinecil Flashing & Firmware Guide

This shows the bare minimum on how to flash your Pinecil with custom/new firmware, as well as changing things like the boot logo.

NOTE: This guide should work on both Linux and macOS as is, however it has only been tested on macOS Big Sur 11.6, so some steps might differ slightly on Linux, at least at the time of writing this.

Flashing & Requirements

The following dependencies are necessary for the entirety of the guide, however here we are only showing how to install them on macOS.

brew install dfu-util binutils

Enable DFU mode on Pinecil

  1. Hold down the - button
  2. Connect the Pinecil to your computer

Flash Pinecil firmware

New method:

dfu-util -D Pinecil/Pinecil_FI.dfu

DEPRECATED Old method:

dfu-util -d 28e9:0189 -a 0 -D Pinecil/Pinecil_FI.bin -s 0x08000000

Custom Logo

Creating a custom logo

Create a new logo image that matches the following:

  • Non-transparent PNG (no alpha channel)
  • 96 x 16 resolution
  • RGB color space
  • sRGB IEC61966-2.1 color profile

Download and run img2ts100.py to convert the image to a .hex file:

python3 img2ts100.py logo.png logo.bin

Convert the .hex file to a .bin file:

/usr/local/opt/binutils/bin/objcopy -I ihex -O binary logo.hex logo.bin

Download and run dfuse-pack.py to convert the .bin file to a .dfu file:

python3 dfuse-pack.py -b 0x0801F800@0:logo.bin -D 0x28E9:0x0189 logo.dfu

Your custom logo should now be done and you can proceed to flash it in the next step.

Flashing a custom logo

New method:

dfu-util -D logo.dfu

DEPRECATED Old method:

dfu-util -d 28e9:0189 -a 0 -D logo.bin -s 0x0801F800
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment