Trial and errors….

Like most blogs, social media showcases etc. this page is to some extent a massive display of selection bias – you only see the stuff that works, and only when it works. You never (or at least rarely) see the things that don’t work. Because of that, I just thought it would be funny to at least give you a few examples of the memorable mistakes I’ve made during the life time of this blog – along with the lessons I’ve (hopefully) learned from them.

Read more of this post

Evolution of a design…

Sometimes when looking at a design I was originally quite happy with new ideas come up and I start to rework the design, either as an optimisation of the original or simply as a “branch” that I hadn’t originally considered.

One such example is my “EL2k” buffer/preamp/headamp design. I was fairly happy with the original layout, but when I contemplated putting four boards in the same box for a balanced configuration the original board size started to look a bit big and so a redesign-attempt was in order.

Originally the ambition was a “space no object” design which had room for the best quality parts possible, but aside from that the original design goals were simple:

  • Through hole parts where possible
  • Short signal path and good decoupling as per the component datasheets
  • “Overkill” Fischer SK68 heat sink profile because I like the way it looks and because it provides solid mechanical mounting to the board.

Mostly because the heat sink profile comes in predefined sizes (which means that there are some natural steps in how the board should be shrunk), I thought this could be an interesting way to showcase the evolutionary process of what I ended up with 🙂

On the original version I was pretty happy with the basic layout and most of the traces are as short and as clean as the physical layout allows (at least I think so…). The only real exception is the unsightly top layer trace that links the negative supply to the buffer with the negative supply pin on the opamp. The first step was to try and tackle that….

el2k-evo-1

…and it’s not easy. There isn’t really a lot of space to begin with, and even with tricks such as physical jumpers and SMD decoupling caps I wound up more or less back where I started (see below).

Next came trying to actually reduce the board size. The next step down in heat sink size is 50mm, so that becomes the target. End result:

el2k-evo-2

The 50mm version actually looks good to me and there are very few actual compromises here.

  • The input cap has been moved and it has been changed to a 27.5mm lead spacing box cap (with a 15mm option). It’s a small step down in quality vs. the axial cap on the original board, but probably still fine for most people/applications.
  • The power LED arrangement has been changed. The original “1 LED per rail” replaced with a single LED connected between the supply rails. In return, the LED resistor was changed to a slightly bigger package that allows for resistors up to 1W.

Now, the next step down in heat sink size is 37.5mm.

el2k-evo-3

Now we’re seeing some actual compromises 🙂

  • The basic layout is still the same, but the input cap has been shrunk considerably to a 15mm type. However, that in itself is not enough and one of the mounting holes had to be removed to provide space for the input connector.
  • The output connector also had to be removed and replaced with solderpads.

Other than that, it’s pretty much identical to the 50mm version. This led to a bit of thinking – what if the input cap was removed altogether? – and either omitted or mounted off-board? That would allow the fourth mounting hole to be kept. However, since the cap can easily be bridged and the board still has two mounting holes on the “heavy” end, this was deemed unnecessary overall.

el2k-evo-4

Both of these versions have larger compromises as far as I am concerned, but still not unacceptable if I had an application that required the smaller PCB size. Suddenly it becomes possible to take the idea of a balanced-bridge amp and realise it in almost the same space as the original stereo amp. Also, it gives an excuse ahem, opportunity, to design a backplane for the amp boards to keep the wiring tidy and make it look better 😀

It also becomes clear that it isn’t really possible to shrink the design further without making substantial changes. A stereo board version would of course be possible, but looking at the configuration of parts around the EL200x IC and it became clear that I couldn’t have two amplifier blocks side-by-side and keep the original arrangement of power supply, decoupling, signal routing etc. Also, when deciding between a stereo 75mm version and a mono 37mm version, I would normally choose the latter as it is cheaper to manufacture and more versatile in use.

So, all things considered the original 75mm version is still good but the “modified” 50mm version should be almost as good. The 37mm version doesn’t give up the overall flavour of the original design and it’s definitely still viable, although the exact application would have to decide exactly which compromises to make. Not bad if I do say so myself 🙂

So with that done – expect to see revised prototypes in about a month or so 😀

PCB Layouts Part 1 – Workflow

