Arduino as ISP / ATtiny85 "protocol" Errors

I’m following the steps here to program an ATtiny85 chip using an Arduino UNO.

I have version 1.0 of the Arduino software, and I’m using the files from the damellis-attiny-6bff522.zip at https://github.com/damellis/attiny/zipball/Arduino1

My setup is attached and as far as I can tell the wiring is correct.

Before wiring it all up, I followed these steps from http://hlt.media.mit.edu/?p=1695

(maybe I did this in the wrong order?)

"Configuring the ATtiny to run at 8 MHz (for SoftwareSerial support)

By default, the ATtiny’s run at 1 MHz (the setting used by the unmodified “ATtiny45?, etc. board menu items). You need to do an extra step to configure the microcontroller to run at 8 MHz – necessary for use of the SoftwareSerial library. Once you have the microcontroller connected, select the appropriate item from the Boards menu (e.g. “ATtiny45 (8 MHz)”). Then, run the “Burn Bootloader” command from the Tools menu. This configures the fuse bits of the microcontroller so it runs at 8 MHz."

Then, from the instructions at http://hlt.media.mit.edu/?p=1706 I uploaded the ArduinoISP sketch to my Uno.

Then I wired everything as in attached picture. I am first trying to just upload the simple BLINK example to the ATtiny85 and running into errors on upload. The settings I’m using are:

Board: ATtiny85 (8 Mhz)
Programmer: Arduino as ISP

I know the “define PAGEL and BS2” are normal errors and I can just ignore those, but I’m getting other errors below that section:

Binary sketch size: 774 bytes (of a 8192 byte maximum)
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): protocol error

There’s only one thing I did wrong I just realized as I was writing this post and re-reading all the steps, and I am not at home where I can re-test but I don’t think it would cause an error at this point - in the Blink sketch I replaced pin “13” with “3”, but one of the links above said to use “0” as the pin number. I don’t think this is causing the errors but just throwing that out there in case it is.

I am using a Windows 7 x64 system.

Hopefully someone out there can spot what I’m doing wrong :~

Thanks in advance.

Did you disable auto-reset on the Uno?

I believe so - this is an UNO so I'm using a capacitor between reset and ground.

Thats what you meant right?

Where did you get the ArduinoISP sketch that you uploaded to the Uno? The one supplied with Arduino 1.0 doesn't work under Arduino 1.0. There are a couple of threads in this section of the forum about that, with remedies.

http://arduino.cc/forum/index.php/topic,82011.0.html

Or, you can try the latest version of ArduinoISP... https://github.com/rsbohn/arduinoisp

Or, you can lower the baud rate to 9600... http://code.google.com/p/arduino/issues/detail?id=661 https://github.com/arduino/Arduino/tree/master/build/shared/examples/ArduinoISP https://github.com/arduino/Arduino/commit/80a2154279a02fd69f995ef6ff9eb889363c73ca

natv: I believe so - this is an UNO so I'm using a capacitor between reset and ground.

Applied just after uploading the ArduinoISP sketch.

Thats what you meant right?

Yes.

Thanks guys

I couldn’t get the new ArduinoISP to work for me for some reason, so I downloaded arduino-0023, uploaded the ArduinoISP sketch using the older Arduino version, then switched back to Arduino 1.0 and got things working :slight_smile:

yeah, for all those out there using the MIT setup, i found a TinyShield that has all that stuff built in. http://www.flytron.com/open-source-hardwares/162-tinyshield-all-in-one-avr-programmer-shield-for-arduino.html

it works flawlessly...but NOT ON IDE 1.0, i run it on V0023!!

Now to business, i am now trying to set the fuse for the /8 disable, in other words changing the stock 1MHZ to 8 Mhz which seems to be futzing up Chas's security device project. http://youtu.be/DFMk1MOYv1Y , in an effort to use the serial Monitor via the t85 as mentioned by the topic originator.

To set the fuze i understand that: 1.i have to use avrdude directly A. downloaded both winAvr and winAvr portable B. Using WinAvr portable AND the TinyShield AND arduino V0023 running Arduino as Isp, i put in and got back the following:

N:\bin>avrdude -c avrisp -p t85 -P com4 avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xe0

avrdude done. Thank you.

C. B. Using the avrdude from the V0023 install, AND the TinyShield AND arduino V0023 running Arduino as Isp, i put in and got back the following:

Update!!!! C:\Downloads\arduino-0023\arduino-0023\hardware\tools\avr\etc\avrdude.conf the following code WORKS, OR AT LEAST COMMUNICATES with my Tiny85!!! avrdude -pm328p -cstk500v1 -b19200 -PCOM4 -v -C ..\etc\avrdude.conf -U lfuse:w:0xFF:m -U hfuse:w:0xD6:m -U efuse:w:0x05:m

substituting the path yo MY avrdude.conf

The easy way tochange the fuses to 8Mhz clock-speed, ( in my opinion at least)

  1. Select the board: Attiny85@8Mhz
  2. Select Burn Bootloader W/arduino as ISP

See below

Burn_85.jpg