Thursday, November 3, 2022

NASA’s JPL ION Running on Single Board Computers (SBC)

Since the moment I envisioned the project to create a prototype for a R&D and education laboratory for DTN (Delay Tolerant Networking) and IPN (InterPlanetary Networking,) I set as one of my primary requirements to make it affordable and as simple as possible using off the shelf components.

I could have used a large server with multiple virtual machines, but the idea was to embed some of the nodes into a mockup representing a different element of a space mission network. I ended doing that using Legos, in some cases modifying existing models, in others just creating my own like the Mission Control Center (with a Raspberry Pi Zero 2W.)


Besides some nodes that I already planned to run on a virtual machine, and others running on actual Intel based mini personal computers, I focused my search on affordable Single Board Computers (or SBC) that could run NASA’s JPL open source ION implementation of DTN.

Of course, the Raspberry Pi ended on top of the list, more so when they released the Raspberry Pi Zero 2W with comparable performance of a Raspberry Pi 3.

Why Raspberry Pi?

Price and features were a big factor, plus the ecosystem that has developed over 10+ years around it, particularly for education and experimenting, has an incredible value.

I considered other alternatives, I already had some boards in my inventory, and another goal for the laboratory was to serve as a platform to test interoperability of ION running on different platforms.

Unfortunately, with the semiconductor shortages and supply chain issues, the Raspberry Pi boards by the end of 2021 were almost impossible to procure or at exorbitant prices.

Then, the alternatives became more important.

I started procuring some that were reasonably priced, with similar features as the Raspberry Pi, most of them with ARM cpus, and very important, with support for a flavor of Lunix where I could build ION from the source code.

Overall, I didn’t find many problems to build ION, in few cases I had to tweak the original config scripts.

These changes will be included in the coming release early next year of IONe, an experimental version of ION as a branch of the original NASA code, development still leaded by Scott Burleigh (creator of ION when he worked at JPL) and as part of the work we do with the Internet Society Interplanetary Chapter (IPNSIG) Projects Group.

I also started to run performance tests to compare various boards/platforms. I will publish the results in a separate article, preliminary numbers show that the alternative boards to Raspberry Pi run substantially faster.

If you are a manufacturer or distributor of these type of boards and have interest to get it tested and added to the list, please feel free to send a message to ipndtn@ljcv.net.

I’ve been already sharing this information with various universities and research groups who are facing the same problem getting appropriate hardware for their projects. I heard that some of the Raspberry Pi products have a lead time of over a year!! Insane

Here are the boards I tested up to the publication of this article.

Raspberry Pi 3B

 


SoC

Broadcom BCM2837

CPU

Quad Cortex-A53 ARMv8

Clock

1.2GHz

Video

HDMI

RAM

1GB LPDDR2

LAN

100M

USB

4 x USB 2.0

WiFi

b/g/n

Bluetooth

LE

Supported OS

RaspiOS, Ubuntu, Kali Linux …


Raspberry Pi 3B+

 


SoC

Broadcom BCM2837B0

CPU

Quad Cortex-A53 ARMv8

Clock

1.4GHz

Video

HDMI

RAM

1GB LPDDR2

LAN

GigE

USB

4 x USB 2.0

WiFi

b/g/n/ac

Bluetooth

4.2, LE

Supported OS

RaspiOS, Ubuntu, Kali Linux


Raspberry Pi 4B

 


SoC

Broadcom BCM2711

CPU

Quad Cortex-A72 ARMv8

Clock

1.5GHz

Video

2 x microHDMI

RAM

1, 2, 4 or 8GB LPDDR4

LAN

GigE

USB

2 x USB 2.0, 2 x USB 4.0

WiFi

b/g/n/ac

Bluetooth

5.0, LE

Supported OS

RaspiOS



Raspberry Pi Zero W

 


SoC

Broadcom BCM2835

CPU

Single ARM1176JZF-S

Clock

1GHz

Video

Mini HDMI

RAM

512MB LPDDR2

LAN

None

USB

1 x OTG

WiFi

b/g/n

Bluetooth

4.1, LE

Supported OS

RaspiOS



Raspberry Pi Zero 2W

 


SoC

RP3A0 (Broadcom BCM2710A1)

CPU

Quad Cortex-A53 ARMv8

Clock

1GHz

Video

Mini HDMI

RAM

512MB LPDDR2

LAN

None

USB

1 x OTG

WiFi

b/g/n

Bluetooth

4.2, LE

Supported OS

RaspiOS


Orange Pi PC

 


SoC

Allwinner H3

CPU

Quad Cortex-A7

Clock

1.6GHz

Video

HDMI

RAM

1GB LPDDR3

LAN

100M

USB

2 x USB 2.0, 1 x OTG

WiFi

None

Bluetooth

None

Supported OS

Ubuntu, Debian Buster


Banana Pi M2 Zero

 


SoC

Allwinner A7H2+

CPU

Quad Cortex-A7

Clock

1.2GHz

Video

Mini HDMI

RAM

512MB LPDDR2

LAN

None

USB

1 x OTG

WiFi

b/g/n

Bluetooth

4.0

Supported OS

Debian Buster


Banana Pi M4

 


SoC

Realtek RTD1395

CPU

Quad Cortex-A53

Clock

1.4GHz

Video

HDMI

RAM

1GB LPDDR4

LAN

100M

USB

4 x USB 2.0

WiFi

b/g/n/ac

Bluetooth

4.2

Supported OS

Debian Buster


Libre ComputerAML-S905X0-CC aka Le Potato

 


SoC

Amlogic S905X

CPU

Quad Cortex-A53

Clock

1.512GHz

Video

HDMI

RAM

2GB LPDDR3

LAN

100M

USB

4 x USB 2.0

WiFi

None

Bluetooth

None

Supported OS

Ubuntu, Debian & Raspbian Bullseye


Libre Computer ROC-RK3328-CC aka Renegade

 


SoC

Rockchip RK3328

CPU

Quad Cortex-A53

Clock

1.4GHz

Video

HDMI

RAM

2GB LPDDR4

LAN

GigE

USB

1 x USB 3.0, 2 x USB 2.0

WiFi

None

Bluetooth

None

Supported OS

Ubuntu, Debian & Raspbian Bullseye


Note: on the "Supported OS" I'm showing the ones I tested, for some of the boards there are other OS available.

Disclaimer: I’m not getting any compensation or benefits from any distributor or manufacturer for the products mentioned in this article.

Until the next intergalactic communication …

Cheers
Jorge