loading
Picture of Make your own 1x1 22 IO pin Ardunio Compatible
ExtraCoreOnBreadWithJelly.jpg
ExtraCoreCloseup2 .jpg
ExtraCoreFilters.jpg
Traces.png
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.

https://github.com/dustinandrews/ExtraCore

This looks hard but I want one, can I just buy one?
Yep, for sale from Rugged Circuits.
 
 
 
Remove these adsRemove these ads by Signing Up

Step 1: Tools you will need

Picture of 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.
Software

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.

Step 2: Get the Circuit boards

Picture of Get the Circuit boards
TopCopper.png
Note: If you used the files to get a board before 5:00PM PST August 5th 2010 the header holes are a little too small. You can use them, but you will need to sand or file the headers down a little. Alternatively you can make your own headers out of stiff wire, like the legs off through hole components. Sorry for the bad design upload.

You can now get a board with all the electronics from Rugged Circuits for $10.

If you want to have a circuit board made you have to DIY or send it to a "fab house." These services require design files in a compatible format. "Gerber" is a common format that the Eagle software I used outputs and just about every board manufacturing service accepts.

The Gerber files I used are attached to this step. You can also get the Eagle Files from GitHub and make your own Gerber (or whatever) files if you need to modify the design. You can send the Gerbers to a fab house like BatchPCB or www.sunstone.com. I have used both. BatchPCB will cost about $13 not including shipping for one board and it will arrive in about a month. So far they have always sent me 2 boards when I ordered one, but I have had one board (of the two) have problems. Sunstone's prototype service costs about twice as much and you will have boards in half the time. I quality of the Sunstone boards is good, but the silk screen isn't as clear as BatchPCB with the same Gerber files. The price at Sunstone is the same for one or two boards so go ahead and get two.

If you want, you can order boards from BatchPCB via files I have already uploaded here.

(For the adventuresome an Untested version using 0805 sized components. Big thanks to RugedCircuits.com for help. You will need different parts than the ones listed in the next step as well and the layout is a little different.)

If you want to modify the design and make your own Gerber files, Spark Fun has a good tutorial and job file.

You can upload Gerbers to BatchPCB and have their DRC bot check them for free, Sometimes the design rules in Eagle show problems that you can ignore, but the "DRC bot" there rarely has false alarms.

There is also great, free online Gerber viewer here: http://circuitpeople.com/

Step 3: Gather Components

Picture of Gather Components
0603.jpg
ExtraCoreCloseup.jpg
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.

2x 445-6389-1-ND INDUCTOR MULTILAYER 10UH 0603
2x 490-1198-1-ND CER RESONATOR 16.0MHZ SMD
2x 754-1547-1-ND LED GREEN ROUND CLEAR SMD
2x ATMEGA328-AU-ND IC MCU AVR 32K FLASH 32TQFP
10x 541-10.0KSCT-ND RES 10.0K OHM .25W 1% 0603 SMD
10x 445-1316-1-ND CAP CER .10UF 25V X7R 10% 0603

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.

18 x Standard long Headers
12 x Right Angle Headers

