Introduction: Make Your Own Arduino | ArduinoISP| Learn to Burn Boot Loader Into ATmega328P-PU (UPDATE)

Hello!!

In this Instructables we shall learn to use Arduino Uno Board as an AVR ISP( In-System Programmer).This allows you to use the Arduino to burn Bootloader onto AVR like ATmega328P-PU or ATmega168.

This helps you to make your Arduino at home for very inexpensively and very easily. The Cost of your project can be reduced and the bulky circuit board of Arduino can be minimized because we are using the ATmega328P-PU chip as standalone device.

Update*

In the update i have added steps to make PCB of ATmega328P which resembles Arduino.

You can watch my video for better understanding of the steps to make your Homemade Arduino.

Lets Begin!!!!

Step 1: Materials Required

The list of Components required for building your own arduino on breadboard is given below

Arduino UNO (or any compatible board)

ATmega328P-PU

28 Pin DIP IC holder socket

16 MHz Crystal

47 uF Capacitor

22 pF Capacitor x2

100ohm+10ohm = 110ohm Resistors

Bread Board

Connector Wires

LED

220 ohm resistor

10 Kohm resistor

Pref Board (General Purpose PCB)

Soldering Kit (Iron, Flux,Solder)

Terminal Strip

Step 2: Upload the ArduinoISP Sketch

Before we proceed make sure you have ATmega328P-PU and Not ATmega328-PU. Because the device signature of both the Micro Controller chips are different. So this method of burning Boot loader will not Work for IC's With different device signature.

First step is to upload the ArduinoISP Sketch into Arduino UNO Board. Follow the instructions

1) Open the Arduino IDE

2) In Examples open ArduinoISPSketch. Path: File>Examples>ArduinoISP

2) Connect the Arduino Uno board to USB of your PC.

3)Select the appropriate Board (Ex: UNO) and COM Port (Ex:COM6). Path: Tools>Board>Arduino UNO

4) Upload the sketch to Arduino UNO

Step 3: Make Circuit to Burn Boot Loader Onto ATmega 328P-PU

You Can Skip this Step If your Micro Controller chip already has boot loader as stated by Manufacturer/supplier.

Making the Circuit

1) Make the circuit connections on breadboard as shown in the above diagram.

2) The breadboard connections and also the schematic is given.You can follow whichever is comfortable for you.

3) I have attached the Eagle Schematic file and Fritzing file for more clarity of content.


Follow the steps to Burn Boot Loader onto new AVR( ATmega328P-PU)

1) Connect the Arduino UNO to USB of your PC

2) Select the appropriate Board and Com Port ( Try Arduino Duemilanove if UNO Doesn't work)

3) In tools menu select ARDUINO AS ISP Programmer. Path: Tools>Programmer>Arduino As ISP

4) Go to Tools and select Burn Boot Loader. Path:Tools> Burn Boot Loader

5) This may take up to a minute and the message " Done Burning Boot Loader" will be displayed.

After this you can remove all the connecting wires and connections and your new AVR Micro Controller is ready to be used as standalone device for your projects.

Step 4: Test the New Microcontroller

This step is to verify the working of Micro Controller. We can test it by uploading the a simple Blink program to blink an LED connected to the Micro Controller.

Objectives

#We need to first Upload the Arduino Sketch to New MC.

#Transfer the MC to required Application.


Upload the Blink program to New MC IC. Follow the steps below.

1) Remove the original Micro controller IC from the UNO Board.

2) Place the New IC( ATmega328P-PU)on the Arduino Uno.

3) Connect the Arduino to PC and Select Appropriate Board and COM Port.

4) Change the programmer from 'Arduino As ISP' to 'AVRISP mkll'

5) Upload the Blink sketch Available in the Examples. Path: File>Examples>Basics>Blink

6) Remove the Micro Controller after uploading is done.


To test the MC on Breadboard as Standalone device_________

1) Make the Circuit diagram as shown in the circuit diagram. The bread board connections are also shown.

2) Use Arduino 5v point and GND as power supply for MC.(5V Regulated power supply can also be used)

3) The Pin Mapping for the Arduino Is given. Make the circuit connections according to the Arduino mapped pins of ATmega328P-PU.

YES!! You have successfully made an Arduino On Breadboard and this can be used for your various projects.

Step 5: Making the Arduino PCB

In the previous we have successfully made an Arduino on breadboard. But we cannot keep rigging up the circuit on breadboard every time whenever required.

So I decided to make a PCB to make permanent connections for Homemade Arduino.

Follow the Steps below to make the PCB

1) Refer the circuit diagram and make the circuit connections on General Purpose PCB(Pref Board).

2) Solder all the components and make sure you add an IC holder because we will have to remove the IC Repeatedly for programming it.

3) Solder the Female Header Pins for external connections. Refer to the pin diagram and circuit diagram for Arduino pin out for ATmega328p.

4) Up to 15 volt can be applied to the regulator 7805 or 5V supply can be used for Micro Controller.

Step 6: Conclusion and Few Notes.

You have successfully built an arduino on breadboard and this can be used for your various project.

TroubleShoot

1) Check your Circuit connections and components (mainly Crystal) if burning Boot loader does not work.

