Extruder Firmware Woes

151 views
Skip to first unread message

TeamTeamUSA

unread,
Oct 12, 2009, 3:59:53 AM10/12/09
to MakerBot Operators
My system
Computer: MacBook Pro
OS: 10.5.8
Java: java version "1.5.0_20"

How do I re-burn the bootloader and firmware for the extruder board?

I followed the instructions here:

http://www.reprap.org/bin/view/Main/Extruder_Controller_2_2#Burn_the_Bootloader
http://wiki.makerbot.com/plastruder-firmware-update#toc5

I managed to re-burn the bootloader, and now I have a blinking DEBUG
light on the board and every time I try to upload the firmware - 1.4,
1.5, 1.6, I tried them all - using replicatorg-0008/9 I receive this
error:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00

avrdude done. Thank you.

This is after trying every conceivable timing between pushing the
Upload and reset buttons.

I also receive this error on replicatorg-0008/9 startup:

WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.1-7

Are they related?

I managed to fix the RXTX version mismatch error by replacing the
replicatorg-0009/ReplicatorG.app/Contents/Resources/Java/RXTXcomm.jar
file with the one from replicatorg-0006.

I no longer get the warning, but I still cannot upgrade the firmware.

Any ideas?

Go!

=ml=

Geert Bosch

unread,
Oct 12, 2009, 11:34:42 AM10/12/09
to MakerBot Operators
Make sure you connect the USB2TTL cable to the extruder board. With
the Mac,
I've never had to manually press the reset button, it will work
automatically.
The extruder board is essentially a souped up Arduino, so I would just
use
the Arduino environment and select Arduino Diecimila as board.

Remove the extruder controller board from the rest of the machine
and connect it directly with the USB2TTL cable to your Mac. This
should allow you to upload simple sketches to verify proper operation
of the Arduino part of the board. Then you can use the Arduino
environment to compile and upload the latest firmware.

The RXTX version mismatch warning is harmless AFAIK and is not
related to the problems you're seeing.

-Geert

TeamTeamUSA

unread,
Oct 12, 2009, 11:41:41 AM10/12/09
to MakerBot Operators
Thinking the version mismatch might be the culprit, I eliminated it in
favor of the RXTX-2.2pre1 version by doing this:

1. Download http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre1-bins.zip
2. Unzip archive
3. Put these files in /System/Library/Java/Extensions/
mac-10.5/librxtxSerial.jnilib
RXTXcomm.jar

I no longer get the version mismatch error, but I still can't upload
the firmware.

I even tried this in a terminal window:

/Applications/MakerBot/replicatorg-0009/tools/avrdude -C/Applications/
MakerBot/replicatorg-0009/tools/avrdude.conf -cstk500v1 -P/dev/
tty.usbserial-FTE3PVGI -b19200 -D -Uflash:w:firmware/
ArduinoSlaveExtruder-v1.6.hex:i -pm168