Optional External Voltage Regulation
2 x P5149-ND 22uf capacitors
1 x IFX25001TS V50-ND 5.0V 400MA Voltage Regulator

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 source more than 150 MA directly from your Arduino pins. (That's about 7 LEDs at full brightness.)

Step 4: Put the solder paste on the chip

Picture of Put the solder paste on the chip
ZipTopPipingBag.jpg
ZipTopPipingBagWithPaste.jpg
ZipTopPipingBagReady.jpg
Paste1.jpg
Paste2.jpg
If you want, you can follow the process outlined at Spark Fun here. I didn't find the need for a solder mask.

Eat a snack, scratch your nose, rub your eyes, go potty and get any other eating, drinking and face touching out of the way for a while. Once you start with the solder paste, you won't want to do any of that till you get a chance to wash up.

Clean the board(s). I like to use isopropyl alcohol. Use the flux on every pad.

This solder paste is lead based. It's great because it melts at a low temperature and is pretty easy to work with. It's bad because it's lead and because it will get on things. Have some paper towels handy. Wash your hands well when you are done. Gloves might be a good idea, but I find they make me slightly clumsier and this is fine work.

If you aren't near sighted (like me) get your magnifier(s) set up so you can use both hands under magnification.

Look at the diagram. It highlights all the pads.

If you have a syringe that is big enough to pass the solder paste but small enough to be accurate, you can put some paste on each pad using that. I have one that sort-of works, but if you find a good size please share.

This method worked better than the syringe for me. Put some solder paste in the corner of a heavy duty zip top bag and put a needle hole in the very corner. Then just use the bag like you are frosting a (very small) cake. Concentrate on getting some paste on each pad. Don't worry if you are a little sloppy on the Atmega footprint. Surface tension will suck the solder into the center of the pads pretty well. You can fix it up with some wick and soldering iron if there are bridges. The size of the hole was key. A needle hole is too small, but you only need to widen it bit for it to work pretty good.

Use the sewing needle to touch up or clean up any spots where the paste didn't go quite right. Be gentle with it, but you can clean up the paste with it pretty well. You have a really wide tolerance for the amount of paste that will work. Go a little sparse on the Atmega footprint and more generous for the other components.

Use a magnifier and inspect your work carefully. Gently use the needle to clean up any messes or bridges.

Step 5: Place components

Picture of Place components
TopDiagramMarkedBW2.png
ComponentsPlaces.jpg
ExtraCore 0805 diagram.png
If you like caffeine, like me, try to make sure you are midway between doses. It does make you tremble a little and that makes this harder. If you have too little, you might make mistakes. If you don't like caffeine, I admire you but I don't want to be you.

Make sure the cat's or kids can't knock your work on the floor while you do the next two steps. Even someone walking by can cause enough vibrations on some floors to be a problem.

For best results, print out the picture for this step scaled up to the size of your paper on a color printer. There is also a black and white version.

The trick for every component is to gently place it down with the tweezers then push very lightly down to seat it into the paste. Use the tweezers or the needle to nudge crooked parts.

The really small parts come in a strip. Using tweezers or a sharp knife carefully cut them free. These are really easy to lose in the carpet. If you grab too hard with the tweezers they can shoot out and you will never find them (ask me how I know...) . Lucky you listened to me and got spares, right?
  1. The only component on the board with a polarity besides the Atmega is the LED. Look on the bottom and you will see a little green arrow (unless you got some other LED). Match that with the diagram. Put it down in the paste and push it slightly down to seat it.
  2. Next add C3. Make sure it's not touching LED1 and clean any paste trails between them. This is the tightest fit on the board. It works fine with 0402 and 0602, but you need to pay extra attention to this spot.
  3. Next add L1 (the inductor)
  4. Add R1 and R2
  5. Add C1 and C2
  6. Add the Atmega chip. Try to line it up as strait as you can. It will "snap" a little into place, but not as much as the other components. The chip has a circle and a cut off corner indicating the corner near pin 1. The board silkscreen has the same markings. Make sure you get the chip the right way round!
  7. Finally add Resonator Y1. make sure it's not touching the nearest pin on the Atmega chip and any paste between them isn't a bridge.
Use a magnifier and inspect your work carefully. Double check you got the Atmega chip the right way round. Take a deep breath, you have completed the hardest part, but you still have one delicate step to go.

Don't forget to refrigerate your remaining solder paste. You can seal the zip top bag and fold it over to save what is in there.

Step 6: Reflow the solder

Picture of Reflow the solder
GriddleChip1.jpg
GriddleChip2.jpg
GriddleChip3.jpg
Set up your skillet in well ventilated place on a heat resistant surface. I have a fume extractor. Make sure you won't be breathing the fumes however you set up. Have a bit of wood handy to set the finished board on to cool.

This step is pretty easy and fast. Pay attention so you don't get burned (literally). Read through once or twice so you know the rhythm before we start the dance.
  1. Find a pair of tweezers that you can grab the board by a corner hole with easily. Alternately a thin bit of metal to use like a pizza peal works.
  2. Look under the hot plate and get an idea where the element is. You will have a hot spot here. For this small chip it doesn't matter a lot, but it's good to know.
  3. Heat your hot plate to 375 and wait till it's hot.
  4. Drop the board gently on the hot plate. In 10-30 seconds you will see the solder start to melt.
  5. Turn the chip or move it to the other side of the heating element to get it to heat evenly.
  6. Once the solder is all melted, try to get the chip off in the next 10-20 seconds.
  7. Using the tweezers or your bit of metal gently get the chip off the heat.
  8. Gently set the chip down on the piece of wood. It's still molten and you can knock stuff right off if you aren't reasonably careful.
Wait a minute for it to cool completely and check you work with the magnifier. Check the ends of the components for solder that didn't flow up the end.

If things don't quite look right you can add more paste and heat it again. You can also touch up individual components with a regular soldering iron if you have a gentle touch. I was able to rescue a resistor that put on upside down that way. You might be able to fix a misaligned Atmega chip with tweezers while it's hot.



I don't know how many times you can re-work these components. They datasheets say two or three is the magic number. I have reworked one board four times and it still works as far as I can tell. The LED is probably the most delicate component. You can smush the plastic housing when it's hot. The resistors and caps are really tough. You would have to work hard to ruin them. I have never ruined an Atmega chip with anything but programming the wrong fuzes. Those things are tougher than they have any right to be.

Turn off your hot plate or repeat the steps for chip #2-#n. Put your new board in a safe place and go wash your hands and take a break. You earned it! Congratulations on becoming a surface mount pro.

Step 7: Fix up any problems

Picture of Fix up any problems
GriddleChip6.jpg
Fix1.jpg
fix2.jpg
If there are solder bridges anyplace, they can be tricky to fix. You might be tempted to add some flux and reheat the board. I tried that and it didn't help at all. In fact I just made things worse.

Just get some small solder wick, put some flux on the end and put it on the problem area. A quick heat with the soldering iron and it's fixed. Turn it down a little from where you would solder through hole stuff.

Step 8: Add the header pins

Picture of Add the header pins
You need some way to connect the arduino to the outside world. This is the recomended breadboard configuration.
Once you solder the headers, re-work on the skillet becomes impossible. So make sure you are happy with that first. I know it's a chicken and egg problem since you need to test it before you can be sure you are happy. Use spring headers or tiny alligator clips to test if you are concerned.
  1. Take 6 right angle header pins and put them in the FTDI programming port. That starts in the top left at GND and ends at DTR. Solder just one pin. Check the alignment, then solder the rest.
  2. Take another 6 right angle pins and put them in A6-D5. Solder one pin, check alignment, solder the rest.
  3. Solder 8 standard pins down the left side from GND to A5. Solder one, check, continue.
  4. Solder 9 pins down the right side from D6-RST. Solder one, check fit in a breadboard preferably, continue.
  5. Optionally solder a pin in AREF. If you don't know why you would use AREF, don't bother. :)

