products:flipper:arduino_use_gpio

Using GPIOs in Arduino with flipper board


tags: flipper, Arduino, GPIO

If you need to use a flipper GPIO in Arduino, you need to find the arduino name of the GPIO :

To do so, use following table and check for the arduino name of the GPIO you want to use.
The GPIOs are described in the following spreadsheet file: gpio_flipper.xlsx

Header 1 (J402)
expander pin port pin identifier rôle name in arduino PinMap Pos
1       VIN    
2       GND    
3       VCC    
4       BRD_EN    
5       VCC_SW_EN    
6       3V3_SW_EN    
7 0 11 11 I2C0_SDA PIN_WIRE_SDA 0
8       3V3    
9 0 8 8 I2C0_SCL PIN_WIRE_SCL 1
10 1 8 40 SPI0_MISO PIN_SPI_MISO 2
11 0 6 6 SPI0_MOSI PIN_SPI_MOSI 3
12 0 25 25 SPIO_CS1 SS2 4
13 0 4 4 SPIO_SCLK PIN_SPI_SCK 5
14 0 14 14 UART1_TX PIN_SERIAL2_TX 6
15 0 16 16 UART1_RX PIN_SERIAL2_TX 7
16 0 13 13 UART0_TX PIN_SERIAL1_TX 8
17 0 15 15 UART0_RX PIN_SERIAL1_RX 9
18       EXT_RST    
19       GND    
20       VUSB    
Header 2 (J401)
expander pin port pin identifier rôle   PinMap Pos
21       VBAT    
22       GND    
23       VDD_SW_EN    
24       3V3_SW_EN    
25 1 1 33 user_defined EXP_25 10
26 0 12 12 I2C1_SDA PIN_WIRE1_SDA 11
27 1 11 43 user_defined EXP_27 12
28 1 9 41 I2C1_SCL PIN_WIRE1_SCL 13
29 0 30 30 user_defined/AIN6 EXP_29 14
30 1 13 45 user_defined EXP_30 15
31 0 2 2 user_defined/AIN0 EXP_31 16
32 0 28 28 user_defined/AIN7 EXP_32 17
33 1 10 42 LED_BLUE LED_BLUE 18
34 0 29 29 user_defined/AIN5 EXP_34 19
35 1 7 39 LED_GREEN LED_GREEN 20
36 0 3 3 user_defined/EN_EXP EXP_36 21
37 1 5 37 LED_RED LED_RED 22
38 1 6 38 USER_BTN PIN_BUTTON1 23
39 0 9 9 user_defined EXP_39 24
40 0 10 10 user_defined EXP_40 25
On Board QSPI FLASH
QSPI pin port pin identifier rôle   PinMap Pos
6 0 19 19 FLASH_CLK PIN_QSPI_SCK 26
1 0 17 17 FLASH_CS PIN_QSPI_CS 27
5 0 20 20 FLASH_IO0/FLASH_MOSI PIN_QSPI_IO0 28
2 0 21 21 FLASH_IO1/FLASH_MISO PIN_QSPI_IO1 29
3 0 22 22 FLASH_IO2 PIN_QSPI_IO2 30
7 0 23 23 FLASH_IO3 PIN_QSPI_IO3 31
On Board SD CARD READER
SD pin port pin identifier rôle   PinMap Pos
5 0 7 7 SD_SPI_SCLK PIN_SPI1_SCK 32
2 0 5 5 SD_SPI_CS SS1 33
3 0 27 27 SD_SPI_MOSI PIN_SPI1_MOSI 34
7 0 26 26 SD_SPI_MISO PIN_SPI1_MISO 35
TPS 1 15 47 SD_EN_PIN SDCARD_EN_PIN 36
9 1 14 46 SD_DETECT_PIN SDCARD_DETECT_PIN 37
Xlbee pins
Xlbee pin port pin identifier rôle   PinMap Pos
U302(3) 1 3 35 MCU_XLB_EN XLB_EN 38
5 1 2 34 !XLB_RST! XLB_RST 39
37 0 31 31 SPI0_CS0 SS 40
Analog Pins
Analog pin port pin identifier rôle   PinMap Pos
VBAT_MES 0 24 24 AIN7 PIN_A0 41
Output Voltage Enablers
TPS pin port pin identifier rôle   PinMap Pos
U304(3) 1 12 44 3V3_SW_EN SW_3V3_EN 42
U305(3) 1 4 36 VDD_SW_EN SW_VDD_EN 43

Then you can use it and declare it as an INPUT or an OUTPUT using pinMode() function.

If it is an output you can set its state using digitalWrite() function.

For example we want to activate 3V3_SW, it is a power-rail that is commanded by the GPIO : 3V3_SW_EN.

The corresponding arduino name is : SW_3V3_EN.

In our arduino sketch we can write :

pinMode(SW_3V3_EN, OUTPUT);
digitalWrite(SW_3V3_EN, HIGH);

This will configure SW_3V3_EN as an output and set its state to high=1. So it will activate our power rail 3V3_SW.

  • products/flipper/arduino_use_gpio.txt
  • Last modified: 2021/04/06 08:02
  • by manu