Hi,
I have a Cupcake, shipped in June 2010 but only just assembled. It
connects happily to ReplicatorG 0034, moves x,y, and z, identifies the
toolhead and it's driver version, extrudes plastic, etc. Motherboard
firmware updates nicely to v3.0. Extruder firmware does not. I write
now only after extensive work on this. Any guidance is appreciated.
Notable facts:
-- I'm running ReplicatorG 0034 on a Windows 7 system
-- Yes, when updating extruder firmware, I have indeed connected the
USB-Serial cable to the 6-pin header just below the thermistor screw
terminals
-- In ReplicatorG - Machine - Upload New Firmware - Select the board
to upgrade, I choose "Extruder Controller v.2.x (Gen 3)", and Version
3.0 w/o relays. (I've also tried several earlier firmware versions,
in hopes that the problem was only with 3.0 -- no success).
-- I select the same Com port (4) that Replicator G happily uses to
talk to the motherboard
-- When I press upload, the system thinks for about 25 seconds, as if
trying to convince me it is working at the job. Then an error box
appears, titled "Upload Failed", and saying "The firmware update did
not succeed. Check the console for details. You can click the
'upload' button to try again.
-- I have tried many combinations of actions, including pushing or not
pushing the reset button on the extruder controller board, with
various timings.
I noted in the Makerbot wiki various discussion of similar problems by
people a couple of years back (that is, those folks who built their
machines promptly, instead of letting them sit half-built and untested
like me). Among the information I came across was
http://wiki.makerbot.com/ec22,
describing how to upload a new bootloader for the extruder
controller. So I bought and built a USBtinyISP programmer, got the
Arduino software, and burned the updated bootloader, no problems.
Arduino test programs, such as the little LED "Blink" program, upload
and run just fine. These uploads go well using the same cable,
attached to the same connectors, as ReplicatorG likes to use. Still,
ReplicatorG won't succeed with firmware updates.
I found a nice discussion in this group, "Extruder Firmware Woes" from
TeamTeamUSA, and lots of helpful replies. Based on that I tried
what's discussed in the following quoted text:
Begin quote:
"Zach made this page that describes how to burn the bootloader and
upload the firmware in one go via the USBtinyISP header:
http://wiki.makerbot.com/burn-custom-firmware-using-arduino
You can get all the files via svn:
svn co
http://svn.makerbot.com/trunk/firmware/ makerbot-bootloader
+firmware-read-only"
End quote.
So I went to github and pulled out of the histories a couple of
different EC firmware files, with titles such as dist/ECv2.2/
PRODUCTION.hex (see, for example,
https://github.com/makerbot/G3Firmware/commit/abed5afbe83083f7757c7b0deb620d806edf9abe#diff-5)
These appear to be files containing combined bootloader and firmware,
each for a different version of the firmware as things changed over
time.
You have to trick Arduino 1.0 to convince it to burn these onto the
board, but it can be done by re-titling the file as
"ATmegaBOOT_168_diecimila.hex" and placing it in the Hardware\Arduino
\Bootloaders\Atmega directory, where Arduino 1.0 will look for the
bootloader to upload and burn via the USBtinyISP programmer. (The
extruder controller is basically a 168 Diecimila Arduino board, with
some other stuff added to it, so when you are using Arduino 1.0 to
talk to the board, that's the board type you select.)
All that works fine, and when Replicator0034 afterwards connects to
the motherboard, it finds the toolhead and reports the driver version
number. The control panel recognizes the extruder controller, and
reports extruder temperature. (This temperature is wildly and
variously wrong, seeming to vary depending on the driver version
(255C, 1024C) despite an extruder at room temperature. Maybe that
reflects thermocouple characteristics input at compile time. These
discrepancies have stopped me from running a full extruder test or a
print test.)
But still, with each of these nice combined bootloader/firmware
packages successfully loaded, when I then try to use ReplicatorG 0034
to upgrade the firmware the normal way, with the very same cable
configuration that allows Arduino 1.0 to successfully upload it's
little "Blink" example, I get no success, only the error discussed
above.
So in the end, I'm stuck. Can anyone tell me how to fix it so that
ReplicatorG will update the extruder controller firmware?
In theory, I could go to the source code for the extruder controller
software (which I think I see some of on Github, but I'm pretty
unfamiliar with the modern world of open source software, so I'm
easily confused about what I'm looking at). I'm reluctant to mess
with the source code anyway, because I don't know the languages
involved (I'm not really a programmer, and I'm very old school, with
only SCHEME, BASIC, PASCAL, 6809 and Z80 assembly language, and a few
words of broken Python).
I welcome any suggestions, and thank you for your time.