Step 9: Flash the bootloader

Picture of Flash the bootloader
This step will burn the boot loader to the chip. You will need an Arduino with ArduinoISP loaded on it. If you have another programmer, I assume you know how to use it.

Wiring from the existing Arduino
The picture shows a Pro-Mini, but any Arduino compatible should work.
  1. Load ArduinoISP to your existing (or borrowed) Arduino.
  2. Connect D9 to a resistor (220ohm-1k works with most leds) and a LED so you can see the "heartbeat".
  3. Optionally connect  D7 and D8 so you can see what's going on. I don't normally use them when things are working.
  4. Connect VCC and GND between the boards.
  5. Connect D10 on the programmer to RST on your new board.
  6. Connect D11 to D11
  7. Connect D12 to D12
  8. Connect D13 to D13
Connect the computer to the Arduino via the USB cable and determine the USB port. Mine was com16 so all my examples use that. Change to fit your situation.

On the computer

Prepare your software

  1. Open the Arduino IDE
  2. Load the ArduinoISP sketch
  3. Double check the Serial.begin command is set to 19200.
  4. Load it onto your Arduino and make a note of the serial port you used. You will need to use it below with AVRDude.
  5. Check the heartbeat is working. If it ever stops when AVRDude isn't running, hit the reset button.
  6. Install or locate WinAVR.
  7. Download Optiboot.hex and put it in the WinAVR bin directory
