Tested ExtraCore boards and kits are now available for sale from Rugged Circuits.

What is it?

This Instructable will give you all the files and information you need to make your own Arduino Compatible in small surface mount package.

It requires a board manufactured to about 9mil precision. I recommend having the board manufactured at BatchPCB.com, Sunstone.com or your favorite board house.

We will be using a hot plate reflow method. It's pretty easy and the components in this project tolerate the heat pretty well. I have not used a solder mask. Surface tension is your friend, but I did get some speckles on the boards and had to fix up one bridge. So feel free to make one if you know how. Solder masks won't be covered here. Note: The fine commentators over at Hack A Day noted that you can actually do this project with a regular soldering iron using a method called "Tack and Drag." So, if you don't want to get a hot plate and solder paste, you have choices. That's the magic of DIY.

Is this Instructable for you?
If you like Arduino and think you might like to learn how to do surface mount soldering, this is a great project to start with. If you don't know about Arduino, you should get a development board and try it out. This isn't a great beginner's Arduino Compatible. It needs an external voltage regulator and it's small form factor isn't as friendly as the full sized boards. If you ever built a breadboard Arduino you will feel right at home here.

Can I modify this Instructable to do something custom?
You could make an Arduino with an on board compass, or on board robot controls. If you know how to make something work with Atmega328 you can move it on board with these files as a jumping off place.

What good is an Arduino anyway?
Just search Instructables for "Arduino". This clone is really good for adding cores to existing projects or embedding in projects where space is at a premium.

What should I already know?
You should know your way around the Arduino IDE well enough to "burn the blink program" and have some practice wiring up an Arduino with simple circuits. It helps if you can already solder some. If you know how to make PCB's or have ever build a "boarduino" you will be fine.

You will need the ability to open a command prompt in windows (or Linux), change directories and run programs as directed. The directions assume you are running Windows. If you run Linux I have faith you will figure it out.

Is this physically demanding at all?
You will need decent eye sight, a fair amount of hand eye co-ordination and good fine motor control. The griddle is also hot, so parts of this are sweaty work despite being physically easy

Open source goodies
The board is open source with a Creative Commons non-commercial license. You can get the eagle files from GitHub if you want to modify the board or use it as a jumping off point for your own clone.


This looks hard but I want one, can I just buy one?
Yep, for sale from Rugged Circuits.

Step 1: Tools You Will Need

Physical Tools
  • Electric skillet or griddle
  • Good ventilation
  • Fine tweezers that are not even a little magnetized. Plastic is OK.
  • Fine tweezers that can take 250 degrees F. Magetized is OK, clearly plastic is not.
  • Magnifying glass. Depending on your eyes, higher magnification might be helpful.
  • Solder paste
  • Syringe or heavy duty zip top bag with a needle hole in the corner for applying paste
  • Sewing needle
  • Soldering Iron (Adjustable if at all possible)
  • Fine solder wick
  • Solderless breadboard and jumpers.
  • 1-3 spare LEDs and 220-1k ohm resistors. (Tools since you can re-use them after this project)
  • Any arduino compatible or ISP known to work with Atmega chips. These instructions assume an Arduino loaded with ArduinoISP
  • A PC, these instructions assume windows. Linux will also work for sure.
  • 5v FTDI breakout or cable or know how to do without.

