How to Make Arduino Board: The Easy Way

 

Make Arduino board and Bootload

DIY : Make Arduino board and Bootload

Want to save money by making your own arduino clone boards? Or want to make a custom board specifically for your needs, then this DIY project is for you. Make arduino board from cheap electronic components available at your local store. Just follow these simple step by step instructions. DIY : Make arduino board and bootload ATmega chip. Have fun with this DIY hacking tutorial!

What are the stuff required to do this project?

Hardware :

  1. An arduino bootloader ATmega328/168 or any compatible Atmel IC. Or a blank ATmega328 , ATmega168 , ATmega 8 IC or any other compatible Atmel chips.
  2. LM7805 IC.
  3. 16 Mhz crystal.
  4. Tactile button.
  5. Led’s.
  6. Capacitors – 22pF (2 Nos), 10uF (2 Nos), 0.1uF (2 Nos).
  7. Resistors – 220Ohm (2 Nos), 1k (2 Nos).
  8. Pin headers (Male).
  9. 28 pin IC socket.
  10. Avr pocket programmer (Optional , only if uploading bootloader).

Software :

  1. Arduino IDE : Arduino.
  2. Terminal for linux users and Command prompt for windows.
  3. Avrdude.

Tools :

  1. Soldering iron.
  2. Solder lead.
  3. Prototyping solder dot board / breadboard or materials to etch your own board.

Step 1 : Connecting the components together to make arduino board

Make arduino board and bootload

Arduino on breadboard

You can either etch a pcb to make your custom board or use a prototyping dot board to merely solder the components on it. Or even arrange them on a breadboard. Connect the components with each other just like in the diagram below. There are only a very few components required to make your custom arduino board. A voltage regulator to supply 5V to arduino. it’s supporting circuitry to filter the voltage; then a 16Mhz cystal along with it’s parallely connected 22pF capacitors that acts as the clock to the arduino. And an led connected to pin no 19 of the ATmega , for testing purposes.  Use the schematic if you want to etch your own pcb. Modify the schematic to make arduino board suited for your project. Use this eagle schematic file if you want to make a custom pcb : DIY Hacking arduino schematic.

Make arduino board and bootload

Custom arduino schematic: Make arduino board

Step 2 : (Optional step) Uploading the bootloader to the blank ATmega chip

This step is for those who have a blank ATmega chip and want to upload the arduino bootloader to it. Others who already have an arduino bootloaded chip can ignore this step and merely insert their chip based on the schematic in the above step. Here you can either use another arduino to bootload the blank chip or use an AVR pocket programmer. I will explain both the methods as follows :

Using an AVR pocket programmer :
Make Arduino board and bootload

Arduino and AVR programmer connections

I personally prefer uploading the bootloader using this method as it works most of the time. You just need to buy an AVR pocket programmer. Once you have that, you will be able to burn the bootloader to various types of ATmega chips .Insert the blank chip to the socket of an arduino board.  Connect the programmer to arduino as in the diagram above.

Go to your installed arduino folder -> hardware -> arduino -> boards.txt . Then check the document for your chips name and the bootloader (Duemilanove / Uno) (this step can be ignored if your using  blank ATmega328P chips). Check the values of the following parameters on it : efuse, hfuse and lfuse. Now we will set the fuse bits for the blank chip. Open the command prompt (windows users) or terminal (linux users) and paste the following commands :

NOTE : Substitute the value for efuse, hfuse and lfuse parameters after checking the boards.txt file and edit “m328p” in the below command to your chips name only if it is not an ATmega328 IC.

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m  

Next, use the command below to upload the bootloader or your hex program file. Go to the path of your program file or bootloader (/hardware/arduino/bootloaders/atmega) from the command prompt or terminal and instead of “hexfilename.hex” substitute the name of your file.

avrdude -b19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

Now the file will be successfully uploaded to the ATmega chip.

Using another arduino as ISP :
Make arduino board and bootload

Arduino as ISP

If your using another arduino to bootload the chip then make connections as per the diagram above. You will also need two arduino boards for this : one will be a working arduino board and in the other one the blank ATmega chip needs to be inserted. We will be using the ICSP (In Circuit Serial Programmer) pins of the arduino for this. After making the connections shown connect the working arduino to your PC. Next, open the arduino IDE and go to the tools menu; select burn bootloader and from it’s options click on w/ Arduino as ISP.  Now the chip will be bootloaded with arduino. This method works only if you have the correct chip specified in the boards.txt file and works only rarely. Hence I always prefer the first method.

