Programming an ATtiny85 with Arduino Code and Arduino Uno as Programmer

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

What device was being used to program the ATtiny? Maybe someone with greater knowledge of Atmel chips can say if you can still program these chips using ArduinoISP if the reset disable and/or the SPI program fuse is set, or do you have to use high voltage programming?

I assembled the board on an exhibition myself and it was programmed by a self-made piece of hardware that was connected to a laptop.
I asked whether it is possible to program it my self with an arduino and I was told to use the tutorial from MIT Media Lab.

if the reset pin is disabled and/or spi programming is disabled then you have to either use a hv programmer to program, or a hv programmer to set the fuse byte to enable both the reset pin and spi programming bits and then you can use isp to program again.

Im not sure about the reset pin but they told me that it is possible to lock ATtinies and that this one is not locked.

Riva:
Maybe someone with greater knowledge of Atmel chips can say if you can still program these chips using ArduinoISP if the reset disable and/or the SPI program fuse is set, or do you have to use high voltage programming?

You need HVP if the reset pin has been configured as an I/O pin.

marian42:
Im not sure about the reset pin but they told me that it is possible to lock ATtinies and that this one is not locked.

You can "lock" it against SPI programming is by configuring the reset pin as a general I/O pin. I don't think there's any way to lock them against special programmers (HVP).

There is something else you can do if you want an extra IO pin, but still want to be able to program without a HVP, and that is to use a bootloader - the one I made for tiny85s and 84s is designed to allow serial programming (software uart) without the need for a reset pin.

marian42:
However, I got the same results.

If you want me to continue helping, post the verbose output.

marian42:
Im not sure about the reset pin...

What is connected to RESET?

Verbose output varies randomly between the one posted in #17 and this:

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: . [02] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [81]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [01] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [82]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [12] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [98]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
avrdude: Send: A [41] . [84]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [85]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [86]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [87]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [89]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [00] 
avrdude: Recv: . [10] 
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [01] 
avrdude: Recv: . [10] 
avrdude: Send: A [41] . [82]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [12] 
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: . [10] 
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: Send: P [50]   [20] 
avrdude: Recv: 
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: Send: Q [51]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 

avrdude done.  Thank you.

I do not see any connection at the reset pin but I can barely see any connections at all because the PCB is covered with some kind of black ink so the wires are only slightly lower than the rest.

There are two possibilities left...

  1. There is a mistake in your wiring.

  2. RESET has been disabled.

What happens to the target when you connect a low value resistor (like 220 ohms) from RESET to GND? Does the target reset?

The setup works with another single ATtiny.
Connecting a 470 resistor between Reset and GND has no effect.

Assuming the processor's Vcc is 5 volts, if the pull-up resistor on RESET is 10 K? then a 470 ? resistor from RESET to ground should bring the voltage on RESET to 0.22 volts. 0.1Vcc is the guaranteed low threshold which is 0.50 volts. In this scenario the 470 ? resistor is guaranteed to reset the processor.

If the pull-up resistor on RESET is 4.7 K? then a 470 ? resistor from RESET to ground should bring the voltage to 0.45 volts. Still below the threshold.

If the pull-up resistor on RESET is 4230 ? the voltage is 0.5 volts. The lowest value that still guarantees a reset.

It seems very likely that RESET has been disabled. To eliminate all doubt, you could try a lower value resistor. Were I in your shoes, I wouldn't bother.

If the reset is disabled you might want to look at this:
http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/

It is an arduino based programmer that allows you to reset the fuse bytes even if the reset pin has been disabled.