PCB Milling
Release status: Concept
Description | Collection of software helpful for milling PCBs and their application to RepRap
|
License | unknown
|
Author | |
Contributors | |
Based-on | |
Categories | Electronics, PCB/Circuitry Making
|
CAD Models | |
External Link |
One obvious goal of making a RepRap replicatable is getting it to make it's own PCBs or other electronic circuitries. Recent firmwares understand a pretty standard flavour of GCode, opening the door to a lot of toolpaths already existing. This page describes a few promising ones.
Contents
Software suites
While a gazillion of softwares for creating and manufacturing circuits and PCBs exists, it was surprisingly difficult to find a working combination. As RepRap is open source, we want also to use open source tools for designing RepRap stuff, of course.
All applications described claim to run on all major OSs: Linux, Windows, Mac OS X. Testing was done on Ubuntu 10.04, 64-bit version.
Eagle
While Eagle is a proprietary and closed source tool; an almost full functional, free evaluation version exists. The only limitation is the maximum size of the resulting PCBs. Eagle is widely used among hobbyists and currently most RepRap designs are made with it, too.
Eagle is helpful for
- Schematic design.
- PCB design.
- Mill/Drill file creation (Gerber).
KiCad
KiCad is the rising star on the open source PCB creation sky. It's GPLv2 and in terms of features and user interface quite comparable to Eagle.
KiCad is helpful for
- Schematic design.
- PCB design.
- Mill/Drill file creation (Gerber).
- Creating offsets for isolation milling (HPGL).
Fritzing
Fritzing is finally(!) a schematic and PCB editor with a user interface for mere humans. As a highlight, you can pick and place electronic components just like you'd do this on a breadboard on your real desk. The schematic editor autoroutes connections similar to the PCB autorouter to tidy them up and all three parts - breadboard, schematic, PCB - are always kept in sync.
While this application is a very promising approach, it currently lacks a serious library. However, an Eagle to Fritzing converter is in the works, so this problem might be solved soon.
Fritzing is helpful for
- Schematic design.
- PCB design.
- Mill/Drill file creation (Gerber).
Replath
Replath is RepRap's own effort to create a PCB manufacturing application. I'm not sure about it's status, as the last Wiki edit is from October 2008 and obviously the app's name got forgotten in the recent (September 2010) discussion about how to reprap PCBs.
Replath is helpful for
- Creating offsets for isolation milling.
- GCode isolation milling file creation.
- Sending the GCode file to the RepRap machine controller.
hp2xx
hp2xx is a very basic tool which can create GCode from HPGL. This is useful in conjunction with KiCad's export to HPGL outline feature.
hp2xx is helpful for
- GCode isolation milling file creation.
cam.py
cam.py is a single-file script by Neil Gershenfeld, capable of creating GCode files for isolation milling and drilling.
PCB-GCode
PCB-GCode is an add-on for Eagle, creating drill and isolation milling GCode files directly.
Installation on Linux, Mac OS X
PCB-GCode comes as a ZIP file. Unzip all the contents into one of your ULP folders, typically $HOME/.eagle/ulp. As the file permissions in this ZIP are found to be funny, PCB-GCode wants to write into it's installation folder (*sigh*), Eagle by default links $HOME/.eagle/ulp to /usr/share/eagle/ulp, you have to correct things a bit:
sudo chmod 777 $HOME/.eagle/ulp cd $HOME wget http://pcbgcode.org/file.php/download/12/93/pcb-gcode-3.5.2.11.zip mkdir pcb-gcode cd pcb-gcode unzip ../pcb-gcode-3.5.2.11.zip find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \; mv * $HOME/.eagle/ulp/ cd .. rmdir pcb-gcode
Perhaps there's a simpler way, but this one worked for me.
pcb2gcode
pcb2gcode is a command-line program that calculates machine toolpaths from given PCB layouts. Despite it's name, it does NOT accept unix "pcb" files, but standard gerber RS274-X and Excellon files, and creates fully EMC2-compatible RS274-NGC files.
cynbes-gcoder
Cynbe's GCoder is an early version of pcb2gcode which was found to actually work.
GCAM
GCAM Is a GUI-based tool claiming to handle Gerber files, and of course outputting GCode files.
Installation
For more detailed instructions, see [1].
Everybody except Windows and 32-bit Ubuntu users has to compile from source:
# probably apt-get install something, but here it compiled without any wget http://gcam.js.cx/files/gcam-2010.07.27.tar.gz tar -xvzf gcam* cd gcam* ./configure --prefix=${PWD}/installation # install locally for now make && make install ./installation/bin/gcam # test it!
gerbv
gerbv is part of the gEDA software suite and can view gerber files. This doesn't help directly, but is helpful in finding solutions and for troubleshooting.
gEDA is yet another software suite with schematic and PCB layout editor. It wasn't included in the set of preferred choices here because it requires hand-coding of text files in between usage of the different GUI tools.
Toolpaths found to work
Toolpaths found here give a full solution from the PCB editor to creation of RepRap firmware compatible GCode.
For sending GCode to the machine controller, on can use RepRap Host software or any terminal emulation software capable of connection to a real serial device in conjunction with a firmware capable of doing flow control, e.g. FiveD on Arduino.
Eagle -> PCB-GCode -> GCode
Once it works, PCB-GCode works just nicely. Type
run pcb-gcode-setup
in Eagle's command line, hit Enter, modify settings to what you need, then click "Accept and make my board". If any question dialogs appear, you can answer them always with Yes. A GCode preview will appear, type 'x' or 'q' to leave it. After that, a bunch of GCode files show up in the project's directory, which are (almost) ready to be sent to the RepRap machine.
Settings
That's already well documented, see 10bull's web page, Christoph Selig's Blog (german, but with pictures) and of course PCB-GCode's own documentation, which is part of the code distribution and typically ends up in $HOME/.eagle/ulp/docs/readme.html.
Highlights
- Can follow an isolation path multiple times with raising offset. This is needed when using engraving pens as tools.
- Can mill arbitrary geometries. Just put lines (wires) or arcs on layer 46 "Milling" and the appropriate GCode will appear.
Missing Features
- Ability to mill larger holes with the milling tool. PCB-GCode asks for an appropriate drill for each of the holes. This eventually requires a lot of tool changes and a well sorted tool rack.
- Ability to replace curved movements (G02/G03) with a set of straight movements.
Toolpaths found to work partially
Toolpaths which mostly work, but lack some needed features. One example would be generation of valid isolation mill paths, but no GCode for drilling.
Toolpaths found to NOT work
Toolpaths with major roadblocks. Usually cases where promises of one software package or another just don't hold true.
Example Circuits
- Opto Endstop made by Gavilan.
- Fabio: Arduino compatible microcontroller board.
- Hydra doing PCB milling by Clayton.
- Adventures with Atmel AVRs and CNC PCB engraving by Alan Garfield.
- TINYPOV Milling Challenge by Gatonero.
- First PCB milling success gives a few good hints on how to avoid burr.