MadMachine SwiftIO Feather

Overview

The SwiftIO Feather board, designed by MadMachine is designed with support for the modern Swift language. Zephyr provides basic low-level capabilities for the SwiftIO Feather board. Swift application would run on top of Zephyr. More information about the board can be found at:

SwiftIO Feather Board

Hardware

  • MIMXRT1062DVL6B MCU (Cortex-M7 at 600MHz, 2048KB on-chip memory)

  • Memory

    • 8MB QSPI Flash

    • 32MB SDRAM

    • TF socket for SD card

  • USB

    • USB-C 2.0 OTG connector

  • Power

    • 5V USB power

    • 4.2V DC jack

  • Debug

    • SWD connector

  • RGB LED

Supported Features

The mm_feather board configuration supports the following hardware features:

Interface

Controller

Driver/Component

NVIC

on-chip

nested vector interrupt controller

SYSTICK

on-chip

systick

DISPLAY

on-chip

display

GPIO

on-chip

gpio

I2C

on-chip

i2c

SPI

on-chip

spi

UART

on-chip

serial port-polling; serial port-interrupt

I2S

on-chip

I2S

USB

on-chip

USB device

Connections and IOs

Note: The following SwiftIO Feather pinout diagram is used for Swift programming. The Swift ID is not the same as the Zephyr driver ID.

Name

GPIO

Other peripherals

Swift ID

Pin name

Swift ID

Zephyr driver

Swift ID

Zephyr driver

P0

GPIO_AD_B1_04

D0

GPIO1_IO20

P1

GPIO_AD_B1_08

D1

GPIO1_IO24

P2

GPIO_AD_B1_09

D2

GPIO1_IO25

P3

GPIO_AD_B1_10

D3

GPIO1_IO26

UART1

UART_8

P4

GPIO_AD_B1_11

D4

GPIO1_IO27

P5

GPIO_AD_B1_12

D5

GPIO1_IO28

P6

GPIO_AD_B1_15

D6

GPIO1_IO31

SPI0

SPI_3

P7

GPIO_AD_B1_14

D7

GPIO1_IO30

P8

GPIO_AD_B1_13

D8

GPIO1_IO29

P9

GPIO_AD_B1_03

D9

GPIO1_IO19

UART0

UART_2

P10

GPIO_AD_B1_02

D10

GPIO1_IO18

P11

GPIO_AD_B1_05

D11

GPIO1_IO21

P12

GPIO_AD_B0_14

D12

GPIO1_IO14

CAN0

CAN_3

P13

GPIO_AD_B0_15

D13

GPIO1_IO15

P14

GPIO_B0_00

D14

GPIO2_IO00

P15

GPIO_B1_03

D15

GPIO2_IO19

P16

GPIO_B1_02

D16

GPIO2_IO18

P17

GPIO_B1_01

D17

GPIO2_IO17

UART2

UART_4

P18

GPIO_B1_00

D18

GPIO2_IO16

P19

GPIO_B1_15

D19

GPIO2_IO31

P20

GPIO_B1_14

D20

GPIO2_IO30

P21

GPIO_B0_03

D21

GPIO2_IO03

SPI1

SPI_4

P22

GPIO_B0_02

D22

GPIO2_IO02

P23

GPIO_B0_01

D23

GPIO2_IO01

P24

GPIO_B0_04

D24

GPIO2_IO04

P25

GPIO_B0_05

D25

GPIO2_IO05

P26

GPIO_B0_06

D26

GPIO2_IO06

P27

GPIO_B0_07

D27

GPIO2_IO07

P28

GPIO_B0_08

D28

GPIO2_IO08

P29

GPIO_B0_09

D29

GPIO2_IO09

P30

GPIO_B0_10

D30

GPIO2_IO10

P31

GPIO_B0_11

D31

GPIO2_IO11

P32

GPIO_B0_12

D32

GPIO2_IO12

P33

GPIO_B0_13

D33

GPIO2_IO13

P34

GPIO_B0_14

D34

GPIO2_IO14

P35

GPIO_B0_15

D35

GPIO2_IO15

GPIO_AD_B1_07

GPIO1_IO23

I2C0

I2C_3

GPIO_AD_B1_06

GPIO1_IO22

GPIO_AD_B1_00

GPIO1_IO16

I2C1

I2C_1

GPIO_AD_B1_00

GPIO1_IO17

Programming and Flash

Build and flash applications as usual (see Building an Application and Run an Application for more details).

Configuring a Console

Connect a USB-to-serial adapter from your PC to corresponding UART pins of SwiftIO Feather.

Use the following settings with your serial terminal of choice (minicom, putty, etc.):

  • Speed: 115200

  • Data: 8 bits

  • Parity: None

  • Stop bits: 1

Flashing

Here is an example for the Hello World application.

Connect a DAPLink debuger from your PC to corresponding SWD pins of SwiftIO Feather.

# From the root of the zephyr repository
west build -b mm_feather samples/hello_world
west flash

Open a serial terminal, reset the board (press the “reset” button), and you should see the following message in the terminal:

*** Booting Zephyr OS build v2.6.0-rc1-301-gd9c666a5abf8  ***
Hello World! mm_feather

Debugging

Here is an example for the Hello World application.

# From the root of the zephyr repository
west build -b mm_feather samples/hello_world
west debug

Open a serial terminal, step through the application in your debugger, and you should see the following message in the terminal:

*** Booting Zephyr OS build v2.6.0-rc1-301-gd9c666a5abf8  ***
Hello World! mm_feather