Step 3 : Uploading the code and using the board

Now you have an arduino board with an arduino bootloader ATmega chip. Now use the Rx, Tx and Gnd pins to connect to a USB-UART TTL converter which can be used to connect to your PC. Or just insert a chip that has been uploaded with the program (from an arduino board) into this board’s socket. DIY: Make arduino board and bootload ATmega chip.

Recommended Posts
Showing 35 comments
  • Redwan
    Reply

    Hey i am a beginner… i dnt hv that much ideas about robots and arduino.. i m not used to the term Servo motors..or what they say..can i use a geared motor instead?? or both are the same??

  • moin
    Reply

    how to identify the MISO SCK RST (the six pins on the arduino u made on the breadboard

  • bob
    Reply

    3

  • Yay!!
    Reply

    Is it possible to use ATmega 8051 instead the micro-controllers mentioned above?

  • Abraham NY
    Reply

    Hy
    First of all thanks for sharing wonderful ideas :D
    i made it and its working well , I tried the blink LED and works fine
    but when i try to make a bluetooth porject its not working , I made an android app which ON/OFF a led through a smartphone , it works well on arduino uno board
    but when i programmed the atmega8 with that code it is not working can you suggest me any solutions for the problem

    I am using atmega8 ,and HC05 bluetooth module

    thanks in advance :)

  • ved
    Reply

    Can I use 14mhz crystal in my arduino

  • Akash
    Reply

    hello arvind,
    which chip are you used in step 3,
    tell me as soon as possible.

  • Dibyo Das
    Reply

    It all works out ! Thanks a million ! You saved me a lot of money .
    God bless you.
    Till later….
    Khuda Hafiz !

  • Dibyo Das
    Reply

    Link to the .pdf is as :

    https://docs.google.com/file/d/0B3madpyZps1dV3RUQTBaSHJJdEk/edit?usp=docslist_api

    I just need to use the arduino IDE and digital pins – 8,9,10,11,13,vcc,gnd of an ARDUINO DUMILANOVE.

    Can it be done using the above board with uc replaced with an an arduino bootloaded chip ?

  • Dibyo Das
    Reply

    Apparently , their website is offline , so ,I am copying the pdf manual that they gave as I could not find a way to send the pdf file to you !
    THE .pdf Reads :

    Robomart.com
    http://www.robomart.com/
    PRODUCT NAME : Atmega8 mini Robotics Development Board V4.0
    MODEL : RM0006
    PRICE : Rs 1,190.00
    SKU : RM0006
    WEIGHT : 100
    STOCK : In Stock
    MANUFACTURER : Robosapiens India
    DIMENSIONS(LxWxH) : 89 x 89 x 10
    DESCRIPTION
    Atmega8 mini Robotics Development Board V4.0 is a complete starter kit and development system for the AVR Atmega8
    microcontrollers from ATMEL ® Corporation. It is designed to give designers a quick start to develop code on the AVR.
    The Atmega8 mini Robotics Development Board V4.0 is based on our 28 pin development board which is compatible with many of
    the Atmel AVR microcontrollers. In some ways the kit is similar to an Arduino but with loads more flexibly. This kit is an easy and
    low cost way to get started with microcontrollers. Included on board is an Atmega8 microcontroller, external crystal with supporting
    capacitors, AVCC filter parts, a USB B type Connector , Power supply parts and more. The Controller used is an 8-bit
    microcontroller with 8KB of flash, 1KB of RAM and 512 bytes of EEPROM. It has 23 I/O lines, 3 PWM channels and a 6 channel
    10-bit AD Converter. It sports dual 8-bit Timers each having separate prescalers and compare modes. Additionally it has a single
    16-bit timer with a separate prescaler, compare and capture mode. The Atmega8A is a feature packed and very versatile
    microcontroller. The controller comes with Inbuilt Robosapiens BootLoader that makes it easily programmable and we do not need
    any prerequisite drivers for the board. The board takes Input which can be either Analog or Digital in nature.
    On board we have PIN extensions of all the parallel I/O line available with the micro controller to make the peripherals plug n play.
    On board Piezo Buzzer connceted for audio interface. The board comes with inbuilt DTMF decoder IC module add-on Shield.
    When it comes to the sensors interfacing, the board is compatible with all the Digital / Analog sensor modules. For better
    interaction with the user the board comes with prefabricated 4 Bit LED for quick monitoring of I/O Port Outputs.
    With all these features this board can be used to realize more than 25 working robotic projrects.
    Applications:
    I2C Protocol
    SPI protocol
    Analog to Digital conversion
    PWM generations ( for Servos)
    Programmable Watchdog Timer
    Line following Robot
    Obstacle Avoiding Robot
    Light Searching Robot
    Edge Avoiding Robot
    Cell phone Controlled robot (DTMF Based)
    1 / 4

    Robomart.com
    http://www.robomart.com/
    and many more……..
    Specification
    General Characteristics
    Type Robotic Development Board
    Product ID RM0006
    Dimension (89 x 89) mm
    Weight 60 Gms
    Control Circuit
    Controller ATmega 8 / 8L
    Clock Frequency Upto12MHz
    Data Communication Parallel
    Motor Driver On Board L293D Dual H Bridge Motor Driver Circuit
    Sensor Interface Analog / Digital Sensors
    Display On Board 4 Bit LED
    Parallel Interface 23 Programmable Parallel I / O Pins
    Serial Interface N / A
    Programming Mode USB using BootLoader
    Programming Interface USB Female Connector B type
    Supported Programmers USB Cable using Robosapiens BootLoader
    Softwares Required Win AVR , AVR Studio , Robosapiens HID BOOTFlash
    Input Devices Analog / Digital Sensor
    Cell Phone Controlled On Board DTMF Decoder IC Add on Shield
    External Interrupt
    Source
    N / A
    Power Supply
    Type DC
    Operating Voltage 7V – 24V
    Operating Current Upto 800mA
    Socket DC Jack and PBT Connector
    ADD ONS (Other Peripheral Modules can be interfaced as per need)
    IR based Proximity
    Sensor
    YES
    IR Based Digital 5
    Sensor Array
    YES
    Sound Sensor Add on shield for Sound sensor
    Light Searching Sensor Add on shield for Sound sensor
    DTMF Decoder Module Add On Shield for DTMF Decoder IC Module
    8 Bit Digital Keypad YES
    LM 35 Temperature
    Sensor
    YES ( Using three single Pin Jumper Wire)
    Ultrasonic Sensor YES
    Gas Sensor Module YES
    ADXL 355
    Accelerometer
    YES
    7 Segment LED display YES
    2 / 4

    If this board works, I dont want to buy another board. But still ,could you please send me links to your mentioned arduino clones (the cheaper, the better) ?

    Also , can the same program made on the ardunio IDE be used for several arduino boards (like uno, dumelinove etc…) ?

    Thank you for your time.

    • Arvind Sanjeev
      Reply

      This is just one of the several: http://www.ebay.in/itm/like/331442658681 Try searching online you will get cool deals. Also, I am unable to make out whether the board you have is compatible for arduino since I cant see the schematic or design files.

      • Dibyo Das
        Reply

        how can i send the .pdf file to you ?

        • Arvind Sanjeev
          Reply

          You can upload it in google drive/dropbox and paste the link here :)

  • Dibyo Das
    Reply

    Hi, I have a Robosapiens_IBOT_mini_V3 board with an atmega 8. But it does not goes with arduino. It works with AVR studio , and its crystal is 12Mhz . If I buy an atmega8 with arduino bootloader chip (Rs. ~230), and replace with the default chip , will it work with arduino ? Please help as I desperately need the arduino IDE for my project and don’t have much money. Appreciate your efforts for people like us. Thanks in advance…

    • Arvind Sanjeev
      Reply

      Hi Dibyo, can you send me the design files or links to this board? I will check and let you know. Also, you can get cloned arduino boards for Rs.700 or make your own arduino board on breadboard.

  • suhail
    Reply

    If ican use this way
    1- firstly put a new chip with bootloader to an aurdino board
    2- then programm it using cable
    3- take it out from arduino and put it diy arduino clone board
    It will work buddy

  • suhail
    Reply

    Aravind,where is the usb port for programming

    • Arvind Sanjeev
      Reply

      You have to use a USB to TTL serial converter for this. Connect the Rx and Tx pins of the board to the USB converter.

pingbacks / trackbacks

Leave a Comment

+ 54 = 58

Start typing and press Enter to search