Friday, August 5, 2016

Planck PCB MassStorage Bootloader

LUFA Mass Storage Bootloader for Planck PCB

This is a modified LUFA MassStorage Bootloader for the Planck PCB. It should work on any version of the Planck PCB. This will allow you to flash your PCB by copying the firmware file to a virtual USB drive.

For details of how this works and how to flash it see http://www.40percent.club/2016/08/self-flashing-planck.html Ignore the section on modifying QMK, no changes are necessary to use this bootloader.

You will need to reload your firmware after flashing the bootloader.

This bootloader does not require any key to be held down. Pressing the Reset button on the bottom of the PCB or using the RESET command in your keymap will immediately launch the bootloader in MassStorage mode.

This version bootloader will not work correctly on a Arduino Pro Micro.

Hooking up the PCB to the Arduino as ISP

Instructions on using an Arduino as an ISP programmer
https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader

The RESET pin B1 (SCLK), B2 (MOSI), B3 (MISO), GND and VCC pins are clearly labeled on the PCB.

Flash the bootloader

You do this at your own risk. It is entirely possible to brick your PCB if you set the fuses incorrectly. 

Precompiled bootloader: https://github.com/di0ib/bootloaders/blob/master/BootloaderMassPlanck.hex

Commands to flash using Arduino as ISP:
avrdude -p m32u4 -c avrisp -P comXXX -b 19200 -e -v
avrdude -p m32u4 -c avrisp -P comXXX -b 19200 -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m -v
avrdude -p m32u4 -c avrisp -P comXXX -b 19200 -B 4 -U flash:w:"BootloaderMassPlanck.hex" -v
There will be an error when running the second command. This is normal. Select no when it asks.