Let's Make Robots!

Populating and Programming an Arduino Pro Mini

Atmega 328P

I decided to try making an Arduino Pro Mini at home.  Being done, it's not worth it.  You can buy one for a dollar more than you can make them, and it took awhile to populate.  Although, it's "fun."















This project was also a chance for me to test the Spying-Stalactite I built.

I've enjoyed it.  It allows me to reflect on my strategy while populating boards.  It's simply a drop down with some high-powered LEDs (~2500 lumen), heatsink, and coolant fan.  It has a hole for my iphone to do the recording.  Cheap and simple.  Although, I need to diffuse the light, as you might see by the video that it washes out the details of the project.  Also, I'll add a few more lights and do away with the tungsten lamp, since the iphone is constantly in a white-balance battle as I move infront of the mixed lightsources.






I populated this board; everything came out fine (although, it was much more difficult trying not to block the camera with my head).  I popped it into Atmel studio and it read out the device voltage and signature.  Of course, I bricked it, as I seem to do a lot.

My next project is a Fuse Doctor. :)

I had ordered the boards from OSHPark and had planned on making three.  So, I populated another and took some time programming it.  I've outlined my steps below:







1. Hook up the AVRISP MKII 


2. Open Atmel Studio.  Go to Tools --> Device Programming.

3. Setup:

  • Tool: AVRISP mkII
  • Device: ATmega328P
  • Interface: ISP

Click apply

4. Read Target voltage (it should be ~5V).  Read Device Signature.

6. Open boards.txt that comes with Arduino (\Desktop\arduino-1.0.3\hardware\arduino\boards.txt).

7. Scroll down to the area marked:


8. Pull the programming information for the board from this area.  Now, I've bricked a few boards, but I think I've figured this one out.  When programming this board with the MKII and Atmel Studio, you should follow this order.  

1. Set the fuses.

  • Extended: 0xFD
  • High: 0xDA
  • Low: 0xFF
  • (Double check the board file to make sure I didn't make typos)
  • Hit "Program"

2. Upload Bootloader.

The bootloader for the 5v, 16mhz Arduino Pro Mini (which is what I built) is ATmegaBOOT_168_atmega328.hex (Desktop\arduino-1.0.3\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex).  It's important to note that the 3.3v and 5v versions use different bootloaders.

  • Go to the Memories tab
  • Hit the browse ellipsis.
  • Select the "ATmegaBOOT_168_atmega328.hex"
  • (Double check the boards file to make sure I'm not screwing you up).
  • Hit program.

3.  Set Lock Bits. 

  • Go to the "Lock bits" tab.  
  • Check the boards.txt file for Lockbit number
  • Lockbit: 0xCF
  • (Double check the boards.txt.  I don't take blame for bricked boards :P).
  • Hit "Program"


9. Upload the Blink Sketch; the LED by the reset button should blink.

10. Let me know how it went.  If you bricked a chip using these instructions, let me know so I can modify them quick.


Now that I'm used to the camera and stalactite, I plan to annotate my next board for tips on working with 0402s.

Hope all are well.

ps. Birdmun et al., sorry bout the copyright issues.  Not a professional at anything, especially video editing :)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

If you feel the need to have a music track on your videos, you might consider Creative Commons.

I'll re-track it.

Awww snap the video has copyright problems.