8 Bit Synth: The PCB
[caption id="attachment_62" align="aligncenter" width="300" caption="8 Bit Synth PCB"]
[/caption]
I finally ordered the first revision Printed Circuit Board. Lordy lordy, hallelujah. It took about a month from start to finish, but remember, I have to go to work. Always seems to get in my way. At any rate, I laid it out. It's a big one, 8.25" x 5.1". I managed to cram it in there. In theory, I could compress it more, but I need to get a look at it and see how it feels with the spacing between knobs and buttons. I actually ordered it last week and I should be receiving it tomorrow.
Many of you probably aren't familiar with the process of laying out a PCB, so I want to talk a bit about my process and mention some of the things that I learned along the way. Follow the jump...
I spent a long time working on this project in breadboard hashing out a lot of ideas for how it should work. There came a point though where the number of interconnections and the number of parts would overwhelm your average breadboard. I kept having to move them around and I spent a fair amount of time troubleshooting all of the jumper wires finding shorts, opens, and the jumper wire your wife dropped when she put your hard work ("messy electronics") in a neat plastic box. If you look at the board, there is no shortage of parts or connections. Eventually, the board just makes sense. There is a cost associated though. PCBs are not free. I had to work it to a point that I was fairly confident in what I was going to put down.
I use Eagle layout and schematic (autorouter is for lazy people). Eagle is good documentation tool and a greater layout tool. It is not the best but better tools cost much, much more. For instance, a single license of Altium Designer, a much more powerful CAD tool, costs anywhere from $4-9,000, depending on which package you purchase. Eagle schematic and layout can be had for $498. That's not $0, but you can get the freeware version of Eagle for $0. It lets you make a full featured, one page schematic and a pcb up to 4"x3.2" with a front and back, which is what you need for most simple things. The free version gets you hooked like a neighborhood crack addict and sure enough after building your wizardry skills you'll be back.
So, it started with the schematic, which I showed in an earlier post. That took quite a bit of time in itself. Many of the parts that I use did not have a model already built into Eagle's library. What does that mean? It means that I had to create the symbol on the schematic and the pad layout that ended up on the board. I'm a certified part making wizard now. Resources on how to use Eagle are abundant, so I won't dwell on the process. Generally, I start from a schematic before I build anything, but this was the first time I built anything truly from scratch. At work, very little comes from scratch because we're usually not inventing something, but adapting something else, improving it, or adding new features to something that already exists. This process is more iterative with back and forth between the breadboard and the schematic. I went through at least five different filter topologies and read an entire textbook before I decided on this topology. I'm still not 100% but we'll see when I build this one in the next couple weeks.
With the schematic complete and all parts fully built in the library, I started the layout. The steps for layout are pretty straightforward. I may make a little tutorial for this at some point. When you first create the board from the schematic, you're greeted with all the parts tied together in a huge mess of wires ("air wires"). All the connections that need to be made are represented by a web of gray lines. I organized them in groups of related parts. This seems like something a layout editor should do on its own, but its the only way to see how to put the parts on the board. Once I decided which parts should be laid out in roughly the same area, I started putting them on the board. I made sense to separate control circuitry from the analog circuitry and to have the analog circuitry near the output and input. It might have made sense to have the microcontroller in the middle, but it broke up the flow a little too much. I decided to prioritize the layout of the control circuitry and allow other things to follow from that. We'll see how it turns out.
After putting down the parts, it's a matter of connecting them together with traces, copper wires, on the surface of the board. I put a ground plane on most of the back. That's the blue color on the image. It helps to reduce noise in the system by giving currents a direct and easy return path to ground. I tried not to break it and for a while, I was successful, but it became fundamentally necessary to put traces on the bottom amongst the ground plane. This breaks it up and reduces its effectiveness, but whatcha gonna do. Technically, the right thing to do is to make a four layer board with a ground plane and a power plane unbroken on an inner layer. Multi-layer boards are crazy expensive though, so I couldn't go there. One of the best things you can do when putting traces on both sides is to make top layer traces cross bottom layer traces at 90 degree angles. This minimizes their interaction and makes layout easier because you often have to make a trace cross from the top to the bottom through a via, or drilled and plated hole in the board.
I made it through the process. Soon, we'll see if it works. I'll be firing up portions of the circuit at a time and testing each thoroughly before testing it all at the same time. Check back for more info on the project and many other fun things.