Nonolith Labs
Wiki
wiki cee Custom firmware guide EditToolchain
To build the CEE firmware, you need a GCC toolchain that is aware of the latest USB Xmega parts.
These include:
- Atmel AVR toolchain for Linux
- AVR Studio for Windows
- Nonolith Ubuntu PPA
Source code
git clone --recursive git://github.com/nonolith/cee-firmware.git
You can browse the source code online on GitHub: nonolith/cee-firmware
Building
make
Flash new firmware
You need pyusb 1.0 to use the bootloader driver.
Run make update
to enter the bootloader and flash the new firmware.
A few caveats:
- Nonolith Connect 1.1 or previous prevents firmware update using this method. Stop Nonolith Connect before updating. Version 1.2 and later do not need to be stopped.
- On Linux, you need user permission to access the bootloader device. Add yourself to the nonolithd group with
sudo adduser <user> nonolithd
to give your account permission to access the device. Log out and log back in for it to take effect.
Alternate method
Nonolith Connect is also capable of loading a firmware using the bootloader. Use the fwupdate tool, and use the cee.json
file generated by make
.
Recovery
If the CEE fails to enumerate on USB, or is unresponsive, you can manually enter the bootloader to flash a corrected firmware.
- Unplug the CEE
- Short the BOOT and GND pins together on the 6-pin programming header
- While shorting those pins, plug in the USB cable. The blinking LED indicates that the bootloader is active.
- Follow the steps above to write a firmware.
Installing the bootloader
This step only required if you soldered your own CEE with a fresh Xmega microcontroller. Devices purchased from Nonolith Labs come with the bootloader installed.
Download bootloader.hex, and run:
avrdude -p atxmega32a4 -P usb -c avrispmkII -U fuse2:w:0xBF:m -e -U boot:w:bootloader.hex
Flashing the bootloader requires a PDI-compatible AVR programming cable. Also note that while the AVR Dragon supports PDI, it is unable to successfully flash the bootloader section. We recommend the AVR ISP mkII. If you use a different cable, change -c parameter of the command above.
When the bootloader runs, the light on the CEE blinks. You can use Nonolith Connect to flash the default firmware without installing a compiler toolchain. Plug in your CEE, go to the fwupdate page, and click the "Write, Check, and Reset" button to load the default firmware.
With the bootloader installed, you can also use the instructions above to compile and load your own firmware.