Programming an ATtiny85 with Arduino Code and Arduino Uno as Programmer

Hi,

Id like to program an ATtiny85 with Arduino code using an Arduino Uno as programmer as explained in the tutorial by MIT Media lab.

When uploading the blink sketch or trying to burn a bootloader it says:

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

I heard that I can ignore the first error. What did I do wromg? The arduino has an ATmega328 chip.

Also, here is a picture of my setup.

You may need a 10k pullup resistor on the reset pin (between pin1 and pin8). All the other connections appear correct.

Got the same results with the resistor.

Do the lights on the Arduino blink when you try and upload?

It would be easyer to troubleshoot if you connect the 3 LED's mentioned in the sketch

Put an LED (with resistor) on the following pins: 9: Heartbeat - shows the programmer is running 8: Error - Lights up if something goes wrong (use red if that makes sense) 7: Programming - In communication with the slave

And you could try this core: http://code.google.com/p/arduino-tiny/downloads/list

The blue wire does not look correct.

Going from left-to-right, the second green wire is not necessary.

[quote author=Coding Badly link=topic=127362.msg958077#msg958077 date=1350328175]

The blue wire does not look correct.

[/quote] In that diagram the black wire above the blue wire should be one hole to the left - I think the blue is correct.

Okay so I got it to work!

But I promise all I changed was attaching the three LEDs. During the process the error led lights up shortly. The power led stays on and the working led blinks.

The pullup resistor is not necesary.

Thanks for your help guys!

I tried it with another (small) ATtiny85 on a PCB with components attached and got this problem:

avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

and after some tries its always this one

avrdude: stk500_getsync(): not in sync: resp=0x00

During the upload only the power led is on. This ATtiny already has a sketch on it.

I tried it with another (small) ATtiny85 on a PCB with components attached and got this problem:

Components?

Two LEDs, a light sensor, a piezo buzzer and a button. It also has a battery slot and some resistors. I dont have the schematics but I think the components are simply wired up to the five pins.

The LEDs are very unlikely to be a problem.

The light sensor may or may not be a problem.

If the piezoelectric buzzer is wired directly to an SPI pin it is a problem.

I watched the board being programmed with the ATtiny soldered on it so Im quite sure its possible. It has eight holes for programming.

Enable verbose output for uploads and post the results. Please use code tags.

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files\Arduino\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
         AVR Part                      : ATtiny85
         Chip Erase delay              : 4500 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65     6     4    0 no        512    4      0  4000  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6    32    0 yes      8192   64    128  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: Recv: . [15] 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x15
avrdude: Send: A [41] . [81]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: Recv: . [14] 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
avrdude: Send: A [41] . [82]   [20] 
avrdude: Recv: . [10] 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
avrdude: Send: A [41] . [98]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: Recv: . [14] 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14
         Hardware Version: 1981277309
         Firmware Version: -2.-1937312626
avrdude: Send: A [41] . [84]   [20] 
avrdude: Recv: . [02] 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x02
avrdude: Send: A [41] . [85]   [20] 
avrdude: Recv: . [10] 

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
avrdude: Send: A [41] . [86]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [01] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [87]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [12] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [89]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
         Vtarget         : 429496729.4 V
         Varef           : 235765467.0 V
         Oscillator      : 194.021 kHz
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [82]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: B [42] . [14] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] @ [40] . [02] . [00] . [00] . [00]   [20] . [00]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x00
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: Send: Q [51]   [20] 
avrdude: Recv: . [10] 
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10

avrdude done.  Thank you.

avrdude and the ArduinoISP sketch lost synchronization. It’s an annoying bug in the ArduinoISP sketch.

Give this version a try…

I downloaded this from your thread. It worked with my single attiny (the core from MIT media lab worked with this one as well) but not with my onboard attiny. Only the power led of the programmer lights up.

This is the error:

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files\Arduino\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

Did you try the ArduinoISP sketch from the link I posted?

I tried that one codingBadly,

I keep on getting an error invalid conversion from 'const char*' to 'uint8_t'

funkyguy4000: I keep on getting an error invalid conversion from 'const char*' to 'uint8_t'

Binary sketch size: 5,176 bytes (of a 32,256 byte maximum)

Compiles for me using Arduino 1.0.1 on Windows with Arduino Uno as the selected board.

[quote author=Coding Badly link=topic=127362.msg959733#msg959733 date=1350434258] Did you try the ArduinoISP sketch from the link I posted? [/quote]

Im sorry I didnt find the attachment in the first place. I tried the ArduinoISP sketch from the attachment. However, I got the same results. The two ArduinoISP sketches are identical, exept in line 126 heartbeat(); is commented off.