Creating your own board
In the article below I explain how I do this.
Installing the Minicore board
Putting the bootloader on the Atmega328
I order to be able to program the Atmega328 over a serial or USB port we need a bootloader on the chip. The bootloader system makes the Atmega chip to go into programming mode when the reset pin is pulled low when the chip is started up. When the Atmega328 is in programming mode we can send the new application to it using an FTDI connector, the chip is rebooted with the reset pin high and the new application starts up. It's an easy and convenient system. We just need to get the bootloader onto the microcontroller chip. There are basically two ways to do this:
- Either you use an Arduino as an ISP
- You use a ICSP programmer like the USBTinyISP
In the first case you need an Arduino UNO, put the new Atmega328 chip on a breadboard and hook everything up. You then burn the ArduinoISP program to the Arduino UNO board and use that as a programmer. It's pretty combersome, needs a free Arduino UNO board and a free breadboard. On top of that it's pretty annoying to wire everything up just ot put the bootloader on a the chip. You just want to drop your brand new Atmega328 into a board, hook it up to your computer, burn the bootloader and get on with your project. That's why I use an USBTinyISP and an old Arduino board.The Arduino UNO board you see in the picture is an old one that accidentally got hooked up to 12V on the USB port. This fried the part that takes care of the USB connection, but left the rest of the board OK. I scavenged a few parts from this board already. The main parts that are needed are the IC holder, the cristal, a few capacirors and the 6 pin ICSP connector. I keep this Arduino hooked up to the USBTinyISP, the black box in the picture, in case I need to program an Atnega328. If you don't have an old Arduino laying around you can get a board with a ZIF socket and use it in exactly the same way.