Skip to main content

Interfaces Usage

Introduction

reComputer J401 carrier board supports NVIDIA Jetson Orin Nano/NX(Orin Nano 4GB/Orin Nano 8GB, Orin NX 8GB/Orin NX 16GB) bringing exceptional performance and being engineered to tackle tough edge computing tasks with ease. It's the perfect choice for developing industrial automation systems, building powerful AI applications, and more.

It features networking capability that is equipped with a Gigabit Ethernet port for fast networking. It also comes with four USB 3.2 Type-A (10Gbps) ports, one USB 2.0 Type-C port, and one CAN connector for versatile connectivity options.This extension board has been mounted with one M.2 Key M 2280 and one M.2 Key E slot for ample space for flexible storage and wireless connectivity expansion.

In addition, there are multiple peripherals supported on the board. It can enable users to capture and display high-quality video content with two 15-pin CSI camera connectors and the HDMI 2.1 port. There also includes a FAN connec260 Pin SODIMMtor for cooling purposes and one RTC socket for reliable timekeeping.

The board supports a wide input range of 9-19V DC, making it flexible to integrate into a variety of computing tasks. It maintains operation in the temperature range from -10°C to 60°C.

260 Pin SODIMM

The main function of 260 pin SODIMM is to connect your carrier board with NVIDIA Jetson Orin Nano 4GB/NVIDIA Jetson Orin Nano 8GB, NVIDIA Jetson Orin NX 8GB/NVIDIA Jetson Orin NX 16GB.

Connection Overview

note

If the connection is correct, when you connect your power adapter, you will see the power indicator light up.

M.2 Key M

M.2 Key M is a specification for the physical and electrical layout of an M.2 connector that supports high-speed data transfer using the PCIe (Peripheral Component Interconnect Express) interface. M.2 Key M connectors are commonly used for connecting solid-state drives (SSDs) and other high-performance expansion cards to a motherboard or other host device. The "Key M" designation refers to the specific pin configuration and keying of the M.2 connector, which determines the type of devices that can be connected to it.

Supported SSD are as follows:

Connection Overview

If you want to remove the included SSD and install a new one, you can follow the steps below.

Usage

We will explain how to do a simple benchmark on the connected SSD.

  • Step 1: Check the write speed by executing the below command.
sudo dd if=/dev/zero of=/home/nvidia/test bs=1M count=512 conv=fdatasync
  • Step 2: Check the read speed by executing the below commands. Make sure to execute this after executing the above command for write speed.
sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
sudo dd if=/home/nvidia/test of=/dev/null bs=1M count=512

M.2 Key E

M.2 Key E is a specification for the physical and electrical layout of an M.2 connector that supports wireless communication modules, such as Wi-Fi and Bluetooth cards. The "Key E" designation refers to the specific pin configuration and keying of the M.2 connector, which is optimized for wireless networking devices. M.2 Key E connectors are commonly found on motherboards and other devices that require wireless connectivity options.Here we recommand Intel wifi/blue tooth module.

Connection Overview

Usage

After installing wifi/bluetooth, you can see the wifi/bluetooth icon in the top right corner.

Wifi test

ifconfig

Bluetooth test

bluetoothctl
power on #open bluetooth
agent on #registe agent
scan on #search other bluetooths
connect xx:xx:xx:xx #connect target bluetooth
paired-devices #show all paired devices

CSI Cameras

CSI stands for Camera Serial Interface. It is a specification that describes a serial communication interface for transferring video data from image sensors to a host processor. CSI is commonly used in mobile devices, cameras, and embedded systems to enable high-speed and efficient transfer of image and video data for processing and analysis.

Supported cameras are as follows:

Connection Overview

Here the 2 CSI camera connectors are marked as CAM0 and CAM1. You can either connect one camera to any connector out of the 2 or connect 2 cameras to both the connectors at the same time.

Usage

Open your terminal(Ctrl+Alt+T) and input command like below:

sudo /opt/nvidia/jetson-io/jetson-io.py

For CAM0 port

nvgstcapture-1.0 sensor-id=0 

For CAM1 port

nvgstcapture-1.0 sensor-id=1  
note

If you want to change further settings of the camera, you can type "nvgstcapture-1.0 --help" to access all the configurable options available.

RTC

RTC stands for Real-Time Clock. It is a clock that keeps track of the current time and date independently of the main system clock. RTCs are commonly used in computers, embedded systems, and other electronic devices to maintain accurate timekeeping even when the device is powered off. They are often powered by a small battery to ensure continuous operation and retain time and date information during power cycles.

