KiCad on the Raspberry Pi
The Raspberry Pi has heralded in a renaissance in DIY electronics. The GPIO ports open up a world for custom electronics projects of everything from home control systems to fully autonomous robots. Most projects involve connecting a number of discrete components together on a breadboard and then connecting a few leads over to the Raspberry Pi’s GPIO ports. KiCad lets you take these projects to the next level allowing you to design and manufacture custom printed circuit boards to replace the breadboard with something more permanent. KiCad is an open source design tool that lets you nicely layout your electronic circuits, produce schematics and then take these and produce a PCB. Commercial PCB software is expensive and KiCad, now at version 6, has progressed to compete with the best of these.
In this article, we’ll look at using KiCad to design the circuit for the simple flashing LED hardware.
Designing the Schematic
Creating a schematic is fairly simple in the Eeschema tool. The only gotcha was that the first time you run it, some operations are so slow you don’t know what’s going on. For instance, I was stuck on how to add my first symbol, but that’s because it was building the symbol library and on a Raspberry Pi, this takes a while. Once I was past this, everything went quite smoothly and I was impressed as to how easy this CAD program is to use. The general procedure to building a schematic is to:
- Add all the symbols to the schematic.
- Arrange the symbols to make wiring them simple, possibly rotating them.
- Add the wires to connect everything.
- Add documentation, such as proper labels and comments.
I added a Raspberry Pi GPIO header to the diagram to document how to wire up the flashing LEDs to a Raspberry Pi. In the properties for this symbol, I marked it as not going on the PCB board and not to be added to the bill of materials. I added terminals by each lead that goes to the Raspberry Pi, so if I create a PCB board then wires can be soldered to these and connected to the Pi’s GPIO pins. If I was only producing documentation, I could have left these terminals out.
If you are going to generate a PCB board then you need to ensure that each component has a footprint associated with it, which gives the precise measurements for the size and placement of pads on the board that is created.
Read more: KiCad on the Raspberry Pi