Update Bootloader


Warning: the procedure requires some experience with command line operations. If you don't feel like it, we are currently working on a easier procedure, that will be available soon.

The OWL bootloader can be uploaded to the device from the OwlWare project. It is programmed to and runs from memory location 0x8000000, whereas the firmware is written to location 0x8008000.

The OwlWare project has a binary of the latest bootloader in the file Libraries/OwlBoot/OwlBoot.bin. If you want to burn a different bootloader, or compile your own, have a look at the OwlBoot project.


These instructions need to run a few command line from a Terminal window. For those under Windows XP, 7 or 8, you might use Cygwin.

Setup OwlWare

First get the latest version of OwlWare from github: https://github.com/pingdynasty/OwlWare

Next make sure you have the required pre-requisites. See the README for details; dfu-util is required, ST Util is not.

Enter DFU Mode

To put the device into DFU mode, hold down the LED pushbutton while you plug in the USB connection. The LED should flash a few times, then go off.

To verify that the OWL is recognised as a DFU device, and that dfu-util is correctly installed, issue this command from the command line (Terminal window):

dfu-util -list

You should see some output on the screen similar to this:

Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,07*128Kg"
Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=1, name="@Option Bytes  /0x1FFFC000/01*016 e"
Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e"
Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=3, name="@Device Feature/0xFFFF0000/01*004 e"

If there is no Found DFU message, try power cycling again while holding down the pushbutton. If this still doesn't work, and the device is not recognised by your computer as a MIDI device, then you may have to open the device and Force DFU Mode.

Build Firmware

Open a Terminal or command line window and go to the OwlWare directory.

To verify that the tools are all installed and working, and to build the firmware binary, issue the command

make bin

You should see the following message:

Successfully built OWL firmware Build/OwlWare.bin

Flash Bootloader

Now we're ready to flash the device with the OwlBoot bootloader. With the command line still in the OwlWare directory, issue the command

make bootloader

This will upload the OwlBoot.bin binary to the start of the flash memory, address 0x8000000. You should see a progress indicator as the file is being uploaded, followed by

File downloaded successfully
Uploaded ./Libraries/OwlBoot/OwlBoot.bin to OWL bootsector

After uploading the bootloader, the device remains in DFU mode.

Flash Firmware

Finally we need to program the firmware. From the command line, do

make dfu

This will build (if necessary) the binary and upload it to the device at memory address 0x08008000. The progress indicator will run for longer this time, as the binary is much bigger than the bootloader. The process should end with these messages:

File downloaded successfully
Transitioning to dfuMANIFEST state
Error during download get_status
Uploaded ./Build/OwlWare.bin to OWL firmware

The error message comes from dfu-util: after the device has left DFU mode, the program can no longer find it. It can be safely ignored, as long as File downloaded successfully is displayed.

You are now done, and the device is ready to use!