Jason (Tse-Kang) Wang
How to make (almost) anything!

Week 04

Electronics production (Feb 18)


This week, we are instruct to make the FabISP in-circuit programmer from the given file of pcb drawing. The recommended way is to use Fab Module to do the compuer side of work (CAD/CAM). However I decided to go the other rout, since I had a bit experience with Fab Module already, and would like to try a more hobbyist friendly way of making PCB.

For "hobbyist friendly", I refer to using a more commenly avaliable hobbyist CNC machine, instead of Roland MODELA milling machine, which usually cost over USD 2000 at least. For this reason, I will be using a Shapeoko 2 CNC, which is only USD 1000, and are comparable if not more capable tha MODELA in my honest opinion.

On the software side, there are two different routs I'm going to try. Even though Shapeoko 2 uses grbl arduino shueld as g-code interpreter, there is a web-based CAM/CAD program called "Easel" (www.easel.com ), that can provide a one stop solution from basic drawing to control the CNC without user touching any g-code files just like Fab Modules. And the second rout is the more traditional using a CAM program to generate g-code files, and using a host program to send the g-code files to grbl shiled.

Fab ISP dxf File.

Fab ISP svg File.


File Preparation with Inkscape


The PCB drawing that is provide are eagle files and png files, but for my work flow with both Easel and CAM software (which is CAMBAM in my case), I will need SVG files. Inkscape are more than capable of doing the file transform, and svg is a piece of cake since it's Inksacpe's default saving format. For testing purpose, I also make one SVG files with only "stroke" of the pcb, and without "fill". I'm curious how fast can I save on milling time, and how much harder will it make soldering become. (Normally, all the black area on the picture above will have to be milled out. With only stroke, the CNC only need to mill out the deperation line, whcih should cut down the milling time significantly. )
To convert png to SVG in Inkscape, simply use "Trace Bitmap" under "Path" tab. Something to pay attention to for doing the conversion: lower the "Scans:" number to 2, otherwise there will be a lot of the same image being output, and also make sure "Remove background" is selected, or the entire face of the pcb will get milled out! (See the two big squares in the middle? yeah, don't do that...)


Rout 1 Easel


Easel (www.easel.com ), as I mentioned above, is a one stop solution for CNC that use grbl or TinyG as g-code interpreter. It can take SVG files, and control the CNC directally all within this web-based program. The simplified interface and almost step to step set up let CNC beginner easily get into CNC milling. Especially since Easel comes with a set of material cut setting pre-programed into it. All I need to do is selec the material, material thickness, milling bit size, and everything is pretty much ready to go.
This is the V bit I use for milling the PCB traces. With the size of the bit being 0.2 mm, I decide to use the test file that contains only "stoke" of the traces, but no "fill". 400 grid Sand paper can easily remove all the burr from the edge of the traces.

Traditional CAD/CAM CAMBAM & Universal Gcode Sender


CAMBAM, a really cheap CAM software that is more than capable to do most hobbyist's job. It's a bit more complicate than Fab Modules and Easel, but it's also more powerful because user have much more control on the parameters. Here, I set up two g-code for the PCB, one for mill out the trace, the second one for cutting the PCB of the big board. Since I use a V bit for traces, I will need to change to an end mill for cutting the board off. For sending the g-code files CAMBAM generated to CNC, I use Universal G-code Sender, which is really simple compaers to 3D printer's host program like Repetier-Host.
Other than the dead simple Universal G-code Sender, Chilipepper (chilipeppr.com ) is another web-based control program with a better interface and much nicer job visualizer. Also, Chilipepper is under really active development at the moment of this blog.


Testing and assembling the FabISP PCB


Testing the traces one by one to make sure nothing broke or cross others. Tedious, but also very important for traces this tiny. Especially I only mill out the "stroke" of the traces, but not all the unused area. Start putting on solder and solder the component by hand,
For the AtTiny, I put some solder on the traces first, and use a fat soldering head and drag across on one side of teh pins to have ths entire side soldered at once.

Here comes my biggest fail for this week. I ordered the wrong parts!!

As you can see in the photo below, the Capacitors are way too small for the PCB. After asking the local instructor, I now know the Capacitor I ordered are 0805 package, and the one I supposed to get are 1206 package. (To be clear, my local instructor did offered to provide all the components, but I decide to try learing how to order electronic components from DigiKey, since it's not as easy as normal online shopping.)


Mistake


At the moment, I'm waiting on the new (correct) parts to arrive in mail so I can continue soldering and testing the FabISP. In the meanwhile, I use Easel to cut out the PCB properly (will all the unused area milled out), and find out that it is much easier to solder to the new PCB because there are no unused traces everywhere, since most of the gaps are wider and easier to see. However, it does take considerably longer time to mill PCB the in this way. (Almost 10 times longer is using the same 0.2 bit all the way.)

Update Remill and Finishing FabIsp


So, my new and correct parts came, so I jump back in to give FabIsp another go. First, I modified the png file and mill out the board again. This time, with all the unnecessary part mills out for easy soldering. It's so much easier to solder without unused copper everywhere.
I also make the cable with some fancy colored ribbon cable.


Program the fabisp


To program the FabIsp, I use USBasp as the isp programmer. USBasp is really cheap (I got it from hobbyking for $4), and used a lot to program RC controller board (easy to find).
Follow the tutorial, everything went smoothly. Instead shows up as FabISP, mine shows up as USBtiny in the control pannel. However, since it works flowlessly when programing my hello world board, it's probably just Windows trying to get attention :p