Most All of my projects in the past I’ve use Eagle PCB, as it certainly has been the EDA of choice in the open hardware community. However it was the only non-open piece in my open hardware arsenal, until now…..enter Kicad.
I’ve been keeping an eye on Kicad for the past couple of years and I’ve never really had time to try it out on a project until now.
A bit of background
My Father is a member of a recreational collectors motor bike club and they have a number of timed competition rallies throughout the year that may go over the weekend and consist of many checkpoints across a course that are located throughout the district.
In the past they did everything manually i.e. write down their time and details at each checkpoint, so at the end of the rally, times are tallied and winners announced etc. Since it is manual it doesn’t scale very well, at their annual run where a few hundred competitors took part it didn’t scale well at all. Knowing the geek that I am, my father asked me if I could do anything to make things simpler. The club had investigated some commercial rally systems, but was pretty expensive. I volunteered to automate things a bit…..
Enter RallyLog! An Open Hardware project that will use RFID tags to log competitor times at checkpoints.
So I now had the reason to learn Kicad for a totally Open Project.
Kicad was originally written by Jean-Pierre Charras (more background on Kicad can be found here – http://www.lis.inpg.fr/realise_au_lis/kicad/)
It is actively being developed by a large number of volunteers at http://launchpad.net/kicad and runs on a number of platforms:
Kicad is made up of a number of different applications that run under the Kicad project manager they are:
- kicad – the project manager.
- eeschema – the schematic editor.
- cvpcb – the footprint selector for components used in the circuit design.
- pcbnew – the PCB layout program.
- gerbview – the Gerber (photoplotter documents) viewer.
- 3D PCB Viewer
Coming from Eagle I had to unlearn how I did things within Eagle and move to the Kicad way, this means a lot of right-clicking to do things, many things were not the same as what I was used to in Eagle, but I quickly picked things up within a day of using Kicad and now find most things fairly intuitive.
If I had a problem I found the developers and the users to be very helpful answering questions on the mailing list.
What About Your Existing Libraries?
Yes this is a big thing, especially those who have build up their own footprint libraries over time, however all is not lost! a ULP Eagle Library conversion script has been written that is run from within the Eagle Library. This converts the library to the Kicad library format of which the Components and PCB prints are separated out into two files. One is a library *.lib file for eeschema that contains the schematic representation of the components, the other is in a *.mod format for module footprints used within pcbnew.
In Eagle a library contains the:
- Symbol – Schematic representation, actual component and
- Device – the PCB footprint , all of which represent a component.
- Package – the actual component that links links the Symbol and Device
Kicad component library has been separated into the Schematic and the PCB side of thins, one library for each. Now That I’ve been using things for a bit over a month I can see that it makes a lot of sense. When I’m creating a schematic all I want to worry about is capturing the circuit, if I need a new component I create a new component in the library, not having to worry about the footprint at this point in time. In eagle it is similar, i.e. you can create only the symbol and package without the device, but I found it long winded.
Another added bonus with the components is you can link data sheets to the individual components. Brilliant!
I successfully imported a my libraries across, I did have to manually replace the reference some components as it defaulted to U?
One thing I haven’t played around with yet is the 3D viewer.
- Create a new project within Kicad project manager
- Create a schematic (and components if required)
- annotate your schematic
- Design rules check
- Create a netlist
- run cvpcb and associate footprints to your components
- run pcbnew
- import your netlist
- layout your PCB
- Design rules check
- plot your gerber output and create drill files
- view with the built in gerber viewer.
Features and Anti-Features (pros and cons)
- 100% Open Source!
- Interface for FreeRoute build into pcbnew, so you can use a push and shove autorouter.
- In build Gerber viewer
- 3D Viewer of the PCB.
- I love the professional looking schematics it generates, even including the border information.
- Hierarchical schematics – you can place sheets with-in sheets and drill down by clicking on them
- Drills – Kicad has no concept of drills or holes in the pcbnew program, so you have to put in a pad that has the drill and the pad size the same, unfortunately this results in plated holes unless you notify your manufacturer of the holes not to be plated.
- Component layers – I like the ability within Eagle to have a document layer for my footprints, where I can put information that will not included in my final output. (this is actually implemented in Kicad just a bit harder to find and not so intuitive)
- Lack of inbuilt scripting like eagle, however you can write scrips in any language you want and manipulate your schematics, PCB and components externally du to the open format it is all saved in.