I get asked (surprisingly) often about my PCB layouts and how I do them. Flattering obviously, but also a bit strange as I don’t really consider myself an expert on PCB layout at all. However, I can share are some “workflow” tips on laying out a board in the most effective way based on my experience.

Note that the below is based on using the freeware version of Eagle, but much of it should translate to other software packages without much difference.

The first step is to draw the schematic in the schematic editor. If I start from someone else’s published schematic I’ll normally print a copy on paper and mark on that which parts sizes I expect to use. This then becomes the reference for drawing the schematic in the editor. Once the schematic is drawn in it’s basic form I’ll check it, rename the parts and then run an electrical check to verify that nothing has been missed. If I am going from a published schematic I normally stick to the part names from the original schematic (because that makes for much easier troubleshooting if something’s amiss later on), otherwise I will make up something that is logical to me, usually going from input to output.

Then it is time to switch to the board editor. Most of my PCB layouts start out with mounting holes placed in the four corners (because that’s normally where I want them) and a ground plane drawn in the top layer. If I have a specific board size in mind I’ll restrict it straight away, otherwise I will keep the full area and then reduce the size as the layout progresses. I will also load my own standard design rules and tweak the parameters (mainly clearance) if required before I start, because then I will not make something that I have to revise later when the DRC (design rule check) fails.

I generally then start the actual layout process by placing the key components as I want them. Key components usually mean:

  • Power and control devices (transistors/ICs and potentiometers/switches) that must extend over the edge of the board
  • Power devices that need an onboard heat sink (heat sink is placed as well of course)
  • Other ICs plus their associated decoupling parts as close to the IC as possible
  • Key connectors (if they need to be in a certain position I fix that, otherwise I put them on the specific board edge where I believe it makes most sense to have them).

After this, the fun (or frustration) starts. Using the schematic on one side and the “ratsnest” command in Eagle to recalculate wires I start moving first the major and then the minor parts of the circuit around and positioning them to yield as short and as neat traces as possible. This requires several iterations and usually also putting the board away and coming back to it later because I tend to “go blind” after staring at the layout for too long at a time. Other tips that I use to simplify the layout process include:

  • Every time I make a major change, I save the board as a different file version with a new revision number, because sometimes layout changes turn out to be “dead ends” and then it’s easier to return without having to do massive amounts of rework. Some of my more complex designs have 10-15 file revisions before getting to the final layout.
  • I normally do the basic layout using one trace width, generally the smallest width I expect to use in the circuit. Once I have a layout I am reasonably happy with mechanically, I can enlarge key traces without having to do a lot of fiddly rework and without risking that I miss something. In general I also stick to using a few standard trace widths which makes it easier to quality check the layout later on in the process.
  • I normally start with 45 degree trace angles for simple and consistent routing, and the in the last round of tweaks I may change some traces to be “odd” angles instead if it significantly helps the layout.

Once the layout is beginning to shape up and all traces are routed, I will start the actual layout screening process. This usually involves generating gerber files for the circuit and rendering them with circuitpeople.com and looking at each layer in isolation. For the copper layers I mainly try to look at a) whether the individual traces follow the most unbroken and logical path and b) whether the individual signals will flow through consistent trace widths. If not, i go back and make corrections accordingly. Once I start checking Gerbers, I also start adding text elements to the board because I now have a reasonable idea of where there is space for them.

I then pretty much repeat this process over and over again until I believe I can’t make any more improvements. Again, putting the board away for a day or more often helps and I often find that even a short break from something I am happy with means that when I come back I can make bigger optimisations than I though possible when I left it. Often during these breaks I also think up new features that may be worth including, such as multiple footprints for key components, additional labelling for connectors etc.

Eventually I get to a point that I am happy with the layout and then it is mainly the last checks of both the individual layers (using gerber renderings from circuitpeople) and the full board (using renderings from gerber-viewer.com, which allows displaying of multiple layers at the same time) plus the last tweaks to the silk screen. The last step is usually confirming that ERC and DRC are still error-free, and then printing off a sample of the board layout at 100% to check the final size. Seeing the board printed in actual size gives me a better impression of the size, even if I already know how big e.g. a 2” x 2” board is.

I will then place the PCB order and mark the last Gerber version with a tag in my Eagle project folder so that I can see later that this was the file version I sent off for manufacturing.