I'm somewhat new to Arduino Programming and the AtMega328 device.
Having had some success with the Uno R3 I wanted to use the AtMega328 as a standalone controller in future projects.
I bought an ArduinoISP (A000092) and installed the correct drivers to recognise the ArduinoISP USB Device.
I put a blank ATMega328 device (completely new without bootloader) into the DIP socket on the Uno R3 Board and connected the ArduinoISP to the Uno and the ArduinoISP to my PC.
In Aduino IDE (V. 1.7.9 ) I selected ArduinoISP.org as the programmer and Uno as the board.
I loaded the Blink sketch and then tried to download it to the blank ATMega328 on the Uno board using the "Upload Using Programmer" option in the IDE.
The upload seemed to work with no errors shown. However the program did not run. I pressed Reset on the Uno board and still no luck.
After a bit of headscratching I used the "Burn Bootloader" option on the Arduino IDE, still using the ArduinoISP as the programmer.
This worked without any problem. Once this was done the Blink program ran correctly.
I was under the impression that the Bootloader wasn't necessary in order to run programs if the programs were loaded via an ISP.
My suspicion is that something is missing in a blank 328 chip and that this is installed with the bootloader. I'm guessing that this might be fuses for oscillator selection or similar - or it might be that the bootloader specifies a particular location to load the sketch.
Does anybody have an explanation for why the addition of the bootloader would make the Sketch run?
I'm used to Microchip PICs but love the simplicity of the Arduino programming interface and the availability of the Arduino forums to get help.