Note: You can use another bootloader if you wish, but you are on your own for burning the fuzes correctly. Messing up the fuzes can brick a chip, and the on board resonator will make it impossible to recover with even a high voltage programmer.
<p>Hi</p><p>Very intessing work Thanks :)</p><p>but the link Rugged circuit is dead link</p>
<p>which is the TIMER_PWM_PIN? Is it D13?</p>
Is there info online somewhere about the ExtraCore voltage regulator &amp; capacitor? i.e. which leads get soldered/connected to where on the ExtraCore, and then where you connect your battery leads once that's done? (&quot;ExtraCore Voltage Regulation for Dummies&quot;)
I added a diagram to this page. The pins are 1,2,3 if you point them down and look at them from above. 5.0 goes to VCC on the ExtraCore. Does that answer your question well enough?
Er, provided you got the power regulator that came with the ExtraCore at some places. If you have another regulator you will need the datasheet for it.
I made a small batch of these boards, but am having a hard time programming them. I have a 5V FTDI breakout board sitting here, but not completely sure how to use it. <br> <br>Do you have a link to an article or tutorial that you like with instructions on how to burn a bootloader using an FTDI board? <br> <br>Thanks!
It's possible to &quot;bit bang&quot; the bootloader on with nothing but the cable, but I have never done it. <br> <br>You might try this method: https://www.instructables.com/id/Programming-Arduino-Bootloader-without-External-Pr/ <br> <br>Just borrowing a working Arduino from someone might be the easiest way. <br> <br>Good luck!
Oh, I thought you had used an FTDI cable for this - this step starts off with: <br> <br>&quot;The ExtraCore and Arduino Pro-Mini don't have on board USB. Therefore you need a way to program them. The easiest way to is to buy an FTDI chip or cable. http://www.sparkfun.com/products/9716 is the one I use.&quot; <br> <br>I've tried FTDI bitbanging, Arduino as ISP and a couple of random guesses so far, but nothing has worked. <br> <br>I will try the method you outline in this step sometime, I was just hoping for a more straightforward way - I've burned bootloaders and sketches onto the DIP ATMegas and ATTiny85s before with no problems, but this method is completely new to me :) <br> <br>Thanks!
Arduino as ISP should work. Can you be specific about where you are having problems and what, if any, error messages you see?
The error I am getting right now is:<br><br>avrdude: Yikes! Invalid device signature.<br> Double check connections and try again, or use -F to override<br> this check.<br><br>I bought the following chip, which I thought was the same as the Arduino main board (in a different package): http://www.digikey.com/product-detail/en/ATMEGA328P-AU/ATMEGA328P-AU-ND/1832260<br><br>I have a hunch I'll need to modify my boards file in some way, but not sure yet.<br>
What signature are you getting? If it is &quot;0x1e9514&quot; you are good to go. Just use the -f flag. If it's &quot;0x000000&quot; or &quot;0xFFFFF&quot; then you have wiring problems.<br><br>The directions above mention 0x1e9514 being ok to use -f with, but I can see how it might be confusing.
Crap. Using WinAVR I get a device signature of 0x000000 :( I guess I fried the chip during soldering. I don't have reflow equipment or the accessories (solder paste looks super expensive) so I soldered mine by hand - maybe I'll give it another go. <br><br>Where did you get your solder paste? My local hardware store has some cheap solder paste, but I thought it was for plumbing, NOT surface-mount reflow :P <br><br>
I would be shocked if you manage to ruin an Atmega chip by soldering. These things are far more resilient than they have any right to be. 0x00000 often means a ground fault. Break out your meter and strong magnfier and check each pair of pins for shorts. You probably just have a itty-bitty solder bridge.<br><br>You can clean it up with some solder wick most likely. I solder these chips by hand all the time and it's actually pretty easy. That resonator on the other hand, that thing is tricky to hand solder.
Just checked all of my pins, pads and ground connections - there was one bridge between the XTAL1 pin and VCC from a botched solder job on the resonator. I used my multimeter to check every ground pin and connection to every other part of the board, and everything is set up correctly there. No bridges found between pins on the ATmega328. <br> <br>I had to fix some solder bridges by over-applying solder to the ATmega328 pins in order for the wick to work. This is why I assumed I had fried my chip from heat - the chip got too hot to touch a couple of times :P I'm curious if maybe it's possible to a) burn out the resonator from heat or b) burn out the fuses of the ATmega328 chip to cause the invalid device signature error. Any thoughts there? <br> <br>Just so you know, I attempted a second board yesterday and soldered it up much better - and it worked perfectly first try. Didn't even have to use avrdude at all! I will send you an e-mail and a pull request on Github soon with an Eagle library and other goodies :)
What is the reason for the low-pass filter for the AVCC? I haven't seen one before, and I'm wondering if its strictly necessary for my project :)
It's recommended in the data sheet. If you aren't doing a lot of analog work it's safe to skip. They Pro-mini doesn't have it. The parts are super cheap though, so I added it.
Please share your thoughts on the form factor. Is 1 inch square a good idea? Would it be better to elongate the board so all the IO pins can reach a breadboard? Please share your thoughts here or on the <a href="https://www.facebook.com/pages/ExtraCore-Arduino-Compatible/262175783799966">Facebook page</a>.
i really like the idea of the 1inch board, are they for sale? any chance you ship internationally ?<br>only one thing i would change use bigger components like 0805 (which can be soldered easy by hand with a soldering iron) and add a voltage regulator and maybe an ISP header
http://t.co/rNdndMM ExtraCore 0805 version gerber files up. Untested. If you want to add on board voltage regulation it would need to go on the back. Anyone know how to DIY two sided SMT boards?
can you maybe post the eagle files ?:D about 2 side smt boards you could try toner transfer but i don't think youll get a a good result - you could try something like this https://www.instructables.com/id/Making-PCBs-with-an-easy-UV-methode/
The eagle .brd and .sch file is there too. I haven't tried toner transfer on this design. I think with parchment paper you might just make it work. I just get them made. I do toner transfer for 10 mil clearance stuff all the time.
i don't think i can't make that board in hause cause of the vias under the atmega but ill get it made at http://dorkbotpdx.org/wiki/pcb_order - really cheap service for small boards
Is what you are referring to (vias under the atmega ) considered to be a &quot;blind or buried via&quot;?<br><br>The page for DorkbotPDX says &quot; No blind/buried vias.&quot;. <br><br>I'll admit I don't know what I am talking about, so I'm genuinely asking for confirmation. I've only etched a few single sided boards, and was looking for a cool small board to send to DorkBotPDX, and quantity 3 for $5 would be a super deal indeed!
blind and buried vias are ones that are inside multi-layer boards or covered on 2 layer boards. This board doesn't have any of these so you should be fine with about any service. Let me know how it comes out. There are still kits with boards available at RuggedCircuits.com as well.
Thanks Dustin for the clarification.<br><br>RuggedCircuits has a good price, good looking product, and I follow the feed on Facebook. If I need to buy a third Arduino (or permanently install one somewhere) I'd buy one. <br><br>The only reason for me to want to DorkBotPDX an ExtraCore is simply to get some experience ordering PCBs from them, and the SMT assembly. This looks hand-solderable, but I'm going to build a reflow setup soon.
I encourage you to go the DorkBotPDX route, but only so I can see how the boards come out. :) <br><br>The crystal is pretty hard to hand solder. Otherwise it's not too difficult. I've removed and repaired crystals with my hand iron, so it's doable if you have good coordination.
I'd love to see some photos when you are done!
sure ill keep you posted
If you hurry you can buy some before the 9th of September 2011 on <a href="http://www.kickstarter.com/projects/988159748/extracore-arduino-compatible">Kickstarter</a>. I might design an off-board regulator and ISP header shield or daughter board. The flexibility to choose a cheap regulator for general duty or a big one for running lots of LEDs or whatever is one of the things I like about this design.<br>
yeah ive seen the kickstarter page but i can't find the FAQ to see the cost of the shipping (cause im not from US) , anyway i posted your link on google plus so other people can see it <br>any thoughts on making the board using bigger components ?
The FAQ is at the bottom of the main kickstarter page. Postal rates are $10 to Canada, Australia, UK and Germany. It's probably $10 to your country unless you have reason to believe it is hard to ship stuff to you from the USA.
I tried using an Uno with the following sketch loaded:<br><br>https://github.com/WestfW/OptiLoader<br><br>connect d11-13, d10-&gt;RST, GND, 5v -&gt; VCC as explained in the instructable.<br><br>It worked first time. No need for avrdude. I just tested the blink sketch on my soldered Extracore and it's happily blinking away.<br><br>Cheers,<br><br>Don
Glad to hear it works!
I've checked my solder joints and make it through all the steps in programming using a Nano 2.3 as my arduino helper. instead of 0x1e9514, i get 0x1e950f. All programming steps complete without errors. When I move over to programming, the board doesn't respond and no flashing LED. check connections but I'm stuck. Anyone else seen 0x1e950f and know what it might be pointing toward?<br>Thanks,
0x1e950f is the m328p atmega chip. It's not exactly the same one I used, but it's supported out of the box by WinAVR and should be virtually identical (I think it's just differs in some low voltage features).<br><br>In the last command Avrdude should spend some time reading the program back out of the chip. Is that successful?<br><br>Are you using an FTDI chip or cable? Hook it up and check for +5v on both of the VCC pins.<br><br>Try putting your chip in a breadboard and powering it with +5v and briefly ground the reset pin. The LED should flash as the chip boots up.<br><br>You can also try the stock Arduino bootloader. The Ardunio IDE should be able to flash the chip since it has a 0x1e950f signature.<br> <br>Failing that, can you describe where you got your board and how you made it? Maybe post some photos of your connections?
That's strange. I was part of the Kickstarter group and got 5 kits. This was the first build of the 5 kits. The chip definitely has m328p stamped on it. I also have a Ruggedcircuits built Extracore that works fine and has m328p also stamped on it. I have the output of all the programming in a text file if you're interested. <br>Attached is an image of the soldered board. I followed the instructable for soldering and connecting the board to my Nano to load the bootloader. I soldered headers for only the minimum needed to program the board.<br><br>I do have an FTDI TTL-232R-3v3 that I've used to program other Arduinos, mostly pro minis. I attached it to the Ruggedcircuits one and loaded a basic sketch without issue. Is there a way to program the bootloader using FTDI cable and not use the Nano? I don't think so but I thought I would ask.<br><br>I can hook back up the Nano to the Extracore and shoot that picture if needed but the programming output might be more help. I couldn't get a good picture with all the connections between the EC and the Nano.<br><br>Is there a forum or support email that I'm missing? Let me know if this is the best place to post questions.<br><br>Cheers,<br><br>Don
You probably just need to supply 5v to VCC. Be sure to disconnect the 5v pin to the FTDI so you don't overload it. <br><br>This is a great place for questions. <br><br>You could hack the fuses to run the chip at 8mhz and then 3.3v should work, but that's untested and unsupported. I have bricked chips messing up fuses.
I posted the results of programming the bootloader here: http://shorttext.com/oDay0CX<br><br>Cheers,<br><br>Don
nice!<br><br>like it alot!<br><br>I do feel it needs to come 'with' a vRegulator though.. (on board)<br><br>also bring elongating and bring all pins to edge is nice touch and helps end users for sure. (IMHO)<br><br>
I find power regulator choice is very project dependent. A cheap one is great for prototypes and things that plug in, but you might want a fancy buck-boost chip for a battery powered project. <br><br>lacking a good one-size fits all, I left it off for the Maker to decide.<br>
The version with 0805 sized components is complete and tested. It's easier for humans and robots to manufacture. This Instructable still lists the original smaller components, but has links to the new design files.
hey there<br>downloaded the sch files from the git repo. produces an invalid data error. just a heads up
Thanks for the notice. I will look into as soon as possible.
I double checked the file and it worked just fine for me in Eagle. Do you have the latest version? I just right clicked the &quot;raw&quot; link on the github and &quot;Save as...&quot; to my eagle projects folder. Opened right up.
Have you tried iteadstudios? $9.90 for 10 boards. I just ordered 20 of a similar design, with additional grounds to make connecting things a little easier.<br>I also added a header to make connecting an ISP programmer easier once things are connected to the other pins.<br>http://www.crossroadsfencing.com/MiniFlatpackRev2.jpg
I think you pasted the wrong URL.
Try again, I think I copied the file name and then forgot to do the actual upload.<br>http://www.crossroadsfencing.com/MiniFlatpackRev2.jpg
&quot;2 more analog I/O pins than the Pro Mini&quot;<br>How do you figure that? The Promini has all 6 Analog I/O pins; 2 of them are just not right at the card edge, but are located behind A2/A3. I use them often.<br><br>A6 &amp; A7 are not brought out; they are analog input only.
You have a point that might description might not be totally accurate. My board brings out A6 and A7. They are analog (input) but not PWM.

About This Instructable




Bio: "If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather ... More »
More by dustinandrews:Quick Coffee Grinder Hummus Make a desktop trebuchet Easy solar furnance with Grid Beam 
Add instructable to: