NEED that other IO pin

Hi everybody ; Im using arduino as ISP with attiny45. No problem uploading and running my sketch. Just need ONE more IO pin. ATMELs summary states that RESET can be used as a WEAK IO, didnt understand that. Searched the forum, only learned that I can burn a fuse to disable reset and use it as an IO. Facts:

I would not need to reprogram my uC. The only programmer I have is UNO as ISP. I dont know how to burn fuses. So, can I do upload my sketch, burn the fuse(s), and use PB5 as IO? if so, How? THANKS.

I wouldn't mind betting that if you told us what you are actually doing, and how you are using the pins at present, we could suggest a way of doing more with the pins you are already using.


You can burn the fuses from a command window:

When you use Reset as an I/O, it is a one-way decision using Arduino as ISP. Simply put, to undo such a change requires a high-voltage programmer. But as long as the HEX is the way you want it to be, ArduinoISP will do the job.


Thanks, Paul; I AM sure. My code runs as though I passed by MIT :) But I need to save my money , not US$ which I CANT access Just need one more output pin. I´ll post my simple , not stupid :), project tomorrow. Thanks, Mr Burnette ; interesting link. I try to understand that. I´m not shouting, just EMPHASIZING, with my capitals. I´ll be back to let You know.

alah: But I need to save my money

Using the RESET pin for I/O is a guaranteed way to spend more money. You can only program the chip ONCE if you do it.


Thanks, but can I upload my sketch, then disable reset, with just only an arduino as an ISP? or maybe, upload my sketch and disble reset at the same time, withonly arduino as ISP? or is it impossible without that HV programmer?

See page 87:
RESET/PCINT14 – Port C, Bit 6
RESET, Reset pin: When the RSTDISBL Fuse is programmed, this pin functions as a normal I/O pin,
and the part will have to rely on Power-on Reset and Brown-out Reset as its reset sources.
When the RSTDISBL Fuse is unprogrammed, the reset circuitry is connected to the pin, and the pin can not be used as an I/O pin.
If PC6 is used as a reset pin, DDC6, PORTC6 and PINC6 will all read 0.
PCINT14: Pin Change Interrupt source 14. The PC6 pin can serve as an external interrupt source.

Thus an AVR Programmer cannot pull & hold Reset low to program the part, which is needed for burning a bootloader, changing fuses, or to upload a sketch with no bootloader.

Then page 292 for high voltage (12V) programming:

28.7 Parallel Programming
28.7.1 Enter Programming Mode
The following algorithm puts the device in Parallel (High-voltage) Programming mode:

  1. Set Prog_enable pins listed in Table 28-14 on page 292 to “0000”, RESET pin to 0V and VCC to 0V.
  2. Apply 4.5 - 5.5V between VCC and GND.
    Ensure that VCC reaches at least 1.8V within the next 20 ?s.
  3. Wait 20 - 60 ?s, and apply 11.5 - 12.5V to RESET.
  4. Keep the Prog_enable pins unchanged for at least 10?s after the High-voltage has been applied to ensure the Prog_enable Signature has been latched.
  5. Wait at least 300 ?s before giving any parallel programming commands.
  6. Exit Programming mode by power the device down or by bringing RESET pin to 0V.

Programming of fuse bytes follows.

The answer is yes, you can program your AtTiny using the ArduinoISP. Then you can set the fuse using your ArduinoISP. It's only RESETTING the fuse that needs the high voltage programmer.

Incidentally, it's not all that hard to do the high voltage programmer thing. A transistor, some resistors, and 9 or 10 AA batteries is all it takes to wire one up on a breadboard. The Sketch can be found on line.

True. But that is the same as spycatcher2k already told about in reply#5. That solution costs a little money, but is plug and play and much more compact to have available at any time.