Check the connections
  1. Open a command prompt. (Start->cmd.exe)
  2. Use the CD command to change to the WinAVR bin directory. (remove quotes) "CD C:\winavr\bin" for example.
  3. Run the following command (remove quotes and use your own com port)

"avrdude -p m328p -P com16 -c avrisp -b 19200"

If all is well, you will see a chip signature of "0x1e9514" even though AVRDude says "Yikes I was expecting 0x1e951...". Skip down past troubleshooting and burn the bootloader. If you see 0x000000 or another error, do the troubleshooting.


Troubleshooting
  • Hit the reset button on the Arduino,  briefly ground RST on your new board and try again.
  • Triple check your wiring. Did you get GND and VCC right?
  • Double check your com port.
  • Check the board again for defects. Use a meter to check RST, and D11-13.
  • Remove all the wiring and do it over.
  • Take a break, think for a while, look at the setup with fresh eyes.
  • Show it to a helper and explain things. Even (especially?) if they don't care you will notice errors this way often.
  • Look for help with AVRDude online, and post here with photos of your setup.
Burn the bootloader
Make a file called ard328burn.cmd in the WinAVR bin directory and copy this text into the file. Change com16 if you use another port.

Code (Don't include this line)

@echo off
avrdude -p m328p -P com16 -c avrisp -b 19200
echo enter to continue, CTRL-C to exit. Hit enter if you see 0x1e9514
pause
avrdude -p m328p -P com16 -c avrisp -b 19200 -F –e
echo hit enter if there were no errors. CTRL-C to exit.
pause
avrdude -p m328p -P com16 -c avrisp -b 19200 -F -U lock:w:0x3F:m
echo hit enter if there were no errors. CTRL-C to exit.
pause
avrdude -p m328p -P com16 -c avrisp -b 19200 -F -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m efuse:w:0x05:m -U flash:w:optiboot_atmega328.hex -U lock:w:0x0f:m

EndCode (Don't include this line)

Type "ard328burn.cmd" and the burning should start. The first message will complain about the Signature, but that's expected. Hit enter if the signature is 0x1e9514. If it's 0x000000 something is wrong. Often this means you mixed up 11,12 and/or 13s wires. Watch each step and hit Enter if there are no errors.

Check the bootloader.
If all is well, the on board LED is blinking on and off. If not, try resetting the board. Connect RST to GND for a moment and see if the on board LED flashes and starts blinking. If the LED on the existing Arduino is flashing and yours isn't it means the only thing wrong is your LED. Maybe you got it backwards or it (or it's resistor) isn't connected. I had to touch one up with a solder iron when I got the resistor upside down on accident.

If this doesn't work, reset the Arduino and your board. Then run the batch file again. Examine the output carefully to be sure everything went well. AVRDude will read the data back and double check that it is correct.

Now you can plug in your new Arduino Compatible with the FTDI breakout. Set the Arduino IDE to "Uno" and flash a program onto the chip.

Step 10: Using your new micro controller

Picture of Using your new micro controller
ExtraCoreOnBreadWithJelly.jpg
PowerReg.png
This micro controller is slightly different than other Arduino Compatibles and Arduinos. It's most similar to the Pro Mini, so lets compare.

Additional Features
  • 2 more analog input pins than the Pro Mini (A6 and A7 are brought out). Unlike A0-A5 these are not general purpose pins. This is how the Atmega chip works.
  • Low Pass filter on AVCC
  • AREF test point
  • Optiboot boot loader allowing slightly larger sketches.
Removed Features
  • No on board power regulator. (I.E. no RAW power pin.)
  • No reset button.
Known issues

  • The board doesn't always reset when the IDE has programmed a new sketch. There is some evidence this is due to the optiboot loader on Atmega328. It could be a bad design of the DTR on the board, but DTR works for programming every time so I suspect not.
  • Like the LilyPad there is no overvoltage or backwards voltage protection. I have hooked up Atmega328 DIP chips backwards and had them heat up, but live. This form factor might not fair so well. Please think twice before you connect to voltage.

Other notes
If you want to reset the board, ground RST for a moment. If you want to use power sources that vary much from +5v you will need to add a power regulator and a couple of capacitors. If you just want to run off USB power, then you are good to go. A diode "backwards" across VCC/GND might be a good idea if you worry about backwards voltage accidents.

Other than the above changes, it should work just like any other Arduino.

Step 11: Programming using an existing development board.

See this post on Arduino.cc. Same principle. You won't need the 120 ohm resistor, it's built in. http://arduino.cc/forum/index.php/topic,61776.0.html

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

Picture of Programming the ExtraCore (or a Pro-mini) with AVRDude and another Arduino
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.

Here is an alternative method if you have another Ardunio, but don't have an FTDI interface.

WARNING: This will blow away your boot loader. You can always use this method to get it back or just keep loading sketches with this method. This method is for the adventuresome or impatient. AVRdude will happily turn your board into a useless coaster if you experiment with any fuse settings. Tread with caution.

Wiring from the existing Arduino
The picture shows a Pro-Mini, but any Arduino compatible should work.
  1.     Load ArduinoISP to your existing (or borrowed) Arduino. (see below "on the computer" for details).
  2.     Connect D9 to a resistor (220ohm-1k works with most leds) and a LED so you can see the "heartbeat".
  3.     Optionally connect  D7 and D8 so you can see what's going on. I don't normally use them when things are working.
  4.     Connect VCC and GND between the boards.
  5.     Connect D10 on the programmer to RST on your new board.
  6.     Connect D11 to D11
  7.     Connect D12 to D12
  8.     Connect D13 to D13

Connect the computer to the Arduino via the USB cable and determine the USB port. Mine was com16 so all my examples use that. Change to fit your situation.

On the computer

Prepare your software
  1.     Open the Arduino IDE
  2.     Load the ArduinoISP sketch
  3.     Double check the Serial.begin command is set to 19200.
  4.     Load it onto your Arduino and make a note of the serial port you used. You will need to use it below with AVRDude.
  5.     Check the heartbeat is working. If it ever stops when AVRDude isn't running, hit the reset button.
  6.     Install or locate WinAVR.
  7. Load the sketch you want to put on the ExtraCore
  8. Hit the "verify" button. This will compile the sketch to a .hex file.
  9. Locate the .hex file. (the .hex file is written to /tmp (on Mac and Linux) or \Documents and Settings\<USER>\Local Settings\Temp (on Windows)).
Check the connections
  1.     Open a command prompt. (Start->cmd.exe)
  2.     Use the CD command to change to the WinAVR bin directory. (remove quotes) "CD C:\winavr\bin" for example.
  3.     Run the following command  (remove angle brackets and use your own com port)

C:\winavr\bin\>avrdude -p m328p -P <com16> -c avrisp -b 19200

If all is well, you will see a chip signature of "0x1e9514" or "0x1e951"even if AVRDude says "Yikes I was expecting 0x1e951...".

Burn the sketch to the board

Replace the stuff in <angle brackets> with your path and sketch name.
C:\winavr\bin\>avrdude -p m328p -P com16 -c avrisp -b 19200 -F -U flash:w:<Path to your sketch>\<MySketchName>.hex


If all goes well AVRDUDE will put the sketch on the board and then verify that it worked. Your sketch is now ready to go.
1-40 of 58Next »
Mic1001 year ago

Hi

Very intessing work Thanks :)

