Thursday, February 23, 2017

First KiCad project

A couple of years ago I built a set of boards using the Nordic Semiconductor nRF24LE1 radio chip. These boards are designed to fit snugly into a Compact Flash card case. For programming and debugging it plugs into a standard PCB edge connector. Here's a photo of an incomplete board (this one was damaged during assembly).

When I started prototyping this project I used a nRF24LE1 breakout board plugged into a solderless breadboard. To program it I used an FTDI FT232R breakout board plugged into the same breadboard and a custom Linux program. Later, when I had completed radio boards, I used a commercially-available cable that has a 2x13 PCB edge connector on one end and a pin header socket on the other to connect the radio board to the solderless breadboard. The photo below shows both the breakout board and the radio board plugged in at the same time, which of course I wouldn't do in real life.

This worked well during initial development and testing, but the breadboard jumper wires tend to come loose with use (two loose wires are visible in this pic). It's also occupying one of my breadboards for which I have other uses. Since there is actually very little circuitry required to support the FT232R I decided a dedicated programmer board would make an excellent first KiCad project.

The workflow using KiCad is rather different than that of Eagle. I knew this going in but it's worth explaining to those who may be unfamiliar.

With Eagle it's best if you already know what parts you're planning on using, as each library part is associated with a set of available footprints. Changing footprints among the set is as easy as clicking Change -> Package and clicking on the device you want to change. You're then presented with a list of packages for that device for you to choose from. You can do this either on the schematic editor or on the board editor and the other one will automatically update (called "back-annotation"); no need to re-export netlists or other such nonsense.

With KiCad it's not so easy. When you create a device in the library you have to assign pin numbers to the various signals, which means you need to know the layout of the device footprint, but you don't actually associate the device with a physical footprint until the schematic is complete. If you need to change the part to an equivalent with a different pinout (from a 28-SSOP to a 32-QFN, perhaps) you have to go back to the schematic, replace the part, reconnect all the nets, re-export the netlist, associate a new footprint, then go back to the board editor. While I realize this is the way many PCB CAD programs work, to me it's just silliness. But whatever.

Here's the initial schematic in KiCad's schematic editor "Eeschema". As you can see there isn't much to it, which is why I thought it'd be an idea starter project:
I'm not quite to the point of doing the footprint association yet. I may add a few LEDs, and possibly a switch to allow the radio board to run off its battery rather than the +3V3 output of the FT232R. But it's pretty close to done.

No comments:

Post a Comment