Category Archives: Tools

For Wednesday 6/29: Face to Face COMMUNITY PROJECT MEETING (click here)

TriEmbed Community Project ESP32C3+Dialog Mixed Signal FPGA
ESP32C3+Dialog Mixed Signal FPGA DIP or SMD adapter board

On Wednesday, 6/29/22 at 6:30pm at the Forge Initiative, 2172 N Salem St Suite 001, Apex, NC 27523 there will be another meeting of the TriEmbed comunity project to create and use development tools coupling ESP32 microcontrollers with Dialog mixed signal Field Programmable Gate Arrays (FPGAs).

Best to park on the street or in front of an adjacent building if possible so that folks who find the hill hard to walk can park in front of the door.

This will follow up from last month’s “installathon” format to refine tool chain installation and get as many people as possible up and running while turning attention to the Dialog Synthesis tool and creating and running some simple FPGA applications. There will also be demos of things around the corner and related technology (Aaardvark has a graphing function now!) A lot of work has gone into the project (special thanks to alpha testers Jaime Johnsen, Rob Mackie and Dawn Trembath and note taker Glen Smith). Bring your laptop (currently best support is for Linux followed by Windows Subsystem for Linux (WSL) but raw Windows will succeed with extra work and Docker images are in the works to take the sweat out. An ESP32 dev board is highly desirable but there will be a few spares at the meeting. The meeting will be facilitated by the usual suspects Rob Mackie, Nick Edgington and Pete Soper and is scheduled to end at 9pm.

The daily infection rate in Wake county is currently 433 per day and there will be high risk people at the meeting. Please wear a mask (available at the meeting). There will be an ice chest with some soft drinks to enjoy outside but you’re invited to bring your favorite.

FOR DECEMBER 13: Nick’s mixed signal fpga board AND COMMUNITY BOARD PROJECT STATUS

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.

Raspberry PI becomes a brand

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!).

Raspberry Pi Foundation introduction to Pico

Raspberry Pi Pico specs and list of resources and purchasing sources

GitHub repositories:

micropython
openocd
pico-bootrom
pico-examples
pico-extras
pico-micropython-examples
pico-playground
picoprobe
pico-project-generator
pico-sdk
pico-setup
pico-tflmicro
picotool
thonny-pico

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

Keeping YOUR POWDER^H^H^H^H^H^H ICs DRY

Storage for parts that must not absorb moisture
Dry air storage

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!

Wrong place for desoldering gun

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.

All git repo hosting sites are not created equal

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:

https://jira.atlassian.com/browse/BSERV-3148

(“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.

 

ESP-32 Developer Interview

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.

SMD Soldering Demo @ Triangle DIYBio Popup


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.

Proof of Concepts with SMD Parts

SMD Breakout Board Collection

Aggregation of 12 PCB boards for stencil production

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:

Collection of mostly SMDs on a breadboard

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.