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.
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):
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.
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
You should see the following message:
Successfully built OWL firmware Build/OwlWare.bin
Now we're ready to flash the device with the OwlBoot bootloader. With the command line still in the OwlWare directory, issue the command
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.
Finally we need to program the firmware. From the command line, do
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!