Table of Contents

VIM 5 GPIO Header

Universal GPIO 40 pins board header, used for communication between board and different external devices.

Reference table

Current GPIO numbers valid for vendor kernel only. Mainline linux kernel GPIO numbers will be different…

Linux

GPIO num Name Pin Pin Name GPIO num
5V 1 21 GND
5V 2 22 PIN.A15 591
HUB_DN 3 23 PIN.A14 590
HUB_DP 4 24 GND
GND 5 25 PIN.M1 555
MCU3.3 6 26 PIN.M0 554
MCUNRST 7 27 3.3V
MCUSWIM 8 28 GND
GND 9 29 PIN.A1 577
ADC0 10 30 PIN.A0 576
1.8V 11 31 PIN.A3 579
ADC1 12 32 PIN.A2 578
641 PIN.D13 13 33 PIN.A4 580
GND 14 34 GND
637 PIN.D9 15 35 PIN.Y5 601
636 PIN.D8 16 36 PIN.M2 556
GND 17 37 PIN.M3 557
UART_RX / PIN.D1 18 38 PWR_HOLD
UART_TX / PIN.D0 19 39 PIN.D5 633
3V3 20 40 GND

Android

TODO

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