DIY Bare Minimum Arduino Mega 2560

108K23484

Intro: DIY Bare Minimum Arduino Mega 2560

[2017 Update] Eagle files please click here.

The objective of this project is to create a version of Arduino Mega 2560 board that has lower component count and smaller board size.

Personally to be used for robotics projects that require ATmega2560's 256 KB flash and digital/analog pins, where the size, weight, and USB port location of the original design is not ideal.

References:

Electronics/PCB knowledge provided by:

STEP 1: Prototype

A prototype board was made as proof of concept, the components, placements, and connections are:

  • ATmega2560 chip from an Arduino Mega2560 clone (functional chip and bootloader) removed with a hot-air gun, soldered on to a TQFP100 breakout PCB.
  • Connect all VCC/AVCC (chip pins 10, 31, 61, 80, 100) together and GND (chip pins 11, 32, 62, 81, 99) together.
  • 0.1uF bypass capacitor x 3, connected in parallel to 3 of the VCC/AVCC and GND pairs (chip pins {31,32}, {61,62}, {99,100}).
  • 10k pull-up resistor x 1 connected between RESET (chip pin 30) and VCC/AVCC.
  • LED x 1 and 1k current limiting resistor x 1 connected between D/13 (chip pin 26) and GND, this is same as the Arduino Mega "L" LED, to be us as indicator to test prototype.
  • 16MHz ceramic resonator connected between chip pins 33 and 34, with resonator's ground pin connected to chip's GND.
  • CP2102 USB to UART TTL Module (one that has a DTR pin), with the connections:
    • 0.1uF capacitor x 1 between module's DTR pin and RESET (chip pin 30).
    • Module's RX to D1/TX (chip pin 3).
    • Module's TX to D0/RX (chip pin 2).
    • Module's 5V to chip's VCC/AVCC.
    • Module's GND to chip's GND.

After the driver for CP2102 was installed, a few sample Arduino sketches such as "Blink" and "Fade" were uploaded to make sure the chip was still functioning before designing the board in Eagle PCB.

STEP 2: EAGLE PCB: Revision I

Additional components compared to the prototype board:

  • LED x 1 and 1k current limiting resistor x 1 between chip's AVCC/VCC and GND as power indicator.
  • Schottky diode between CP2102 module 5V input pin and onboard 5V pin, to prevent reverse-current going to computer's USB port when CP2102 module and an external 5V DC power source are connected at the same time.

Specifications/features of the board layout:

  • Total component count on board is 12.
  • Board dimension is 38.1mm x 38.1mm.
  • Connector pins to match CP2102 module.
  • All digital pins and analog pins arranged in sequential order.
  • Mounting holes.
  • 4-layer PCB (failed attempt to route the traces in 2-layer).

STEP 3: PCB Production: Revision I

PCB's were made by a manufacture found on China's www.taobao.com; the cost for 4-layer PCB was 300RMB (45USD) excluding shipping for 10 pieces of 10cm x 10cm board (total of 48 "Naked Mega" produced, with panelizing and extras boards giving by the manufacture), production time was 6 days.

The leaded HASL process was selected for surface finish, this finish is not very flat, thus silkscreen (text and logo...etc.) wasn't pretty; next revision will probably try Electroless Nickel Immersion Gold (ENIG) as the surface finish, cost would be 400RMB (60USD) for the same order.

STEP 4: Solder Components: Revision I

STEP 5: Upload Bootloader

Used an Arduino Uno to upload bootloader onto the ATmega2560 chip, connections:

  • Arduino UNO SS (D10) -> Naked Mega Reset/RST pin.
  • Arduino UNO MOSI (D11) -> Naked Mega MOSI (D51).
  • Arduino UNO MISO (D12) -> Naked Mega MISO (D50).
  • Arduino UNO SCK (D13) -> Naked Mega SCK (D52).
  • Arduino UNO VCC/5V -> Naked Mega 5V.
  • Arduino UNO GND -> Naked Mega GND.

Downloaded Mr. Nick Gammon's Atmega_Board_Programmer, and upload bootlaoder to chip using Serial Monitor of Arduino IDE according to instructions.

STEP 6: Upload Sketch

If the driver for CP2102 was installed, when connected the Naked Mega can be programmed like an original Arduino Mega 2560.