Connection Overview

Connect a 3V CR1220 coin cell battery to the RTC socket on the board as shown below. Make sure the positive (+) end of the battery is facing upwards.

Usage

  • Step 1: Connect an RTC battery as mentioned above.

  • Step 2: Turn on reComputer Industrial.

  • Step 3: On the Ubuntu Desktop, click the drop-down menu at the top right corner, navigate to Settings > Date & Time, connect to a network via an Ethernet cable and select Automatic Date & Time to obtain the date/ time automatically.

note

If you have not connected to internet via Ethernet, you can manually set the date/time here.

  • Step 4: Open a terminal window, and execute the below command to check the hardware clock time.
sudo hwclock

You will see the output something like below which is not the correct date/time.

  • Step 5: Change the hardware clock time to the current system clock time by entering the below command.
sudo hwclock --systohc
  • Step 6: Remove any Ethernet cables connected to make sure it will not grab the time from the internet and reboot the board.
sudo reboot
  • Step 7: Check hardware clock time to verify that the date/ time stays the same eventhough the device was powered off.

  • Step 8: Create a new shell script using any text editor of your preference. Here we use vi text editor.

sudo vi /usr/bin/hwtosys.sh 
  • Step 9: Enter insert mode by pressing i, copy and paste the following content inside the file.
#!/bin/bash

sudo hwclock --hctosys
  • Step 10: Make the script executable.
sudo chmod +x /usr/bin/hwtosys.sh 
  • Step 11: Create a systemd file.
sudo nano /lib/systemd/system/hwtosys.service 
  • Step 12: Add the following inside the file.
[Unit]
Description=Change system clock from hardware clock

[Service]
ExecStart=/usr/bin/hwtosys.sh

[Install]
WantedBy=multi-user.target
  • Step 13: Reload systemctl daemon.
sudo systemctl daemon-reload 
  • Step 14: Enable the newly created service to start on boot and start the service.
sudo systemctl enable hwtosys.service
sudo systemctl start hwtosys.service
  • Step 15: Verify the script is up and running as a systemd service.
sudo systemctl status hwtosys.service
  • Step 16: Reboot the board and you will the system clock is now in sync with the hardware clock.

Fan control

nvfancontrol is a userspace fan speed control daemon. This manages the fan speed based on the temperature-to-fan-speed mapping table in the nvfancontrol configuration file.

There are some basic elements in the nvfancontrol service, including Tmargin, kickstart PWM, fan profile, fan control, and fan governor. All of these can be programmed via the configuration file based on the user’s preferences. This chapter will explain each of them in the following sections.

note

If you want to change nvfancontrol.conf make sure you have read it

Usage

  • Step 1: Stop the nvfancontrol systemd service.
sudo systemctl stop nvfancontrol
  • Step 2: Change nvfancontrol.conf.
vi /etc/nvfancontrol.conf 
note

After you change nvfancontrol.conf, print Ese and :q to quit

  • Step 3: Remove the status file.
sudo rm /var/lib/nvfancontrol/status
  • Step 4: Restart nvfancontrol systemd service.
sudo systemctl restart nvfancontrol

GPIO

The detail of 40-pin header is shown below:

Header PinModule Pin NameModule PinSoC Pin nameDefault UsageAlternate Functionality
1---Main 3.3V Supply-
2---Main 5.0V Supply-
3I2C1_SDA191DP_AUX_CH3_NI2C #1 Data-
4---Main 5.0V Supply-
5I2C1_SCL189DP_AUX_CH3_PI2C #1 Clock-
6---Ground-
7GPIO09211AUD_MCLKGPIOAudio Master Clock
8UART1_TXD203UART1_TXUART #1 TransmitGPIO
9---Ground-
10UART1_RXD205UART1_RXUART #1 ReceiveGPIO
11UART1_RTS*207UART1_RTSGPIOUART #2 Request to Send
12I2S0_SCLK199DAP5_SCLKGPIOAudio I2S #0 Clock
13SPI1_SCK106SPI3_SCKGPIOSPI #1 Shift Clock
14---Ground-
15GPIO12218TOUCH_CLKGPIO-
16SPI1_CSI1*112SPI3_CS1GPIOSPI #1 Chip Select #1
17---GPIO-
18SPI1_CSI0*110SPI3_CS0GPIOSPI #0 Chip Select #0
19SPI0_MOSI89SPI1_MOSIGPIOSPI #0 Master Out/Slave In
20---Ground-
21SPI0_MISO93SPI1_MISOGPIOSPI #0 Master In/Slave Out
22SPI1_MISO108SPI3_MISOGPIOSPI #1 Master In/Slave Out
23SPI0_SCK91SPI1_SCKGPIOSPI #0 Shift Clock
24SPI0_CS0*95SPI1_CS0GPIOSPI #0 Chip Select #0
25---Ground-
26SPI0_CS1*97SPI1_CS1GPIOSPI #0 Chip Select #1
27I2C0_SDA187GEN2_I2C_SDAI2C #0 DataGPIO
28I2C0_SCL185GEN2_I2C_SCLI2C #0 ClockGPIO
29GPIO01118SOC_GPIO41GPIOGeneral Purpose Clock #0
30---Ground-
31GPIO11216SOC_GPIO42GPIOGeneral Purpose Clock #1
32GPIO07206SOC_GPIO44GPIOPWM
33GPIO13228SOC_GPIO54GPIOPWM
34---Ground-
35I2S0_FS197DAP5_FSGPIOAudio I2S #0 Field Select
36UART1_CTS*209UART1_CTSGPIOUART #1 Clear to Send
37SPI1_MOSI104SPI3_MOSIGPIOSPI #1 Master Out/Slave In
38I2S0_DIN195DAP5_DINGPIOAudio I2S #0 Data in
39---Ground-
40I2S0_DOUT193DAP5_DOUTGPIOAudio I2S #0 Data Out

UART

UART stands for Universal Asynchronous Receiver/Transmitter. It is a communication protocol used for serial communication between two devices. UART communication involves two pins: one for transmitting data (TX) and one for receiving data (RX). It is asynchronous, meaning that data is transmitted without a shared clock signal between the devices. UART is commonly used in various applications such as microcontrollers, sensors, and communication between different electronic devices.

Connection Overview

The UART interface is using the pin below, or you can use another UART interface on J401:

Header PinModule Pin NameModule PinSoC Pin nameDefault UsageAlternate Funcationality
6---Ground-
8UART1_TXD203UART1_TXUART #1 TransmitGPIO
10UART1_RXD205UART1_RXUART #1 ReceiveGPIO
Connect the J401 with TTL with UART as below:
J401 Header Pin UsageUSB translate TTLUsage
6GroundGNDGround
8UART1_TXDU_RXUART_RX
10UART1_RXDU_TXUART_TX

Usage

  • Step 1: Install puTTy on your windows laptop, and set puTTy as below:
  • Step 2: Install PuTTy on Jetson, open your terminal(ALT+Ctrl+T) and type the following command.
sudo apt install putty
  • Step 3: Use PuTTy on Windows send 'hello linux' to Jetson, and use PuTTy on Jetson send 'hello windows' to windwos.
note

Make sure your baudrate have be set 115200.

The result is as below:

I2C

I2C stands for Inter-Integrated Circuit. It is a widely used serial communication protocol that enables communication between multiple integrated circuits in a system. I2C uses two bidirectional lines: one for data (SDA) and one for clock (SCL). Devices connected on an I2C bus can act as either a master or a slave, allowing for multiple devices to communicate with each other. I2C is popular for its simplicity, flexibility, and ability to connect a variety of devices such as sensors, memory chips, and other peripherals in embedded systems and electronic devices.

Connection Overview

The I2C interface is using pin as below, or you can use other I2C interface on J401:

Header PinModule Pin NameModule PinSoC Pin nameDefault UsageAlternate Funcationality
2---Main 5.0V Supply-
3I2C1_SDA191DP_AUX_CH3_NI2C #1 Data-
5I2C1_SCL189DP_AUX_CH3_PI2C #1 Clock-
6---Ground-

Connect the J401 to Grove-3-Axis Digital Accelerometer with I2C as below:

J401UsageGrove-3-Axis Digital AccelerometerUsage
25V supplyVcc-
3I2C1_SDASDAI2C_SDA
5I2C1_SCLSCLI2C_SCL
6GroundGNDGround

Test

Open your terminal(ALT+Ctrl+T) and type the following command:

i2cdetect -y -r 7
note

Your channel may be different from mine in the commmand: i2cdetect -y -r x.

You will see the result as below, before connecting to the I2C, no I2C device was detected on channel 7, but afterwards an I2C device with the address 0x19 was detected.:

info

If you want to use general IO pins for logic control, please refer to this wiki.

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...