Get a board
Order the PCB from the KiCad project from your board house of choice. The board must be 0.8mm thick. Standard 1.6mm is too thick to fit the microUSB A plugs. I was able to get 5 boards from Elecrow for under $10USD shipped in a little over two weeks.
Get some parts
Use the BOM in the "Files" section in this project to order parts.
The BOM is a CSV direct from DigiKey and should import through their "Upload to Cart" thingy. You might want to tweak the quantities since some of the discretes and the power switches are significantly cheaper if you go up to 10x or 100x. Worst-case cost for parts to build a single backplane is about $16USD.
Solder all the things
Solder the board according to the KiCad design. Start with the discretes and ICs, then the vertical USB A plugs and through hole caps, then the microUSB B.
Be very careful with the vertical microUSB A plugs as they're very touchy. Flux the pins and the pads on the solder side of the board first. Then once you fit each plug, force it to one side of the footprint to align it before tacking it down (first board rev only, where the holes are just a little too big for the part used). Use the frame pins to tack the connector into alignment, since the signal pins tend to be fragile. Once aligned, solder the frame pins thoroughly so solder wicks up the component side for mechanical stability. This might require additional heat. Once the frame is soldered, solder the signal pins at standard temp, but allow time for solder to wick up the hole.
Clean and inspect
Thoroughly clean off flux. Brush and isopropyl, or flux solvent. You want to make sure the connectors are clean and no flux ended up on the USB plug wipers.
Once the board is clean, look at it under a magnifying glass for bad or bridged joints.
Smoke test by powering up the hub with a current limited power supply while no Zeros are attached. It should have a significant inrush, but should settle down at around 50mA.
When troubleshooting problems later on, suspect the microUSB A connectors before all else. Check for shorts between pins, and if any are found desolder and replace the connector. Due to the tight clearance there' s not much that can be done to fix them. If the hub does not show up on the head node, or the compute nodes can't be seen in "lsusb", try removing flux with a cleaner that does not require action (i.e. Flux-Off) as flux may be coating the microUSB contacts. If that fails, try briefly reflowing each of the pads on the affected connector. If the problem persists, replace the microUSB connector.
Make the compute node microSD cards unbootable
This cluster depends on the compute nodes booting from USB and not from microSD. The Raspberry Pi Zeros will only boot from USB if there is no valid "bootcode.bin" found on the microSD card.
If you've used your microSD cards for booting Raspberry Pis in the past, you should blank them before using in this cluster.
The easiest way to do this is to mount the first (FAT) partition on a PC, then remove the "bootcode.bin" file if it's found. On Windows, this will show up as the only drive. If no drive shows up, or no "bootcode.bin" is seen, then the card is ready to go.
Some alternatives: Under Linux, you can "dd" from /dev/zero over the card if you're confident in using that command. Using the Windows disk formatter to quick format the first partition will work.
Put it all together
Put the four blank compute node microSD cards into the Pi Zero 1.3 boards. Leave the head node microSD card out for the next step.
Then plug the Pis together, with the Zero W in the "UPSTREAM" slot (P1) and the Zero 1.3s in the rest. All of the Zeros should plug into the backplane through the USB jack in the middle, not the one closest to the edge.
Plug your 5V power supply into the wall, but don't connect the microUSB into the backplane just yet. The head node microSD card needs to be prepared first.
See the github repo for software installation and usage
We live in a fast-paced world, and I'm far too lazy to update documentation in two places. The current software instructions are in the README here: https://github.com/al177/terrible-pi/blob/master/README.md .