Traverse Ten64

by Traverse Technologies

An eight-core ARM64 networking platform with mainline Linux support

View all updates Oct 05, 2020

AMA, SSD Options, and Bare Metal CI/CD

by Mathew M

Ten64 is well-equipped for continuous integration and continuous delivery. Here’s a detailed look at the full hardware and software setup we use for CI/CD on Ten64. But first, some details on an Ask Me Anything (AMA) this Wednesday and recently added NVMe SSD options that can ship with your Ten64 order.

Ask Us Anything on October 7

We will be holding an AMA session on the Crowd Supply Discord server on Wednesday, October 7, 2 PM US Pacific Time. For those in other timezones, this is:

  • 4 PM US Central
  • 21:00 UTC October 7
  • 11:00 PM Central European Summer Time
  • 8:00 AM October 8 Australian Eastern Daylight Time
  • 10:00 AM October 8 New Zealand Daylight Time

Or, you can determine the time in other timezones.

The session will be on the Crowd Supply Discord server, channel #ten64-ama. Join or invite other to join with this link:

After the AMA timeslot, the discussion will be archived on the Crowd Supply Discord.

Ten64 project architect Mathew McBride will be on hand to answer all your questions!

NVMe SSDs Now Available

We’ve just made available NVMe SSDs that are known to work with Ten64. Like other accessories, these drives will only ship with Ten64 orders - they won’t ship separately due to their discounted price. If you’ve already place an order and want to add a drive to your order, please contact Crowd Supply to request an order change.

To be clear, one of these drives will fit within the standard Ten64 enclosure. If you are looking for drives suitable for a NAS in a different enclosure, stay tuned - we’re working on sourcing those as well and will announce them once they’re available.

Continuous Integration & Delivery

If you have done any operating system and/or distribution development, you know that the compile→install→reboot cycle can be quite a chore. Virtual machines can help avoid having to use physical hardware, but sometimes you need to test features that are closely tied to the hardware. Another common scenario is that you are working from home and need to control a system in your office lab.

Ten64’s control header helps address both these scenarios and more by bringing out the reset and power button lines, UARTs, I²C, and other control nets. You can wire these up to your favorite single-board computer (SBC) for remote control and access.

Schematic of Ten64's control header

Apart from continuous integration and continuous delivery (CI/CD) you can also use the control header for BMC/IPMI-like applications. Regrettably, we didn’t have enough room on the Ten64 to fit an onboard BMC, but this is the next best thing!

Raspberry Pi Control HAT

We have designed, prototyped, and tested a small Raspberry Pi-compatible HAT board allowing up to two Ten64 systems to be controlled from one Raspberry Pi or other compatible SBC. Though we don’t have currently have plans to manufacture and sell these HATs, we’ve made available the complete Altium project files for the Ten64 Control HAT for anyone who’s interested. If you’d like to see these go into production, let us know!

Ten64 Control HAT on SBC

The control HAT also isolates the I²C buses and GPIOs (using MOSFETs and I²C muxes) between the two systems so things like reboots resetting GPIO states and unconfigured pinmuxes will not disturb the "target" board.

Up until version 4, Raspberry Pi only had a single UART available. To get around this, you can use Ten64’s USB-C console. We use the Seeed Studio NPi i.MX6ULL Dev Board SBC, which provides multiple independent UARTs.

CI/CD Software Tools

On the software side, the tools you need are:

  • mTerm: a terminal multiplexer which allows multiple clients to connect to the same UART. This utility originates from Facebook's openBMC distribution.
  • You will need to configure a telnet server to route connections to mTerm, or perhaps configure an SSH user.
  • A "stub" Redfish server which will accept reboot and other requests over HTTP. I haven't implemented any other Redfish functionality (yet).

You can get OpenWrt versions of these packages from my openwrt-bmc-feed repo, though the same utilities will also work on other Linux distributions.

Beware that anyone who can access your "host" board (SBC) will have full control of the "target" board (Ten64) as well. Ensure you have secured your network and systems appropriately – these are not intended to be accessed from the open internet.

For Ten64s dedicated to CI/CD testing, I recommend configuring U-Boot to halt at the boot prompt so the testing script can decide the correct course of action. For example, first reboot into the recovery firmware to download and write your image, then execute a normal boot sequence on reboot.

Testing Distribution Images with GitLab CI

Ten64 Control HAT in action

Our distribution-images repository builds and tests our customized Debian images against real hardware. Our GitLab CI configuration and testing utility scripts are both available to use as starting points for your own setup.

In our CI/CD pipeline, since a virtual machine can be provisioned and booted faster than real hardware, we first use μVirt to test the images as a VM simply to ensure the image is bootable and basic features like disk image resizes and cloud-init work as intended.

These scripts require the GitLab runner to have access to the control SBC. The easiest way to do this is to have a GitLab runner instance on the same network segment as your control SBC.

GitLab CI screenshot

About the Author

Mathew M

mcbridematt  ·   Melbourne, Australia

$100,416 raised

of $60,000 goal

167% Funded! Order Below

Product Choices


Traverse Ten64 Mainboard

A fully assembled and tested Ten64 mainboard installed in a custom metal enclosure with a fan, 60 W power supply, a recovery microSD card, a SIM eject tool, and a hex key, as you'd expect with any good piece of hardware. RAM with ECC not included. Regional power cord and USB-C console cable sold separately.


Four-port M.2 Key B SATA Controller

We recommend this SATA controller for Ten64 NAS configurations using CMR HDDs for bulk storage and a standard 22 mm x 80 mm NVMe SSD for boot storage. This controller fits in the Ten64's M.2 Key B slot and uses one lane of PCIe 2.0.


Five-port M.2 Key M SATA Controller

We recommend this SATA controller for Ten64 NAS configurations using Apacer NAS-grade SSDs for bulk storage and a smaller 22 mm x 42 mm NVMe SSD for boot storage. This controller fits in the Ten64's M.2 Key M slot and uses two lanes of PCIe 3.0.


EU-C13 AC Power Cord

From the Crowd Supply Basics project.

A 1.8 m (6 ft) long AC cable with an EU plug and a C13 plug to fit a C14 port.


AU-C13 AC Power Cord

From the Crowd Supply Basics project.

A 1.8 m (6 ft) long AC cable with an AU plug and a C13 plug to fit a C14 port.


UK-C13 AC Power Cord

From the Crowd Supply Basics project.

A 2.5 m (8.2 ft) long AC cable with a UK plug and a C13 plug to fit a C14 port.



From the Crowd Supply Basics project.

The 128 GB drive is compatible with both the M.2 Key M and M.2 Key B slots on Ten64's mainboard, whereas the 256 GB and 512 GB drives are only compatible with the M.2 Key M slot. These drives are only available when purchased with a Ten64.

SanDisk NVMe SSDs in various capacities: 128 GB (P/N SDAPMUW-128G-1022), 256 GB (P/N SDBPNPZ-256G), and 512 GB (P/N SDBPNPZ-512G).


NAS-grade SATA 2.5" SSD

From the Crowd Supply Basics project.

These NAS-grade solid state drives (SSDs) are rated to last much longer than consumer models, so are perfect for NAS bulk storage. Choose from 256 GB (AP256GPPSS25-R), 512 GB (AP512GPPSS25-R), and 1 TB (AP1TPPSS25-R) capacities. These drives are only available when purchased with a Ten64. User installation required.


Flexible SATA Cable

From the Crowd Supply Basics project.

A flexible cable (3M part number 5602-44-0142A-300) for connecting a SATA drive to a SATA controller board.



From the Special Items project.

One stick of 8 GB DRR4 SODIMM non-ECC RAM (Micron MTA8ATF1G64HZ-2G6E1)


USB Cable: Type-C to Type-A

From the Crowd Supply Basics project.

Use this cable with your Ten64 Mainboard

A 100 cm cable with a USB Type-C and a USB Type-A connector.


Traverse Technologies

Traverse is a design house focusing on broadband and machine-to-machine applications. Our key areas of expertise are in wireline (xDSL), wireless (LTE), and embedded Linux with an aim to leverage open source technologies such as Linux and OpenWrt as much as possible.

Guy Ellis

SI and DFM Engineer

Mathew McBride

Product Architect

Brett Hahnel

PCB Layout and CAD

Sean Yang

SW Developer

Dennis Monks

SW Dev Leader

Vaughn Coetzee

Firmware Developer



Contract Manufacturer

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: