Many of our readers took the habit of using Eagle to design their PCBs. Even if you’ll find plenty of support for this software as well as a lot of parts libraries, the software comes with limitations. The useable board area is limited to 4×3.2 inches, only two signal layers can be used and more importantly the schematics editor can only create one sheet. On the other side, some of you may already know KiCad, a free open source and unrestricted schematics and layout software. [Chris] just tipped us of a video series he made, showing people how to design and build their very first PCB using this software. It’s a simple 555 circuit, but goes through all the steps necessary to design a PCB that costs only $5 through OSHpark… and will blink by the end. All the videos are also embedded after the break.
[Bryan] has been working on a very nice analog LED clock circuit, but when it came time to lay out the parts in Eagle, he was somewhat miffed by the inability to create designs in his Eagle boards. Eagle is a fine tool for laying out circuits, but when it comes to making strangely shaped PCBs, Eagle just isn’t the right tool.
The solution to this problem was to create the board outline in OpenSCAD. The desired shape of [Bryan]’s clock was easily designed, but importing the shape into an Eagle layer was another matter entirely.
OpenSCAD, though, can output 2D shapes to the DXF format. Getting the DXF board into Eagle required [Bryan] to write a script that outputs Eagle WIRE commands. Pasting these commands into the command line gave [Bryan] a perfectly shaped PCB.
Since DXF is supported by every drawing package on the planet, [Bryan]’s 20 line script could also be used for much more intricate designs. If you have an incredibly complex Illustrator drawing that deserves to be a PCB, it doesn’t get much easier than tossing it through a script.
We love Git. We know everyone has their favorite version tracking tools. But even those that don’t care for Git should see the value of getting meaningful Diff data from tracking Eagle layout files.
Was that last sentence just gibberish to you? Let’s take a step back. A few years ago it was impossible to use version control with Eagle at all because the schematic and PCB layout software used to save its files as binaries. But then Cadsoft transitioned to saving Eagle files as XML. This opened the door for things like scripting to rename parts en masse and to track the files under version control. One problem with the latter has been that performing a Diff on two different versions of a file results in XML changes that are probably not human readable. [Patrick Franken] wrote this script to add at least a glimmer of meaning.
We’d love to see some kind of side-by-side highlighting on the schematic or board renderings themselves. But that’s quite a ways off if we ever actually see it. For now his script will take the Diff and print out the tables seen above denoting which types of changes were made from one version to the next. It’s a start, and we hope it inspires even more work in this area.
Making new parts in Eagle CAD isn’t the easiest thing in the world, especially if you’re dealing with a package that isn’t in one of the default libraries. Usually, making a new part means digging out a datasheet and drawing a new part in Eagle. A better solution would be to generate new parts with code – define the number of pads, the shape of the pads, the symmetry of the chip, and so forth. [Joost]’s madparts does just that, allowing anyone to create new parts in Eagle by entering numbers instead of drawing lines.
The idea behind madparts is to code new entries in Eagle libraries with Coffeescript. It has instant graphical feedback for the part you’re designing, and is able to import from and export to Eagle libraries. A KiCAD-enabled release is coming soon, but until then, madparts looks like a great way to create your own parts in weird packages in Eagle.
Designing a circuit, laying out a board, and sending it off to be fabbed is so easy anyone can do it. A lot of people are, in fact, and with the traditional tools like KiCAD and Eagle, a lot of different boards look very, very similar. You could always add some cool silkscreen graphics to your board to make it stand out, but [Saar] has a better solution: it’s called PCBmodE, and it allows you to draw circuits artistically instead of the 45° angles we’ve become so accustomed to.
PCBmodE takes the parts, pads, signals, and vias for boards stored in JSON files and converts them to an SVG representation. The file is then routed (manually, but [Saar] is working on automated routing) and Gerberized so it can be sent off to a production house.
If you’ve spent any time at all laying out your own circuit boards we’re sure you’ve run into the issue of not having the right component or package available in the standard libraries. If it’s a common part, chances are the symbol definition will be there. But perhaps the footprint you want to use is missing? Here’s an easy to follow tutorial which demonstrates how to assign new packages to existing Eagle PCB components. It even shows the basics of how to tweak the footprint to fit your needs (like making SMD footprints easier to hand solder).
This will not teach you how to make your own custom symbols, or how to build packages from scratch. But it will let you locate the package you want to use from a different component, then copy it to your own library for use with different parts. And the techniques shown make this a quick and relatively painless process.
We certainly don’t want to start another comment quagmire like the recent PIC v. AVR discussion. But we’ve used both Kicad and Eagle rather extensively and feel that neither one has really mastered part/footprint creation in a user-friendly way. We like Kicad’s total separation of footprints from components, and it’s myriad of parameters which can be used to tweak the layout. But if you use the same components frequently, Eagle’s standard of linking parts and footprints does end up saving a lot of time. What do you think?
Cadsoft’s Eagle is a great tool for the independent maker. It’s a relatively easy to use PCB layout program with a ton of part libraries available for just about any project. If you’re using a part this isn’t included in these libraries, though, creating them by hand is a pain. [Dave] sent in a project he’s been working on that makes parts for Eagle with a Perl script, allowing for easy creation of custom parts that aren’t included in any library.
One thing that’s really convenient for custom Eagle parts is that most components are DIPs or some sort of leaded SMD component. [Dave]’s script takes the dimensional data from any chip’s datasheet and creates a custom outline for each part. The inputs and outputs can also be ripped directly from the datasheet and assigned to the footprint, making for a relatively automated process that creates custom parts in Eagle. Now for someone to use this script with a little OCR to make a ‘create Eagle part from PDF’ app…