Electronic – arduino – How to graduate from Arduino to using a microcontroller directly


I've been working on an Arduino project. After I get everything working using the Arduino, I would like to move to a solution that does NOT use Arduino. That is, I would like to use a microcontroller without involving the Arduino board. This will allow a single board, no shield solution.

I know there are methods to make my own Arduino on a breadboard, but that's not really what I'm trying to do.

I'm not really how sure how to do this.

Unless there is a better option, I'm leaning towards using the ATmega328, which is used by the Arduino. I understand that development tools are available free or at least not very expensive.

For the purpose of this question, assume I can get +5V to my circuit.

My first question is how to program the MCU. I believe there are two options:

  1. Buy a programmer, program the MCU, and then place the chip in my circuit.
  2. Design my circuit to include support for in-circuit programming.

I'm assuming that if I go with option #1, it's as simple as inserting a programmed chip in my circuit; I don't need anything else. Of course changing the software would be inconvenient.

But for option #2, I'm not sure what I need. From the bit of reading I've done, I think I need a programming cable, and a connector on my board (what type?). Then I guess I (properly) wire the connector to certain pins on the ATmega.

Either way, I will need Atmel studio.

Second, other than the power supply, is there anything on the Arduino that I absolutely need? I guess maybe a reset switch?

Best Answer

Welcome to the wonderful world of Atmel. Let me offer you some answers to your questions based on my hobby and professional experience.

Do not bother with anything BUT in-circuit programming. Unless you are a perfect coder, removing a chip every time you want to program it is a nightmare. I recommend the AVRISPmkII as an entry level programming tool. The disadvantage is there is no hardware debug supported. An alternative is the dragon but I have no experience with that. I can say that the JTAGICEmk3 is a nice capable debug tool.

Atmel studio is good for programming. It is actually my favorite embedded development environment. You can use CLI tools such as AVRDUDE and AVR-GCC but the IDE takes care of that for you.


Buy an AVRISP for just programming (easier, plug&play) or a DRAGON (I can not offer advice).

On your board, bring out the ICSP pins to a 6-pin dual row 0.100" header -- the connections are described in this datasheet.

Reset switches are not needed.