Board specific definitions and implementations. More...

Detailed Description

Board specific definitions and implementations.

The boards module contains all definitions and implementations that are specific to a certain board. Generally, boards consist of a fixed configuration of a controller and some external devices such as sensors or radios. All aspects concerning configuration of GPIO pins, MCU clock and device drivers should go into this module.

Guide to board pinouts

The following are the steps to take to locate specific pinouts on boards. This is useful when connecting external hardware to RIOT supported boards.

  1. Check the board documentation to see if the pinout is available
  2. If the pinout is not available or up to date check the following:
    • boards/<BOARD>/include/periph_conf.h for board specific peripherals such as UART or SPI pins
    • boards/<BOARD>/include/board.h for GPIO specific pins such as LED0 or BTN0
    • boards/common/<COMMON_BOARD_OR_CPU>/include/periph_conf_common.h for shared pins that are the same for many different boards (board_common.h or others will be available too)
    • boards/common/<COMMON_BOARD_OR_CPU>/include/<PERIPH_DECLARATION> also may contain specific periphirals such as PERIPH_DECLARATION = cfg_i2c1_pb8_pb9.h which indicates I2C pins are on pb8 and pb9
  3. Once the needed pins are determined with either a port where PORTA = PORT_A = PA = 0 or PORTB = PORT_B = PB = 1 and pin number, such as PA, 1, correlate that to the board (the board may either have the designators or search online to find which GPIO corresponds to physical location on the board)
  4. Match the GPIO with the specific pin and connect the wires

Examples of finding pinouts

The following will be different examples of how to find pinouts

Finding pins of the I2C device 0 on samr21-xpro

  1. The documentation says I2C is supported but does not say the pinout
  2. Checking the pinout in boards/samr21-xpro/include/periph_conf.h the scl_pin = GPIO_PIN(PA, 17) and the sda_pin = GPIO_PIN(PA, 16)
  3. Since the board has the GPIO port and pin printed on the board the physical location is PA16 and PA17

Finding pins of the UART device 1 on nucleo-f103rb

