ATMEGA328P STANDALONE CUSTOM PRINTED CIRCUIT BOARD

Hey guys,

So I plan to make an arduino board on a custom made PCB. Attached it the schematic of what I plan to do.

This is the chip that I am buying.

I also have an Arduino Uno that can be used as an ISP programmer.

I also have the USB2Serial programmer found here:

Now the chip that I am buying obviously has no software on it. I want to know how I will be able to program the ATMEGA328P and what pins and hardware will be needed.

Can I use the Arduino as an ISP to burn the bootloader on it, then use the USB2Serial programmer to flash programs onto the chip?

Also, does anyone know what temperatures the chip can withstand in a reflow oven for soldering the chip onto a board? Using CR11 solder. Apparently 300 Degrees Celcius would be okay?

Thank you.

Have you search for any of the standalone or Bare Bones tutorials out there? It literally walks you through all steps.

There are TONS.. find one that you relate to.

Also that chip looks a bit suspect.. it states 328.. but has a picture of a 325?
.. most chips run @ 16MhZ or 8MhZ with their respective crystals or internal clock

xl97:
Have you search for any of the standalone or Bare Bones tutorials out there? It literally walks you through all steps.

https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
https://www.arduino.cc/en/Main/Standalone

There are TONS.. find one that you relate to.

Also that chip looks a bit suspect.. it states 328.. but has a picture of a 325?
.. most chips run @ 16MhZ or 8MhZ with their respective crystals or internal clock

I have received the chip and it shows a 328 on the top, not 325.

I know those tutorials would work for the breadboard, but would it be the same when using a chip on a PCB?

Pretend I just about completed my PCB. I then try to program the bootloader using the Arduino as an ISP but it doesn't work or detect the chip. Would there be a way to check that the barebones ATMEGA328P on the breadwork is actually working and is not fried etc?

Also, if there was a short between 2 analog input pins, would this cause any damage or problems to the working of it?

Please do this:

  • File > Preferences > Show verbose output during: > compilation (uncheck) > upload (check) > OK
  • Tools > Burn Bootloader
  • After the process fails you'll see a button on the right side of the orange bar "Copy error messages". Click that button.
  • Paste the error messages in a reply here USING CODE TAGS (</> button on the toolbar).

Nurul15:
Also, if there was a short between 2 analog input pins, would this cause any damage or problems to the working of it?

If you set one to output and HIGH and the other to output and LOW that would exceed the current limits. Otherwise, no problem.

pert:
Please do this:

  • File > Preferences > Show verbose output during: > compilation (uncheck) > upload (check) > OK
  • Tools > Burn Bootloader
  • After the process fails you'll see a button on the right side of the orange bar "Copy error messages". Click that button.
  • Paste the error messages in a reply here USING CODE TAGS (</> button on the toolbar).

If you set one to output and HIGH and the other to output and LOW that would exceed the current limits. Otherwise, no problem.

Arduino: 1.8.4 (Windows 10), Board: "Arduino Nano, ATmega328P"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM1 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2014 Joerg Wunsch

        System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

        Using Port                    : COM1
        Using Programmer              : stk500v1
        Overriding Baud Rate          : 19200
        AVR Part                      : ATmega328P
        Chip Erase delay              : 9000 us
        PAGEL                         : PD7
        BS2                           : PC2
        RESET disposition             : dedicated
        RETRY pulse                   : SCK
        serial program mode           : yes
        parallel program mode         : yes
        Timeout                       : 200
        StabDelay                     : 100
        CmdexeDelay                   : 25
        SyncLoops                     : 32
        ByteDelay                     : 0
        PollIndex                     : 3
        PollValue                     : 0x53
        Memory Detail                 :

                                 Block Poll               Page                       Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
          eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
          flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
          lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
          hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
          efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
          lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
          calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
          signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

        Programmer Type : STK500
        Description     : Atmel STK500 Version 1.x firmware
        Hardware Version: 2
        Firmware Version: 1.18
        Topcard         : Unknown
        Vtarget         : 0.0 V
        Varef           : 0.0 V
        Oscillator      : Off
        SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xffff00
avrdude: Expected signature for ATmega328P is 1E 95 0F
        Double check chip, or use -F to override this check.

avrdude done.  Thank you.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

You may choose pcb manufacturing on https://www.raypcb.com/ what you want. They can produce new PCB for you, or do it on your project

CalShaw:
You may choose pcb manufacturing on https://www.raypcb.com/ what you want. They can produce new PCB for you, or do it on your project

BOM Template for PCBA is a broken link...

might want to fix that before advertising your services here...

Search for the totorial by nick gammon, works flawlessly. And yeah, from breadboard to pcb is the same.... Just a little smaller

Nurul15:
So I plan to make an Arduino board on a custom made PCB. Attached it the schematic of what I plan to do.

Why waste your time? Cheaper to purchase some Pro Minis and mount them as daughter-boards with the pins supplied.

Still, if you are insistent on making it difficult, here is Nick Gammon's tutorial.

Nurul15:
Can I use the Arduino as an ISP to burn the bootloader on it, then use the USB2Serial programmer to flash programs onto the chip?

Also, does anyone know what temperatures the chip can withstand in a reflow oven for soldering the chip onto a board? Using CR11 solder. Apparently 300 Degrees Celcius would be okay?

Thank you.

  1. Yes.
  2. The chip will handle normal and abnormal soldering temperatures for leaded solder. You have to be more careful if using lead-free. If your customer doesn't require CE or other certification on the board, just use leaded.

If you design a PCB to take a small Arduino such as a Teensy or Micro then you don't need the USB-serial converter and you don't need SoftwareSerial either. Those chips have enough hardware Serial to do what your schematic shows. It also makes debugging a hundred times easier when you can test the sub-boards separately.