The normal meeting format will be followed (welcome new attendees, announcements, problem/design review of the month, presentation, community project status, show and tell). This month’s presentation will be by Nick Edgington of Edgington Labs. Nick will share details of a very inexpensive line of mixed signal FPGAs (initial breakout board coming from OSH Park). Additional meeting time will be devoted to the status of the TriEmbed Community “Espressif 32 bit processor board + FPGA(s)” development board project.
Be there or be square
With the introduction of the Raspberry Pi Pico , “Raspberry Pi” can now be thought of as a brand with two distinct product types. The Pico board features a Foundation-designed chip on a small board only needing header pins, offering an inexpensive but very powerful and versatile microcontroller suited for applications where Linux is less well suited.
With two M0+ Cortex cores, six independent banks of SRAM totaling 254KB, support for execute in place (XIP) from up to 16MB of outboard flash (2MB on the Pico board) at up to 133MHz, and support for variable clock rate and novel programmable I/O control, this is not your everyday low-end Cortex board. Below is a list of links to more details about Pico, its processor chip, firmware, software and tool chain, as well as the complete collection of related source repositories. (1/26/2021: Some host platform-specific tools are also included now. Thanks, Mike Fulbright!).
Ubuntu 18.04 Cmake >= 3.12 available from https://apt.kitware.com
Latest ARM crossbuild environment: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
This is about assembling five PCBs yesterday that shared an IC and how, despite meticulous application of solder paste, reflow profile, yada yada, two of five didn’t pass FAT (final assembly test via a simple computer program and microprocessor). Late in the day a little light bulb glowed with faint neon letters spelling “popcorn.” This is the slang for when trapped moisture in an IC explosively changes to steam in the reflow oven, physically damaging the part. The part in question had been away from desiccants for months, the humidity in the shop is far from Arizona levels, etc. I don’ t have the equipment to determine if this damage happened, the budget involved can’t cover sending the board off to be studied, etc, so I just have to assume this is a “maybe” cause of my failures.
So I followed the specs for “baking out” the moisture and set up these chips with some others that need to stay dry or be in line for baking out and thought I’d share a snapshot. (Click on it to get a better version, and click on that for full resolution. The inner card color dots are distorted: they are actually blue). You know how we get desiccant bags and moisture card from places like DigiKey and toss them? I saved enough over the years to combine them with a cat treat container and Indian sauce jar to make a two level dry air environment. All the bags and some of the chips went through the bake out process (I used 125C for 12 hours). The outer card will let me judge how well the cat treat container lid fits and the same for the card inside the sauce jar with its tighter lid. Access is pretty easy and there is room for a “next gen” larger inner container down the road. The parts are in plastic boxes with labels facing out so I can quickly determine what’s there, and a few notations are on the box stickers to indicate their status wrt baking. (My parts database uses US town names starting with “A” for containers, thus the “AMORY” sticker).
I’m assembling several more of the same PCBs today and it would be nice if Whammy Central allows for pop-corning to have been the cause and the new boards to all pass FAT!
The Hakko FR-300 is a wonderful tool, but it does a very poor job of bending the unsoldered tab of a through hole potentiometer. While bending the tab forward the thought was clearly in mind “this is dangerous”. The tool slipped and while it was on the way to finger said finger was being withdrawn from the scene at warp speed, but not fast enough. You can even tell what size hole the tip fits.
GitHub, GitLab, and Atlassian BitBucket are all sites that offer git repository hosting. But if you create a repo named “Test” with BitBucket, then you copy/paste the slug URL and feed it to “git clone” as usual, the URL is forced to all lower case “test” and you end up with a clone of your repo in directory(folder) “test”. This stinks, for example, with common library directory naming conventions.
After thrashing around in the team settings, thinking I’d just missed the way to override the default URL, it occurred to me this might be a feature, not a bug. Sure enough:
(“Stash” is simply Atlassian’s downloadable repo hosting system, effectively giving a customer a “Bitbucket” system within their enterprise)
This is just a classic bug report pattern. Who knows what caused the Bitbucket architect to decide not to honor the name spelling when creating the slug (the text box holding the URL you copy from to do a clone). But, the fact that one can simply modify the URL and end up with a target directory with any pattern of upper/lowercase makes it clear that they COULD offer an “honor name capitalization” radio button to override their sacred cow default, but they choose not to, with the lamest of lame excuses:
“Given that it is possible to modify the clone URL to include a camel-cased repository name (which creates a camel-cased repository directory when cloning), this is unlikely to be a priority in the near future.”
But this latest submission was started in 2013 and “resolved” in 2015, two years ago. Maybe it’s time to submit it again.
A recent edition of “The Amp Hour” podcast had Chris and Dave interviewing “Sprite_tm” (aka Jeroen Domburg) of Espressif. Amongst all the other things this interesting Dutchman has accomplished, he added symmetric multiprocessing support to FreeRTOS on the ESP-32 (which has two identical 32 bit processors). I came completely unstitched hearing this toward the end of tantalizing news about the software tool chain available for this ESP8266 follow-on. Transparent multithreading with complete control over processor affinity (i.e. either bound or freely scheduled) was the final brush stroke painting a picture of superior infrastructure, open source accessibility and the usual unbeatable price point of the Espressif hardware. Wow.
Today until 2pm is the second day of an open house of the area Triangle DIY Biology organization near Scrap Exchange in Durham. I was button-holed to “do something” at this event and decided the easiest thing to demonstrate would be how to hand solder fine pitch SMDs. TriEmbed info sheets are on hand and we’re also plugging SplatSpace. I’m using a little space at the popup to coordinate curation of Fred Ebeling’s Collection of electronic parts at SplatSpace.
As mentioned at the June 12th meeting, I find myself frequently wanting to find the sweet spot for quickly throwing a circuit together to see that gross behavior is as expected and confirm my assumptions correct and the devices perform as advertised before going to the trouble of making a PCB that is likely to be wrong if I’m in too much of a hurry.
But I sometimes find use of SMDs painful with solderless breadboards. First is the headache of having a parallel set of through-hole parts for bread boarding convenience. And of course this is an illusion in many cases: there are no through-hole equivalents for a growing number of components these days. Some shortfalls are obvious, like the current crop of tiny DC conversion chips that seem to be exploring the outer limits of how small a flat pack, no lead package can get. But others are chronic and might be surprising to some readers. Just try finding through-hole versions of some of the specific thermistor types specified for use with things like battery charger chips. It also gets old quick to have to buy a resistor with the same precision value in both through-hole and surface mount packages. And is that through-hole diode slapped on really behaving the same as the specific SMD spec’d for the “real implementation?”
I’ve been accumulating little breakout boards as carriers for various SMDs to make this easier, but that often involves a compromise, such as putting a tiny diode between two SOT-23 pads on a breakout that eats up six pins on a breadboard vs two. Other parts are more challenging and lead to semi-monstrosities like this one for a 22uH inductor:
This is what a typical ad hoc collection of parts looks like:
Notice the MSOP12 device is kludged onto a TSSOP14 breakout board. Also notice the (boost) capacitor soldered to the upper left pin of the MSOP12 package in the middle. It’s the barely noticeable bump on pin 12 of the IC (coincidentally below “12”, but electrically connected to header pin “14”, thus the error-prone kludge).
So, although my current breakout collection handles more than 30 devices directly, there are many gaps. This current project will bring the “package coverage” up around the 50 mark, but I estimate I’m only about half done before my hankering for this kind of support mostly dies down. For instance, there would be a lot to gain from handling the common form factors of small switches and connectors, small aluminum electrolytic caps, inductors, transistors, etc. Heck, there’s even real value in making an adaptor that saves me severely abusing a breadboard by cramming TO220 devices into the holes!
Adafruit and SparkFun and others provide some excellent breakout boards at affordable prices (in contrast to Schmartboard’s stuff, which seem to be both too much and too little for my needs). Notice all five of the boards above are Adafruit ones. I have several TI breakout types as well as others. But the actual coverage of package types for the available boards out there is too sparse.
The aggregate PCB rendering above shows the approach I’m taking to build out my collection. This is a collection of 12 PCBs supporting 21 package types that I pulled together for the purpose of making stainless steel stencils. Some of the boards for larger parts have nearby pads for a few passives to make it less painful to handle bypass caps, boost caps, etc, where short connection paths are important.
The 12 separate designs (and two others) were sent off to OSH Park to get three copies of each design as a small PCB so I can prove out the breakout boards .
Here is what the stencils from OSH Stencils look like for the top and bottom of the “aggregate PCB”:
In theory, the work flow is to put the stencil over a particular breakout (e.g. the one for the SOIC14 package in the upper left corner of the top stencil). The one breakout PCB for the package is captured by a holder made of two acrylic “L” pieces vinyl-taped to a dead flat surface. A small squeegee (small piece of plastic credit card) is used to paste over the site(s) for a particular board, then parts are placed and hot air or reflow oven soldering is used.
A quick side note about frames. In many commercial environments the stencil is mounted in a surrounding frame that in turn fits into a jig allowing for rapid handling of boards while maintaining precise registration. I was confused Monday: OSH Stencils is only beta testing frame support with two sizes (relative to these boards those sizes are “wow”, and “my lawn is smaller than that”). Contact them for details if you’re interested.
I should also point out that I didn’t spend a lot of time routing these boards. For example, I’ve already had second thoughts about the sense line routes for the two shunt resistor boards that have ‘kelvin connections’ to special middle pads under the resistor ends. Also, as I mentioned Monday, I didn’t spend a lot of time checking things like length to width ratios for some stencil apertures. So the very narrow pad for the 1206 shunt board is technically smaller than the minimum supported size listed for the paste being used (Kester EP256), and the result may be that I can’t actually get paste into this spot properly. The footprint is blown up in the image below. The middle of each set of three pads is .28 millimeters wide. The resistor that sits on these pads is about an eighth of an inch long (yes, king size in relation to how these things are trending).
OK, but how much do those stencils cost? The minimum is $10, but the incremental cost beyond this is less than a dollar a square inch. The two stencils above came to around $22. First class postage with tracking adds $2.75 to an order. My order was completed on a Thursday and I had the stencils in hand the following Monday. With minimal (.75in) borders, everything you see in the first picture above added less than a dollar to each stencil cost. Note that in most cases you’ll only have a stencil for SMDs on one side.
(Update June 22nd)
The first batch of PCBs came back from OSH Park and are shown in the picture at the top of this posting. The tabs sticking out are cut off and squared off with sand paper before the boards are used.
Finally, it’s important to note that some circuits will not cooperate with solderless breadboards and any arrangement of surface mount parts involving long connection paths. Apart from huge amounts of stray inductive and capacitive reactance in the circuit paths, the current carrying limits of breadboards are very real, as is the ability of a simple breakout board to shed heat compared to a PCB having copper pours and other design features to properly handle it.
Here’s a breakout board that got a lot of hand soldering with three different kinds of flux. Plain 91% isopropyl was used after rework using AIM 280 “no clean” (the watery stuff), which, if used copiously, definitely needs cleaning if you care about appearance. In this case, even scrubbing with a nice (Adafruit) ESD-safe brush would not remove the flux completely as can be seen with this first picture below. The gray cast that’s most pronounced in the lower right corner shows this “can’t clean” flux layer:
Several rework episodes later, the board had seen lots of the NC flux, but also Chipquik SMD 291 “Tack Flux N/C”, which, in my experience, is never “no clean” except perhaps in the sense of “the electrical connections won’t eventually short out with this stuff”. From an aesthetic perspective the layer of goo left behind in many cases is simply not nice. Finally, I got lazy with a brute force desoldering method involving braid and old style rosin flux and that stuff is of course just plain nasty. So here’s the very sad “before” photo after the shunt resistor and other parts had been messed with a few times:
For this case a bit of MG Flux Remover was put into the bottom of a jar, the board was put below the surface, and the jar was swished around for a while. Some exceptionally bad looking, black “baked rosin flux” bits were scrubbed off and then the board got another few seconds in the jar. Then the flux remover was washed off with pure isopropyl to get the “gunk in solution” level down to zero. (This cheap squirt bottle from Rite Aid works very well for this). Then after the board had dried it looked like this:
The result was superb: no gray splodges or any other stains. Notice the very tired traces missing solder mask in places. This is what comes of too vigorous scrubbing. The flux remover looks unchanged and I’m expecting that in the tightly sealed jar it has a lot of use left.
I was expecting the remover to have evil stuff in it and was surprised to find it’s ethanol, isopropyl alcolhol, and ethyl acetate. The latter is found in small quantities in wine (and many homebrew beers). But despite the familiar chemicals I use lots of ventilation for this kind of task.
Thanks to Shane Trent for letting me “try out his jug”.