Much design work has been done this week. The first thing I had to do, sadly, was jettison the Naming Rights tier. The problem with it, I now realize, was its affect on the production design. I can’t very well generate the final design when part of that final design could possibly have included a sponsorship message that might not have come through until the final day. It was either continue making forward progress or keep the tier and we all wait. I chose to continue forward progress.
So, with that sacrifice made, I’ve done quite a few changes towards the final production design, which will be officially called “Version 1.0”. The obvious changes you’ll see are the new silkscreen added around the edges, the ADC header pushed right slightly to allow horizontal mounting, the edges nicely rounded, a mammoth sized ground pad for the Real Time Clock battery backup and clearly labelled test points.
Some of the modifications aren’t that easy to see though — foot print changes for every capacitor and resistor on the board.
Octopart has created something called “The Common Parts Library” (CPL), which is a list of electronics components, active and passive, that will (hopefully) form the basis for the skeleton of many Open Source Hardware / Maker circuit designs going forward. I have modified the Bill of Materials (BOM) to reflect the components listed in the CPL. Unfortunately, my original design specified 0805 sized components because I know I can solder those in my sleep. As the individual who has volunteered to author the KiCad schematic symbols and footprints for the CPL, I thought it would be good form to start using it right away. Most of those original 0805 footprints are now 0603 although some did grow to 1206. If you’re thinking, “changing all the resistors and capacitors on that board must have been a pain”, you’re right 🙂 It’s done now though, and I’m glad to be able to support a project like the CPL, which I hope will ultimately make design work easier for all of you when you’re ready to make your own boards!
I also was considering a revision to the connector design for the Display Add-on, and I’ve gone and done that. The prototype had two separate connector areas, and I’ve consolidated that into one 11 pin header that will run along the base of the board. The intent will be to solder in a right-angled male pin array so the board can be mounted vertically to either your Education Shield directly, or a separate breadboard. The pinout is matched with the Arduino UNO R3 arrangement and will make use of the following…
5V – provides power for the display
GND – provides ground reference for the display
SCL – I2C Serial Clock line (Analog 0)
SDA – I2C Serial Data line (Analog 1)
SPK – signalling pin for the piezo speaker (Analog 4)
CTL – control pin for selecting between the clock delimiting colon and the top red LED row (Analog 5)
The remaining pins are not connected to traces on the Display and are only used for mechanical stability.
The prototype for the Display, had a bug that I needed to correct as well. The basic control method for the bar graph is, “enable the cathode for this row (let electricity flow to ground), and then supply current to the LEDs I specify”. You specify the LED by sending the control chip a byte of data: Bxxxxxxxx. Eight LEDs in each of the four rows at the top of the board, eight bits of data in that byte. If the bit is a “1” the LED in that position is turned on, if it’s a “0” it’s turned off. this worked flawlessly in the prototype except for one thing: the Most Significant Bit (the bit at the far left) actually controlled the LED at the far right. This isn’t anything that couldn’t be dealt with in code, but it’s much cleaner from a thinking-through-it perspective to have the bits aligned with the LED positions exactly. So I re-routed all those traces.
Finally, I revised the part selection for the board to reflect the Common Parts Library, as I did with the Education Shield.
My next step is to make the definitive list of parts and submit it to Small Batch Assembly. Bob at SBA and I will see where we can overlap between parts he already has on reels (cost for parts charged at the 1000-quantity rate) and which parts I would need to supply (cost for parts closer to the single quantity rate). I find parts selection to be the single most challenging aspect of designing circuit boards, because you have to balance a wide variety of factors against each other to achieve a compromise that still meets your engineering objectives. Does the part do what I need? Is the part available? Is the part available in the quantities I need? Is the price reasonable at single quantities? Is the part that satisfies 85% of the objectives in return for a cost savings of 50% sufficient to cover the design requirement? Is the part available from multiple sources in case one sells out? Those factors weigh in on the selection of nearly every major component in every piece of electronics that you have sitting around you right now. Sometimes it can be pretty daunting 🙂