Introduction: Core3duino

About: I have always been one to take things apart to figure out how they work, so most of what I own has been dismantled. If it can't be taken apart or hacked, i'd rather not have it. And I like to do things the che…

This is an addon shield to an addon shield. That's right, you have to have the Core2duino on your Arduino to be able to understand why you would want this in the first place. So once you have your Core2duino saddled up, give this one a shot (you don't technically have to have the core2duino to use this with your arduino or standalone, but only pins that are plugged in will work).

It will fit on any Arduino (including Mega) and allows for an additional shield to be added on top (shield will be connected to the base Arduino) other pins will be free.

It can be powered via the Base Arduino or the VIN pins - power will be routed through the VIN pin from base Arduino and back out as +5v to Core2/3duino.

Why do this? well, the short answer is - why not? You end up with:

3 separate processors
60 input/output of which:
24 digital I/O pins
18 pwm pins
18 analog inputs
including 6 external interrupts

...all for about $25 more than your Arduino. (about $10-12 each) 

Anyways, it only took about an hour to modify the Core2duino Eagle file into this.

This is a fun project to try and the .brd file has adequate spacing for ease with etching.

Most of these instructions are very similar to the Core2duino... differences are noted.

I will be happy to help if anyone has questions.

The next version is likely to have an FTDI programming cable connection for easy in system programming.

Step 1: What You Need to Get Started


1. (1)pc copper clad (3"x4") or assortment
2. (1) 28-pin dip socket
3. 16 mHz crystal resonator w/ built-in capacitor
4. An Atmega168 with Arduino bootloader
5. (2) stackable header set
6. (2) 6-pos female headers (2) 8-pos female headers .1"
7. (4) male pin headers (optional) .1"

Other things needed:

power LED, any size/color
330 ohm-1k ohm resistor for power led
10k resistor for reset button
reset button
.1uf capacitor optional
16v 22uf-220uf capacitor optional

etchant solution (muriatic acid + hydrogen peroxide)
paper towels
scotch brite pads
Laser Printer
magazine paper
rubber gloves
aquarium bubbler

Step 2: Download and Print the Eagle File

You need a Laser printer. Don't try it with an Inkjet as it will not work.  I have heard bad things about Brother laser printers using strange toner that doesn't transfer to copper, but I use a Brother 7020 and it works great. I have tried several different types of magazine paper and i'm sure that most will work, but if in doubt, use Cosmopolitan.

1. Download the  .zip file and EagleCad if you don't already have it.
2. Unzip the .zip file to your computer.
3. Open the .brd file with Eagle.
4. Select the "Layers" option and de-select the "top" layer, leaving the other options as they are.
5. Select Print, make sure you check the boxes "Black" and "Solid" under Options. Then Print to magazine paper.

Carefully cut the printed design to the size of your copper clad. Use a razor blade or scissors, just be sure not to touch the toner with your fingers.

Step 3: Transfer to Copper Clad Pcb

These are the generic instructions that I follow anytime I etch my own PCB's:

You need an Iron, a Scotch-brite pad, a few paper towels, and some Acetone.

Before you start, plug in your iron and turn on to highest setting.

1. scrub copper clad with a scotch-brite pad until shiny
2. use acetone on a paper towel to wipe off copper dust from copper clad
3. repeat step 2 until there is NO visible dust being removed, folding the paper towel after each wipe. re-apply acetone as needed. If you don't get ALL the dust off, it will not transfer.
4. Let dry for a few minutes.
5. pre-heat the copper clad with the iron for a minute or so, using a freshly removed piece of magazine paper (the less pictures the better) between the iron and copper clad.
6. remove iron, and CAREFULLY place print onto the copper and press it down.
7. add another piece of magazine paper between your print and the iron to keep from ripping the print.
8. Press hard with iron, moving every 30 seconds for about 3 minutes.
9. remove iron and let cool for 10 minutes.
10. place in container with warm soapy water for 20 minutes to dissolve paper.
11. remove paper with thumb, scrubbing it until it is all gone and there is only toner left.

12. If you have any smeared tracks, clean them up with a small flat-head screwdriver. If you scrape too much away, use fingernail polish to add some more "toner" where needed.

on to etching...

Step 4: Etch Copper Board

Make a good etching solution:
use 1 part Muriatic Acid (I bought a gallon at Sherwin Williams paint store for $12) to 2 parts Hydrogen Peroxide (the kind you buy at the Pharmacy for $2 a bottle). Always add acid AFTER adding Hydrogen Peroxide.

Use rubber gloves so you don't get burned by the acid.

You only need about 2 cups to etch this size board. It helps if you have an aquarium bubbler and some extra hose to place under the copper while it is etching, as this greatly speeds up the process.