STEP 7: Cost Breakdown

    Cost Breakdown:

    • PCB: $45.6 for 40, $1.14 for 1.
    • ATmega2560: $6-10 for 1 (price fluchuates greatly)
    • 0.1uF 0805 SMD Capacitor: $0.012 for 4*.
    • 1k 0805 SMD Resistor: $0.003 for 2*.
    • 10k 0805 SMD Resistor: $0.0015 for 1*.
    • LED 0805 SMD: $0.1 for 2.
    • 16MHz Ceramic Resonator $0.08 for 1.
    • 1N5819 SOD-323 Diode: $0.0074 for 1*.

    *SMD components purchased in strips containing 100 pieces.

    **Cost per board only if all 40 PCB's were used to make functional Naked Mega due to the fixed cost of PCB production.

    ***Total shipping, taxes and fees was approximately 10(USD) for the above listed orders.

    *****Cost for a pair of 5-pin 2.54 XH connectors plus wires was 0.18(USD).

    A small batch was made and can be purchased on Tindie.

    STEP 8: Design Notes

    • To use the onboard AREF/REF pin, a 0.1uF capacitor must be connected between REF pin and GND.
    • For safer operation, the external power source should have reverse current/polarity protection (e.g. Schottky diode on +5V).

    STEP 9: Test

    A simple test was done by connecting each of Naked Mega's 70 I/O pins (54 digital + 16 analog) directly to a LED's anode (+) with a 1k resistor in series, with all LED's cathode (-) connected to the board's GND.

    The LED's are driven by the board directly, current draw for each LED is approximately 3mA, where the total current draw is around 210mA (3mA x 70); should be under the ATmega2560's max current output of 800mA according to Arduino Pin Current Limitations as well as 500mA output for most USB ports.

    STEP 10: March 2016 Update: Revision I-b

    Changes from previous version:

    • Electroless Nickel Immersion Gold (ENIG) surface finish.
    • Moved .01uF bypass capacitors closer to the microcontroller.

    STEP 11: Stencil for Solder Paste: Revision I-b

    STEP 12: Place Components and Reflow Solder Paste - Revision I-b

    STEP 13: Testing: Revision I-b

    Two testing boards were made with pogo pins (pin type P75-LM2/LM3), one to upload bootlaoder, another to test every pin of the board.

    STEP 14: Robot Made With Naked Mega

    A batch of Naked Mega is available to be purchased on Tindie.

    Thank you for your support.

    63 Comments

    Thanks for sharing the project. I used the design to build a board based on your Revision I-b. I am able to upload the bootloader to the chip, using the Serial Monitor of the Arduino IDE (1.8.15). I have installed the CP2102 driver. When I get to uploading the program to the chip using the FTDI chip, it doesnt like it (the chip has a DTR pin not a RTS). In the Arduino IDE I get the error "stk500v2_ReceiveMessage(): timeout..." (Photo below). To analyse why this happened, I hooked up my oscilloscope probe to the DTR pin and tried to upload the program again. I noticed on the oscilloscope that the voltage doesn't properly go down below 0.9V. On page 360 of the data sheet it mentions that for reset the voltage needs to be 0.2V - 0.9V for at least 2.5 μs (screenshot below). I was wondering if this is an issue with the circuit anyone else faced? It could be an issue with my FTDI chip. Happy to upload a screenshot of what the output of the oscilloscope looks like.

    Great! Thanks for sharing this. BTW-Can you post design files for that AWESOME looking robot?
    Hello Michael, I have created a LoRa P2P pair of Radio’s 2 with Arduino
    1.8.5 IDE. I subsequently updated my Arduino IDE to 1.8.12 and now I
    cannot communicate with my pair of Naked MEGA units via USB??????
    Device Manager shows I am connected to Silicon Labs CP210x USB to UART
    Bridge (COM7), yet I can not communicate to either Naked MEGA module via
    the IDE or Tera Term application since I upgraded??????

    Your thoughts would be greatly appreciated,
    Paul Wilkie
    wipaulmar3@aol.com
    734.550.6763
    Plz robots diagram give me. How do I create a Robot?
    why are we using capacitor between aref and gnd
    Hai, we tried to do a proof of concept of your circuit. Soldered as per your circuit and tried to flash the bootloader. It is detecting the chip when I tried to flash the chip, Atmega 2560 got fried (After a 10 seconds) and the VCC and GND of the chip got shorted. It happend 2 times for me, the 5V voltage is from the Ardunino 5V regulator. PLz help me to solve the problem.
    Pretty cool, so small!
    Nice work! Was wondering if there is a layout for PCB design available. Found one on EasyEDA but that one has some unconnected pins. Also it shows 135 DRC errors. Thanks for any help.
    hey there i am also doing a small project which needs a custom arduino can you please share me the latest schematics of a stable working board (i need analog pins digital pwm pins crystal and resert pin along with usb and usb2uart onboard programmer like in actual arduino mega but i dont want those pins need to add custom jst connections)
    I made one but i am new to pcb designing.
    Thanks a lot for this great instructable!
    Would you mind explaining why not all 5 Pairs of (A)VCC/GND need a 0.1uF cap?

    I have searched thru the Atmega2560 datasheet to find why you added those in the beginning but could'nt find any mention of it.

    Do the i2c lines have pullups? If i were to redesign this and wanted to measure AREF/REF do I need that capacitor?

    Hi! the i2c does not have pull-up resistors. I have never used AREF pin on the Mega2560, you might be able to get a good enough reading but it should be more stable if you add the bypass capacitor.

    voce manda para o brasil???

    I have a problem in that I need to connect both the USB connection and 5V power before my sketch will run on the mega. If I only connect the 5V to the mega then it does not run the sketch properly. But if I connect 5V power to both the Maga VCC input and connect this to the USB power input then it starts up properly. Is it ok to connect the 5V vcc supply to the USB power input?

    Do you offer a completed breakout board with all peripherals already assembled?

    Not sure what you mean by peripherals, but we do offer completed boards for sale on Tinde (out of stock at this moment.

    More Comments