but the link Rugged circuit is dead link

aprabhakar1 year ago

which is the TIMER_PWM_PIN? Is it D13?

landru2 years ago
Is there info online somewhere about the ExtraCore voltage regulator & 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? ("ExtraCore Voltage Regulation for Dummies")
dustinandrews (author)  landru2 years ago
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?
dustinandrews (author)  dustinandrews2 years ago
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.
jasonwebb3 years ago
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.

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?

Thanks!
dustinandrews (author)  jasonwebb3 years ago
It's possible to "bit bang" the bootloader on with nothing but the cable, but I have never done it.

You might try this method: http://www.instructables.com/id/Programming-Arduino-Bootloader-without-External-Pr/

Just borrowing a working Arduino from someone might be the easiest way.

Good luck!
Oh, I thought you had used an FTDI cable for this - this step starts off with:

"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."

I've tried FTDI bitbanging, Arduino as ISP and a couple of random guesses so far, but nothing has worked.

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 :)

Thanks!
dustinandrews (author)  jasonwebb3 years ago
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:

avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

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

I have a hunch I'll need to modify my boards file in some way, but not sure yet.
dustinandrews (author)  jasonwebb3 years ago
What signature are you getting? If it is "0x1e9514" you are good to go. Just use the -f flag. If it's "0x000000" or "0xFFFFF" then you have wiring problems.

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.

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

