|
| 1 | +============== |
| 2 | +T3 Gemstone O1 |
| 3 | +============== |
| 4 | + |
| 5 | +.. tags:: chip:am67, arch:arm, experimental |
| 6 | + |
| 7 | +.. list-table:: |
| 8 | + :align: center |
| 9 | + |
| 10 | + * - .. figure:: t3-gem-o1-front.png |
| 11 | + :align: center |
| 12 | + |
| 13 | + T3 Gemstone O1 board layout - front |
| 14 | + |
| 15 | + - .. figure:: t3-gem-o1-back.png |
| 16 | + :align: center |
| 17 | + |
| 18 | + T3 Gemstone O1 board layout - back |
| 19 | + |
| 20 | +This page presents T3 Gemstone O1 – High-performance development board based on |
| 21 | +Texas Instruments AM67A processor, which runs NuttX on main domain Cortex-R5F |
| 22 | +core. |
| 23 | + |
| 24 | +- `Website <https://t3gemstone.org/en/>`__ |
| 25 | +- `Board Specs <https://docs.t3gemstone.org/en/boards/o1/introduction/>`__ |
| 26 | +- `Documentation <https://docs.t3gemstone.org/en/projects/nuttx/>`__ |
| 27 | + |
| 28 | +Features |
| 29 | +======== |
| 30 | + |
| 31 | +- **Processor** (`TI AM67A <https://www.ti.com/product/AM67A/>`__) |
| 32 | + - Quad-core 64-bit ARM Cortex-A53 @1.4 GHz for running high-level operating |
| 33 | + systems such as Linux |
| 34 | + - Dual single-core ARM Cortex-R5F @800 MHz for running real-time MCU |
| 35 | + applications |
| 36 | + - Dual 2 TOPS (4 TOPS total) deep learning accelerators for running vision |
| 37 | + applications |
| 38 | + - Advanced 50 GFLOPS GPU for high-performance graphics processing |
| 39 | + - 4GB LPDDR4 RAM |
| 40 | + |
| 41 | +- **Sensors** |
| 42 | + - InvenSense ICM-20948 IMU (accel, gyro, compass) |
| 43 | + - Bosch BMP390 barometer |
| 44 | + - TI HDC2010 humidity and temperature |
| 45 | + |
| 46 | +- **Storage** |
| 47 | + |
| 48 | + - **On-board** |
| 49 | + - 32GB eMMC flash |
| 50 | + - 512Kbit EEPROM |
| 51 | + |
| 52 | + - **Expandable** |
| 53 | + - microSD card slot |
| 54 | + - M.2 2280 SSD port |
| 55 | + |
| 56 | +- **Network Connections** |
| 57 | + - 1x Gigabit ethernet |
| 58 | + - 1x CAN bus |
| 59 | + - Wi-Fi 4 (802.11n) |
| 60 | + - Bluetooth 5.1, Bluetooth Low Energy (BLE) |
| 61 | + |
| 62 | +- **Power** |
| 63 | + - USB Type-C power (5-9V / 3A) |
| 64 | + - DC power connector (5-12V / 5A) |
| 65 | + |
| 66 | +- **Interfaces** |
| 67 | + - UART, I2C and SPI for extensions |
| 68 | + - S.Bus input |
| 69 | + - 7x PWM servo outputs |
| 70 | + - Green-red status leds |
| 71 | + - Real-time clock |
| 72 | + - Fan with PWM speed control |
| 73 | + - 4x USB ports |
| 74 | + - 2x 4-lane MIPI CSI/DSI |
| 75 | + - 1x HDMI |
| 76 | + |
| 77 | +.. warning:: |
| 78 | + |
| 79 | + This board currently only supports a basic implementation of NuttX with |
| 80 | + only UART console as a supported peripheral. Please see the contributing |
| 81 | + documentation if you would like to help contribute to the support. |
| 82 | + |
| 83 | +Serial console |
| 84 | +============== |
| 85 | + |
| 86 | +The serial console is provided on UART-MAIN1, which is available on the 40-pin |
| 87 | +HAT: |
| 88 | + |
| 89 | +- **UART-MAIN1 TX:** GPIO-14 |
| 90 | +- **UART-MAIN1 RX:** GPIO-15 |
| 91 | + |
| 92 | +Installation |
| 93 | +============ |
| 94 | + |
| 95 | +The :code:`arm‑none‑eabi‑gcc` toolchain can compile NuttX for R5F cores. |
| 96 | +You can obtain a compatible toolchain for your operating system directly from |
| 97 | +the official ARM website. |
| 98 | + |
| 99 | +If you’re running a Debian‑based Linux distribution, you can also install the |
| 100 | +toolchain via your package manager: |
| 101 | + |
| 102 | +.. code:: console |
| 103 | +
|
| 104 | + $ sudo apt-get update |
| 105 | + $ sudo apt-get -y install gcc-arm-none-eabi |
| 106 | +
|
| 107 | +Flashing |
| 108 | +======== |
| 109 | + |
| 110 | +The board does not provide flash storage for the R5F firmware, so NuttX must be |
| 111 | +loaded onto the R5F cores through the RemoteProc framework from either U‑Boot or |
| 112 | +Linux. While the A53 cores run Linux, the R5F cores execute the NuttX operating |
| 113 | +system. |
| 114 | + |
| 115 | +To load code onto the R5F cores, place the compiled binaries in the |
| 116 | +:code:`/lib/firmware` directory, using the filenames expected by RemoteProc. |
| 117 | +During boot, RemoteProc will automatically detect these files and launch the |
| 118 | +corresponding programs on the appropriate cores. |
| 119 | + |
| 120 | +Follow the steps below to start NuttX on the main‑domain R5F core via RemoteProc. |
| 121 | + |
| 122 | +#. Copy the :code:`nuttx` file resulting from the compilation to the |
| 123 | + :code:`/lib/firmware` directory with the name :code:`j722s-main-r5f0_0-fw`. |
| 124 | + |
| 125 | +#. Reboot the board. |
| 126 | + |
| 127 | +#. You can access NuttShell by connecting a USB-to-TTL device to the |
| 128 | + UART-MAIN1's TX (GPIO-14) and RX (GPIO-15) pins on the 40-pin HAT. |
| 129 | + |
| 130 | +.. code-block:: console |
| 131 | +
|
| 132 | + $ picocom -b 115200 /dev/ttyACM0 |
| 133 | + NuttShell (NSH) NuttX-12.11.0 |
| 134 | + nsh> cat proc/version |
| 135 | + NuttX version 12.11.0 8bdbb8c7d5-dirty Oct 22 2025 14:15:42 t3-gem-o1:nsh |
| 136 | + nsh> |
| 137 | +
|
| 138 | +Configurations |
| 139 | +============== |
| 140 | + |
| 141 | +All of the configurations that can be used with :code:`t3-gem-o1` board name are |
| 142 | +listed below. For example you can select :code:`nsh` configuration with the |
| 143 | +following command: |
| 144 | + |
| 145 | +.. code:: console |
| 146 | +
|
| 147 | + $ ./tools/configure.sh t3-gem-o1:nsh |
| 148 | +
|
| 149 | +nsh |
| 150 | +--- |
| 151 | + |
| 152 | +Configures the NuttShell (nsh) located at examples/nsh. |
| 153 | +This configuration enables a serial console on UART-MAIN1. |
0 commit comments