Eagle To KiCad Made Easy

One barrier for those wanting to switch over from Eagle to KiCad has been the lack of a way to convert existing projects from one to the other. An Eagle to KiCad ULP exists, but it only converts the schematic, albeit with errors and hence not too helpful. And for quite some time, KiCad has been able to open Eagle .brd layout files. But without a netlist to read and check for errors, that’s not too useful either.

[Lachlan] has written a comprehensive set of Eagle to KiCad ULP scripts to convert schematics, symbols and footprints. Board conversion is still done using KiCad’s built in converter, since it works quite well, and we were able to successfully convert two projects from Eagle. The entire process took only about 10 to 15 minutes of clean up after running the scripts.

The five scripts and one include file run sequentially once the first one is run. [Lachlan]’s scripts will convert Eagle multi sheet .sch to KiCad multi sheets, place global and local net labels for multi sheets, convert multi part symbols, build KiCad footprint modules and symbol libraries from Eagle libraries, create a project directory to store all the converted files, and perform basic error checking. The Eagle 6.xx PCB files can be directly imported to KiCad. The scripts also convert Via’s to Pads, which helps with KiCad’s flood fill, when Via’s have no connections — this part requires some manual intervention and post processing.

KiCad Utilities Generate Parts; Track Costs

The popularity of KiCad keeps increasing, and not only are more people converting to it and using it for their projects, but there’s also a growing number of folks actively contributing to the project in the form of libraries, scripts and utilities to improve the work flow.

KiPart

[Dave Vandenbout] a.k.a [xesscorp] has written a couple of utilities for KiCad. When working with large multi pin parts such as micro-controllers, creating a schematic symbol from scratch using the traditional KiCad schematic library editor can be quite tedious. KiPart is a python script that uses a CSV table as its input to generate the KiCad schematic symbol and is able to create multi-part symbols too. Usage is quite simple. The csv file needs a part name on its first row. The next row contains the headers. ‘Pin’ number and Pin ‘Name’ are the minimum required. Additionally, you can add in ‘Unit’, ‘Side’, ‘Type’, and ‘Style’. Unit is used when defining multi-unit parts. Side decides the location of the pin, Type its function, and Style is its graphic representation. Running the KiPart python script then results in a nice KiCad schematic symbol. Besides, KiPart can specifically generate schematic symbols for the Xilinx 7-Series FPGAs and the Cypress PSoC5LP. There are a whole host of options to customize the final output, for example ordering pin placement based on pin number, or pin name or pin function. Source files can be obtained from the [xesscorp] Github repository.

KiCost

KiCostAnother useful utility from [xesscorp] is KiCost. It is intended to be run as a script for generating part-cost spreadsheets for circuit boards developed with KiCad. The one piece of information you need to add to your schematic parts is a manufacturers part number. The KiCost Python script then processes the BOM XML file, reading the manufacturer part number, scraping the web sites of several popular distributors for price and inventory data, and creating a costing spreadsheet. You can grab the source files from the KiCost Github repository.

Check the two videos below where [Dave] walks through the two utilities.

Thanks to [RoGeorge] for sending in this tip by commenting on the Open Source FPGA Pi Hat built by [Dave] that we featured recently.

Continue reading “KiCad Utilities Generate Parts; Track Costs”

KiCad 4.0 Is Released

If you’re a KiCad user, as many of us here at Hackaday are, you’ll be elated to hear that KiCad 4.0 has just been released! If you’re not yet a KiCad user, or if you’ve given it a shot in the past, now’s probably a good time to give it a try. (Or maybe wait until the inevitable 4.0.1 bugfix version comes out.)

If you’ve been using the old “stable” version of KiCad (from May 2013!), you’ve got a lot of catching-up to do.

The official part footprint libraries changed their format sometime in 2014, and are all now hosted on GitHub in separate “.pretty” folders for modularity and ease of updating. Unfortunately, this means that you’ll need to be a little careful with your projects until you’ve switched all the parts over. The blow is softened by a “component rescue helper” but you’re still going to need to be careful if you’re still using old schematics with the new version.

The most interesting change, from a basic PCB-layout perspective, is the push-and-shove router. We’re looking for a new demo video online, but this one from earlier this year will have to do for now. We’ve been using various “unstable” builds of KiCad for the last two years just because of this feature, so it’s awesome to see it out in an actual release. The push-and-shove router still has some quirks, and doesn’t have all the functionality of the original routers, though, so we often find ourselves switching back and forth. But when you need the push-and-shove feature, it’s awesome.

If you’re doing a board where timing is critical, KiCad 4.0 has a bunch of differential trace and trace-length tuning options that are something far beyond the last release. The 3D board rendering has also greatly improved.

Indeed, there are so many improvements that have been made over the last two and a half years, that everybody we know has been using the nightly development builds of KiCad instead of the old stable version. If you’ve been doing the same, version 4.0 may not have all that much new for you. But if you’re new to KiCad, now’s a great time to jump in.

We’ve covered KiCad hacks before, and have another article on KiCad add-on utilities in the pipeline as we write this. For beginners, [Chris Gammell]’s tutorial video series is still relevant, and is a must-watch.

Thanks [LC] for the newsworthy tip!

KiCad Script Hack For Better Mechanical CAD Export

Open source EDA software KiCad has been gaining a lot of traction recently. CERN has been devoting resources to introduce many new advanced features such as differential pair tracks, push and shove routing and this plenty more scheduled in the pipeline. One important requirement of EDA packages is a seamless interface with mechanical CAD packages by exporting 3D models in industry common formats. This improves collaboration and allows further engineering designs such as enclosures and panels to be produced.

