I have been playing with
Arduino for one week now and really enjoyed the simplicity with which
Wiring allows access to I/O ports. The comprehensible but mandatory structure of a program works really well as long as things are kept simple, while somewhat more advanced programs could certainly benefit from access to interrupts.
However, before making things more complicated on the Software side, I wanted to replace Arduino's microcontroller chip (
ATmega8) with the
Atmega168-20PU ($4.11 at
DigiKey), which most of all, doubles the amount of
Flash Memory, the memory space, where binary versions of compiled programs end up.
Burn Baby Burn
The
Arduino Mini board is already based on the ATmega168 and the development environment supports the ATmega168 as well. But how to burn the boot loader on to the
bigger chip was still a bit of a mystery, at least to me.

Obviously, the microcontroller chips isn't any bigger and comes in the same 28-lead PDIP packaging, and since it is not soldered on to the board but sits in a socket, replacing the chip is very straight forward and took only a couple of seconds.
Burning the boot loader on the other hand took a little longer. The Arduino board has the AVR typical 6 headers ICSP, an in system programming port, which allows burning a boot loader without removing the microcontroller chip from the board. Most ISPs (In-System-Programmers) still require an serial or parallel port but don't work too well through USB-to-Serial adapters, not even with devices like the
Keyspan HS19, and Mac users have to rely on AVR's
AVRISP mkII (ATAVRIPS2-ND), available for
$34 at DigiKey.
The AVRIPS can program newer 8-bit RISC microcontrollers (with ICSP Interface) through the USB port. The target board still needs to be powered and its regular ports should be
disconnected from other devices. Only after following
Dr. T.C.P.'s advice, disconnecting the
HD44780 LCD, I was able to have the Mac communicate with the Arduino board through the ICSP.