Capacitive sensing libraries for the Arduino and just about every other microcontroller platform have been around for ages now, but if you’d like to put a slightly complex cap sense pad in a PCB without a lot of work, you’re kind of out of luck. Not only do you need a proper education in how capacitors work, but a custom cap sense pad also requires some advanced knowledge of your preferred PCB layout program.
The folks over at PatternAgents have just the solution for this problem. They created an Eagle library of touch widgets that includes everything from buttons, linear and radial sliders, touchpads, and a whole lot more.
The simplest cap sense pad is just a filled polygon on the top layer of a board, but this simple setup isn’t ideal if you want to use Eagle’s autorouter. By playing with the restrict layers in Eagle, PatternAgents were able to create easy cap sense buttons that will work perfectly, without the problems of the autorouter placing traces willy-nilly.
There are more than enough parts to replicate a whole lot of touch interfaces – buttons can easily be made into a smallish keyboard, and the radial touch sensor will emulate the ‘wheel’ interface on an iPod. Very cool stuff, and we can’t wait to see these in a few more boards.
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.
Continue reading “KiCad video series: from concept to manufacture”
[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.
You can grab PCBmodE over on bitbucket, but right now it’s still a very early version. Vias and copper pours are working, but [Saar] has only fabbed this board so far.
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?