Project Design Board #3: Golden Arduino

An excercise in good board design habits & a comparison between my design and a commerically available Arudino Uno

The commercially available Arduino PCB is fantastic for hobbyists, engineering students, or anyone interested in tinkering with electronics for a variety of purposes. However, it is noted that while the Arduino boards are laid out for the purposes of ease in user experience, the designs of the PCB don’t necessarily take on the best design practices for noise mitigation, and therefore are known to be notably quite noisy. This project was to design a complete Arduino Uno from scratch while following best design practices and adding additional features in order to have a much ‘quieter’ signal noise output. Having poor noise mitigation can notably interfere with measurements or sensors if they are sensitive enough to be affected by this noise. As a clarification for this document’s content, from here onward the commercial Arduino Uno board may simply referred to as “Uno” or “Arduino Uno” and my board may be referred to as the “gold” or “golden” board or “golden Arduino”, per the project title.


What Worked Well:
From this project, some features that worked really well are the noise mitigation in comparison to the commercial Uno boards, and seeing the dramatic decrease in noise between the Uno and the Golden board with the probe acting as a near-field noise sniffing tool was very validating and satisfying. Even before I started digging into detailed measurements and analysis, seeing that difference instilled a sense of accomplishment. Adding the extra ground pins was a huge factor here, with the added bonus that it helps solve the Arduino problem in that you never have enough ground pins to connect to for tinkering projects that would potentially force you to use a breadboard when it would otherwise be unnecessary. The LED indicators I used to denote which power source was currently live was very, very useful, both for indicating that that power source was live, but also helps to debug if you are baffled why your board isn’t working due to no power and notice that your power source selection switch is offset to the wrong side and power is not flowing through.

Unlike with Board 2, I did remember the concept of the pass-unders for getting around awkward trace traffic jams (but keep them as short as possible, of course). Using the pass-unders allowed me to more directly wire my components that had to be connected to their targets from awkward placements, such as header pins to the ATmega328 pins where there seems to never me any good orientation to place said part on the board. I’m also pleased that the concept of having things like the reset button towards an edge and therefore still accessible with a shield inserted into the top of the Golden board’s headers. I found during some testing that even after power has been disconnected, sometimes components in the board (likely capacitors) hold enough of a charge that it registers on the scope. By pressing and holding the button, I found that that was a reliable way to drain the leftover voltage hanging around in the circuits.

What Didn’t Work So Well:
Adding decoupling capacitors has once again shown to be very helpful in reducing switching noise in our signals, though I’m pretty sure I should have either moved some of mine closer towards their target pin or added a few other capacitors in a few places I think I missed. Looking back at my notes from my hand-drawn POR, I noticed I jotted down a note about adding a capacitor to Pin 16 (MISO) but missed when I was skimming though my list of things to make sure I accounted for. I wouldn’t be surprised if I accidentally missed a few places that would benefit from decoupling capacitors. My fonts used for the labeling were definitely mis-judged on how puddly the ink/paint would be, so I took that lesson and carried it into my Board 4 design. For reasons I’m not sure of, I find that I also have a tendency to try and keep all my parts spaced closely together and compact with an attempt at being tidy; this has its benefits of allowing a smaller PCB, but I find it’s also easy to underestimate how closely those parts or features actually are in real life when you’ve got your layout design spanning a 27” monitor and the ability to zoom in with the scroll of a mouse wheel.

When testing my Golden board, I found that a few of my test points were awkwardly too close together and the 10X probes with the spring tips were a little wobbly (and threatening to fall over) when they’d be bumping up against each other because of the lack of distance between the test points to be used together. I also realized in retrospect that I did not utilize very many isolation switches in which I probably should have for debugging purposes. I’m assuming in hindsight that this was due to being so focused on making sure I had all the ingredients that make an Arduino that I forgot about adding these switches. Additional indicator LEDs may have been useful as well in addition to adding a bit of colorful flair as a side bonus. Somewhat unrelated, I also determined with projects of Boards 1-3 that my existing laptop is painfully just short of having enough memory to manage viewing datasheets, guide documents and lab manuals, and Altium all together without Altium starting to hiccup due to running out of available RAM (my computer was showing ~70% utilization). I’ve discovered through some brief online searching that Altium is a program that will start to do small glitchy things that make your design process immensely more painful and annoying to do, such as rotating a component may no longer work, or if it does, it’ll rotate and shoot off to the side and CTRL+Z stops working so you can’t undo that part’s relocation the easy way. I had to periodically save, close Altium, then restart Altium in order to be somewhat functional again for another hour – rinse and repeat until design is done and your sanity has been demolished temporarily. I ordered a new laptop with double the memory, which should help considerably.

Previous
Previous

Project: Board 2 - Good vs. Poor Design

Next
Next

Project: Board 4 - Instrument Droid for VRM Sources