Arduino ISP, AVRDUDE, Optiboot, WDT for Arduino Pro Mini

I may be reiterating what others have already said but I just when through having to replace the ProMini bootloader with optiboot. And while it is fresh in my mind I will document it here.

I used:

  • AVRISP MK II (I used an old clone)
  • MiniCore (brings the optiboot bootloaders to the IDE, It will use the optiboot when you select a (MiniCore processor)
  • libusbk installed with Zadig (an amazing utility).
  • Arduino 1.8.13
  • Windows 10 / 64

Connections:

I found it difficult to be comfortable with all the connection documentation as they all missed stating one point, being;

The MOSI of the programmer connects to the MOSI of the board
The MISO of the programmer connects to the MISO of the board.

This is opposite how a functioning board and device would be connected.

Install the MiniCore by adding

https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

to the File/Preferences/additional boards manager URL’s.

You will then have to install MiniCore through the boards manager. This is similar to adding a library.

  • Install the libsubk using the Zadig utility.
  • Connect the AVRISP MK II to your board.
  • Select your board under the MiniCore portion of the boards list.
  • Select the AVRIPS MK II programmer
  • Go to tool "burn Bootloader".

Your done.

Why did I go through all this? I wanted to use the WDT on the ProMini and it seems the standard boot loader is too slow to boot without the WDT resetting the system.

After changing the bootloader the WDT example worked fine.

Hope this helps somebody.

I disagree with this part:

I found it difficult to be comfortable with all the connection documentation as they all missed stating one point, being;

The MOSI of the programmer connects to the MOSI of the board
The MISO of the programmer connects to the MISO of the board.

This is opposite how a functioning board and device would be connected.

Master Out Slave In (MOSI) on the Master goes to MOSI on the slave.
Master In Slave Out (MISO) on the Master goes to MISO on the slave.

SCK goes to SCK, driven by the Master.

An SPI Slave might use Data in vs MOSI, and Data out v MISO.

Processor to Processor (like a Programmer to a '328P chip) will be MOSI to MOSI, and MISO to MISO.

I'll agree my knowledge of all the uses of MOIS and MIOS is lacking but do you agree with the below statement?

The MOSI of the programmer connects to the MOSI of the board
The MISO of the programmer connects to the MISO of the board.