To build the CEE firmware, you need a GCC toolchain that is aware of the latest USB Xmega parts.
git clone --recursive git://github.com/nonolith/cee-firmware.git
You can browse the source code online on GitHub: nonolith/cee-firmware
Flash new firmware
You need pyusb 1.0 to use the bootloader driver.
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> nonolithdto give your account permission to access the device. Log out and log back in for it to take effect.
Nonolith Connect is also capable of loading a firmware using the bootloader. Use the fwupdate tool, and use the
cee.json file generated by
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.