T3 Gemstone O1

Tags: chip:am67 arch:arm experimental

../../../../../_images/t3-gem-o1-front.png

T3 Gemstone O1 board layout - front

../../../../../_images/t3-gem-o1-back.png

T3 Gemstone O1 board layout - back

This page presents T3 Gemstone O1 – High-performance development board based on Texas Instruments AM67A processor, which runs NuttX on main domain Cortex-R5F core.

Features

  • Processor (TI AM67A)
    • Quad-core 64-bit ARM Cortex-A53 @1.4 GHz for running high-level operating systems such as Linux

    • Dual single-core ARM Cortex-R5F @800 MHz for running real-time MCU applications

    • Dual 2 TOPS (4 TOPS total) deep learning accelerators for running vision applications

    • Advanced 50 GFLOPS GPU for high-performance graphics processing

    • 4GB LPDDR4 RAM

  • Sensors
    • InvenSense ICM-20948 IMU (accel, gyro, compass)

    • Bosch BMP390 barometer

    • TI HDC2010 humidity and temperature

  • Storage

    • On-board
      • 32GB eMMC flash

      • 512Kbit EEPROM

    • Expandable
      • microSD card slot

      • M.2 2280 SSD port

  • Network Connections
    • 1x Gigabit ethernet

    • 1x CAN bus

    • Wi-Fi 4 (802.11n)

    • Bluetooth 5.1, Bluetooth Low Energy (BLE)

  • Power
    • USB Type-C power (5-9V / 3A)

    • DC power connector (5-12V / 5A)

  • Interfaces
    • UART, I2C and SPI for extensions

    • S.Bus input

    • 7x PWM servo outputs

    • Green-red status leds

    • Real-time clock

    • Fan with PWM speed control

    • 4x USB ports

    • 2x 4-lane MIPI CSI/DSI

    • 1x HDMI

Warning

NuttX runs on the main-domain R5F core, loaded by U-Boot or Linux via RemoteProc. It relies on the bootloader / Linux Device Manager to have powered and clocked the peripherals it uses (NuttX does not yet run a TISCI client of its own). Support is a work in progress – please see the contributing documentation if you would like to help.

Serial console

The serial console is provided on UART-MAIN1, which is available on the 40-pin HAT:

  • UART-MAIN1 TX: GPIO-14

  • UART-MAIN1 RX: GPIO-15

Peripheral Support

Beyond the serial console, the following peripherals have drivers for the main-domain R5F core:

  • GPIO: pad configuration and read/write over the AM67 GPIO controller.

  • SPI: MCU_MCSPI0 master, with the hardware chip-select driven per channel (used for the on-board ICM-20948 IMU and LPS22DF barometer).

  • I2C: WKUP_I2C0 master, registered as /dev/i2c2.

  • PWM: EPWM0 and EPWM1, channels A and B each, registered as /dev/pwm0 and /dev/pwm1.

  • eCAP: eCAP1 and eCAP2 in APWM mode, registered as /dev/ecap1 and /dev/ecap2.

  • IPC: rptun over the NAVSS mailbox, giving OpenAMP rpmsg channels to Linux running on the A53 cores.

  • Networking: vhost-net presents the R5F as a virtio-net device to the Linux peer, giving an ethernet link over the same rptun transport.

Installation

The arm‑none‑eabi‑gcc toolchain can compile NuttX for R5F cores. You can obtain a compatible toolchain for your operating system directly from the official ARM website.

If you’re running a Debian‑based Linux distribution, you can also install the toolchain via your package manager:

$ sudo apt-get update
$ sudo apt-get -y install gcc-arm-none-eabi

Flashing

The board does not provide flash storage for the R5F firmware, so NuttX must be loaded onto the R5F cores through the RemoteProc framework from either U‑Boot or Linux. While the A53 cores run Linux, the R5F cores execute the NuttX operating system.

To load code onto the R5F cores, place the compiled binaries in the /lib/firmware directory, using the filenames expected by RemoteProc. During boot, RemoteProc will automatically detect these files and launch the corresponding programs on the appropriate cores.

Follow the steps below to start NuttX on the main‑domain R5F core via RemoteProc.

  1. Copy the nuttx file resulting from the compilation to the /lib/firmware directory with the name j722s-main-r5f0_0-fw.

  2. Reboot the board.

  3. You can access NuttShell by connecting a USB-to-TTL device to the UART-MAIN1’s TX (GPIO-14) and RX (GPIO-15) pins on the 40-pin HAT.

$ picocom -b 115200 /dev/ttyACM0
NuttShell (NSH) NuttX-12.11.0
nsh> cat proc/version
NuttX version 12.11.0 8bdbb8c7d5-dirty Oct 22 2025 14:15:42 t3-gem-o1:nsh
nsh>

Configurations

All of the configurations that can be used with t3-gem-o1 board name are listed below. For example you can select nsh configuration with the following command:

$ ./tools/configure.sh t3-gem-o1:nsh

nsh

Configures the NuttShell (nsh) located at examples/nsh. This configuration enables a serial console on UART-MAIN1.

netnsh

As nsh, plus networking over the virtio-net link to the Linux peer. Bring the interface up with ifconfig eth0 <addr> followed by ifup eth0; the Linux side needs its virtio_net driver bound to the second vdev.