KiCad has had a 3D viewer available for quite a long time. But it uses the VRML mesh format (.wrl files) and there are compatibility issues which prevent it from rendering certain versions of VRML files. Moreover, the VRML mesh export is not particularly useful since it cannot be easily manipulated in mechanical CAD software. Recent versions of KiCad now offer IDFv3 format export – the Intermediate Data Format, a mechanical data exchange specification for the design and analysis of printed wiring assemblies. Taking advantage of this new feature, [Maurice] created KiCad StepUp – an export script that allows collaborative exchange between KiCad and FreeCAD.

A FreeCAD macro and a corresponding configuration file are added to the KiCad project folder. You start with .STEP files for all the components used in the KiCad design. The next step is to convert and save all .STEP files as .WRL format using FreeCAD. On the KiCad side, you use the .WRL files as usual. When you want to export the board, use the IDFv3 option in KiCad. When [Maurice]’s StepUp script is run (outside of KiCad) it replaces all instances of .WRL files with the equivalent .STEP versions and imports the board as well as the components in to FreeCAD as .STEP models. The result is a board and its populated components which can be manipulated as regular 3D objects.

Continue reading “KiCad Script Hack For Better Mechanical CAD Export”

Hackaday Prize Worldwide : New Delhi Kicad + Show And Tell

While Mumbai and Bengaluru have an active and large hacker community, New Delhi, India’s capital, seems to have leapfrogged ahead when it comes to hackerspaces – four at last count. So when the latest one in town, Maker’s Asylum, opened it’s doors last month, we decided to put together a hacker congregation to bring the community together and introduce them to the Hackaday Prize. Having already done Hackaday Prize bring-a-hack events in Mumbai and Bengaluru, we thought of doing something more substantial – a day long KiCad EDA workshop followed in the evening by a Show-n-Tell brag show.

Hackaday’s [Matt Berggren a.k.a. @technolomaniac] has done a couple of “Design a PCB from zero to WiFi with Hackaday!” Eagle EDA workshops recently. He designed a simple breakout board that allowed connecting an ESP-01 module to the USB port via an USB-UART cable with level conversion, pull up resistors and push button switches to make it easy to program. We had a slightly delayed start, so I quickly rushed through the awesome presentation that [Matt] has prepared, running through the “What is a PCB?” section and skipping the rest. We also discussed a couple of candidate designs for the day’s workshop – a pair of ATtiny line following robots, a simple Attiny SmartLED controller, but eventually, everyone got excited when I mentioned “ESP-8266” !

Continue reading “Hackaday Prize Worldwide : New Delhi Kicad + Show And Tell”

CERN Shows Off New KiCad Module Editor

Photo from video demo of new KiCad module editor

CERN, the people that run a rather large particle collider, have just announced their most recent contributions to the KiCad project. This work focused on adding new features to the module editor, which is used to create footprints for parts.

The update includes support for DXF files, which will make it easy to import part drawings, or use external tools for more complex designs. New distribute tools make it easy to space out pads evenly. The copy and paste function now allows you to set a reference point, making it easy to align blocks. Finally, the pad enumeration tool lets you quickly set pin numbers.

CERN has already implemented a new graphics engine for KiCad, and demonstrated a new push and shove routing tool. The work plan for CERN’s KiCad contributions shows their long term goals. If you’re interested in what CERN is doing with KiCad, you can check out the CERN KiCad Developers Team on Launchpad.

After the break, watch a quick run through of the new features.

Continue reading “CERN Shows Off New KiCad Module Editor”

Fail Of The Week: Unconnected Nets In KiCad

fotw-unconnected-net

From the title and the image above you surely have already grasped this Fail of the Week. We’ve all been there. Design a board, send it to fab or etch it yourself, and come to find out you’ve missed a connection. Automatic checks in your software should prevent this, but when making small changes it’s easy to overlook running the checks again. This is exactly what [Clint] did with this board; leaving a net unconnected in the schematic, which made its way through to the board layout and into the OSHPark boards.

Okay, so fix it with jumper wire which is clearly what he did (white wire in the lower left image above). But since this is rev3 of his PCB it’s pretty upsetting that it happened. The meat and potatoes of the fail is the missing software feature that led to it. KiCad doesn’t have a pin swap tool in the board layout. Really? We use KiCad frequently and didn’t realize that the feature was missing. Needing to simplify his board layout, [Clint] went back to the schematic to swap some resistor network pins by hand. He pushed the change through the netlist and into the board layout, not realizing he had left an input gate unconnected.

A bit of searching proves that pin swapping may be coming to KiCad soon. It’s on the CERN roadmap of features they plan to add to the open source PCB layout software. We remember hearing about CERN’s plans quite a while ago, and thought we featured it but the only reference we could find is [Chris Gammell’s] comment on a post from back in December. It’s worth looking at their plans, these are all features that would make KiCad a juggernaut.

EDITORIAL NOTE: We’ll soon be out of story leads for this series. If you have enjoyed reading weekly about fails please write up your own failure and send us the link. Of course any documented fails you find around the internet should also be sent our way. Thanks!


2013-09-05-Hackaday-Fail-tips-tileFail of the Week is a Hackaday column which runs every Wednesday. Help keep the fun rolling by writing about your past failures and sending us a link to the story — or sending in links to fail write ups you find in your Internet travels.