Fletch's Fab Academy 2014 Blog
This weeks task is to make a 'FABISP In circuit programmer'.
We'll be using this device extensivly in later weeks to program our
The task doesn't require any creatrive input from us, the designs
are all provided. This week is really all about learnig the
work flow and learning to use the Modela micro milling
machine. However there are a lot of steps to the machining of
the PCB and final manufacture, so there is lots of scope for errors
and it could be quite a time consuming task. For the most part
I followed this excellent tutorial: http://fabacademy.org/archives/content/tutorials/05_Electronics_Production/Assemble_and_Program_FabISP.html
04.1.1 Decide what to actually build!
There are 2 varients of the FABISP, one with a crystal and one with
a resonator to clock the ATTiny44A micro. After a quick check
of the parts available in the Manchester FABLab inventory I decided
to build the crystal based version as the timing for the software
USB implementation would be more accurate.
04.1.2 Use the Modela micro milling machine to mill a PCB
We start with a plain piece of copper clad FR1 PCB and a .png file
showing the pcb traces. Stick the blank PCB down with double
sidded tape, but make sure that there is some sacraficial material
under it, so that when we finally cut the board free we don't mill
into the machine bed and damage it or the cutting bit. It's
also very important to clean the bed before sticking down so that
our PCB material is completely flat. Our PCB traces cut is
very shallow (0.1 mm) so any hight discrepancy of this order will
cause the bit to cut too deep or fail to cut at all in some areas.
We then select the correct fab module (png to rml) and use the
software to control the machine and mil the PCB as follows
(following the steps from left to right in the fab module):
- Load the .png file.
- Select the type of job 'mill traces (1/64) - this pre-selects
some sensible defaults for cutting PCB traces based on using a
1/64 inch end mill bit.
- Make the PNG into a tool path based on the job type selected
- Set the x,y origin for the area we want to mill so that it's
on our blank PCB stock. This requires a few iterations of
measure and using the 'move to' button to get right.
- We the set the z origin by moving the bed of the machine up
and dropping the bit down in the chuck so that it just touches
the surface of the PCB.
- Finally once the x,y,z origins are set we make an rml file and
send it to the machine
It takes about 10 minutes to mill the traces and you endup with
something that looks like this:
Once the traces have been milled we change the bit in the machine
for a larger 1/32 inch one and repeat the whole process for the
board outline .png to seperate our actual PCB from the stock,
finally ending up with this:
A quick gentle de-bur with a steel ruler and wash with soap and
water to remove and residue and trhen we can populate the board.
04.1.3 Populate the PCB
A steady hand and desk magnifier are required! The only
component that I had problems with was the Mini USB connector, the
ones in our inventory have a metal overhang at the back of the
connector that partially shrouds the pins and makes access during
soldering difficult. I'd recommend finding a different
manucaturers connector in future.
- A quick visual inspection under the magnifier convinced me
that I hadn't got any obvious shorts and that it would be safe
to connect to my laptop.
- Then plug into my laptop via USB and check for blue smoke!
- Finally check that I had 5v between the VCC and GND traces on
the board when connected showed that I was at least in with a
hope of continuing.
- It may have been possible to use a scope to check that the
ATTiny OSC was running, but without checking the data sheet I'm
unsure if the initial chip config causes the OSC to run.
04.1.5 Program the FABISP
Again following the tutorial, I connected both solder jumpers on the
board (one requires a 0R resistor as it actually bridges a track)
and then used an AVRISPmkII to program. Note I had to connect
the ISP connector the other way around from that shown in Anna's
tutorial that I was following.
Also note that I got a single warning about function in-lining when
I complied the FABISP firware.
Once I had successfully programmed the device it appeared as
'FABISP' in my Mac system report. I then removed the two
Here's a picture of my finished device with black dots marking pin 1
on the ISP connectors.
04.2 Problems with the Modela
The only issue we had was that at one point the Modela and the PC
driving it got out of sync for one of our students. We had to
delete the 'print jobs' from the controlling PC and then reset the
Modela. To delete the jobs run:
And identify the two processes that need to be killed. One is
called something like 'rml_send' and the other is 'cat fab.......',
they should have consecutive process numbers. Then kill each
process by number with (e.g. process number 2266):
kill -9 2266