In this series, “Letters from the Fab Academy,” Shawn Wallace, member of AS220, the Providence, RI community arts space, shares his experiences with the Fab Academy, a distributed learning collaborative built on the infrastructure of the Fab Lab network. – Gareth

Making and programming circuit boards

By Shawn Wallace

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

Jenine Bressner’s persistence of vision (POV) board using adhesive copper film in a mini Altoids tin

Next week: Moldmaking and Casting!

More:

From MAKE magazine:

make volume 21 little cover.jpg

MAKE Volume 21 is the Desktop Manufacturing issue, with how-to articles on making three-dimensional parts using inexpensive computer-controlled manufacturing equipment. Both additive (RepRap, CandyFab) and subtractive (Lumenlab Micro CNC) systems are covered. Also in this issue: instructions for making a cigar box guitar, building your own CNC for under $800, running a mini electric bike with a cordless drill, making a magic photo cube, and tons more. If you’re a subscriber, you may have your issue in hand already, and can access the Digital Edition. Otherwise, you can pick up MAKE 21 in the Maker Shed or look for it on newsstands near you!

Gareth Branwyn

Gareth Branwyn is a freelancer writer and the former Editorial Director of Maker Media. He is the author or editor of a dozen books on technology, DIY, and geek culture, including the first book about the web (Mosaic Quick Tour) and the Absolute Beginner’s Guide to Building Robots. He is currently working on a best-of collection of his writing, called Borg Like Me.


Related
blog comments powered by Disqus

Related Supplies at Maker Shed

Follow

Get every new post delivered to your Inbox.

Join 28,411 other followers