ScratchMonkey installation

Am I in the right forum for this question? If not, please let me know where to ask it.
I'm looking for help installing ScratchMonkey. The web page says that when it's properly installed, I should see "ScratchMonkey" in the Arduino IDE under Tools/Programmer, and I can't make that happen.

Oh, well - a few people have read this post, but nobody has said this is not the right place for it, so let me ask my question :

I’d like to get some installation information about the ScratchMonkey Arduino software

In the installation instructions, it says “Create a hardware directory in your Sketchbook directory”, then it gives an example.
“mkdir ~/Documents/Arduino/hardware” - no mention of a “Sketchbook” directory.

I did the equivalent thing on Windoze by making a new directory, My Documents/Arduino/hardware

The instruction continues…
“Copy or link the contents of the ScratchMonkey hardware directory to the Sketchbook hardware directory:”

with the example …

ln -sh

Again, no mention of any directory called Sketchbook. So where should I copy these files to?

scratchmonkey comes in a zip file, which contains a directory
hardware ## this contains only a directory, no files
scratchmonkey ## this contains only one file, “programmers.txt”

I made a directory
… and copied Programmers.txt to it

I believe I have followed the directions, but I can’t get ScratchMonkey to appear in Tools/Programmer.

Can anybody offer any help?

The right place to put the programmers.txt file in Arduino 1.5 or later is


You also need a boards.txt file there, but it can be empty.

The sketchbook folder is the folder in your documents folder (which will be a different location depending on your operating system) called Arduino, where it defaults to saving your sketches, and is one of the locations that it loads libraries and hardware definitions from. They couldn't call it the "arduino folder" because many people would read that and think it meant the folder Arduino was installed to...

So My Documents/Arduino is your sketchbook folder on Windows, etc.

It's more than a year since I opened this thread, and last time I was here, I gave up because I couldn't make Scratchmonkey work - because the instructions are wrong. I'm back now, with renewed determination because I need a HV programmer, so either I have to write one or make Scratchmonkey work.
Following oqibidipo's instructions (above), I have now loaded ScratchMonkey onto an Arduino Nano, but I don't know how to connect it up as a high voltage programmer for my ATtiny85. I need this because I want to use six I/O pins on the AT85.

The pinouts given in the file are :

Nano ISP                  Nano HVSP

D11 = MOSI                D10   = HVRESET   
D12 = MISO                D11   = VCC
D13 = SCK                 A0    = SDI
D10 = RESET               A1    = SII
D9  = (XTAL)              A2    = SDO
VCC5    = VCC             A3    = SCI
GND = GND                 GND   = GND
D5  = (RDY_LED)           D5    = (RDY_LED)
D6  = (VFY_LED)           D6    = (VFY_LED)
D7  = (PGM_LED)           D7    = (PGM_LED)
D8  = (ERR_LED)           D8    = (ERR_LED)
A4  = (DEBUG)             A4    = (DEBUG)

I find it surprising (though not impossible) that the pinout configurations should be so radically different between ISP and HVSP. Is the AT85 actually powered from an output pin on the Nano? (D11 = VCC)
If anybody has actually used ScratchMonkey for HV programming, can you help me out with a connection diagram please?

I have tended to use the NEWER packages for the 85's as they are often smaller and there are options to also burn with the 6th pin available.

Your package is over 5 years old with almost zero maintenance.

The newer stuff is easier to install with just the additional URL added to preferences then using the board manager.

ballscrewbob - Sorry, but I don't understand what you're referring to. I think we must be talking at crossed purposes. When I google "ScratchMonkey", I get a load of things from a music group to industrial machinery - so there's scope for crossed purposes.

When you talk about "the NEWER packages for the 85's ", are you referring to the ATtiny 85's?

By "options to also burn with the 6th pin available", I guess you mean the 6th I/O pin? Yes, that's what I want to do, hence the need for an HV programmer.

"Your package is over 5 years old with almost zero maintenance."
My package is an 8-pin DIP chip, which has never been used to date. What maintenance does an un-powered chip require?

"The newer stuff" - what "stuff" are you referring to? The SMD packages? That makes a difference in implementation, but the only difference it makes to programming is that an SMD chip has to be programmed in-circuit, and consequently need a boot loader, which uses a chunk of memory. The DIP can be taken out and programmed in a dedicated programmer.

The original post is about a boards package to use to burn to an ATTINY 85. "ScratchMonkey"

Backtracking to that package shows it to be quite old and un-maintained by the publisher of that package.

I use the 85 myself in some projects but mostly they don't need the 6th pin.
However in setting up for the 85's I did find a few different boards packages to flash the chip but always picked ones I saw were maintained by the publisher.

As a result I have a good selection (probably too many)
I use the DIP 85's with a home made programmer type shield for a UNO.
Same approach is also viable with a NANO.

On UNTOUCHED 85's you should still burn the fuses FIRST which will also determine a few characteristics of its eventual use.

They almost all need a bootloader of some type and its in that aspect you get the smaller packages and 6th pin use "NO RESET" leaving PIN 1 available to you.
That is termed differently in different packages so you may see it as "no bootloader" or "no usb" or "no safe mode"
It essentially runs the sketch super fast as it doesn't need to do any other tasks first.

There is a very good write up here (some you can ignore) but still worth taking as much in as you can.

