Atmel 328P design and DIY bootloading

Hello friends,

I wish to start learning how to surface mount an Atmega 328p, and create my own PCB (sorry for any silly questions). First off, is it possible to buy these chips pre-loaded with Arduino Bootloader? If not how does one go about programming such a smaller format chip? Also any guides on what to do / not to do would be very helpful (I’ve heard about compatibility issues with timers etc.). Looking at the PDF of the 328p uc, which pins are used to transfer code / debug, is it the SPI pins or I2C or something else?
I know this is ambitious to do, but any help you guys can provide will help my learning experience!

Links to Femtoduino board and Atmel 328p:

Oh and lastly, I am interested in dropping the clock speed of the CPU to 4 MHz in order to lower power consumption. How difficult would this be to do, while retaining correct timers such as Millis(); I did see a prescaling library that might be able to do this.

Let me know what you guys think!

Go Noles!

You can have SMD chips like the '328 preloaded with software, companies like digikey will do that. You can load it yourself with an ISP adapter like this that you press in place onto the chip and program via the SPI pins (SCK, MISO, MOSI, Reset, Vcc, Gnd) or you can put a header on your card to connect a programmer to, or you can make an adapter cable to connect to whatever IO pins you use on your card. If you use one of the smaller leadless packages, then pre-programming or programming via header connections will be needed.

Changing the clock speed is done on the boards.txt file. Copy the Uno section, give the lines a new name, and change the clock speed from 16000000UL to 4000000UL.

What are "Noles" ?

I wish to start learning how to surface mount an Atmega 328p, and create my own PCB

Waste of time and money.

CrossRoads sells some fine boards (see signature link)

Other boards are available and well supported:

If you are into Chinese junk, the boards are around $4, populated!

Reinventing makes little sense unless you require a uniquely shaped board design or unique board with other components.



I wish to start learning how to surface mount an Atmega 328p, and create my own PCB

Waste of time and money.

But sometimes it's about the journey :)

But sometimes it's about the journey smiley

Yes, ... but I do not think that a nubee is well served by taking a leap over the Grand Canyon (without a jet-pack).

Nolebrain's post language indicates s/he has not achieved the foundation knowledge for a likely good outcome. A few bare-board builds will provide the skill needed in procedure and terminology. At that time, proceeding will likely not even require a post or the question(s) will be very specific.

One cannot be expected to excel in the Calculus until one masters trigonometry.


Could be. I'd suggest learning with the DIP package on a breadboard first. Learn to bootload that, try different clock frequencies (try 8MHz and 1MHz before trying 4MHz), try external crystals and internal RC oscillator.