# Using ATMega328 on breadboard

**URL:** <https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221>\
**Category:** General Guidance\
**Created:** [January 27, 2012, 4:12pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221 "2012-01-27T16:12:22Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 27, 2012, 4:12pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/1 "2012-01-27T16:12:22Z")

</div>

Hi all. I'm working on a project and have opted to use an Arduino for development. The chip will be on a PCB in the end but I only have +-2.5 V rails to my disposal. Will the ATMega that I took off my Arduino Uno be able to run off of 2.5V VCC (using the external 16MHz clock)? If not, would I be able to connect the GND of my Arudino to the -2.5 rail in order to achieve the required 5V drop? I haven't been able to find any material on the atmega chips to give be a definitive answer. Obviously, my other option is to burn a bootloader onto my chip that uses the internal 8MHz clock but I am incredibly pressed for time and found out about 5 minutes ago that I cannot use my Uno as an ISP which really limits my options.

Hopefully someone can help me out with an answer!

Thanks.

---

<div class="post-metadata">

**Author:** ![johnwasser](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/johnwasser/32/214270_2.png) [@johnwasser](https://forum.arduino.cc/u/johnwasser)\
**Post date:** [January 27, 2012, 4:43pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/2 "2012-01-27T16:43:51Z")

</div>

As long as the +2.5 and -2.5 rails have a common Ground and you DO NOT CONNECT THAT GROUND TO ANYTHING CONNECTED TO THE ATmega you can use the -2.5 rail as Ground and the +2.5 rail as +5.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 27, 2012, 4:49pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/3 "2012-01-27T16:49:23Z")

</div>

Ok, that's what I was hoping. Now, just to be completely clear, I am using 2.5V as a reference for my analog reads. If I am using the -2.5V rail as ground, I will have an analog reference range of 5V (from +2.5 to -2.5), correct?

---

<div class="post-metadata">

**Author:** ![johnwasser](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/johnwasser/32/214270_2.png) [@johnwasser](https://forum.arduino.cc/u/johnwasser)\
**Post date:** [January 27, 2012, 5:08pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/4 "2012-01-27T17:08:24Z")

</div>

As far as the Arduino knows it's power is 0 and +5. If you feed your 'Ground' wire to an analog input it should get a value around 512 (1/2 full scale or +2.5V)

---

<div class="post-metadata">

**Author:** ![John\_S](https://avatars.discourse-cdn.com/v4/letter/j/a9a28c/32.png) [@John\_S](https://forum.arduino.cc/u/John_S)\
**Post date:** [January 27, 2012, 7:46pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/5 "2012-01-27T19:46:01Z")

</div>

You can use a UNO as an ISP. I wish someone would correct that page!

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 27, 2012, 8:25pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/6 "2012-01-27T20:25:51Z")

</div>

You can? I was trying and I kept getting avrdude errors. Had the ISP sketch and the boards.txt files all updated and it still didn't work so I just assumed that the page was still relevant. Do I just follow the same steps outlined in the tutorial or is there something special that needs to be done?

---

<div class="post-metadata">

**Author:** ![johnwasser](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/johnwasser/32/214270_2.png) [@johnwasser](https://forum.arduino.cc/u/johnwasser)\
**Post date:** [January 27, 2012, 8:32pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/7 "2012-01-27T20:32:51Z")

</div>

> fronzbot:  
> You can? I was trying and I kept getting avrdude errors. Had the ISP sketch and the boards.txt files all updated and it still didn't work so I just assumed that the page was still relevant. Do I just follow the same steps outlined in the tutorial or is there something special that needs to be done?

Be sure to disable the auto-reset on the UNO. After uploading ArduinoISP connect a 1 to 10 microfarad capacitor from Reset (+) to Ground (-) or, alternatively, connect a 100 to 120 ohm reeitor from Reset to +5V.

---

<div class="post-metadata">

**Author:** ![John\_S](https://avatars.discourse-cdn.com/v4/letter/j/a9a28c/32.png) [@John\_S](https://forum.arduino.cc/u/John_S)\
**Post date:** [January 27, 2012, 10:50pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/8 "2012-01-27T22:50:02Z")

</div>

FWIW, I don't need a resistor or capacitor. I don't know why if everyone else does?

1. Upload the ISP sketch to your UNO
2. Close the IDE (I'm using 0023)
3. In preferences change _upload.using=bootloader_ to _upload.using=arduinoisp_
4. Reopen IDE, select the board version you want to upload to (nano, UNO, attiny, ect. I use UNO when it's a standalone 328)
5. Connect all appropriate wires from your UNO to the board you want to upload to.
6. Upload your sketch with the upload button.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 28, 2012, 6:11am UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/9 "2012-01-28T06:11:17Z")

</div>

> johnwasser:  
> Be sure to disable the auto-reset on the UNO. After uploading ArduinoISP connect a 1 to 10 microfarad capacitor from Reset (+) to Ground (-) or, alternatively, connect a 100 to 120 ohm reeitor from Reset to +5V.

Hmm, I've tried the resistor to high but not the cap to low. I'll give that one a go when I get a chance, thanks!

> John\_S:  
> FWIW, I don't need a resistor or capacitor. I don't know why if everyone else does?
> 
> 1. Upload the ISP sketch to your UNO
> 2. Close the IDE (I'm using 0023)
> 3. In preferences change _upload.using=bootloader_ to _upload.using=arduinoisp_
> 4. Reopen IDE, select the board version you want to upload to (nano, UNO, attiny, ect. I use UNO when it's a standalone 328)
> 5. Connect all appropriate wires from your UNO to the board you want to upload to.
> 6. Upload your sketch with the upload button.

Perhaps there's a bit of a mis-communication here. The chip I will be using does not have a bootloader. The steps you listed seem fine for a chip that already has a bootloader but mine will not which is why I wanted to use the Arduino as an ISP. Aside from the preference file changes (I changed it right in the IDE) I already performed those exact steps to no avail, unfortunately.

---

<div class="post-metadata">

**Author:** ![John\_S](https://avatars.discourse-cdn.com/v4/letter/j/a9a28c/32.png) [@John\_S](https://forum.arduino.cc/u/John_S)\
**Post date:** [January 28, 2012, 2:00pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/10 "2012-01-28T14:00:58Z")

</div>

I don't use a bootloader either. That's why you need to change the preferences.txt file to reflect that. I don't know how you change the preferences in the IDE. You have to exit it, change the preferences, save the preferences file, then reopen the IDE.

To program without a bootloader, make your connections like this: (the LEDs are not required for it to work)

> **[How to Program a AVR (arduino) With Another Arduino](https://www.instructables.com/How-to-program-a-AVR-arduino-with-another-arduin/)**
>
> How to Program a AVR (arduino) With Another Arduino: This instructables is usefull if:
> 
> \* you've got your arduino with atmega168 and you bought an atmega328 at you local electronics store. It doesn't have an arduino bootloader
> 
> \* you want to make a...

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 29, 2012, 8:47pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/11 "2012-01-29T20:47:00Z")

</div>

Thanks John S! I'll have to give that a go!

John Wasser- just so I don't blow something up in testing, is the following schematic (in terms of power rails) correct for a +-2.5V supply?

 ![](https://europe1.discourse-cdn.com/arduino/original/4X/6/0/6/606509cd1efd8061b9fcfeebecd716d7f4e540b0.png)

Thanks for the copious amounts of help to the both of you.

EDIT - I should probably have an LPF on that AREF pin, I'll add that into the schematic. Oops.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 5, 2021, 4:37pm UTC](https://forum.arduino.cc/t/using-atmega328-on-breadboard/87221/12 "2021-05-05T16:37:10Z")

</div>

Closed on May 5, 2021, 4:37pm UTC


