Mobile, Open Hardware, RISC-V System-on-Chip (SoC) Development Kit

Feb 03, 2022

Project update 24 of 38

A Sticky Situation & Production Status

by bunnie

Backers, be sure to read this entire update, as we need your input about what to do about a sticky situation!

Since our last update, production has continued to plod forward. The pace of things has slowed down a bit now that I’m no longer on the factory floor, but fortunately, there have been no show-stoppers (so far).

We had a bit of a scare a couple weeks ago, when the city of Dongguan was shut down due to an omicron outbreak. The metal cases for Precursor, along with some of the packaging material, was scheduled to be shipped just as restrictions on movement set in, preventing the inventory from being shipped to our inspection and logistics site.

Conveniently, the actual factories that produce the materials are just across the border in Shenzhen, so we wrangled up some inspectors on the Shenzhen side of the border to check the material, and shipped the material directly from there. The material was re-checked upon receipt in Korea, and some irregularities were found on a few units. This is not an unexpected outcome when using a new inspection team — it takes training and effort to get that step right.

The irregular units are being sent back to China for rework. Fortunately, the number of units that require rework are small enough that we think there will be only a minor impact on the ship date of units to campaign backers. The main downside is that the cost of all the extra shipping and returns and rework is coming out of our pocketbook and our guanxi, both of which are finite resources, given the situation we’re in today.

We’re now at the stage of dotting the i’s and crossing the t’s to get the approval from Crowd Supply to accept the shipments, which includes fun things like double checking the certifications, shipping labels, and other associated documentation. On that front, a big shout-out to Ole Steinhauer for volunteering to do a rush job translating our user manual to German over the holidays. Apparently, a German-language manual is a hard requirement for shipping to the EU, and I had missed that detail until just a couple weeks ago. With his prompt turn-around, we were able to print an extra set of manuals and have them shipped up to Korea along with all the metal cases.

Epoxy: A Sticky Logistical Situation

We have also encountered a bump in the road arranging the logistics for the EPOTEK-301 glue. During the campaign, we pledged that all backers would receive a small, four-gram satchel of EPOTEK-301 glue with their units. The purpose of the glue is for users to seal their JTAG ports while embedding a tamper-evident watermark in the seal. In practice, I’m guessing most backers will opt to not seal their unit, especially given the high risk of not being able to recover the device if it is accidentally bricked.

Unfortunately, what was supposed to be an inexpensive and easy extra has turned out to be anything but that, for two reasons. First, we hit the usual global supply chain problems, so the glue is turning out to be ten times more expensive than our original quotation.

Second, it turns out the epoxy is technically classified as a hazardous material ("hazmat") for transportation purposes. Compared to other two-part epoxies, there’s nothing particularly hazardous about it. However, I guess out of an abundance of caution, it’s been classified by the manufacturer as a "miscellaneous" hazardous material, because if the box were to be crushed during shipment and the glue to leak out, it would cure and potentially stick the box to the frame of the airplane, creating a nuisance for the air crew. Also, like most other two-part epoxies, you shouldn’t handle either component with bare hands or breath in concentrated fumes, as it can cause rashes and respiratory irritation. So, if a box is crushed, care should be exercised in cleaning it up.

In any case, the epoxy’s hazmat status prevents us from shipping it from the same warehouse as Precursor will ship from. Even though most Precursor backers probably won’t ever use the glue, we still want to make it available for those who will, while not completely draining all the funds set aside for funding Precursor development. In consultation with Crowd Supply, we’ve landed on a solution I hope will make everyone happy. Basically, if you let us know you really want the glue, we’ll make a good-faith effort to get it to you. If we don’t hear from you, then we’ll assume you don’t want the glue and we won’t try shipping it to you. There’s also a middle option of picking up the glue in person at events attended by Crowd Supply staff (e.g., Teardown), though that option is highly dependent on the pandemic receding. If you want your glue, please fill out the survey.

Tell us what to do with your glue!

Xous: Getting Ready for Users!

In the meantime: our OS, Xous, has finally sprouted storage in the form of the Plausibly Deniable DataBase (PDDB). The PDDB is a key-value store that features multiple encrypted overlays that we call "bases" (the plural of a basis) which, when not mounted, look forensically identical to free space. Furthermore, no metadata about the bases are stored, reducing the sidechannels available to infer the existence of a secret basis, even if one were to image the entire FLASH memory for off-line analysis. We’ll take a deep dive on the architecture of this in a future article, but if you just can’t wait or you’re curious, the specifications and documentation are embedded in the source code today.

The addition of the PDDB brings Xous to the status of "feature-complete", as in, we have storage, network, UX, and power management all in some rudimentary fashion. All of the code is, of course, quite fresh off the press and has plenty of bugs, but I’m pleased that we managed to achieve this milestone before the first units have arrived in backer’s hands.

We’re now going through a pass of cleaning up a lot of technical debt, with the explicit goal of simplifying things and removing code while making things more reliable, in preparation for a formal release tag.

That being said, the firmware that ships with your Precursor unit is going to be quite out of date, so the first thing you should do is to update the firmware on the device. You can preview the process here; most users should be able to do the update using USB and a Windows or Linux computer, although for some inexplicable reason the libusb drivers are about 5x faster on Intel CPUs than on AMD. I think it has something to do with the polling rate of USB2.0 transactions baked into certain chipsets, so ymmv. After you’ve completed the USB upload, you’ll also need to type a command into the Precursor itself to update the embedded controller, as the USB controller can’t directly write to its memory space.

Once we have a firm fix on a ship date, we’ll make a comprehensive backer update with detailed instructions on how to do the update, but for now, just a heads up that you’ll definitely need to perform a firmware update to check out the full feature set of Xous.

With any luck, our next update will have some solid dates for when the first backers might expect to receive their units. Until then, happy hacking!


Sign up to receive future updates for Precursor.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects