Updating EBB firmware
Introduction
If you want to change the firmware that is on your EBB (for example, to take advantage of new features in the Inkscape extension, or maybe because a different version of EBB firmware fixes some bugs or adds new features that you want to use) you will need to follow the directions on this page.
There are three different tools you can use to update your EBB firmware - a hardware programmer (like the PICKit2 from Microchip), Microchip's HID Bootloader application (which only runs under Windows), or the command-line mphidflash application.
Because one of the primary goals of EggBot is to support all three OS platforms (Windows, Linux, Mac OS), this page will discuss the use of mphidflash. This application is cross platform and works identically on all three OSes.
You will need to be comfortable with a very small amount of command line work to use this tool.
Note for Linux users: The Linux version of mphidflash was developed and tested under Ubuntu 10.04 (Lucid Lynx). Other distributions may have additional dependencies.
Steps
- Download the latest version of mphidflash, version 1.4 or newer. It can be found in the Eggbot Code downloads section. There is a single zip file download that has all of the source code plus three directories with executables in them, one for each OS. Unpack the zip file.
- Some hints about installing this on Ubuntu can be found here.
- Open a command shell (terminal window) and navigate (cd) to the directory with the mphidflash executable for your OS. (For Windows users, do Start->Run then type in cmd and click OK.)
- To test that the software is ready and working, try it out as follows:
- For Linux or Mac OS type
./mphidflash -h
- For Windows type
mphidflash -h
- You should see the help text for mphidflash. This shows that you can run the application properly.
- Download the EBB firmware. You'll find it also listed in the Eggbot Code downloads section, as "EBB_Firmware," and grab the latest version (e.g., version 2.2.6 at the time of this writing).
- Identify the particular EBB firmware "hex file" that you want to program onto your board. The EiBotBoard Firmware ZIP archive contains several slightly different versions: one for EBB version 1.1 (which shipped with clear-chassis kits in 2009), one for EBB 1.2, and one for EBB version 1.3 and higher-- appropriate for all more recent versions.
- Copy the appropriate hex file to the folder that contains the mphidflash exectuable for your OS.
- Connect your EBB to the PC with a USB cable. Plug in power to the EBB.
- Put your EBB in 'bootloader mode' by pressing the PRG button and holding it down while you press and release the RST button. Then you can let go of the PRG button.
- Confirm that your EBB is in bootload mode by looking at the red and green LEDs by the USB connector. They should be blinking back and forth pretty fast.
- From the command line, type (for Linux or Mac)
./mphidflash -w EBFv195_EBBv13.hex -r
- For Windows type
mphidflash -w EBFv195_EBBv13.hex -r
- Where "EBFv195_EBBv13.hex" is the name of the hex file that you want to program.
- Confirm that you get a long series of dots "." on the command line, and that there are no errors. Your EBB will reset itself at the end of the programming process (that's what the '-r' does).
- On Windows, if you have an older firmware and are updating to a relatively newer one, Windows may ask you to find a driver for the device when the EBB resets. You can install the proper windows "INF" driver by downloading and running the EggBot installer for Windows, which Installs the USB driver (the "UBW" driver) from GitHub. If Windows says the drivers are unsigned and do you want to continue, just allow it to install them.
- After you've updated your EBB with fresh firmware, you can check to see that the new firmware was successfully programmed by opening Inkscape, going to Extensions->Eggbot..., click on the Manual tab, select "Check EBB Version" from the drop down list, and click Apply. In the little dialog box that pops up when this process is finished you should see something like "Firmware Version 2.0.2" or whatever your version number is.