2) Make sure you are using ATmega328P-PU and not ATmega328-PU.

3) Check the USB Cable.

4) If the Micro Controller is heating up when powered probably you have a faulty IC.

Advantages

  • costeffective
  • Easy to use
  • Compact circuit
  • Low Power Consumption
  • Flexibility in PCB Layout designing and requires any Shields for Arduino.

Disadvantages

  • Cannot be used for projects where serial communication is required between several modules.
  • This is because USB to Serial Converter is not used here.

The link for the Eagle Software to open schematic files

http://www.autodesk.com/products/eagle/free-downlo...

If You come across any doubts please feel free to leave me a message about the issue in the comments section.

If you make one like this, please post the images of your make by pressing " I Made It! " Button in comments.

Thanks a lot for reading and Hope this helps!.

_The Technocrat

H S Sandesh Hegde

Comments

author
misterxp made it! (author)2017-07-10

Thanks for your post. I used some infor from you and some info from Nick Gammon. I managed to programme my board using an FTDI serial interface but had to change the settings as per photos. Now I can upload sketches too. To programme bootloader I use an Arduino UNO and the information on the website of Nick Gammon:

http://www.gammon.com.au/forum/index.php?bbtopic_i...

so thanks to both of you !

WP_20170710_23_11_21_Pro.jpgWP_20170710_23_11_33_Pro.jpgWP_20170710_23_12_05_Pro.jpgWP_20170710_23_12_15_Pro.jpg
author
MRX_22 (author)2017-03-07

this is awesome !! very helpfull for my projects, but i still confuse how to upload the new sketch/source code to a homemade arduino ?? pls explain that :( thanks so much

author
The_Technocrat (author)MRX_222017-03-07

To program the new home made arduino, place the new microcontroller chip in your original Arduino and upload the sketch as usual. Later you can use that new chip anywhere in your projects. Further help leave me a comment .

Thankyou

author
MRX_22 (author)The_Technocrat2017-04-18

do you use 7805 as regulator ? if yes what voltage can i use for the input?

cause i try to give 9V for input and the output blinking, i dont know whats wrong, can you give me teh schemaatic? thx for all your help :)

author
The_Technocrat (author)MRX_222017-04-19

Yes I have used 5v regulator 7805 . U can use input voltage anywhere between 7.5v to 18v.
For the schematic please refer step 5 .. I have uploaded the breadboard schematic.

Thankyou.

author
dvh007 (author)2017-03-29

Thanks sir, your project is good and I ordered some parts but can i put reset button in this project? Because similar projects using atmega168 dip 28 he added reset button with resister. So confirm that it should be ok for this project?

author
The_Technocrat (author)dvh0072017-03-29

You are welcome sir!
You can add reset button connnet to pin 1 and ground.. and the pull up resistor to pin 1 and vcc.

author
dvh007 (author)2017-03-29

Hello sir, can I work with NRF24L01 in this arduino board? I am unexperienced so please help me.

author
The_Technocrat (author)dvh0072017-03-29

Yes you can connect external sensor and modules to this Arduino..
But you cannot connect this to your computer directly... As there is no usb to serial converter (rs232) .

author
binaryhub (author)2017-03-01

well done!!

author
The_Technocrat (author)binaryhub2017-03-02

Thanku!

author
DavidV12 (author)2017-02-22

Do not connect AREF to Vcc. It serves no useful purpose.

author
The_Technocrat (author)DavidV122017-02-22

If you want to use analogReference() function Aref should be connected to reference voltage(0-5v) . It is recommended to use atleast one analogRead() if u use analogRefrence()

author
DavidV12 (author)The_Technocrat2017-02-22

No, have you actually read the datasheet?

Connecting to a normal, non-precision external reference voltage that's the same as your Vcc serves absolutely no purpose.

If you had a separate, calibrated 5V from a precision source it would make sense to feed that into AREF but feeding Vcc in is going to get you the exact same reference as using the internal.

author
The_Technocrat (author)DavidV122017-02-23

Hi David! you are right . I built the circuit with some misconsuption. However there is no faults in working.
Thanks a lot for correcting me.

author
RuiMonteiro made it! (author)2017-02-23

I did something like this but with a mini breadboard added to the DIY Arduino Board. I used a FTDI TTL adapter and also it is possible to use an Arduino Nano in this 6*8cm Prototype board to simplify things a lot!

20170223_135757.jpg
author

Thankyou for sharing your build. Nice one!!

author
robertbu (author)2017-02-22

Thanks for the Instructable. I've read elsewhere that instead of wiring the UNO to the new build, you can just swap chips to burn the bootloader and to program the chip. True? On my to-do list is building one of these with a 4 MHz crystal so it can be run on 1.8v.

author
The_Technocrat (author)robertbu2017-02-23

You r welcome.!! U can burn bootloader by just swapping the ic But make sure TX and RX pins are not connected to anything .
Sorry I am not sure about 4MHz crystal.
Thanks !!

author
Nick_Tesla (author)robertbu2017-02-22

Yes it is possible however the legs of the chip are very weak. Its worth it to wire it up seperatly , since youll need to do that to use it anyway.

author
Sampad66 (author)2017-02-22

Awesome well done..