1. mix solution (2 parts hydrogen peroxide, 1 part muriatic acid), and put into plastic container
2. place copper clad into etchant.
3. use bubbler to speed things up
4. when you see that the copper is completely gone, pull it out and wash off with water (outside).

The toner should still be there, and now you can wipe it off with a paper towel and some more Acetone.

Now you should have a copper circuit left, ready to drill holes in.

Step 5: Drill Holes

Now you need to drill the holes in the copper clad board. I recommend using a Drill press, but if you don't have one, a regular drill will work. Try not to cut through any of the traces with the drill bit, as that will make it harder to solder.

This micro carbide drill bit set from Harbor Freight is excellent for the price, as well as a nice drill press if you don't already have one.

Now after you get all those little holes drilled, on to soldering.

Step 6: Solder

Please refer to the pictures below for placement of parts. I can offer a more detailed diagram if anyone is interested.

Note that there are 2 red lines on the Eagle .brd file. These are power traces and need jumper wires placed where the red lines are.

I started by soldering the stackable headers first (center headers, then inside, then outside), since they are slightly harder to access with the soldering iron.

The 3 holes next to the IC are for the 16mHz resonator and it can go in either way (middle pin is ground, so it doesn't matter)

Then I add the female headers. Next the male pin headers. It is helpful to install these with a jumper holding them to an adjacent header pin, so you don't have to hold them while soldering.

Power LED and resistor next, then the 28-pin socket and power screw-terminals.
Then the 10k pull-up resistor for the reset button as well as the button.

Remember the 2 jumper wires.

There are not that many parts on this board and other than the capacitors and power LED, you don't have to worry about polarity while placing the components (you need to plug the IC's in correctly when you are done, but the sockets can go in either way).

Remember, when soldering, to heat the contacts and let the solder melt onto it. If you try to heat the solder directly, you might end up with a big mess.

Step 7: Play!

Now you are ready to use your Core2duino.

Upload some code and see if it works!

I have written a test sketch that turns all digital pins on and back off to test them. Upload the sketch to both Atmega168 chips and check to make sure all pins get power on both chips.

Once you establish that it works, put your thinking cap on and build something that requires 40 I/O pins and then message me and tell me about it!

Be the First to Share


    • Digital Fabrication Student Design Challenge

      Digital Fabrication Student Design Challenge
    • Electronics Contest

      Electronics Contest
    • Frozen Treats Speed Challenge

      Frozen Treats Speed Challenge



    6 years ago

    Hello, Thank you for presenting this work.

    I wonder to know if possible using Core2duino as a dual core microcontroller or not?

    I need to use MC1 (master) for recieving data from Bluetooth and save it in a buffer then reading that data from the buffer using MC2 (slave) for operating 2D matrix LED.

    what do you think? can we use it?

    In this case I can have two buffers, while I am writting in buff1 by using MC1. Reading from buff2 by using MC2 and so on.


    10 years ago on Step 2

    perhaps a bit dumb, but what is 'magazine paper'?
    I presume this needs to be printed by a laser, not an inkjet?

    have you ever considered having the board made by a company such batchpcb and selling them? for those of us who do not want to etch them ourselfs?


    12 years ago on Step 7

     it's amazing, the text on this page is exactly like that on the last page of the core2duino instructable.  BTW, this is overkill.  For the cost of a duemilanove, core2duino and core3duino i could just get an arduino mega, probably easier to use.  I wonder if hackaday will feature this?


    Reply 12 years ago on Introduction

     Yo dawg, we heard you like arduinos, so we put an arduino, on yo arduino, on yo arduino so you can prototype while you prototype while you prototype!


    Reply 12 years ago on Introduction

    Yes, I said that in the instructable, It is essentially the same as the Core2duino.  And yes, this is overkill, you might even say "this is stupid" as is etched on the pcb. Hackaday making fun of the Core2duino was actually what prompted the idea in the 1st place.

    I won't defend needing the core3duino, but there are times when having 2 separate cpu's is a must. While testing my larger bots, I always use 2 Arduinos to decode the drive and failsafe r/c channels separately. That way if something goes way wrong or the code doesn't work as it should, you have a way to shut the thing off before it busts a hole in the wall and your wife tells you no more inside testing ;)


    12 years ago on Introduction

    Pretty excellent!  Super-de-duper overkill, unless you happen to need more IO and only want to expand rather than upgrade (i.e. mega).

    Very well done!


    12 years ago on Introduction

    Is there no communication between the microcontrollers?


    Reply 12 years ago on Introduction

    Using I2C, you can connect 1 Arduino (master) to a host of slave Arduino's through Analog ports 4 and 5.