Step 12: Programming the ExtraCore (or a Pro-mini) with AVRDude and another Arduino

Step 3: Gather Components

Surface Mount Parts
Here are the parts you need and the digeykey part numbers. For items that don't have a minimum of 10, I recomend you get at least 2 and possibly more. If you have 2 good boards, you can make two Ardunio Compatibles. The small parts are really, really easy to lose so having extras is great. Be careful with them when you open the packages.

This bill of materials costs about $15 + shipping at the time of this writing. If you know what you are doing you can make substitutions. All these parts are really standard. Don't substitute the Atemga328 chip unless you are super sure you know what you are doing. This one works, I promise. If you get another I can just about promise the fuze settings I recommend turn it into a tiny coaster.

Recommended Headers
You will also need some standard headers and some right angle headers. I like long headers so you can push them into a breadboard and still put female jumpers on the top.

I have tested this regulator in a bread board with 12v "wall warts". It works great and it has a lot of built in protection. It also has plenty of power to run your Atmega chip and lots of other stuff besides. Remember not to sourcemore than 150 MA directly from your Arduino pins. (That's about 7 LEDs at full brightness.)

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: http://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="http://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 http://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.