Hey - It has been *ages* since I submitted something to Instructables to give back to the community, so I thought I would share how I built our new programming rig for the boards that are used in the www.dougswordclock.com DeskClocks.

You know how it goes, you have created an amazing project and told lots of people about it and sure enough tons of people would like one for themselves.  You get the circuit boards made, and spend ages applying solder paste and components, reflow soldering and installing the non-reflow components, then you start loading microcode into the controller so that the project does what it is designed to do..... Wow - What a lot of steps!

Loading the microcode?????   Yep - as you may know, a computer without software is pretty useless.  All of our clocks have a special program loaded into them so that they can tell the time correctly.  When I build the boards for the clocks, there is no software loaded into the microcontroller chip (The chip is too small to put into a normal programmer) - This process puts the software into the chip so that the clock can function.

In the old days (a couple of weeks ago :-) ) I used a laptop, a USBTiny programmer and the wonderful AVRDUDE software to program the boards - I would sit at my desk in the workshop, type the programming command into the computer, hold the programming cable against the clock and hit ENTER.  The computer would then dutifully program the board for me and I would be done.  The only catch with this is that I have to sit there all the time, so I decided that one of my employees could do it instead....  Unfortunately, he found that sometimes he moved the cable a tiny bit causing the programming job to fail and he would have to start again.  To compound the issue, if there was a soldering error, the USB port of my laptop would shut down and the USBTiny would have to be unplugged and reseated to reset the USB port.....   There had to be a better way!!    how did the Big Boys do it?

It turns out that the Big Boys (tm)  have robots that are very good at holding cables still and funky electronics that can do testing.  Because DougsWordClock.com runs out of my garrage, I was not likely to get there any time soon, so what could I do to make our life easier?  As my friend Mikal would say....   "Build a jig!". (Note1)

So here we have the Jig that Doug made!  While it is specifically designed to program the DougsWordClock.com DeskClock boards, the concepts here can be extended to any other microprocessor based project you are building in bulk, so have a read about how I solved the problem and see what you can make yourself!  

Lets start.


Note 1 - In early 2000, My best friend Mikal dropped into my workshop as I was building a set of shelves- I was routing joints, which was a boring repetitive task - Mikal said "Build a Jig!" I said "Too hard - I will be finished soon" - He said "Nahh, lets just do it" .... We did.  Long story short, the simplicity of building a jig, coupled with the fact that I didn't think of it hit my Ego hard...I decided was useless....(Go figure).. Eventually, I snapped out of it and decided to write an article to prove to the world that I wasn't useless - So I designed a PIC based electronic dice project.  It was even published by Silicon Chip magazine -  (http://archive.siliconchip.com.au/cms/A_102324/printArticle.html)        True story, and probably the start to me breaking back into using microcontrollers for projects and writing articles.. :-) 

Step 1: The DeskClock Board

First, I started with the DeskClock board.  When I designed it, I provided a 6 pin connector to allow a programming cable to be connected - Here is a photo of the board, showing the various connectors. 

Of course - when we load components onto the board we don't populate these connectors - they are simply there for programming and testing.

The side in this photo of the back of the board, as opposed to the front of the board with all of the LEDs - it gets populated first. during manufacture.

I used this board to very carefully measure the location and spacing of the various connections I wanted to connect to.

Now - how did I connect to the board?  Glad you asked.  i used Pogo pins!  
<p>Doug, Interesting project very nice to see someone putting it all together. </p><p>My question is related to the pogo pins you used. I see you are using multiple kinds could you share the part numbers and or where you sourced them?</p><p>Thanks, -Albert.</p>
Do you have a source for the board clamp?
I got it with this set of parts: http://www.ebay.co.uk/itm/Prototype-Test-Fixture-Jig-for-Pogo-Pin-PCB-Board-DIY-/260977323611?pt=LH_DefaultDomain_0&amp;hash=item3cc375ee5b
Thank you very much.
Hi Doug, <br> <br>Nice project, any chance you are going to release the files for the new deskclock board? Looks like a great upgrade for my Ardunio word clock :-) <br> <br>J
Hi, <br> <br>I have wrestled with that for a while, and because the project is 100% surface mount, I have decided not to release the files as the last thing I want is for people to be disapointed. I feel that releasing a surface mount project, while amazing for 10% of the people, is essentially setting the 90% up for a massive failure. <br> <br>If you are comfortable with doing the soldering, then chuck me an email and I will send you a board so you can have a play. doug@dougswordclock.com <br> <br>
Very nice! The blogs are interesting! Any pointers you can give for a Linux beginner?<br/><br/>And I heard a funny rumor about the RasPi that I am hoping you could answer!<br/>I heard that when data is written and accessed repeatedly on a RasPi, that the flash memory system corrodes and in 1 to 2 months, it will need to be replaced / repaired.<br/>(Though less use increases this amount of time before failure)<br/>Is this true?
Hi,<br><br>The best way of getting good at using Linux is to do just that - Spend the effort to be able to use it instead of your regular system.<br><br>Flash memory always has a finite lifespan - The amount of life depends on how many writes you subject it to. It generally has a life of some millions of writes - write to it 1000 times per second and it will only last 1000 seconds. That said, there are 'write levelers' and caches that reduce the actual number of writes that are experienced.

About This Instructable




Bio: I have a background in digital electronics, and am very interested in computers. I love things that blink, and am in awe of the physics ... More »
More by drj113:A Grey Hat A Programming Jig for our DougsWordClock.com DeskClock Boards The Wordclock Grew Up! 
Add instructable to: