Monday, 28 December 2015

Production notey...


First Prototype
 
It took a bit of coaxing to get the unit up and running... first attempt at display looked something like this...


Hm.  Not great.  It turned out that a couple of ground traces hadn't made their destination on the PCB due to a borderline failed ground plane fill.  A couple of additional wires sorted that out.

Ah... much better...


Now getting somewhere... nice to see some text from a real board.  But those faults need to be fixed before the production run...



Designing Revision 0.2

The first revision of the PCB had no user buttons at all (only a reset), so the only means of interacting with the unit was via. BTLE... given not everyone attending the wedding could be assured to have a BTLE capable Android/Apple device, it seemed like a good idea to add buttons so some functionality was possible.  After some research, I found some ultra-miniature tactile buttons at Mouser and was even able to cram two in.  In hindsight (as with the engagement ring - you'd think I should have learnt my lesson) more isn't necessarily better... the buttons are quite hard to press and have a very short travel.  The footprint was also quite marginal so the soldering was a bit hit and miss.  There was a reason to try and cram on two buttons... you need at least two to have any adjust/set functionality without getting into short/long press territory... a particularly bad idea with fiddly buttons!

Another slight mechanical problem with the original revision was that the micro USB connector was slightly too high up and would foul on the Bluetooth module.

With a bit of rejigging I was able to move the micro USB connector it lower down and also move more components to the front of the board... this is good as only the top side was reflowed - the bottom side is all soldered by hand!

v0.2 Schematic
If you look closely you may see something else that was added...

I eliminated a few passives to make the layout slightly simpler and make it less tedious to build... this is the back panel - new buttons aren't visible here as they are on the front of the PCB...

Back PCB layout
 
The new revision didn't introduce any new design problems, but the footprint of some components still was an issue... particularly the 0402 capacitors.

Many experienced PCB designers (far more experienced than I) will tell you this, but it bears repeating as I haven't eliminated making the same mistake... *always* check your footprints.  While I didn't make any howlers in this regard on this particular occasion, I had relied on my PCB package (Target 3001) to provide some of them.  Most are fine, but even these standard profiles have a variety of tolerances, ranging from "tight" to "loose"... the 0402 profile was very tight... this meant the footprint was almost identical in size to the component pads themselves.  While this isn't a fundamental problem when performing reflow when your process is optimised and all factors are understood, when you are using an unknown solder paste, it becomes more of a problem.  When the flux is inadequately aggressive, the components dirty, or other stuff is just "not right", the component will not adhere to the paste and as a result will not be soldered correctly.  These parts might look okay on a first inspection, but as the footprint is so tight, you cannot look for solder fillets as proof.

What I found was that some 0402 caps would simply fall off the PCB when introduced to the slightest shock... or some PCBs would appear to function... you'd put them down, test them again, and then they wouldn't work any more... very frustrating!  Pretty much all the problems I had with board failures is down to these 0402 caps on this footprint that is a bit too small.  As there are so many, it is quite time consuming to fix!

Building 0.2

This time I had a proper template to hold the PCBs in place...


And back to the pasting...


And the component adding...


After reflow of the first v0.2 set...


It took a lot of troubleshooting, but eventually one board was kicked into life... even, with the Bluetooth module as well...



As it got closer to the wedding day, it became apparent that doing one for every guest was not going to be feasible... not because there weren't enough components and PCBs - there are plenty, but the problem is troubleshooting faulty boards.

The production boards were from this point onwards built up in stages to help with this.  First stage was connectors and capacitors.  This proves power would get to the MCU and there is no misalignment (which could potentially cause the MCU to fail).

Next, the CPU was added.  The reason why the CPU was not reflowed is because with the initial prototypes, a lot of solder bridges were encountered... it was actually more time consuming to sort this out than it was to  just drag solder the QFP in the first place, so that was the strategy employed from then on.  Also, it was suspected that reflow might cause some MCU failures due to the package epoxy being susceptible to moisture.  This problem is not as significant as it would otherwise be due to the lower melting point of the bismuth based solder paste, but it still could possibly be enough to make the package crack due to the water vapour escaping.



The normal solution is to bake the parts for 24 hours at a medium temperature prior to reflow.  Unfortunately I did not have 24 hours spare!  In hindsight, I should have ordered a small number of components for prototyping, and then placed a second order for the production run, thereby avoiding opening the package of MCUs and exposing them to humidity

When drag soldering, while there isn't the same even temperature gradient that reflow will cause, the heat is only being applied to the pins, which act as a form of heatsink.  The drag soldering can be accomplished on each side in a few seconds, so is very quick and exposes the parts to minimal stress, particularly at the low temperatures of the bismuth paste.  I found I typically soldered the parts at around 200-220C... if I was doing normal lead-free work, the iron would normally be set between 320-350C!  I hate this for PCB work as it is plenty hot enough to break down the adhesive between the copper and FR substrate, which causes the traces to lift.  While I've had many problems with this before (particularly with 1oz/25um copper boards), operating at the lower temperature meant not one trace on all 42 PCBs ever lifted.

I should briefly talk about the disadvantages of bismuth solder... it does have a faster rate of expansion/contraction than regular lead free (can be particularly a problem with smaller SMDs, putting them under more stress) and also can have issues with mechanical fatigue.  The fatigue problem as I understand it can be addressed through the addition of silver to the bismuth paste compound, but this paste is considerably more expensive... the BOM for the favours was already fairly high, so it seemed sensible to work with the chinese-sourced paste if it worked.

While the flux used was not specified, I ended up using a lot of Roisin-based flux from Chip Quik to retouch the boards.  This flux is slighty tacky so is quite good for rework, if a bit messy.  It is sold as a "no clean" flux but cosmetically it doesn't look great.  It can be effectively removed with some isopropyl alcohol.  I ended up dipping all the boards in IPA to remove residue - as there were no "wet" components on the boards (like electrolytic capacitors) this was considered safe to do.

So... the second stage was with the MCU on... the vast majority of boards showed life here... as I'd stuck with the Leopard Gecko, it has both USB capability and an on-board 3.3V regulator.  While it was already an obvious choice to have a MicroUSB on board as they are such a ubiquitous connector, having the USB capability meant the device could be flashed over USB using the provided bootloader.  This is really handy as it proves most of the MCU is working without any need to write a full self test.  If I had 3.3V out from the regulator, I would then connect the output of that to the VMCU... it can provide 50mA which is enough for the whole board.

With the CPU working, the next stage was adding the EPD (electrophoretic display)... this is the trickiest stage of all thanks to the troublesome 0402 capacitors.  The failure rate of boards at this stage was very high, and was a big contributor to not being able to give everyone a board... as it turns out, that probably was better for further stages, but it was a source of great annoyance at the time!

The ZIF connector for the EPD was a little fiddly and could lose its extended tabs after too many insertions... I found that sliding a fingernail along the length of it was one of the safest ways of removing the flat flex of the EPD.
Assuming that the EPD worked, the next stage was the Bluetooth.

As had been hoped, the BTLE modules were trouble free, which was well worth the extra cost given the problems I had with the EPD caps!

On the day before the wedding, I had some great help from Anna and her friend Kate to complete the assembly of the units, which was mainly adding the battery holder, and putting in batteries.

Before the wedding day (and I mean, literally just before) I had written a basic test to prove the EPD and BT, and packed up all the boards before we got a taxi to the hotel... the software didn't really exist yet, though!