Project update 22 of 36
Just a quick update from the line in Korea — we’ve started production of the Precursor PCBAs! Below are some photos of the journey thus far.
And, before I forget: you can catch me (bunnie) and xobs on a Crowd Supply Teardown Sessions livestream happening on Wednesday, December 15th, 2021 at 9 PM Pacific (Thursday the 16th at 1 PM in Singapore). Even better, Crowd Supply is giving away a Precursor. See you there!
Took a red-eye flight into Incheon from Singapore. The sunrise was beautiful; the sleep deprivation was not. Definitely not the easy route back into the international travel game, but, with only one flight a day, I didn’t have much choice…
Had to go through a brief stint of quarantine and testing (and my smartphone was converted into a GPS tracking device by installing an app mandated by the Korean government (PS: it’s a burner phone)).
Also, everything is in Korean. I could read the "19"… When I went to the hotel and tried to check in and English came out of my mouth, the clerk looked like she saw a ghost. I think they don’t get many out of town visitors these days.
Where the magic happens! An overview shot of the SMT line on which all the Precursor boards are fabricated.
The front bezel of Precursor is a PCB, which requires precision milled edges to fit into the aluminum case, and the corners are splines, not radii, so they don’t play nice with the rails on the SMT line. Thus, in order to reflow the front bezels, we had to machine out this set of precision holders for the bezels, instead of using the usual technique of sacrificial snap-off PCB rails.
Where did all that crowdfunding money go? Here’s a pile of it. We spent the equivalent cost of a new car on FPGAs for this run, and went through field and forest to get them here and now. This is my tiny victory lap for having procured said devices.
Coders push to the cloud. Hardware engineers…work with other humans to configure aging machines to make more machines. This fellow is the SMT programmer, and after putting each part down he painstakingly stops the machine, pulls the board out, and inspects the placement accuracy. Every passive part value is also checked with an LCR meter to make sure nothing got swapped along the way. It’s like decompiling your binaries and reviewing them instruction-by-instruction before running them. You’d do it, too, if the price of an off-by-one bug was the equivalent of totaling a brand new car. (Or maybe not? I hear software people get paid a lot just to move fast and break things.)
Oh wait, you thought it’d all be a JSON file that we just dragged into some web form that ran on the pick and place machine, and after a few XML queries to fetch the latest part data, we’d just hit "go"? Well, at least the factory doesn’t go down when a random Node developer has a bad day or if someone fat-fingers a BGP configuration.
The Precursor mainboard after the passive components are placed with a chipshooter. There’s a video of the chipshooter on my twitter feed.
There’s a small hack I did with the headphone jack to trim a millimeter off of Precursor’s thickness, and one of the many prices of that millimeter is this lady now gets paid to place every headphone jack by hand, because they come in the wrong orientation in the standard tape-and-reel packaging.
Before you jump up and down and shout about how outrageous this is, trust me, I’ve seen far worse, on much bigger runs. But hey, Precursor is thinner than an iPhone!
The first few Precursor mainboards, hot off the line!
The same, but after optical quality inspection.
Time for a lunch break! Everyone at this factory from the CEO down to the lady who places the headphone jacks eats the same meal, including me. It’s unapologetically spicy, well-balanced, and totally delicious.
The Raspberry Pi Debug HATs actually ran before I arrived! They are now all going through testing.
Speaking of testing, your Precursor main boards are also 100% tested. One of my pandemic hobbies was trying to automate every nook and cranny of the test, including the audio test, pictured here. The factory test is actually on github, along with the hardware design for the tester. It’s actually not very elegant or very fast, but it’s thorough, it’s easy to maintain, and it does the job. And, perhaps more importantly, it allows you to see what gets burned into your device and how, so you can finally answer the question: "what bootstraps the bootloader, anyways?".
That’s it for now! It’s getting late here and I’ve got a busy day tomorrow wrapping up the PCB production. It’s still going to be about a month before we can integrate everything into the cases, because it’s been a smidge difficult to source all the mechanical parts, and I really dragged my feet on designing the product packaging. However, I’ve gone through the whole build and pack-out process with the engineers here, so I feel more confident that fewer mistakes will be made.
Still, with the Omicron variant making its rounds, I’m guessing this is my one and only window to oversee the production bring-up. Glad I managed to make it — probably saved a couple months of back-and-forth and definitely dodged several bullets by clarifying a bunch of lost-in-translation issues in person!