--- pageClass: is-wide-page --- # GpioConfig (UORB message) GPIO configuration. **TOPICS:** gpio_config ## Fields | Name | Type | Unit [Frame] | Range/Enum | Description | | --------- | -------- | ------------ | ---------- | -------------------------------------- | | timestamp | `uint64` | | | time since system start (microseconds) | | device_id | `uint32` | | | Device id | | mask | `uint32` | | | Pin mask | | state | `uint32` | | | Initial pin output state | | config | `uint32` | | | ## Constants | Name | Type | Value | Description | | ------------------------------------------------------------- | -------- | ----- | ----------- | | INPUT | `uint32` | 0 | 0x0000 | | OUTPUT | `uint32` | 1 | 0x0001 | | PULLUP | `uint32` | 16 | 0x0010 | | PULLDOWN | `uint32` | 32 | 0x0020 | | OPENDRAIN | `uint32` | 256 | 0x0100 | | INPUT_FLOATING | `uint32` | 0 | 0x0000 | | INPUT_PULLUP | `uint32` | 16 | 0x0010 | | INPUT_PULLDOWN | `uint32` | 32 | 0x0020 | | OUTPUT_PUSHPULL | `uint32` | 0 | 0x0000 | | OUTPUT_OPENDRAIN | `uint32` | 256 | 0x0100 | | OUTPUT_OPENDRAIN_PULLUP | `uint32` | 272 | 0x0110 | ## Source Message [Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/GpioConfig.msg) ::: details Click here to see original file ```c # GPIO configuration uint64 timestamp # time since system start (microseconds) uint32 device_id # Device id uint32 mask # Pin mask uint32 state # Initial pin output state # Configuration Mask # Bit 0-3: Direction: 0=Input, 1=Output # Bit 4-7: Input Config: 0=Floating, 1=PullUp, 2=PullDown # Bit 8-12: Output Config: 0=PushPull, 1=OpenDrain # Bit 13-31: Reserved uint32 INPUT = 0 # 0x0000 uint32 OUTPUT = 1 # 0x0001 uint32 PULLUP = 16 # 0x0010 uint32 PULLDOWN = 32 # 0x0020 uint32 OPENDRAIN = 256 # 0x0100 uint32 INPUT_FLOATING = 0 # 0x0000 uint32 INPUT_PULLUP = 16 # 0x0010 uint32 INPUT_PULLDOWN = 32 # 0x0020 uint32 OUTPUT_PUSHPULL = 0 # 0x0000 uint32 OUTPUT_OPENDRAIN = 256 # 0x0100 uint32 OUTPUT_OPENDRAIN_PULLUP = 272 # 0x0110 uint32 config ``` :::