The dev number is only the location in the array and does not mean the number of the peripheral

  1. The documentation says UART is supported but does not say the pinout
  2. Checking the pinout in boards/nucleo-f103rb/include/periph_conf.h the rx_pin = GPIO_PIN(PORT_A, 10), the tx_pin = GPIO_PIN(PORT_A, 9) and the dev = USART1, though device 1 can equal any USARTn number
  3. Since the board does not have information on where these pins are physically located it is recommended to search online for that board
  4. After locating the physical layout the rx_pin can be found on CN9-1 using either PA_10 or UART1_RX and the tx_pin can be found on CN5-1 using either PA_9 or UART1_TX, it is recommended to use the GPIO pin as sometimes the peripheral may be using an alternate pin


 Support for the aconno™ ACD52832.
 ATmega common
 Shared files and configuration for ATmega-based boards.
 Adafruit Clue
 Support for the Adafruit Clue.
 Adafruit Feather M0
 Support for the Adafruit Feather M0.
 Adafruit Feather nRF52840 Express
 Support for the Adafruit Feather nRF52840 Express.
 Airfy Beacon
 Support for the Airfy Beacon board.
 Arduino Due
 Support for the Arduino Due board.
 Arduino Duemilanove
 Support for the Arduino Duemilanove board.
 Arduino Leonardo
 Support for the Arduino Leonardo board.
 Arduino MKR WAN 1300
 Support for the Arduino MKR WAN 1300 board.
 Arduino MKR1000
 Support for the Arduino MKR1000 board.
 Arduino MKRFOX1200
 Support for the Arduino MKRFOX1200 board.
 Arduino MKRZERO
 Support for the Arduino MKRZERO board.
 Arduino Mega 2560
 Support for the Arduino Mega 2560 board.
 Arduino Nano
 Support for the Arduino Nano board.
 Arduino Nano 33 BLE
 Support for the Arduino Nano 33 BLE.
 Arduino Uno
 Support for the Arduino Uno board.
 Arduino Zero
 Support for the Arduino Zero board.
 Atmega256RFR2 Xplained Pro
 Support for the Atmega256RFR2 Xplained Pro board.
 Atmega256RFR2 rss2
 Support for the Radio Sensors Atmega256RFR2 rss2 board.
 Atmel SAM D21 Xplained Pro
 Support for the Atmel SAM D21 Xplained Pro board.
 Atmel SAM L21 Xplained Pro
 Support for the Atmel SAM L21 Xplained Pro board.
 Atmel SAM R21 Xplained Pro
 Support for the Atmel SAM R21 Xplained Pro board.
 Atmel SAM R30 Xplained Pro
 Support for the Atmel SAM R30 Xplained Pro board.
 Support for the Avsextrem board.
 BBC micro:bit
 Support for the BBC micro:bit.
 Blackpill board
 Support for the stm32f103c8 based blackpill board.
 Blackpill board (128KiB flash hack version)
 Support for the stm32f103c8 based blackpill board.
 Bluepill board
 Support for the stm32f103c8 based bluepill board.
 Bluepill board (128KiB flash hack version)
 Support for the stm32f103c8 based bluepill board.
 Support for the Texas Instruments CC2538DK board.
 Support for the SimpleLink™ CC2650 sensor tag.
 Calliope mini
 Support for the Calliope mini.
 Support for the chronos board.
 Common Board Groups
 Common definitions and implementations for board groups.
 Decawave DWM1001
 Support for the Decawave DWM1001 development board.
 Digilent PIC32 WiFire
 Support for the Digilent PIC32 WiFire.
 Dragino LSN50 LoRa Sensor Node
 Support for the Dragino LSN50 LoRa Sensor Node.
 Support for the Stellaris Launchpad LM4F120 board.
 ESP32 Boards
 This group of boards contains the documentation defined ESP32 boards.
 ESP8266 Boards
 This group of boards contains the documentation defined ESP8266 boards.
 Eistec Mulle
 Support for Eistec Mulle IoT boards.
 Support for the F4VI1 board.
 Firefly Board
 Support for the Firefly board.
 Freescale FRDM-KW41Z Board
 Support for the FRDM-KW41Z.
 HamiltonIoT Hamilton
 Support for the HamiltonIoT Hamilton board.
 Support for the IKEA TRÅDFRI modules.
 IoT-LAB A8 M3 open node
 Support for iotlab-m3 board.
 IoT-LAB M3 open node
 Support for the iotlab-m3 board.
 LimiFrog Version 1
 Support for the limifrog-v1 board.
 Lobaro Lorabox
 Support for the Lobaro LoraBox with stm32l151cb-a.
 MCB2388 Evaluation Board
 Support for the MCB2388 Evaluation Board.
 Support for the ScatterWeb MSB-430 board.
 Support for the ScatterWeb MSB-430H board.
 Support for the ScatterWeb MSB-A2 board.
 Support for the MSB-IoT board.
 Support for the Mega1284P-Xplained board.
 Microchip SAM E54 Xplained Pro
 Support for the Microchip SAM E54 Xplained Pro board.
 Microchip SAM R34 Xplained Pro
 Support for the Microchip SAM R34 Xplained Pro board.
 Microchip SAML10 Xplained Pro
 Support for the Microchip SAML10 Xplained Pro board.
 Microchip SAML11 Xplained Pro
 Support for the Microchip SAML11 Xplained Pro board.
 Microchip SAML1X
 Support for SAML10 and SAML11 boards.
 Microduino CoreRF
 Support for the Microduino CoreRF board.
 MikroE 6LoWPAN Clicker
 Support for the MikroE 6LoWPAN Clicker.
 NRF6310 (Nordic NRF Hardware Development Kit)
 Support for the nRF51 boards: nrf6310 or MOMMOSOFT BLE DEVKIT.N.
 NXP FRDM-K22F Board
 Support for the NXP FRDM-K22F.
 NXP FRDM-K64F Board
 Support for the NXP FRDM-K64F.
 NXP USB-KW41Z Board
 Support for the USB-KW41Z.
 Support for the Modtronix nz32-sc151 board.
 Native Board
 Support for running RIOT in native.
 Nordic Thingy:52
 Support for the Nordic Thingy:52 board.
 Support for the OpenCM9.04 board.
 Support for the OpenMote-b board.
 Support for the OpenMote-cc2538 board.
 Particle Argon
 Support for the Particle Argon.
 Particle Boron
 Support for the Particle Boron.
 Particle Mesh common
 Common support for the Particle Mesh boards family (Xenon, Argon, Boron)
 Particle Xenon
 Support for the Particle Xenon.
 Support for the Phytec PhyNODE KW41Z Board.
 Phytec reel board
 Support for the PHYTEC 'reel board'.
 Support for the Pinetime.
 RE-Mote Prototype A
 Support for the RE-Mote board prototype A.
 RE-Mote Revision A
 Support for the RE-Mote board Revision A.
 RE-Mote Revision B
 Support for the RE-Mote board Revision B.
 Support for the RuuviTag board.
 SODAQ Autonomo
 Support for the SODAQ Autonomo board.
 Support for the SODAQ ExpLoRer board.
 Support for the SODAQ ONE board.
 Support for the SODAQ SARA AFF boards.
 Support for the SODAQ SARA SFF boards.
 ST B-L072Z-LRWAN1 LoRa discovery
 Support for the ST B-L072Z-LRWAN1 board.
 ST B-L475E-IOT01A
 Support for the ST B-L475E-IOT01A board.
 Support for the ST I-NUCLEO-LRWAN1 LoRa board shield.
 ST P-L496G-CELL02
 Support for the ST P-L496G-CELL02 board.
 STM32 Nucleo-144
 Support for STM32 Nucleo-144 boards.
 STM32 Nucleo-32
 Support for STM32 Nucleo-32 boards.
 STM32 Nucleo-64
 Support for STM32 Nucleo-64 boards.
 STM32 Olimexino-stm32
 Support for the Olimexino STM32 board.
 STM32F030F4 Demo Board
 Support for the STM32F030F4 Demo Board.
 Support for the STM32F0Discovery board.
 Support for the STM32F3Discovery board.
 Support for the STM32F429I-DISC1 board.
 Support for the STM32F429I-DISCO board.
 Support for the STM32F4Discovery board.
 STM32F723E-DISCO board
 Support for the STM32F723E-DISCO board.
 STM32F769I-DISCO board
 Support for the STM32F769I-DISCO board.
 Support for the STM32L0538-DISCO board.
 Support for the STM32L476G-DISCO board.
 Seeeduino Arch Pro development kit
 Support for the Seeeduino Arch Pro board.
 SenseBox MCU with SAMD21
 Support for the SenseBox MCU with SAMD21 board.
 Serpente R2
 Support for the Serpente board.
 SiFive HiFive1 RISC-V board
 Support for the SiFive HiFive1 RISC-V board.
 SiFive HiFive1b RISC-V board
 Support for the SiFive HiFive1b RISC-V board.
 Silicon Labs SLSTK3401A starter kit
 Support for Silicon Labs SLSTK3401A starter kit.
 Silicon Labs SLSTK3402A starter kit
 Support for Silicon Labs SLSTK3402A starter kit.
 Silicon Labs SLTB001A starter kit
 Support for Silicon Labs SLTB001A starter kit.
 Silicon Labs SLWSTK6000B starter kit
 Support for the Silicon Labs SLWSTK6000B starter kit.
 Silicon Labs STK3600 starter kit
 Support for Silicon Labs STK3600 starter kit.
 Silicon Labs STK3700 starter kit
 Support for Silicon Labs STK3700 starter kit.
 Silicon Labs WSTK6220 Eval Kit
 Support for the Silicon Labs WSTK6220 evaluation kit.
 Support for the spark-core board.
 Standalone ATmega1284P
 Support for using the ATmega1284P as standalone board.
 Standalone ATmega328p
 Support for using the ATmega328p as standalone board.
 TI CC1312 LaunchPad
 Texas Instruments SimpleLink(TM) CC1312 Wireless MCU LaunchPad(TM) Kit.
 TI CC1352 LaunchPad
 Texas Instruments SimpleLink(TM) CC1352 Wireless MCU LaunchPad(TM) Kit.
 TI CC1352P LaunchPad
 Texas Instruments SimpleLink(TM) CC1352P Wireless MCU LaunchPad(TM) Kit.
 TI CC2650 LaunchPad XL
 Texas Instruments SimpleLink(TM) CC2650 Wireless MCU LaunchPad(TM) Kit.
 Teensy3.1 & 3.2
 Support for the Teensy3.1 & 3.2.
 Support for the TelosB board.
 Support for the UDOO board.
 Ublox C030-U201
 Support for the Ublox C030-U201 board.
 Waspmote PRO v1.2
 Support for the Waspmote PRO v1.2 board.
 WeAct-F411CE board
 Support for the WeAct-F411CE Board.
 WeMos Arduino Zero Clone
 Support for the WeMos Arduino Zero Clone board.
 Yunjia NRF51822
 Support for the Yunjia NRF51822 board.
 Zolertia Z1
 Support for the Zolertia Z1 board.
 deRFmega128 modules from Dresden Elektronik
 Support for deRFmega128 modules produced by Dresden Elektronik.
 deRFmega256 modules from Dresden Elektronik
 Support for deRFmega256 modules produced by Dresden Elektronik.
 Support for the fox board.
 Support for the im880b with stm32l151cb-a.
 Support for the maple-mini board.
 mbed LPC1768 development kit
 Support for the mbed LPC1768 board.
 nRF51 Dongle
 Support for the Nordic nRF51 Dongle.
 nRF51DK Development Kit
 Support for the Nordic nRF51DK Development Kit.
 nRF52 DK
 Support for the nRF52 DK.
 Support for the nRF52832-MDK.
 nRF52840 DK
 Support for the nRF52840 DK.
 Support for the nRF52840-Dongle.
 Support for the nRF52840-MDK. kw41z-mini board
 Support for openlabs-kw41z-mini. kw41z-mini-256kib board
 Support for openlabs-kw41z-mini (256kib Version)
 phyWAVE-KW22 Board
 Support for the phyWAVE evaluation board.
 Support for the pyboard.