🛠 GPIO and I2C Control on PICO-PTH4

AAEON PICO-PTH4: Pico-ITX Board with Intel Panther Lake SoC · avance · Configurez les entrées-sorties GPIO et le bus I2C de la PICO-PTH4 pour interfacer des capteurs ou afficheurs via les connecteurs internes.

Objectifs

This advanced tutorial aims to exploit the embedded communication interfaces of the AAEON PICO-PTH4 card. Unlike consumer development boards, the PICO-PTH4 is an industrial Pico-ITX module. The goal is to access internal connectors to read a sensor via the I2C/SMBus bus and control a peripheral via GPIO lines, using the standard Linux operating system underlying the Intel Panther Lake SoC.

Required Hardware

Steps

  1. Hardware Preparation: Power off the card. Identify the internal connector dedicated to I/O. On the PICO-PTH4, GPIO lines and the SMBus/I2C bus are exposed on dedicated pin headers or connectors. Ensure the logic voltage of external components matches the levels supported by the Panther Lake SoC (typically 1.8V or 3.3V, check the datasheet).
  1. BIOS Interface Activation: Boot the card and access the BIOS/UEFI. Navigate to advanced chipset settings. Enable the I2C controller and GPIO features if they are disabled by default for industrial security reasons.
  1. Software Configuration (Linux): Once in Linux, verify bus detection. Use the following command to list available I2C adapters:
ls /dev/i2c-*

If no devices appear, load the appropriate kernel modules for the I2C controller integrated into the Intel Panther Lake SoC.

  1. Tool Installation: Install the utilities needed to interact with physical buses:
sudo apt update
sudo apt install i2c-tools gpiod
  1. I2C Sensor Reading: Connect the sensor. Scan the bus to find the device address (replace 0 with the detected adapter):
sudo i2cdetect -y 0

Once the address is identified (e.g., 0x76), you can read registers via i2cget or use a Python library like smbus2 for more robust integration.

  1. GPIO Control: For GPIOs, identify available lines via:
gpiodetect

Use gpioget to read state or gpioset to change the state of a specific line, respecting the pin multiplexing configuration defined in the BIOS.

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials