OMK Logo
OMK Title

Chimaera

Device firmware building and flashing

You have two possibilities to get to the firmware for your newly bought/built device: You can resort to prebuilt stable releases or you can compile your own images. The first approach is the more convenient one as it does not involve any fiddling with source code and cross compiling tool chains. The latter approach is more demanding and meant for people that like to be at the bleeding-edge or developers.

Stable releases

We provide pre-built images for stable firmware releases. The images are built for all 10 possible hardware configurations (from 16 up to 160 sensor devices). Download the one matching your device, skip the build instructions and directly jump to the flashing instructions.

Building from source

Get the most recent pre-built gcc-arm-embedded cross compiling tool chain for your operating system (Linux, Windows, OS X), extract it somewhere in your path and add its bin subdirectory to your PATH, so all the executables are found by your shell. On 64-bit systems you may need a minimal multi-lib environment (lib32-glibc), as the prebuilt binaries are 32-bit only.

cd $HOME

# extract ARM embedded toolchain
tar xjf gcc-arm-none-eabi-4_9-2015q2-20150609-linux.tar.bz2

# export bin directory to PATH (e.g. to be put into ~/.bashrc)
export PATH="$PATH:$HOME/gcc-arm-none-eabi-4_9-2015q2/bin"

Get the Chimaera firmware via git and overwrite the needed environment variables when invoking the Makefile (e.g. SENSORS and REVISION) to match your device sensor number and hardware revision.

The Chimaera firmware will pull in the libmaple_F3 submodule. This corresponds to our F3-libre port of LeafLabs libmaple. You may want to get familiar with its build process using the unix toolchain for Linux/OS X or unix toolchain for Windows if problems should arise in the build process.

#  clone repository
git clone --recursive https://github.com/OpenMusicKontrollers/chimaera_firmware.git
cd chimaera_firmware

#  build firmware
export SENSORS=144
export REVISION=4
make

This will give you the firmware binary build/F303CB.bin.

You can also build a shareable release by packing the binary into a DfuSe container with dfuse_pack.

make dfu

This will give you e.g. build/chimaera_S144-0.2.0-4.dfu.

Flashing

The Chimaera has an embedded DfuSe (USB device firmware update STMicroelectronics extension) bootloader to download custom or new firmware to the device. We use dfu-util to do so, you will need a recent version of it. Dfu-util is supported on all major platforms.

For flashing there is no need to power the device, it will get enough current over USB, so first deplug the power line from the device. Connect the Chimaera to your host computer with a USB cable (2.0). Press the FLASH button, hold it and concurrently press the RESET button. Release the RESET button and then release the FLASH button (the correct order of the button dance IS important). The Chimaera should now be in flash mode and show up in your list of USB devices.

If you have already a working firmware on there, there is the possibility to get into flash mode via the config system hook /reset/flash.

When building from source, now simply call the download make target for flashing.

make download

This make target just invokes dfu-util with the previously built binary.

dfu-util -a 0 -d 0483:df11 -s 0x08000000:leave -D build/F303CB.bin

When working with a prebuilt stable release or a self-built DfuSe container, the dfu-util command line is even simpler.

dfu-util -a 0 -s :leave -D chimaera_S144-0.2.0-4.dfu

After successful flashing, the device automatically resets into its running mode.

Linux / BSD

To check whether the device is in flash mode, search the output of lsusb for the following line:

lsusb
>> Bus 003 Device 020: ID 0483:df11 STMicroelectronics STM Device in DFU Mode

For the download to work, you need to have read and write privileges to the device file. This may only be possible as superuser. We recommend to add an udev rule to overcome this need. The following rule adds the device automatically to the group uucp (your distribution may use a different group for virtual serial devices) and places a symbolic link at /dev/chimaeraDfuSe.

/etc/udev/rules.d/46-chimaeraDfuSe.rules
----------------------------------------
ATTRS{idProduct}=="df11", ATTRS{idVendor}=="0483", MODE="664", GROUP="uucp", SYMLINK+="chimaeraDfuSe"

Windows

The ZADIG tool has been shown to be valuable to install all neded USB drivers on Windows for flashing to work.

If you prefer a graphical user interface instead of the command-line of dfu-util, you may want to use the official DfuSe tool box from STMicroelectronics instead, it can handle both the binary images (*.bin) and DfuSe containers (*.dfu).

WANTED:
Beta Testers

After a high interest at Maker Faire Rome, we are now running a beta-testing campaign to collect more comprehensive feedback of first-hand experiences of our final Chimaera prototype design from interested individuals. Get in contact with us. Now.

Please support free/libre software and hardware designs.

or

donate bitcoins

or

request bank credentials via encrypted mail for SEPA transfers.

Last update - 16 Sep 2017

GitHub Vimeo

Copyright © 2014-2017, Hanspeter Portner, Open Music Kontrollers, cc-by-sa 4.0. Uses libre javascript.