Note that they explain setting the fuses as also burning the bootloader which was my initial stumbling block until I read a little more and became familiar with bootloader as being two possible things. One of which was not going to take away memory nor stop the 6th pin being used.

There are plenty of other similar articles and it was worth my time digesting those to pick out a better understanding of the process which always involves sending the "ArduinoISP" sketch to the Arduino itself FIRST before proceeding to burn anything to the 85. BTW "ArduinoISP" is the last EXAMPLE in the IDE examples section.

I do use the 6th pin bootloader method to get my neopixels to fire up quicker on projects and it also lets me use a wider variety of effects.

Links to other ATTINY PACKAGES and chips

@ballscrewbob ScratchMonkey is actually an ISP programmer firmware in the form of an Arduino sketch and the accompanying programmer definition. There's nothing about it specific to the ATtiny85, though it certainly could be used with that chip, along with many other AVR chips. It's similar to the ArduinoISP but with more features. The tricky thing is programmers are defined as part of hardware packages so you either need to make a dummy hardware package or else copy the programmer definition into an existing package.

@nalkot by "package" ballscrewbob means an Arduino hardware package (AKA "core" or "board support package") which consists of whatever hardware definitions, libraries and toolchain is needed to add Arduino IDE support for a microcontroller. That's a different meaning of the word than an IC package. Here's the specification:

Thanks very much, Gents, I now have a better grasp of what you're trying to explain.
Perhaps it would help a little to explain where I'm up to. The ATtiny85 was my first contact with microprocessors, though I have spent a lifetime in electronics and computer maintenance. I'm a rtired hardware engineer, though C coding was always my hobby - and I did loads of it. On the AT85, however, I specifically wanted to use assembler, and found it pretty difficult to get into, largely due to the lack of detailed information about it. Yes, I know it's all in the datasheet and instruction sheet, but that's not the simplest self-learning aid. They say that human languages get easier to learn when you have already learned a few, and the same probably applies to uProcessor datasheets - but this was my first.
Because I found it difficult to get into (lots of help from AVRfreaks), I made a 6-part YouTube course to ease the way for others who want to follow the same road.

I have been coding the AT85's in ASM using Atmel Studio-7, but largely due to inexperience, I bricked a number of them along the way, and eventually had to unbrick them to recover resources. I used an unbricker code from YouTube, and built the hardware on a breadboard for a one-time usage, and it did the job OK, but its inventor used it as a stand-alone unbricker, so if he wanted to program the chip with 6 I/O lines, he had to put it in the unbricker first (based on an Arduino Nano), then put it into the programmer (based on another Nano). That's pretty cumbersome, so I have had it in mind for a long time to make a HV programmer that would do it all in one operation.

It would have taken me a long time to write a programmer, but in searching, I found ScratchMonkey, which seemed to offer not only HV programming, but also the capability to slow the clock as necessary if the fuses had been set wrong (I accidentally set them for slow watch-crystal type frequency at one point). However, I accept what you say that ScratchMonkey is old and apparently not maintained.

If there is better software suitable for the Nano that would provide HV programming for the ATtinies, I'd really appreciate a link, or some information on how to find it.

Since asking the question, I have been doing a lot of reading, and with that, and your answers here, the fog is beginning to clear. Thanks for your time and patience.

I had bricked some early in playing with the 85's
It was that process that prompted me to dig a little deeper and I found that I could re-use the 85's with the same shield I built to program them.

As far as clock speeds go there were enough bootloader / FUSE options available in the boards package's to be able to select that aspect.
It is simply a matter of setting the wrong clock speed by selecting the wrong bootloader when doing the initial fuses. The only warning is that you have to select an INTERNAL clock speed that is wrong and not an EXTERNAL one.

Attaching a couple of pics for better explanation.
The first shows the options available and you can see there are two options in that particular package for clock speed. One will be clearly wrong but still work if you have an 8 Mhz internal clock and set it as 1 Mhz it will reduce the clock rate proportionally.

The other shows the different terminology used for bootloader / no bootloader etc and are the options you would use to enable the 6th pin.

Both pics taken from my IDE

attiny85 set params.jpg

attiny85 set params.jpg

After preparing you main Arduino with the ISP sketch

Step one would be select the CORRECT flavour of ATTINY.

Step two would be to check which fuse/bootloader options you are going to use that will set the clock speeds and if pin 1 will be available to you.

Step three would be to burn the fuses / bootloader (same thing at this point)

Step four would be to push the sketch to the ATTINY.

Step one would be select the CORRECT flavour of ATTINY.

That would be the AT85

Step two would be to check which fuse/bootloader options you are going to use that will set the lock speeds and if pin 1 will be available to you.

Fuse Extended Byte - 0xff (unprogrammed)
Fuse High Byte - 0x5F (Serial download enabled, everything else disabled - including Reset)
Fuse Low Byte - 0x62 (1MHz osc - though I may change to use 8MHz)

Step three would be to burn the fuses / bootloader (same thing at this point)

Yes - I read that "burn bootloader" may simply set fuses - not intuitive! From the title, one expects it to burn a bootloader.

Step four would be to push the sketch to the ATTINY.

But as I need Pin 1 for I/O, it would have to be in HV mode, and that's my reason for initially wanting ScratchMonkey. As nobody has been able to supply me a link to software that will do it, the only solution seems to be to write one. However, the more I think about it, the less daunting it becomes.