Fab Academy at AS220 Labs

February 10, 2010 3:27 PM

Second article for MAKE Blog

by Shawn Wallace

Published in the MAKE Blog.


Our assignment this time around was to design a circuit board, mill it, and program it in Assembly language. Each student had to become acquainted with the following work flow:

  • Designing the board
  • Machining
  • Stuffing components
  • Programming

FabAcademy02img01.jpg

Makeda Stephenson in the Providence Fab Lab


In a Fab Lab, circuit boards are either milled from copper-clad PCB stock or cut on a vinyl cutter from copper tape with conductive adhesive. We try to avoid the etching process in order to limit the used chemistry we have to deal with. Whether etching or cutting, the first step is to choose one of the options for creating a tool path to send to the machine:

  1. Draw the circuit as a black and white PNG image and bring it into cad.py for tracing.

  2. Draw the circuit using Eagle, a free PCB drafting tool, and export Gerber files, a standard format for PCBs. Gerber files can be converted into PNGs using gerbv or the online tool from circuitpeople.com. Bring the PNGs into cad.py for tracing.

  3. Draw the circuit in Eagle and use Eagle's CAM processor to generate mill and drill files that can be sent directly to the machine. This process was described by Marc Boon in a workshop at the Amsterdam Fab Lab in 2008.

Tool paths can also be created programmatically using the cad.py script; most of the Fab Academy "hello world" scripts are available in this script form.

FabAcademy02img02.jpg

Tshepiso Monaheng has been following the Fab Academy curriculum from the Pretoria South Africa Fab Lab where she built all fourteen of the Hello World circuits.


FabAcademy02img03.jpg
The Barcelona Fab Academy team put together a tutorial detailing the process of milling circuit boards with the Roland Modela MDX-20 that most of the Fab Academy sites use.


If you don't have access to a milling machine like the Modela, you can download the plans for a $300 substitute from the Machines That Make project. MTM is a research project of the Center for Bits and Atoms with the goal of
creating a suite of build-your-own Fab Lab tools that can be made for just hundreds of dollars each. While the MTM project is not yet at the point of offering plug-and-play replacements for the Fab Lab tools, the prospect of a $1,000 Fab Lab seems sunny. And the milling machine works well.

FabAcademy02img04.jpg
The A-Z MTM Milling Machine


Fab Academy students begin microcontroller programming using Atmel's ATtiny products. The Fab Lab inventory has a list of all the standard issue components, including ATTiny45s, 44s, and 88s. Another important component in the inventory is the 0-ohm resistor. Milled PCBs are generally one-sided because there's not a great way to register a two-sided board. The 0-ohm resistors are used as jumpers. Once you try routing a one-sided board with a lot of traces you'll see how essential they are!

FabAcademy02img05.jpg
Elliot Clapp's chording keyboard controller


While the Modela can be used to both mill a board and drill holes for through-hole components, the Fab Academy students generally use all surface-mount components. Some people seem to shy away from hand soldering surface-mount parts, but we've found that even people with no previous experience can easily solder them with a little practice.

Once a circuit board is stuffed, it can be programmed using one of several free toolchains. Most people seem to like the gavrasm assembler for creating hex files and avrdude for uploading to the microcontroller. All of the sample Assembly code for the classes works well with gavrasm, and the assembler works on Linux and Mac (see here for the Mac version). We've also used the CrossPack collection of GNU AVR tools for the Mac, which require slight reworking of the sample code to be compiled.

Unlike Arduino-compatible development boards, ATtiny-based boards do not have bootloaders or USB connectivity, so you'll need an In-System Programmer (ISP) to talk to the microcontroller and upload your compiled program. We have a AVRISP mkII which students can use to bootstrap their own FabISP programmer:

FabAcademy02img06.jpg
Dave Mellis' FabISP

Here are a few of the projects created by Fab Academy students for the embedded programming assignment:

FabAcademy02img07.jpg
Bram VanWaardenberg's RFID reader


FabAcademy02img08.jpg
When you push a three-way slider switch on Elliot Clapp's chording keyboard prototype, an LED lights up!


FabAcademy02img09.jpg
Jeanine Bressner's persistence of vision (POV) board using adhesive copper film in a mini Altoids tin


Next week: Moldmaking and Casting!

Return to front

Older articles