Firstly, everyone is fine. My partner and daughter returned to Taiwan, and my brother’s wife needed an operation. I therefore instead left Canada for the UK in January, on about 48 hours notice.
Then of course the coronavirus (of which the common cold is a variant) hit, and of course everyone thinks Taiwan is part of China and of course travel must immediately be banned. Reality check: Taiwan is an island; large numbers of people there (for decades now) wear masks in public already; they’ve had procedures and checkpoints already active for swine flu for the past 15 months; they were one of the very first countries to close their borders to Hong Kong and China, and, as a result, there have been only been 10 people die as of a few weeks ago, and those were old, very ill patients already in hospital.
The biggest issues are occurring in the USA, and the effect on flights as everyone panics means that there are fewer planes to ferry cargo. This affects pretty much all deliveries of PCBs and products out of China, as well as imports. Also, I can’t return to Taiwan (where all my equipment is), and my partner and daughter, who have to leave at the latest by April, are going to be subjected to quarantine when they arrive in the UK.
All very silly and dramatic. I don’t really do panic and fear. I do "necessary, practical, and pragmatic." Fate seems to be in the driving seat at the moment: I will be in the UK indefinitely. Currently in Scotland with my mum, I will be returning south in mid-March to help my brother and his wife. Even for my friend Adam, who has helped us out and is over here as well, there is not much point in returning to Hong Kong if his business is QA of Chinese factories for western businesses.
I have been carrying around the EOMA68-A20 PCBs, hoping to find somewhere with equipment to test them, by removing components. After four months not really being able to focus on that, and after Mike sent me X-ray photos showing that the DDR3 RAM ICs are fine, we came up with a new strategy to determine which of the following happened:
This, to my debugging and black box reverse engineering mind, is a worst case scenario. It’s a matrix of sixteen permutations to test for, not four things. Two to the power of four things, and they are not independent variables. We cannot hand-desolder 300 individual components and transfer them to a better PCB, for example, because BGA solder balls are one-off.
So, what Mike and I came up with was: he has ordered 20 new PCBs from the same company as successfully assembled 20 units last year (with smooth CNC edges). The new PCBs will have two EOMA68 A20s per panel, just like last time, and just like the badly CNC’d ones.
Then, we will give half of those to Mike’s new manager, and add another 10 of the bad CNC’d PCBs, and instruct him to assemble 20 units. At the same time, we will give the other 10 good PCBs and another 10 bad PCBs to an external prototype assembly company, and ask them to make those up, too.
If all the boards fail from the "known good" assembler, chances are high that it is the components (option B).
If the "badly CNC’d" boards fail (option C), then Mike can get a refund for the USD 15,000 he spent on the company that made them.
If only the new manager’s PCBs are faulty, we know it was something that he did (option A). If they work, then we know that he screwed up in October 2019 and was too afraid to tell Mike what it was, but has learned from his mistakes and won’t do it again (still option A). Rather, if he does do it again, he’ll probably get fired.
Our mistake was in buying 1,000 PCBs without doing a smaller trial run in-house. Fortunately, bless him, Mike is paying for all this. Replacement PCBs, the new test runs, and so on.
So he is not going to order another 1,000 PCBs straight away. We do the 2x 20 first, see how that goes. Then do an order of 100 PCBs, assemble those, and see how that goes. Finally, we do the remaining 900.
Also, we are going to do two EOMA68-A20s initially with a v-cut for the run of 20, because we want a like-for-like comparison on the badly CNC’d boards. However, when the 100 and 900 run is done, we will do single boards, even though it is more costly (for Mike). The reason is that the factory workers are finding it harder to solder the PCMCIA connector onto twin PCBs.
Patience is apparently a virtue, or so I’ve heard. Luckily, the Libre SOC has been awarded an extra EUR 250,000 from NLNet, bless them, so I can keep going on that whilst Mike sorts out the PCBs over the next few months.
Which reminds me: if there is anyone who is a C++ programmer (or knows someone who is) who would like some actual money for working on a 3D MESA Driver, initially turning RADV or AMDVLK into something very similar to Google SwiftShader, please do get in touch.
Thank you for being so patient whilst this highly prominent and well documented Kafkaesque journey unfolds.