We don’t usually recommend Kickstarter projects here at Hackaday, but when prototype material pops up on our desk, we just can’t help but play around with it and write it down for readers. And that’s exactly where we end up with the Turing Pi 2. You might be familiar with the original Turing Pi, the carrier board that runs seven Raspberry Pi compute boards at once. This supports Compute versions 1 and 3, but a new design was clearly needed for Compute Module 4. Not content with just supporting CM4, Turing Machines developers designed a 4-slot carrier board based on the NVIDIA Jetson pinout. . The full range of Jetson devices are supported and a simple adapter runs the CM4. There’s even a brand new mod planned around the RK3588, which should be quite impressive.
One of the design decisions of the TP2 is to use the mini-ITX form factor and the 24-pin ATX power connection, which gives us the option of installing the TP2 in a small computer case. There’s even a custom rack-mountable case planned by the folks at My Electronics. So if you want 4 or 8 Raspberry Pis in a rack, this is the one for you.
— MyElectronics.nl (@MyElectronicsNL) June 11, 2022
The call – and the risks
“Wait, wait”, I hear you say, “There are many ways to rack Raspberry Pis!” Certainly. The form factor options are handy, but the real magic is the rest of the card. Individually controlled power supply for all four boards from a single ATX power supply provides a very clean solution. Need to reboot a frozen Pi remotely? There is the Baseboard Management Controller (BMC) which will perform full power control over the network. It’s the real feature killer: the BMC will run open source firmware and power some very smart features. Want the UART to fix a boot problem? It is available from all four BMC nodes. Need to push a new image to a CM4? The BMC will include image flash functions. An on-board gigabit network switch connects the Pis, BMC and two external Ethernet ports, all of which support VLANs.
On the other hand, little of the BMC magic is still implemented on the review units. This is the project’s biggest promise and the place where it could go wrong. Rolling out stable firmware with all the bells and whistles within three months of the expected ship date can be a little optimistic. I expect working firmware, with updates to refine the experience in the months following launch.
Then there is the extended IO. The card comes with a pair of Mini PCIe ports, 4 USB3 ports and a pair of SATA ports. This works through the PCIe lanes exposed by the various compute modules. Nodes 1 and 2 are connected to mini PCIe ports, node 3 to SATA and node 4 to USB3 ports. Additionally, a switchable USB2 port can be dynamically assigned to one of the existing nodes. Oh, and there’s an HDMI output from node 1, so even more options, like running an 8GB Pi CM4 as a desktop machine. A late option added to the Kickstarter locks down four NVMe ports to the bottom of the board, one per slot, although not all compute modules have the PCIe lanes to support it.
Now, keep in mind that I’m testing a pre-production unit (more on that later), and all of the above still doesn’t work. Many changes are planned for the production boards compared to my unit, and the BMC firmware on this board is absolutely minimal. There are also supply chain issues we continued to cover here on Hackadaybut the TP2 has the advantage of being designed during the shortage, so it should be able to avoid using hard-to-find parts.
Now let’s talk about what it *doesn’t* do. It might seem obvious, but the Turing Pi 2 doesn’t get you a single ARM machine with more than 16 processing cores. There’s not enough magic on board for the devices to act as a unified multi-processor computer. I’m not sure there’s enough magic out there to really pull this off. However, you get four easy-to-manage machines that are perfect for running lightweight services or Docker images.
Looking for a platform to learn Docker and Kubernetes? Or a place to host Gitlab, Nextcloud and a file server? Maybe you want to play Nginx as a front-end proxy and multiple devices running services behind it? The Homelab-in-a-box nature of the TP2 makes it a useful choice for all of the above. And while you can’t reasonably do all of the above on a single Raspberry Pi, a programmable cluster of 4 of them does the job just fine. VLAN support means you can add virtual NICs to your nodes and create an internal network. With the two physical Ethernet ports, you can even use your TP2 as your main router, in addition to all that it can do.
Tests in real conditions
So, what is the real state of the project? My pre-production board is currently booting a Raspberry Pi CM4, a Pine64 SOQuartz module, an NVIDIA Jetson Nano, and the Jetson TX2 NX. The Jetson Xavier NX had a quirk that required minor map editing, but works like a champ once that’s been done. There are the normal warts of a pre-production board, like extra DIP switches everywhere, and a few quirks, like Ethernet only coming in at 100M for some devices. These are known issues and a good example of why you are testing rev 0 boards. The final product should have all defects resolved.
I monitored the power consumption, and the maximum I managed to squeeze out is only 30 watts of power. This suggests a real use case, an off-grid compute cluster. Mini-PCIe ports must allow an LTE modem (Or you can use Starlink if you are *far* off the grid). Add a few cameras and install the Zoneminder docker footage, and you have a low-power video surveillance solution. Add an RTL-SDR dongle and rtl_433 software listening solar powered weather station, and you can also track the weather remotely. Just for fun I ran a janus docker image on one of the Raspberry Pi CM4 on my TP2. Janus is the WebRTC server we integrated with Zoneminder, and I was able to live stream 12 security cameras at 1080p, using only about 25% of the available CPU power, a 1 to 1 load. Four-core Pi. It’s a testament to the lightness of Janus, but also a great example of something useful you could do with a TP2.
The Kickstarter is over, with over two million dollars raised, but don’t worry, because you’ll soon be able to buy a Turing Pi 2. Orders will be processed through the Turing Pi website itself, stay tuned for details. It will be a few months until the final revision of the board is complete and shipped, hopefully with killer firmware and everything works exactly as advertised. Finally, there’s the alluring RK1 compute card, with up to 32GB of RAM and eight cores of Arm goodness from the RK3588. It’s a step further, and possibly a second Kickstarter campaign. I asked about primary support for the RK1, and was told it was primary, but they’re not exactly sure when. There’s quite a bit of excitement around this particular chip, so expect the community to work together to get everything in place for mainstream support.
There may be an unintended consequence of the Turing Pi 2 and RK1 using the NVIDIA Jetson SO-DIMM connector. Imagine a portable device built on the Antmicro open source Jetson Baseboard, which works with multiple compute modules. I mentioned the Pine64 SOQuartz: it’s not an officially supported card in TP2, but because Pine64 built it to CM4 specs, it snaps right into the adapter card and works like a champ . There is an interesting possibility that one or two of these compute module interfaces will gain enough critical mass to be widely used in devices. And if anyone was wondering, using the TP2 CM4 adapter does not magically boot a CM4 into a Jetson Nano carrier board. Yes, we checked.
So is the Turing Pi 2 for you? Maybe. If you don’t mind juggling multiple single-board computers and the mess of cabling required, then maybe not. But if the ability to squeeze four SBCs into a single mini-ITX case, with a BMC making life easier, sounds like a breath of fresh air, then check it out. The real test will be the date of shipment of the finished product and the form of the support. I’m cautiously optimistic that it won’t be very late and that it will have working OSS firmware. I can’t wait to get my hands on the final product. Now, if you’ll excuse me, I think I need to implement an automated system to create aarch64 docker images.
#Turing #lowpower #cluster