Reliable Compute Platforms in Gateways?

What’s the current thinking on the best compute platforms for gateways deployable in the real world? These would ideally be able to run some additional custom services and management/telemetry in addition to a packet forwarder.

Lots of experiments are built around Raspberry Pi’s, but the dependence there on SD cards really calls reliability into question, as there can be failures not only at file system level, but at the hidden NAND translation level, or in multi-level cells which are now small enough to need refresh just from being read too often. Various mitigations exist, like cards modified to store only one bit per potentially multi-level cell, or on the compute module slightly better eMMC. But generally these just do not seem intended for deployable applications - the pi foundation unfortunately considers there to be no justification for creating a driver to let the super-secret GPU boot a kernel and initrd from an SPI NOR flash, even though the silicon is capable of it.

In the extreme other direction, the TTN Gateway seems to be using a PIC32 running out of internal flash. This is potentially a lot more solid - yet more limiting and harder to add additional services to - the ability to just SSH into a pi-like box and recompile the packet forwarder right there is definitely nice in development.

Slightly up from that, traditional OpenWRT router platforms typical boot Linux from a NOR flash and decompress a system image to a ram disk to run from. This is potentially quite solid (almost completely safe against unexpected power loss) while leaving a little more room for additional services and doing firmware updates between A/B images if the NOR is big enough.

Most of the Allwinner ARM CPUs found on various pi-competitor boards can boot from an SPI NOR; after this past weekend I have an H3-based OrangePi PC+ loading U-Boot off a grafted-on 16 MB SPI flash, then starting up a system image on eMMC including working gateway software trivially ported from the pi version. In theory, there’s enough room in the SPI flash for an initrd capable of downloading a new system image to repair the eMMC or even relocating the system to an SD card or USB stick shipped in the gateway as a spare storage volume - essentially giving a PI-3 like board without the SD card dependence of the PI line.

It looks like the TI Sitara parts in the Beagle Bone and Octavio Systems SOM (aka Pocket Beagle) should also be able to SPI boot, with perhaps better ongoing support from the silicon vendor, albeit at a price premium over Allwinner which starts to seem less significant by the time the whole box comes together. Still waiting on a BBB to arrive to test this - in the Allwinner case, getting a 2nd SPI chip select working to de-conflict the boot flash from the SX1301 took longer than getting the actual SPI boot itself to work. Comparing the thermal situation is also on the agenda.

Finally there are PC-derived router chassis, for example the PC Engines boxes. While by default they depend on a consumer-grade micro-SATA SSD or SD card, they allegedly run an open-source Coreboot BIOS out of an SPI NOR, which it would seem could potentially be modified to enable booting a rescue kernel and initrd off a larger (or secondary) SPI NOR, much as with the ARM boards. However they do look to consume 2-3x as much power - put something in a sealed box in the field, and heat becomes an issue.

The MultiTech conduit SPI based cards are available for well over a year. No more USB required.