Project update 48 of 75
We’ve been in Taiwan for over a week: the new 1.7 Micro Desktop PCBs arrived and are fine, the casework is underway (a cheap-and-cheerful 3D printer sourced), Laptop PCB1 can go for prototyping, and fun and games with NAND Flash on the A20.
If you recall from the previous update, these boards have had to have a voltage-shifter added to the microSD card slot. Works perfectly… with 3.3 V (or thereabouts) on one side and 3.3 V (or thereabouts on the other) so for the purposes of stopping the bun-fights on the current the TXS0108 does its job. However what hasn’t been tested (because there isn’t yet a card which does 1.8 V VREFTTL) is 1.8 V to 3.3 V. What this revision does is pave the way for a future revision of the Micro Desktop which can support 1.8 V microSD cards… even though a given EOMA68 Card may actually only have 3.3 V output. Certainly the RK3288 has the ability to step down to 1.8 V, but it requires that entire GPIO bank’s voltage domain to be dropped to 1.8 V in order to support it. By having a level-shifter and then adding a variable voltage supply on the microSD card side the same end result is achieved.
One thing the new level-shifter did not solve: the segfaults in the sunxi 3.4.104 kernel’s NAND driver. More on this later.
So almost two years ago now, Joshua very kindly arranged for a prototype set of casework, done in Portland, which you’ve seen on the photos and videos, here. Now, behind the scenes I’d been contacted last year after FOSDEM 2016 by Mark van den Borre, who has laser-cutting equipment. He kindly offered to help do the Micro Desktop casework (500 sets).
Now, being in SE Asia I figured a few weeks ago that it would be a lot cheaper and a lot less hassle to get the laser-cutting done in China. I told Mark this, and I could feel that he was very disappointed. After thinking about it overnight I had an epiphany: this is a libre project, therefore come what may you damn well support people who do libre projects, and to hell with the cost and/or hassle. So I contacted Mark again, told him that I’d be more than happy to use his laser-cutting service, and invited him to join the list.
Now, I don’t want to go into details (you can find them if you like, on-list), but the discussion surrounding the development of the prototype casework didn’t go as I would have liked. Suffice to say that I am getting somewhat sad and fed up with sticking to Software Libre principles and ethics. I’m not going to abandon them, but it’s not fun at times. Anyway, it turns out that because I am the one with the working CAD software and access to the actual prototype units, I’m going to have to be the one to do the casework design anyway.
I am extremely grateful to the people whose clear expertise in materials pointed out that a stack of plywood an inch high will have about 1.5 mm of variations in height due to changes in temperature and humidity. Luckily that’s only in the vertical direction, so the initial design has been abandoned in favour of sides that will slot into holders. I’ve made the design of the holders and 3D-printed them, and also sent off the first revision DXF files for laser-cutting. A stack should arrive next week, for testing.
Now, if any of you remember the fiasco of the Vivaldi Spark Tablet (I learned only quite recently that its leader had been going around lying about what actually happened), the key lesson that I learned from that mess is that it is absolutely essential to design the Casework at the exact same time as the PCB, and not to finalise either until they are both good… and one fits into the other. I took that lesson on-board for the 15.6" Laptop casework and as a result have PCBs that actually fit into the 3D-printed laptop casework.
The reason why I didn’t apply the same lesson here is because the stack of plywood designed in Portland was absolutely fine… except for that materials hiccup if it transitions from dry to humid conditions. So I wasn’t expecting a redesign… and the 1.7 Micro Desktop PCB is finalised. As a result, the case that can be designed around it isn’t perfect, but it’s going to have to do as a first version. The design’s source code is online, it’s GPLv3 licensed, and it’s a cloneable git repository, so please contribute if you can do better. The git repo also contains images from the current design.
The 15.6" Libre Laptop’s main PCB (PCB1) shares a similar circuit for its microSD card with the Micro Desktop. Having got the level-shifting done I have cut and pasted the circuit over and will be sending it off for prototyping soon. Now, as previously mentioned both on the list and in previous updates, the plan is to introduce a new housing which utilises verbatim the exact same PCB as used in the laptop.
With a Pass-through Card, this new housing will basically be a 15.6" LCD monitor… one where you know that the hardware will not be hacked in order to spoof on-screen dialog boxes that trick you into typing your password, for example (many LCD monitors now run full-processors that could potentially be hacked over their HDMI port). Popping out the Pass-through Card and putting in a Computer Card you now have an all-in-one desktop PC - one with three built-in USB ports and one USB audio port.
The primary reason for considering doing this extra housing is to reduce the cost of the components used in the 15.6" Laptop, as it is literally the exact same PCB as in the 15.6" Laptop. Remember, there are only 150 pledges for the Laptop, which puts it squarely into quite expensive unit cost territory: most small-to-medium-sized China PCB assembly houses won’t talk to you for anything less than 500 units, and even that’s hardly worth the setup and teardown time for them.
So (thanks to Johnathon on-list), a review has taken place of PCB1, and a tiny mains-only power board (PCB4) has been created: we’ll see how it goes.
I can’t quite get over how long it’s taken to track this combined hardware-software-related problem down, and just have to remind myself not to blow a fuse or lose my patience, but I am done with trying to use TSSOP-48 NAND ICs on the EOMA68-A20 PCB. It’s explained in-depth on the list, but basically it’s a combination of "Legacy" TSSOP-48 NAND ICs going out of fashion (in favour of eMMC), the fact that when you bring up a totally different interface (the external microSD card slot) the damn NAND IC gets corrupted (!!), and the complexity and cost it’s adding to the PCB when there’s no clear benefit and a lot of risk and cost instead… I’ve taken the decision to simply cut the NAND IC entirely.
Now, if it was a BGA-169 NAND, it would be possible to just literally drop an eMMC in its place without even changing the PCB design, because the lines from the A20 to do eMMC or NAND are quite literally exactly the same. But because it’s a TSSOP-48, that’s not possible. It would therefore require yet another (risky) redesign.
So instead, by removing the NAND IC entirely, space on Layer 3 of the PCB is freed up so the internal microSD card slot may be connected to SDC2 (the pins that the NAND was connected to). This makes the INTERNAL microSD the 2nd priority boot device and the EXTERNAL microSD the 1st priority. That’s a much better arrangement that simply wasn’t possible to do with the NAND IC in the way. It’s also cheaper and ensures the card is completely unbrickable.
For those people who may think that this is much slower: I demonstrated during the campaign that Class 10 microSD cards, which are rated at 80 MB/s, can actually read and write at around 20 MB/s. That’s about as fast as SATA HDDs from five or six years ago.
About six weeks ago I sourced a $300 3D printer from China, designed by a company called AnyCubic. It’s not perfect by any means (injection-molded parts which aren’t straight) but with a Melzi 2 instead of the unbelievably brain-dead use of "Polulu" prototyping-sized stepper driver ICs being pushed beyond thermal limits, it does pretty damn well. I’m pushing it to 200 mm/sec - four times above its nominal rated speed of 50 mm/sec - and the quality of the output is pretty damn good.
Now, I’ve since sourced a $150 3D printer which is an all-aluminium, sturdy frame and will be getting one of these to try out. If it works fine, I will get 10 of them. The reason is very simple: when I first looked at the newly VC-funded company Mohou, they had a very low cost per unit (in order to attract business). Since then, the honeymoon is over, and the cost of single quantities is now really surprisingly high. In addition to that, having experienced the difference between the "Apollo" Series PLA from https://www.123-3d.nl/ (which is beyond rubbish, beginning to border on deceptive marketing practices, and no longer being offered), their PETG (which in complete contrast to the Apollo Series PLA is really good), and Faberdashery’s staggeringly-high quality PLA, I simply cannot and will not risk producing 150 laptops for people, only to have them completely fall apart literally in their hands by having used sub-standard quality materials.
Also, after having talked to friends who do 3D printing and they also having had absolutely dreadful experiences with absolutely every single supplier except Faberdashery, including filling rooms with acrid toxic fumes, having the material literally crumble in their hands, and in one case explode into a hair-ball tangled heap of filament, I simply cannot be bothered to go looking for alternative materials: I already know that they will be sub-standard.
Bottom line: I really do have to order 80-100kg of PLA from Faberdashery and have it shipped over to Taiwan. I cannot reasonably expect Mohou or any other 3D printing "network" company to use 3rd party PLA… so that means I will have to do it myself. Hence getting ten identical, low-cost, "good enough" 3D printers and setting up my own batch processing. Bear in mind that it takes around 24-36 hours non-stop to print one full set of the laptop’s 35 casework parts, so that means 150 DAYS of non-stop round-the-clock 3D printing! This is the reason for wishing to get a batch of ten 3D printers - it might be possible to get the entire casework sets done in around six weeks of non-stop operation.
You probably noticed that, after considering the injection-molding idea, I dropped it. It’s just not practical for such a small volume of units. Not at 35 separate pieces requiring 35 separate molds to be developed.
Regarding delivery dates, the answer is always always going to be "when things are ready to go into production" (not necessarily "perfect"). For reasons explained in the previous update, the project’s still not at the phase where a set schedule is possible to declare. As explained above, the EOMA68-A20 needs to go through another pre-production revision - estimated time to make and then test: 4-6 weeks. The EOMA68-A20 casework still needs to be done (a front plate arranged). The new Micro Desktop casework, because of the redesign explained above. needs to be tested and a means and method of manufacturing the corners found (3D printed, injection-molded, all need investigating) - estimated time of 6-8 weeks in parallel with the A20 Card. The Pass-through Card needs another revision based on the hardware-level debugging done in January. It’s a huge list of tasks that would normally be tackled by a team of five to eight engineers. I’m getting through them as best I am able.