Skip to main content

Input/Output (GPIO) on Tachyon

Tachyon provides various IO interfaces, including:

  • 40-pin GPIO header (compatible with Raspberry Pi HATs)
  • Qwiic connector (following SparkFun & Adafruit spec)

40-Pin Header

The 40-pin header follows the Raspberry Pi standard, so most of the HATs designed for RPi should be compatible with Tachyon. We know it`s not perfect, but we want to make sure as many HATs as possible work before the EUFI option to change the pins is made available.

Pin map

In addition to the primary pin functions, Tachyon also supports a host of alternative functions that are unique this platform. These are listed in the table below.

40-Pin Header GPIO Table

PinGPIO No.Alternate Function 1Alternate Function 2Alternate Function 3
1-3.3v OUT--
2-5v IN/OUT--
3GPIO_8I2C02_SDA--
4-5v IN/OUT--
5GPIO_9I2C02_SCL--
6-GND--
7GPIO_61---
8GPIO_34UART10_TXDSPI10_CLK-
9-GND--
10GPIO_35UART10_RXDSPI10_CS0-
11GPIO_33UART10_RTSSPI10_MOSII2C10_SCL
12GPIO_144LPI_MI2S_SCLKSWR_TX_CLK-
13GPIO_44UART13_CTSSPI13_MISOI2C13_SDA
14-GND--
15GPIO_158SWR_TX_DATA2--
16GPIO_165LPI_SPI2_SCLKLPI_UART2_TXD-
17-3.3v OUT--
18GPIO_166LPI_SPI2_CS_0LPI_UART2_RXD-
19GPIO_57SPI16_MOSIUART16_RTSI2C16_SCL
20-GND--
21GPIO_56SPI16_MISOUART16_CTSI2C16_SDA
22GPIO_24---
23GPIO_58SPI16_CLKUART16_TXD-
24GPIO_59SPI16_CS0UART16_RXD-
25-GND--
26GPIO_62SPI16_CS1--
27GPIO_36I2C11_SDASPI11_MISOUART11_CTS
28GPIO_37I2C11_SCLSPI11_MOSIUART11_RTS
29GPIO_18UART04_TXDSPI04_CLK-
30-GND--
31GPIO_19UART04_RXDSPI04_CS0-
32GPIO_78PWM2--
33GPIO_106MI2S1_SCLK--
34-GND--
35GPIO_145LPI_MI2S_WSSWR_TX_DATA0-
36GPIO_32UART10_CTSSPI10_MISOI2C10_SDA
37GPIO_6UART01_TXD--
38GPIO_146LPI_MI2S_DATA0SWR_TX_DATA1-
39GND---
40GPIO_147LPI_MI2S_DATA1SWR_RX_CLK-

Here is the table in graphical format:

Tachyon 40-Pin Header

📢 Note: In the initial release, the IOs are fixed to a typical Raspberry Pi HAT configuration.


Simple GPIO Testing

You can test GPIO functionality via the shell using /usr/bin/gpio.sh, a script put together by Particle to help test.

This script is also called at boot to initialize the GPIO and export them so other apps can use them. Cat this script for more info!

cat /usr/bin/gpio.sh

For example, to toggle GPIO_44 (GPIO27 on Raspberry Pi, pin 13), run:

gpio.sh set 44 out 0

Turns off GPIO 44.

gpio.sh set 44 out 1

Turns on GPIO 44.

I2C

Tachyon provides standard I2C & SPI buses accessible via Linux utilities.

To list all I2C devices, use:

i2cdetect -y -r 1

To read from an I2C device:

i2cdump -y 1 0x27

SPI (Serial Peripheral Interface)

To access SPI devices, download a tool such as spi-tools and run:

spi-tools -d /dev/spidev0.0

Qwiic Connector (a.k.a. STEMMA QT)

We’re big fans of the SparkFun Qwiic ecosystem (also known as Adafruit’s STEMMA QT) here at Particle. It’s a super convenient way to hook up sensors, displays, and other I²C devices without needing to solder or fuss with wiring. Just plug, chain, and go.

This board includes a dedicated Qwiic connector tied to its own I²C interface running at 3.3V.

qwiic

Checkout some examples of using the Qwiic interface on this dedicated page here.

⚠️Power note: The Qwiic port is powered from the same 3.3V regulator that feeds other peripherals on the board. That regulator is rated for 1A total, so we recommend keeping your Qwiic chain’s current draw under ~100mA to leave enough headroom for everything else.