Manual Firmware Update
Flashing the crow requires setting up dfu-util
on your laptop, downloading the new firmware, and getting crow connected in bootloader mode.
sections
Setup dfu-util
- Linux:
apt-get install dfu-util
(or similar) - macOS: install homebrew and then run
brew install dfu-util
from the command line - Windows: download here
- you may need to add the location of the unzipped
dfu-util-0.9-win64
folder to your Path in order to rundfu-util
- you may need to add the location of the unzipped
To confirm a successful setup close terminal, open a fresh session, and execute:
dfu-util -V
Get new firmware
https://github.com/monome/crow/releases
Download the crow-vx.x.x.zip
file.
Entering the bootloader
Activate
With the crow connected to druid (or a similar utility) you can enter the bootloader with a ^^b
message, which will instantly reset the module and take you to the bootloader. druid
will start printing <crow disconnected>
at which point crow is ready to bootload, and you should quit druid
with q
.
Force
In case the above doesn’t work, you can manually force the bootloader to run by placing a jumper on the i2c header and restarting (power-cycling) crow.
The jumper should bridge between either of the centre pins to either of the ground pins (i.e. the pins closest to the power connector, indicated by the white stripe on the pcb). In a pinch you can hold a (!disconnected!) patch cable to bridge the pins while powering on the case.
Flashing the update
Once you enter the bootloader, you can run the firmware update from either a file browser or within the terminal – whichever you find more convenient.
Finder / File Explorer
Locate the release .zip file you downloaded above and extract it.
On Mac, you’ll double-click the command file called osx_linux-update_firmware.command
.
On Windows, you’ll double-click the batch file called windows-update_firmware.bat
.
Command Line
From the Terminal:
- Make sure you’ve quit
druid
cd
to the folder where you downloaded the firmware update- Depending on your operating system you’ll run one of:
- Mac/Linux:
./osx_linux-update_firmware.command
- Windows:
.\windows-update_firmware.bat
- Mac/Linux:
For example if your file was extracted to ~/Downloads/crow-1.0.1
type this on the command line for Mac:
cd ~/Downloads/crow-1.1.0
./osx_linux-update_firmware.command
After executing the update_firmware
command, you’ll see something like:
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 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/
dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Deducing device DFU version from functional descriptor length
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 1024
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08020000, size = 290876
Download [=========================] 100% 290876 bytes
Download done.
File downloaded successfully
dfu-util: can't detach
Resetting USB to switch back to runtime mode
Troubleshooting
If you get an error: dfu-util: No DFU capable USB device available
this means crow is not in the bootloader or is not connected to the laptop.
You can type dfu-util -l
to list the connected bootloader devices.
If you get an error: 'dfu-util' is not recognized as an internal or external command, operable program or batch file.
you haven’t correctly installed dfu-util, or need to add it to your PATH. Try the setup section again.
macOS
‘unidentified developer’ error
If you get an error that your system will not open osx_linux-update_firmware.command
because it is from an unidentified developer, right-click the file and select Open and you’ll be able to manually allow the updater to run. If for some reason this doesn’t work, please navigate to System Preferences > Security & Privacy and you’ll see a message about osx_linux-update_firmware.command
being blocked, with the option to Open Anyway. Click this button and the updater will run.
If the updater asks you for a password in Terminal, simply enter the admin password you use to log into your Mac. It is not being stored or transmitted, it’s just an authorization.
‘operation not permitted’ error
The .command
file is just a shortcut way to enter text into terminal without having to type it. If you see dfu-util: Could not open file crow.bin for reading: Operation not permitted
when running osx_linux-update_firmware.command
, you can manually run the commands directly through Terminal:
- get crow prepped for a firmware update by entering the bootloader
- in a Terminal window, type
cd
, press Spacebar, and then drag thecrow.bin
folder onto Terminal, which will auto-fill the path - erase the
crow.bin
part of the path and press ⏎ Enter - now copy/paste
sudo dfu-util -a 0 -s 0x08020000 -R -D crow.bin -d ,0483:df11
into Terminal and press ⏎ Enter - enter your password to begin the flash process
Windows
If you get an error: Cannot open DFU device 0483:df11
, this means that your crow’s driver needs to be replaced.
- download Zadig and put crow into bootloader mode
- open Zadig and from Options check “List All Devices”
- select
crow: dfu bootloader
from the list (if you seecrow: telephone line
then crow is not in bootloader) - for the current driver, you should have
STTub30 (v3.0.4.0)
- to the right of the green arrow, you should have
WinUSB (v6.1.7600.16385)
(if you don’t, please select it) - click the Replace Driver button and wait a few minutes for the process to complete
- re-attempt flashing the update
On Windows 7, you may need to use the “USB Serial (CDC)” driver instead of WinUSB.
Linux
If you’re having trouble flashing crow’s firmware on Manjaro / Arch Linux, there’s a chance your crow toolchain needs to be rebuilt following these steps (thank you @ninayanez!).
update succeeded, but crow is still not connecting to druid / norns
If the update successfully flashed, but your crow is still not connecting to druid or norns, then there’s a chance that a loaded script has caused a boot failure. Inside of the zip file you downloaded to manually update crow, you’ll notice an erase_userscript
command for both Windows and MacOS/Linux – please force the bootloader and then run whichever file corresponds to your operating system. crow should happily take flight afterward.