STK500 for all in one bootloader burning and programming in Arduino IDE?

I have a spare 100 bucks to spend and was looking into the stk500.

So far the things I know about it are:

  • It's discontinued but is still very quite much in stock on the Atmel store.
  • It's equipped with sockets to program a large array of Atmel chips which is what I want.

Now I own an Avrisp mk2 and I was already successful at programming an Attiny85 and even managed to load a bootloader onto a blank Atmega328p-pu chip though the Atmel Studio and program using the Arduino IDE.

The last time I did it, however was almost a year ago and although I've recently programmed an attiny, I must again re-learn the process building a proper circuit of burning the arduino bootloader onto the chip. A year ago I've somehow made a circuit that allowed me to pop in an Atmega328p-pu chip and burn the bootloader into it, after which I could just use the AVRISP mk2 to program the chip in Arduino IDE. I tried to learn Atmel studio and program the chips directly but, to be honest, although most likely more superior, I found that Atmel Studio and it's raw language was an overkill for my projects and the Arduino IDE language was much more simple and suited for my needs so this is why I am here.

What I want to find out is:

  • Is the STK500 equipped with all the tools needed to just pop in the chip and load the bootloader into it (like external crystals etc)?
  • Can you program an Atmega328p-pu chip with STK500 and Arduino IDE? (Are they compatible?)

The main thing is really whether you can pop in a chip and burn a bootloader onto it and the switch to Arduino and start programming

PS: Oh boy.

Just managed to re-create that circuit so now I have a somewhat rickidy programming board that I can used to burn and program atmega chips. Now I don't have to look at the stk500 simply as the only solution to burning the bootloader onto empty chips. I do still want to know if it's equipped with all the needed tools since the circuit I've just built is not a professional looking solution.

In my opinion, an Uno running the example ArduinoISP sketch is the best programmer. And it is most flexible, just run a few wires to a breadboard and you can program any ATmega or ATtiny. And if you want to do HV parallel programming, there are sketches for that as well. If you have a look at the specs and schematics of "dedicated" ISP programmers, you'll see that they are only variations of Arduino boards, usually made with older processors such as ATmega8. There's nothing special about them, except the firmware is more difficult to update, compile, and upload. If you use an Uno, updating the firmware that makes it a programmer is just a matter of editing a sketch.

The main reason I'm looking at it this way is really, first of all I have not had any luck in using an arduino Uno as an ISP programmer. I might try it again now since I've figured out the procedure and circuit again... However right now the Process of Burning the bootloader and programming is a bit complicated:

  • I have to use Atmel Studio in order to burn the bootloader and set the fuses.
  • I have to use an external 16mhz oscilator for the atmega chip to be recognized by the ISP and Atmel Studio and for the Arduino IDE to program it. The microcontroller doesn't run code without the external 16mhz oscilator.
  • I have to build my own prototyping / bootloader burning board for more chips.

These are the main reasons. Also, so far I've managed to program an ATtiny85 and Atmega328 chips but there are more chips like the Atmega16 which is a much bigger chip and The STK500 has the sockets for most of the dip chips by atmel.

As far as I've know the STK500 is compatible with the Arduino IDE. I actually got one my self :slight_smile:
If you want you can actually use the onboard programmer on the STK500, you'll just need a 'real' USB to RS232 (with the correct voltage levels) and a 12v fed into the power jack. High voltage programming is also fairly easy to setup. There are detailed instructions in the user manual.
If you want to use it with the Arduino IDE you'll have to modify the programmers.txt file, and add the STK500 as ISP option.

stk500.name=STK500 as ISP
stk500.communication=serial
stk500.protocol=stk500
stk500.program.protocol=stk500
stk500.program.tool=avrdude
stk500.program.extra_params= -P {serial.port} 

stk500hvpp.name=STK500 as HVPP
stk500hvpp.communication=serial
stk500hvpp.protocol=stk500pp
stk500hvpp.program.protocol=stk500pp
stk500hvpp.program.tool=avrdude
stk500hvpp.program.extra_params= -P {serial.port}

Stuff like changing the onboard clock frequency, read device voltage, set analog reference can all be done in Avrdude as well as in Atmel studio :wink: