Introduction: Upgrading Ember's Motor Board and Front Panel

In addition to the microprocessor that's running the main system (the one you can upgrade by clicking upgrade firmware), there are two smaller chips called AVRs or ATmegas that control the motors and the front panel display. For early builds of the Ember these controllers haven't been configured to be software upgradeable, so they will need to be programmed with what's called an In System Programmer (ISP) initially. ISP just means that chip is programmed while it is installed on the circuit board as opposed to other methods where it has to be removed (like High Voltage Parallel Programming).

Step 1: Get AVR Programmer and Download Avrdude

For the upgrade, you'll need an AVR ISP. (An example is pictured above). This Instructable uses the USBTiny which is available from Sparkfun here You can use your preferred programmer if you like you'll just have to head the avrdude -c option to name your programmer.

To update these chips we need something called avrdude that reads the program and communicates with the AVR and tells it what to do. Basically, avrdude just overwrites whatever is on the chip memory with a new file. For Mac the installation is pretty straight forward. For Mac download the latest Crosspack for AVR (at this link ) and run the .dmg. For Windows download the latest WinAVR (found here ) and run the .exe. avrdude is a command line tool so there wont be an icon or anything you'll be running it inside of the Terminal or Command Prompt.

On Windows only you'll need to install drivers for the USBTiny. Adafruit has the instructions for that!

The driver download is here

Step 2: Program the Motor Board AVR

Before you begin, make sure you are running firmware version 1.2 or later. You can check the firmware by holding the left button on the front panel. If you don't have the latest firmware update your printer by following these directions

The USBTiny is an ISP all it does is translate what avrdude is telling it over USB into a language that the AVR can understand. You'll need to remove the front cover of the Ember to gain access to the ISP pins if you need help doing that see Step 2 in this other Instructable The motor controller AVR's ISP pins are on the left side and near the center of the printer (circled in green). There are six pins in two columns of three the USBTiny's will slide over these with the ribbon cable facing left towards the outside of the printer. Make sure you get all the pins in the plug! Once the USBTiny is plugged into the ISP pins and your computer you should download the twiboot.hex file and open a Terminal (or Command Prompt in Windows). In the Terminal you'll navigate to the directory where you downloaded the file then use avrdude to program the AVR. On a Mac the commands will looks something like this


avrdude -p m328p -u -U flash:w:twiboot.hex -c usbtiny

On Windows it will be the same except for you will use backslashes instead of forward slashes and you'll likely have to specify the disk.

cd is Change Directory so it just changes what folder the terminal is looking at, so if you downloaded twiboot.hex to your Downloads folder and your username is cappie the first command would look something like this on Mac

cd /Users/cappie/Downloads 

or this on Windows

cd C:\Users\cappie\Downloads

avrdude should program away and eventually give you a confirmation message then you can unplug the USBTiny from the ISP header pins. An example of successful output is above.

Step 3: Program the Front Panel Display

Now you'll program the second AVR which is on the front panel. You'll need to remove the two screws holding the front panel display mount with a phillips screw driver (circled in blue). There is a cable connecting the front panel to the main board so don't just pull it out, it's long enough to leave attached. On the back, you'll see the same two columns of three pins which are the ISP header pins (circled in red). When you plug the USBTiny in the ribbon cable should be pointing to the left, don't miss any pins! Then the process is the same as programming the motor board even the file to upload is the same, open a Terminal and enter:


avrdude -p m328p -u -U flash:w:twiboot.hex -c usbtiny

Step 4: Reboot and Verify

Once you've finished uploading the firmware reboot your Ember and check that the LEDs on the front panel start spinning in a circle, this means that the new firmware is successfully installed. Happy printing!


fanj made it! (author)2016-01-04

Hi Cappiep, I was trying to upgrade the motor board and front panel following the instruction above. After successfully running the command on my Mac, the printer is stuck at the last step. After reboot the Ember, he LEDs on the front panel kept spinning and the screen is black. What should I do to solve this problem? Thanks!

collapse Industries made it! (author)2015-09-24

homass-MacBook-Pro:~ Kirk$ cd /FOLDER/CONTAINING/TWIBOOT.HEX

-bash: cd: /FOLDER/CONTAINING/TWIBOOT.HEX: No such file or directory

Thomass-MacBook-Pro:~ Kirk$

Thomass-MacBook-Pro:~ Kirk$ avrdude -p m328p -u -U flash:w:twiboot.hex -c usbtiny

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f

avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed

To disable this feature, specify the -D option.

avrdude: erasing chip

avrdude: reading input file "twiboot.hex"

avrdude: error opening twiboot.hex: No such file or directory

avrdude: input file twiboot.hex auto detected as invalid format

avrdude: can't open input file twiboot.hex: No such file or directory

avrdude: read from file 'twiboot.hex' failed

avrdude done. Thank you.

hongkongpauly made it! (author)2015-09-16

Hi - I'm trying to download the twitboot.hex file but it just opens a browser window showing the code, I'm not able to save it as a file? Help! Cheers, Paul

cappiep made it! (author)cappiep2015-09-16

Hi Paul, you can either right click on the link and click "Save Link As" or if that still doesn't work just make a new file using Notepad or some other plain text editor and copy and paste the text from the browser to that file.

sphemm01 made it! (author)2015-09-09

I attempted to update firmware Yesterday morning, and since the build head hasn't moved in spite of the 'homing build head' message. My firmware says that it is version 2.0.20150728, is it possible that the issue is that I have one of those early models of the Ember?

cappiep made it! (author)cappiep2015-09-09

Hi, yes if you haven't upgraded your AVRs you will likely need to do so. There are very few Embers in the wild that do not need the upgrade and this sounds like exactly what we would expect if you have firmware 2.0 and old AVR firmware. You should have received an email with a link to a form to request an USBTiny AVR programmer. If you have an AVR ISP then you can go ahead and use it, if you haven't received the request form let me know!

yianni.andrikopoulos made it! (author)2015-07-12

Great article !

How do we know if we have an early build of Ember that reqires this procedure?

rozeelosey made it! (author)rozeelosey2015-08-25

Just in case you still need an answer to this, if you press and hold the left control panel button and you have Firmware 1.2 or lower, you will need this upgrade.
AVR programmers are being sent to everyone who received one of these earlier models. Watch your email for an AVR programmer request.

About This Instructable




More by cappiep:How to Greatly Increase the Value of Your BricksCalibrating Ember's Rotation Homing and Jamming SensorsEmber Remote Control
Add instructable to: