Table of Contents

VIM3/3L GPIO Header

Reference table

Linux

5.15

GPIO num Name Pin Pin Name GPIO num
5V 1 21 GND
5V 2 22 PIN.A15 491
USB_DM 3 23 PIN.A14 490
USB_DP 4 24 GND
GND 5 25 PIN.AO2 414
MCU3V3 6 26 PIN.AO3 415
MCUNRST 7 27 3V3
MCUSWIM 8 28 GND
GND 9 29 PIN.A1 477
ADC0 10 30 PIN.A0 476
1V8 11 31 PIN.A3 479
ADC1 12 32 PIN.A2 478
422 PIN.AO10 13 33 PIN.A4 480
GND 14 34 GND
449 PIN.H6 15 35 PWM-F 448
450 PIN.H7 16 36 RTC
GND 17 37 PIN.H4 431
UART_RX / PIN.AO1 18 38 MCU-FA1
UART_TX / PIN.AO0 19 39 PIN.Z15 442
3V3 20 40 GND

4.9

GPIO num Name Pin Pin Name GPIO num
5V 1 21 GND
5V 2 22 PIN.A15 475
USB_DM 3 23 PIN.A14 474
USB_DP 4 24 GND
GND 5 25 PIN.AO2 498
MCU3V3 6 26 PIN.AO3 499
MCUNRST 7 27 3V3
MCUSWIM 8 28 GND
GND 9 29 PIN.A1 461
ADC0 10 30 PIN.A0 460
1V8 11 31 PIN.A3 463
ADC1 12 32 PIN.A2 462
506 PIN.AO10 13 33 PIN.A4 464
GND 14 34 GND
433 PIN.H6 15 35 PWM-F 432
434 PIN.H7 16 36 RTC
GND 17 37 PIN.H4 431
UART_RX / PIN.AO1 18 38 MCU-FA1
UART_TX / PIN.AO0 19 39 PIN.Z15 426
3V3 20 40 GND

Android

GPIO num Name Pin Pin Name GPIO num
5V 1 21 GND
5V 2 22 I2C0_SCK
USB_DM 3 23 I2C0_SDA
USB_DP 4 24 GND
GND 5 25 I2C1_SCK
MCU3V3 6 26 I2C1_SDA
MCUNRST 7 27 3V3
MCUSWIM 8 28 GND
GND 9 29 I2S_SCLK
ADC0 10 30 I2S_MCLK
1V8 11 31 I2S_SDO
ADC1 12 32 I2S_LRCK
SPDIF 13 33 I2S_SDI
GND 14 34 GND
UART0_RX 15 35 PWM-F
UART0_TX 16 36 RTC_CLK
GND 17 37 PIN.H4 431
UART1_RX 18 38 MCU-FA1
UART1_TX 19 39 PIN.Z15 426
3V3 20 40 GND

Get GPIO number

If the GPIO number above changed, you can also follow the documentation to get the gpio number.

GPIO usage examples

Please make sure that the GPIOs you want to use are not configured as other functions, if they are, you can follow Device Tree Overlay to configure them as normal GPIOs.

When you get the GPIO number, you can follow the steps below to control it. Here we take GPIO number 465 as an example.

Export GPIO

$ echo 465 | sudo tee /sys/class/gpio/export

Set-up GPIO direction

We can configure direction as input or output.

$ echo out | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO output
$ echo in  | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO input

Set GPIO value

$ echo 1 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output high
$ echo 0 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output low

Get GPIO value

$ cat /sys/class/gpio/gpio465/value # Get GPIO input value

Unexport GPIO

$ echo 465 | sudo tee /sys/class/gpio/unexport

Troubleshooting

If you got the similar error below, it means that the PIN you try to export is used for another function, you need to edit Device Tree Overlay configuration file to set the PIN as normal GPIO.

$ echo 465 | sudo tee /sys/class/gpio/export 
tee: /sys/class/gpio/export: Invalid argument
2022/06/30 00:01 · nick