Nerves System Trellis
This project provides the base Nerves System configuration for the Trellis hardware platform. Unlike traditional single-board computers, Trellis is designed as a hardware template for creating custom embedded devices.
Hardware Platform
Trellis is a flexible design centered around the Allwinner T113-S4 SoC. This dual-core ARM Cortex-A7 processor includes 256 MB of integrated DDR3 RAM, which simplifies PCB routing and reduces the overall footprint of custom designs.
A Trellis-compatible design typically adheres to the following core specifications:
- The system is based on the Allwinner T113-S4 SoC.
- Storage and booting are handled via an SDIO flash chip usually connected to the MMC0 peripheral.
- High-speed wireless connectivity can be provided by attached WiFi modules, such as the Realtek RTL8188 or RTL8723.
- A USB-C connector attached to USB0 (for FEL mode and initial flashing)
- Debug console on UART4
Reference Designs
There are several open-source hardware projects that utilize the Trellis template. These repositories provide KiCad source files that can be used as a starting point for your own custom hardware.
- Trellis Core contains the primary KiCad source files for the base hardware template.
- Wisteria Hardware is the hardware implementation used for the 2025 Goatmire conference name badge, demonstrating the template's use in a specific form factor.
Features
This system configuration enables a standard set of peripherals across Trellis-based hardware.
| Feature | Description |
|---|---|
| CPU | 1.2 GHz Dual-core ARM Cortex-A7 |
| Memory | 256 MB Integrated DDR3 |
| Storage | SDIO Flash (on MMC0) |
| Linux kernel | 6.18 with patches |
| IEx terminal | UART ttyS4 |
| GPIO, I2C, SPI | Supported via Elixir Circuits |
| WiFi | Various Realtek modules supported |
| HW Watchdog | Enabled |
Using
The most common way of creating a Nerves project using this system is to run
mix nerves.new my_app and export MIX_TARGET=trellis. See the
Getting started guide for more
information.
Initial flashing of Trellis hardware without an SD card is typically performed using FEL mode. This allows you to load firmware onto a blank device over USB without needing an SD card slot. You can find the necessary tools and instructions for this process in the usb_fel_loaders repository.
Once the initial firmware is loaded, standard Nerves over-the-air (OTA) updates can be used for subsequent deployments.
If you need custom modifications to this system for your device, see the Nerves documentation on customizing systems.
U-Boot
It's possible to break into U-Boot via the debug UART by holding down the enter key when booting.
When in U-Boot, it's possible to expose the flash as a mass storage device over USB by running the following:
ums 0 mmc 0:0
Linux kernel
The Linux kernel is built from the mainline 6.12 release with patches for the
Allwinner T113-S4. The default kernel configuration is in linux_defconfig.
Special Thanks
Thank you to Connor Rigby who brought up initial support for the Allwinner T113-S3.