When I was asked whether or not I would be interested in learning PCB design for a Digilent product, I practically jumped out of my chair with a wide-eyed “YES!” Designing PCBs was something I saw myself doing down the road for projects I have had in mind since I started school. I am a super big guitar effects pedals nerd, and intend to design my own effects pedals within the coming year, so this seemed like a great opportunity to break the ice and get some experience.
Isn’t that pretty? Photo from here.
The design requirements I was given were that it would be a wearable badge (something you could pin to your shirt), an LED would be used as Turbo’s antenna, the body and arms would be separate pieces that would be “popped out” of a main PCB, and that the LED would only light up if all the components and limbs were soldered on properly. The idea was that it could be a cool trade-show demo or soldering practice project for people inexperienced with soldering, that leaves them with a neat finished product. I’ve collected quite a few of these kinds of “kits” interning at Digilent. Below are some examples of what I am referring to.
The first thing I realized was that I needed to design a circuit. Fair enough, right? I thought it would be a little cooler if I designed it such that the LED doesn’t only light up, but it blinks when everything is properly soldered. Earlier in the year, I worked on a theremin project that introduced me to oscillators, so I thought I could implement something like that to get the LED to blink. However, since it was to be a wearable item, it would have to rely on only a 3V cell battery for power. So I had to design the circuit to operate with only a +3V supply and ground reference, but my experience with ICs always had positive and negative power supplies. After some digging, I found a design that I modified using the trusty ol’ 555 chip, and successfully got the LED to blink with those restrictions.
Through-hole and surface mount versions of the NE555 chip from Texas Instruments. Photo from here.
I had the circuit, now I needed to move to the PCB design for real. I started with a great YouTube tutorial from DigiKey using KiCad PCB design software. The tutorial covered just about everything I needed to make the PCB, minus a few details – we’ll get to those soon. It starts with building a schematic in what KiCad calls EESchema. Okay, no prob, I’ve done that in simulation software like LTSpice. Next, you need to assign what are called “footprints” to each part. That’s basically what kind of shape/pinout the part needs in order to fit on the PCB and connect properly. I chose footprints that were already made for parts I knew we would be able to order, so I didn’t actually have to create any footprints. The tutorial does spend some time on how to do that though if need be. Then you generate what’s called a NetList for importing all that info into the PCB layout editor. Below is a screenshot of my circuit design in the schematic window. You can right-click it to view a larger version.
In the PCB layout editor, you arrange your components how you desire and draw what will be the copper traces connecting them all. This is not too difficult, as KiCad provides what’s called a “rat’s nest” when you import the NetList. This rat’s nest shows the connections between components per your schematic design, so when you go to connect your parts, the correct path is taken care of. After you’re happy with the layout, you designate the perimeter of the board and make your copper fills for the etching process. Everything up to this point is covered well in the tutorial, and didn’t give me too much hassle.
I just want to get this out of the way: KICAD WILL NOT IMPORT DXF FILES UNLESS THEY ARE RENDERED AS POLYLINES. The images I was using for Turbo were curved and formatted with what are called splines or actual curves. KiCad can not make sense out of that type of file format. This fact is not really documented anywhere so hopefully this post may help the next newbie. After weeks of trying different things and researching this roadblock (it’s hard to troubleshoot something you don’t really understand), a little clue surfaced and the person that was graciously working on the images for me figured this out. So, once the images were rendered as polylines, KiCad had no issues with them. I was able to place the components on Turbo’s body and create the rectangular perimeter that Turbo would be popped out of. Below is a screenshot of the final PCB layout.
Lastly, I had to decide how the small, perforated connections between Turbo’s body parts and the main PCB were to be implemented. I got a second set of image files that extended the outline of the image and imported it with a 2mm thickness. I had to approximate the length of the connecting portion as well as the number of small holes, the diameter of said holes, and the distance between these holes so that Turbo would be secure during manufacturing, but be able to be popped out of the main PCB for the project. Using an example we had in the office, I took some approximate measurements and winged it. OshPark accepted my design, but when I got it back, they had added a few of these connecting sections and implemented them in a much more effective way. I’ll have to spend some time on the next revision getting those perforated connections better. But hey, when I got the PCBs and put it all together, it worked!
I will be posting this project on Hackster, so if you want more technical details and less about me pulling my hair out, I will update this post with a link to the project when it is ready. Thanks for reading!