Still no joy :(

Go!

=ml=

On Oct 12, 12:59 am, TeamTeamUSA <miles...@gmail.com> wrote:
> My system
> Computer: MacBook Pro
> OS: 10.5.8
> Java: java version "1.5.0_20"
>
> How do I re-burn the bootloader and firmware for the extruder board?
>
> I followed the instructions here:
>
> http://www.reprap.org/bin/view/Main/Extruder_Controller_2_2#Burn_the_...http://wiki.makerbot.com/plastruder-firmware-update#toc5

TeamTeamUSA

unread,
Oct 12, 2009, 12:10:13 PM10/12/09
to MakerBot Operators
Thanks, Geert.

I used the USBtinyISP and arduino-0017 to re-burn the bootloader with
these settings:

Board: Arduino Diecimila, Duemilanove, or Nano w/ ATmega168
Serial Port: /dev/cu.usbserial-FTE3PVGI

I used this driver: FTDIUSBSerialDriver_v2_2_9_Intel.dmg from
replicatorg-0009/drivers.

This step worked without a problem and I now see the "Blink" test
program loaded on the board [that's the blinking DEBUG LED], so I quit
arduino-0017.

I then connected the USB2TTL cable from my MBP USB port to the inline
6-pin header above the reset button, and attempted to upgrade the
firmware via replicatorg-0009 with this, taken from the console:

/Applications/MakerBot/replicatorg-0009/tools/avrdude -C/
Applications/MakerBot/replicatorg-0009/tools/avrdude.conf -cstk500v1 -
P/dev/tty.usbserial-FTE3PVGI -b19200 -D -Uflash:w:firmware/
ArduinoSlaveExtruder-v1.6.hex:i -pm168

Same errors:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00

avrdude done. Thank you.

Thinking it might be a problem with replicatorg-0009, I tried with
replicatorg-0008, I also tried to upload a sketch via arduino-0017.
Same errors.

So it appears that the MBP can't communicate to the board via the
USB2TTL cable. The cable worked fine to re-burn and upload the
motherboard's bootloader and firmware, so I don't think the cable is
the culprit. I've verified that the cable is plugged into the extruder
board header correctly. On the off-chance it is the cable, how can I
test it?

Any more ideas?

Go!

=ml=

On Oct 12, 8:41 am, TeamTeamUSA <miles...@gmail.com> wrote:
> Thinking the version mismatch might be the culprit, I eliminated it in
> favor of the RXTX-2.2pre1 version by doing this:
>
> 1. Downloadhttp://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre1-bins.zip
> 2. Unzip archive
> 3. Put these files in /System/Library/Java/Extensions/
>    mac-10.5/librxtxSerial.jnilib
>    RXTXcomm.jar
>
> I no longer get the version mismatch error, but I still can't upload
> the firmware.
>
> I even tried this in a terminal window:
>
> /Applications/MakerBot/replicatorg-0009/tools/avrdude -C/Applications/
> MakerBot/replicatorg-0009/tools/avrdude.conf -cstk500v1 -P/dev/
> tty.usbserial-FTE3PVGI -b19200 -D -Uflash:w:firmware/
> ArduinoSlaveExtruder-v1.6.hex:i -pm168
>
> Still no joy :(
>
> Go!
>
> =ml=
>
> On Oct 12, 12:59 am, TeamTeamUSA <miles...@gmail.com> wrote:
>
>
>
> > My system
> > Computer: MacBook Pro
> > OS: 10.5.8
> > Java: java version "1.5.0_20"
>
> > How do I re-burn the bootloader and firmware for the extruder board?
>
> > I followed the instructions here:
>
> >http://www.reprap.org/bin/view/Main/Extruder_Controller_2_2#Burn_the_...
>

TeamTeamUSA

unread,
Oct 14, 2009, 12:52:49 PM10/14/09
to MakerBot Operators
Bre, Zach, Adam,

Sorry to address this to you directly, but I'm at a dead end.

How are the bootloader and firmware uploaded to the assembled extruder
controller boards?

I've followed the instructions here and cannot get any version of the
firmware uploaded, nor any Arduino sketch:

http://www.reprap.org/bin/view/Main/Extruder_Controller_2_2#Burn_the_...
http://wiki.makerbot.com/plastruder-firmware-update#toc5

I've attempted the instructions with multiple version of Arduino and
ReplicatorG; still no joy.

Are there other instructions I should be following?

I've ruled out cable failure, and since the bootloader uploads
[blinking debug light], it seems safe to rule out board/chip failure.

The extruder board is the only thing that's preventing me from
printing. It's quite frustrating to be so close...

Thanks,

=ml=

Andrew Plumb

unread,
Oct 14, 2009, 1:03:37 PM10/14/09
to make...@googlegroups.com
Something not included in the 'plastruder-firmware-update' page is to
press the extruder reset button simultaneously with clicking the
'Upload' button. That's a prompt-instruction that Adam included in
the RepG 0009 uploader capability.

Andrew.
--

"The future is already here. It's just not very evenly distributed"
-- William Gibson



wlburks

unread,
Oct 14, 2009, 1:04:56 PM10/14/09
to MakerBot Operators
I am in the exact same boat as you are. It has been a month of trying
the timing on the reset button for the firmware upload. I think it is
safe to say that it isn't just the timing on the reset button, and
that something else is wrong. I too have done the boot loader with
the tinyUSB and that was successful. I am inclined to order another
pre-assembled MOBO and try again with the firmware.

I too have tried the Arduino environment and the RepG environment to
try to push the firmware and I still get this error.

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00

I am at a loss as you are and just don't know where to go from here...

Rick Pollack

unread,
Oct 14, 2009, 1:13:54 PM10/14/09
to make...@googlegroups.com
Where are you guys located? Any other MB owners in the area? If not and you can't get it figured out, you can send me the board if you would like someone else to try uploading to it...

wlburks

unread,
Oct 14, 2009, 1:21:22 PM10/14/09
to MakerBot Operators
Well I am in NW Arkansas, where it is hard enough to get stable wall
currents, but I would be willing to mail you the one Ive got, and
prepay for the return shipping...

I am still planning on ordering a new MB, if you can get this one to
work ill give it to my buddy who wants to build one form scratch...

email is wlb...@gmail.com if you want to send me your address.

Jordan Miller

unread,
Oct 14, 2009, 2:39:27 PM10/14/09
to make...@googlegroups.com
hi, preassembled boards already have bootloader AND firmware
installed. no need to do any of this since batch 5.

did u try plugging everything in and having a go? it may just work.

also iirc the extruder controller doesn't need a reset button press
since it's a standard arduino...

jordan

wlburks

unread,
Oct 14, 2009, 3:03:35 PM10/14/09
to MakerBot Operators
I am aware of that, but bootloaders are only half the battle. The
loading of bootloaders on to the board was me trying to prove that I
could talk to the board. I needed to do this since I can't get the
firmware to the board. Since none of my boards have firmware on them
they don't do anything when I plug them in, other then wait for me to
put the firmware on them. Since I haven't put the firmware on the MOBO
I haven't even tried the extruder board.

Thanks,

Will

On Oct 14, 1:39 pm, Jordan Miller <jsmil...@seas.upenn.edu> wrote:
> hi, preassembled boards already have bootloader AND firmware  
> installed. no need to do any of this since batch 5.
>
> did u try plugging everything in and having a go? it may just work.
>
> also iirc the extruder controller doesn't need a reset button press  
> since it's a standard arduino...
>
> jordan
>

Andrew Plumb

unread,
Oct 14, 2009, 3:22:21 PM10/14/09
to make...@googlegroups.com
On the MB there's a little jumper next to the blue ICSP socket (JP8, I
think, next to C8 ). Do you have it populated and/or jumpered?

It's been a while, but I think I needed to jumper it to program the
bootloader and un-jumper to update firmware... Or vice versa. I'm
not sitting at my cupcake to check the current state.

Andrew.

wlburks

unread,
Oct 14, 2009, 3:28:28 PM10/14/09
to MakerBot Operators
I have not been aware of anything that needs to be jumped on the MB.
I did jump the USBtiny when I uploaded the bootloader. I used the TTL
cable to try to upload the firmware, thus no jumping because no
USBtiny. Is there actually something that you need to jump of the MB
this would be the first time for me to hear of it...

Thanks,

Will

Gianni Ceccarelli

unread,
Oct 14, 2009, 3:30:11 PM10/14/09
to make...@googlegroups.com
On 2009-10-14 Andrew Plumb <and...@plumb.org> wrote:
> On the MB there's a little jumper next to the blue ICSP socket (JP8,
> I think, next to C8 ). Do you have it populated and/or jumpered?

It's labeled "autoreset enable", and it's open on my MB. Firmware
updates work fine (updated twice since I got it, last time just
yesterday), I just have to press "reset" at the appropriate time
(which can be tricky to get).

--
Dakkar - <Mobilis in mobile>
GPG public key fingerprint = A071 E618 DD2C 5901 9574
6FE2 40EA 9883 7519 3F88
key id = 0x75193F88

Your mode of life will be changed for the better because of good news
soon.

signature.asc

TeamTeamUSA

unread,
Oct 14, 2009, 9:38:49 PM10/14/09
to MakerBot Operators
Thanks for the comments.

My current issue is with the extruder controller board, although I had
a similar issue with the motherboard. After connecting the stepper
driver boards and attaching everything to the PSU, I was unable to
control the stepper motors. After much head-scratching and
frustration, I finally resolved it by re-burning the motherboard
bootloader. After that, I was able to upload the firmware first try.

I only considered re-burning the extruder controller bootloader when
the nichrome, thermistor, and motor did not respond after connecting
everything per the instructions here:

http://wiki.makerbot.com/plastruder-mk3-assembly#toc79
http://wiki.makerbot.com/plastruder-mk3

I double-checked all connections and cables; everything was correctly
wired and the cables fault free. I tried to upgrade the extruder
firmware thinking that would fix the problem; it didn't. It was only
as a last resort, did I decided to re-burn the bootloader.

Now I have an extruder board with the Deicimila bootloader and the
"blink" debug sketch on it. I cannot upload any firmware nor Arduino
sketch because of the error:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00

avrdude done. Thank you.

I've tried the re-burn/upload process on three different OS X
machines, one XP machine, with various versions of Arduino and
ReplicatorG; all resulted in the same errors.

I've ruled out the USB2TTL cable because I can control all steppers
from ReplicatorG using the same the cable attached to the motherboard.

I'm beginning to think it may be the extruder board; although if it
accepts the bootloader and the debug sketch, wouldn't that preclude a
faulty board?

A final thought. The bootloader is burned via the USBtinyISP 6-pin
header, whereas the firmware is uploaded via the inline 6-pin header.
What might prevent the latter from functioning correctly if the former
does?

Is there a way to upload the firmware via the ISP 6-pin header?

Thanks,

=ml=

On Oct 14, 11:39 am, Jordan Miller <jsmil...@seas.upenn.edu> wrote:
> hi, preassembled boards already have bootloader AND firmware  
> installed. no need to do any of this since batch 5.
>
> did u try plugging everything in and having a go? it may just work.
>
> also iirc the extruder controller doesn't need a reset button press  
> since it's a standard arduino...
>
> jordan
>

Jordan Miller

unread,
Oct 15, 2009, 2:06:37 AM10/15/09
to make...@googlegroups.com
did you install all the stuff from sanguino.cc??

also, check github for arduino for makerbot and also this mailing list
for your avrdude errors, i posted about the github arduino fixing
things for me for some reason one-time only. after that i haven't ever
had a problem with it again.

Jordan

TeamTeamUSA

unread,
Oct 15, 2009, 10:54:29 AM10/15/09
to MakerBot Operators
Fixed! Thanks, Zach and Jordan!

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

I found this page after poking around github following Jordan's
suggestion.

I still can't upload arbitrary sketches to the extruder, but at least
I have firmware on the board again.

In order to make all the new options display in the Tools > Board
menu, I had to modify the boards.txt from the one in Subversion.
Here's mine:

------------------------ Start cut
8<-------------------------------------------

##############################################################

ArduinoSlave14BL.name=Extruder Controller v2.x (FW v1.4 w/ BL)

ArduinoSlave14BL.upload.protocol=stk500
ArduinoSlave14BL.upload.maximum_size=14336
ArduinoSlave14BL.upload.speed=19200

ArduinoSlave14BL.bootloader.low_fuses=0xff
ArduinoSlave14BL.bootloader.high_fuses=0xdd
ArduinoSlave14BL.bootloader.extended_fuses=0x00
ArduinoSlave14BL.bootloader.path=ArduinoSlave
ArduinoSlave14BL.bootloader.file=ArduinoSlaveExtruder-v1.4+BL.hex
ArduinoSlave14BL.bootloader.unlock_bits=0x3F
ArduinoSlave14BL.bootloader.lock_bits=0x0F

ArduinoSlave14BL.build.mcu=atmega168
ArduinoSlave14BL.build.f_cpu=16000000L
ArduinoSlave14BL.build.core=arduino

##############################################################

ArduinoSlave16BL.name=Extruder Controller v2.x (FW v1.6 w/ BL)

ArduinoSlave16BL.upload.protocol=stk500
ArduinoSlave16BL.upload.maximum_size=14336
ArduinoSlave16BL.upload.speed=19200

ArduinoSlave16BL.bootloader.low_fuses=0xff
ArduinoSlave16BL.bootloader.high_fuses=0xdd
ArduinoSlave16BL.bootloader.extended_fuses=0x00
ArduinoSlave16BL.bootloader.path=ArduinoSlave
ArduinoSlave16BL.bootloader.file=ArduinoSlaveExtruder-v1.6+BL.hex
ArduinoSlave16BL.bootloader.unlock_bits=0x3F
ArduinoSlave16BL.bootloader.lock_bits=0x0F

ArduinoSlave16BL.build.mcu=atmega168
ArduinoSlave16BL.build.f_cpu=16000000L
ArduinoSlave16BL.build.core=arduino

##############################################################

ArduinoSlave.name=Extruder Controller v2.x (FW v1.6)

ArduinoSlave.upload.protocol=stk500
ArduinoSlave.upload.maximum_size=14336
ArduinoSlave.upload.speed=19200

ArduinoSlave.bootloader.low_fuses=0xff
ArduinoSlave.bootloader.high_fuses=0xdd
ArduinoSlave.bootloader.extended_fuses=0x00
ArduinoSlave.bootloader.path=ArduinoSlave
ArduinoSlave.bootloader.file=ArduinoSlaveExtruder-v1.6.hex
ArduinoSlave.bootloader.unlock_bits=0x3F
ArduinoSlave.bootloader.lock_bits=0x0F

ArduinoSlave.build.mcu=atmega168
ArduinoSlave.build.f_cpu=16000000L
ArduinoSlave.build.core=arduino

##############################################################

SanguinoMaster14BL.name=RepRap Motherboard v1.x (FW 1.4 w/ BL)
SanguinoMaster14BL.upload.protocol=stk500
SanguinoMaster14BL.upload.maximum_size=63488
SanguinoMaster14BL.upload.speed=38400

SanguinoMaster14BL.bootloader.low_fuses=0xFF
SanguinoMaster14BL.bootloader.high_fuses=0xDC
SanguinoMaster14BL.bootloader.extended_fuses=0xFD
SanguinoMaster14BL.bootloader.path=SanguinoMaster
SanguinoMaster14BL.bootloader.file=SanguinoMaster-v1.4+BL.hex
SanguinoMaster14BL.bootloader.unlock_bits=0x3F
SanguinoMaster14BL.bootloader.lock_bits=0x0F

SanguinoMaster14BL.build.mcu=atmega644p
SanguinoMaster14BL.build.f_cpu=16000000L
SanguinoMaster14BL.build.core=sanguino
SanguinoMaster14BL.verbose=false

##############################################################

SanguinoMaster16BL.name=RepRap Motherboard v1.x (FW 1.6 w/ BL)
SanguinoMaster16BL.upload.protocol=stk500
SanguinoMaster16BL.upload.maximum_size=63488
SanguinoMaster16BL.upload.speed=38400

SanguinoMaster16BL.bootloader.low_fuses=0xFF
SanguinoMaster16BL.bootloader.high_fuses=0xDC
SanguinoMaster16BL.bootloader.extended_fuses=0xFD
SanguinoMaster16BL.bootloader.path=SanguinoMaster
SanguinoMaster16BL.bootloader.file=SanguinoMaster-v1.6+BL.hex
SanguinoMaster16BL.bootloader.unlock_bits=0x3F
SanguinoMaster16BL.bootloader.lock_bits=0x0F

SanguinoMaster16BL.build.mcu=atmega644p
SanguinoMaster16BL.build.f_cpu=16000000L
SanguinoMaster16BL.build.core=sanguino
SanguinoMaster16BL.verbose=false

##############################################################

SanguinoMaster.name=RepRap Motherboard v1.x (FW 1.6)
SanguinoMaster.upload.protocol=stk500
SanguinoMaster.upload.maximum_size=63488
SanguinoMaster.upload.speed=38400

SanguinoMaster.bootloader.low_fuses=0xFF
SanguinoMaster.bootloader.high_fuses=0xDC
SanguinoMaster.bootloader.extended_fuses=0xFD
SanguinoMaster.bootloader.path=SanguinoMaster
SanguinoMaster.bootloader.file=SanguinoMaster-v1.6.hex
SanguinoMaster.bootloader.unlock_bits=0x3F
SanguinoMaster.bootloader.lock_bits=0x0F

SanguinoMaster.build.mcu=atmega644p
SanguinoMaster.build.f_cpu=16000000L
SanguinoMaster.build.core=sanguino
SanguinoMaster.verbose=false

------------------------ End cut
8<-------------------------------------------

Go!

=ml=
Reply all
Reply to author
Forward
0 new messages