dustinandrews (author)  jasonwebb3 years ago
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.

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.

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?

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 :)
jasonwebb3 years ago
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 :)
dustinandrews (author)  jasonwebb3 years ago
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.
dustinandrews (author) 4 years ago
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 Facebook page.
i really like the idea of the 1inch board, are they for sale? any chance you ship internationally ?
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
dustinandrews (author)  putyn3 years ago
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/
dustinandrews (author)  putyn3 years ago
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
scottinnh putyn3 years ago
Is what you are referring to (vias under the atmega ) considered to be a "blind or buried via"?

The page for DorkbotPDX says " No blind/buried vias.".

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!
dustinandrews (author)  scottinnh3 years ago
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.

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.

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.
dustinandrews (author)  scottinnh3 years ago
I encourage you to go the DorkBotPDX route, but only so I can see how the boards come out. :)

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.
dustinandrews (author)  putyn3 years ago
I'd love to see some photos when you are done!
sure ill keep you posted
dustinandrews (author)  putyn3 years ago
If you hurry you can buy some before the 9th of September 2011 on Kickstarter. 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.
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
any thoughts on making the board using bigger components ?
dustinandrews (author)  putyn3 years ago
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.
djmanning3 years ago
I tried using an Uno with the following sketch loaded:

https://github.com/WestfW/OptiLoader

connect d11-13, d10->RST, GND, 5v -> VCC as explained in the instructable.

It worked first time. No need for avrdude. I just tested the blink sketch on my soldered Extracore and it's happily blinking away.

Cheers,

Don
dustinandrews (author)  djmanning3 years ago
Glad to hear it works!
djmanning3 years ago
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?
Thanks,
dustinandrews (author)  djmanning3 years ago
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).

In the last command Avrdude should spend some time reading the program back out of the chip. Is that successful?

Are you using an FTDI chip or cable? Hook it up and check for +5v on both of the VCC pins.

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.

You can also try the stock Arduino bootloader. The Ardunio IDE should be able to flash the chip since it has a 0x1e950f signature.

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.
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.

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.

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.

Is there a forum or support email that I'm missing? Let me know if this is the best place to post questions.

Cheers,

Don
IMG_0794.JPG
dustinandrews (author)  djmanning3 years ago
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.

This is a great place for questions.

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

Cheers,

Don
xl973 years ago
nice!

like it alot!

I do feel it needs to come 'with' a vRegulator though.. (on board)

also bring elongating and bring all pins to edge is nice touch and helps end users for sure. (IMHO)

dustinandrews (author)  xl973 years ago
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.

lacking a good one-size fits all, I left it off for the Maker to decide.
1-40 of 58Next »