Modela for circuit boards
Well, nobody in our Fab Lab has done anything with the Modela except for brief experimentation. So I figured it was time to change that.
The first thing we need to figure out is how to make circuit boards. I want to run an Arduino workshop early this fall, and want to build some Arduino-like boards (Fabio 1.0).
I went to the MIT Fab Lab software page and downloaded cad.py, cad, and cad.cfg. I put them on a Fedora 11 Linux machine I had handy, and immediately ran into problems (hopefully you won't hit this, but just in case...). When I started cad.py (with "python cad.py"), I got a linker error and it wouldn't start. Seems there are two libraries that provide some of what cad.py needs, one in the package lapack and one in the package atlas. I had to install atlas (yum install atlas) and remove lapack (yum remove lapack). Then it started.
I downloaded the image of the board to my working directory, and then loaded it in cad.py. Using helpful instructions from MIT, I proceeded to set my "z min" to -0.005, "z max" to 0.1. The rest of the options don't show up until you click on the "output format" button, which (intuitively...) displays a drop-down menu. Choose ".rml (Modela)", and you'll get more options. Everything was left at default values (I ensured that my tool size was .0156, or 1/64"). The defaults used were 1 contour, and 4 speed for both xy and z. The overlap was 0.5.
I pressed the "contour" button, and it looked like everything froze up. But when looking at the CPU utilization of my machine, it was pegged - it was working hard. Several minutes later, it came back with a contoured path. I clicked on the "save" button, and saved the file.
Now tonight, I'll follow the rest of the instructions. I found the magic command to send the file using Windows from the Eagle tutorial I mentioned earlier (instructions here).
I plan to use solder paste and the hot air rework station we purchased for the lab to mount the SMT components. We'll see in a couple of hours if it worked :-)
I also used cad.py to make a cutout for my blinky board (I'll write that up someday...). I used the MIT tutorial to export the board layout from Eagle. Basically, you show only the top, bottom, pad, and via layers. Then export the board, choosing the monochrome option, at 500 dpi.
You then open the resulting image in cad.py, invert the image, and follow the steps outlined above. I'll report later tonight if it actually worked...
There is also a nice video (didn't watch all of it) on using the Windows software with the Modela. I can say with experience that it is a pain to try to use that stuff without someone showing you - there are simply too many different tools, with too many different places to change the configuration, to do it just using the manual.
Here is the video, put together from the Mediamatic fablab in the Netherlands. They also have similar videos on setting up the laser cutter and the vinyl cutter.
Well, I can report success in making a circuit board in the lab last night! It was one of the Fabio boards, and I didn't have time to assemble it (that's for next week). A couple of things though:
1) When creating single-sided boards with through-hole components, after exporting the image of the board from eagle it needs to be mirrored before it is input into cad.py. Otherwise the board will be a mirror image of the one you need (this is not needed for surface-mount boards where the copper in the image is on the top of the board).
2) All of the instructions I could find* for zeroing the z-dimension (making the bit sit right on top of the copper) require you to disable a safety feature on the Modela. Basically, once you position the bit close to the top, you are supposed to loosen the bit, let it drop onto the surface of the board, then tighten it again. The problem is that to do that, you have to remove the safety shield from the front of the Modela. On our machine at least, doing that makes the head rise up into a "safe" position (making it impossible to perform that small adjustment). So the only way to do it is to disable the microswitch that senses when the safety shield is removed (I used a small piece of acrylic and scotch tape). We can't do that in our lab as a regular procedure, as the lab is specifically geared towards middle school and high school students, and the liability is unacceptable. So I'm not quite sure what to do. Is there a setting on the machine maybe to tell it not to raise up after it has been positioned if the safety shield is removed?
* online references on how to mill a circuit board with the Modela
- From MIT Fab Lab for HTMAA class
- Very detailed PDF posted by ScottZ at the FabFolk blog
- Wiki entry at fablab.is
- Milling with the Modela from FabLab Amsterdam
Well, I put together the Fabio board yesterday:
I used the solder paste technique with a hotplate described at this link (also a LOT of good examples over in the SparkFun tutorial section). I also used our hot air rework station for the first time, as the chip was slightly skewed at first. It turned out to be super-easy, even though I'd never used it before.
There is solder on the outside pads because when you use a hotplate to reflow the solder paste, the copper board oxidizes really badly. That makes it frustrating/tedious to solder on the board later. A better solution is to use either a tinning solution or a flux pen (neither of which I had last night). Putting little blobs of solder *should* make it a ton easier to solder wires directly to the pads. We'll see.
Unfortunately there is a solder bridge that I thought didn't matter (so I didn't fix it at the time). It was on two pins that weren't connected to anything else on the board. But when I tried to burn the Arduino bootloader this morning using my STK 500 programmer, it simply didn't work.
Turns out the solder bridge is on the crystal/oscillator pins. Those pins are supposed to be not connected if you use the internal RC oscillator. Ooops. I'll try tonight to get it fixed up and burn the Arduino firmware.
I'm sad to say that everyone I talked to at FAB6 has disabled the safety on their Modela, due to this issue. Need to figure out how to do this safely in our lab...
Originally Posted by jmanton
Neil, the MIT Fab Lab guy, is here today and was showing us how to use the cad and cad.py files you talked about and it really seems to make the modela work A LOT better and faster than the program we've been using. Mary K took video and Dean's been following along and reproducing the same stuff Neil was making.you should ask about it all next time you're here.
Our lab is in a very similar position, however, I've found with a decent length hex key you can loosen the bit and drop it on to the material without removing the safety shield.
Originally Posted by jmanton
safety shield bit zeroing
While lowering the bit to the board is the most precise zeroing, lazy grad students have been known to carefully jab at the "down" arrow until a tiny bit of dust is seen generated at the tip of the bit. (Use "move" to position bit above an unused part of the board and change zup to a larger, safe number).
The tricky part is setting the bit into the spindle with enough reveal so that the tip will touch the board before the z-head is fully extended. You can probably mark the bit at a good length.
Excellent! Thanks for having it in here.