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:

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 supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

mm_feather/mimxrt1062 target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M7 CPU1

arm,cortex-m7

ADC

on-chip

NXP MCUA 12B1MSPS SAR ADC2

nxp,mcux-12b1msps-sar

ARM architecture

on-chip

MCUX XBAR (Crossbar)3

nxp,mcux-xbar

CAN

on-chip

NXP FlexCAN controller2

nxp,flexcan

on-chip

NXP FlexCAN CANFD controller1

nxp,flexcan-fd

Clock control

on-chip

i.MX CCM (Clock Controller Module) IP node1

nxp,imx-ccm

on-chip

Generic fixed factor clock provider3

fixed-factor-clock

on-chip

i.MX CCM Fractional PLL1

nxp,imx-ccm-fnpll

on-chip

i.MX ANATOP (Analog Clock Controller Module) IP node1

nxp,imx-anatop

on-chip

Generic fixed-rate clock provider4

fixed-clock

Counter

on-chip

NXP MCUX Quad Timer (QTMR)4

nxp,imx-qtmr

on-chip

NXP MCUX Quad Timer Channel16

nxp,imx-tmr

on-chip

NXP Periodic Interrupt Timer (PIT)1

nxp,pit

on-chip

Child node for the Periodic Interrupt Timer node, intended for an individual timer channel4

nxp,pit-channel

Cryptographic accelerator

on-chip

NXP Data Co-Processor (DCP) Crypto accelerator1

nxp,mcux-dcp

Debug

on-chip

ARMv7 instrumentation trace macrocell1

arm,armv7m-itm

Display

on-chip

NXP i.MX eLCDIF (Enhanced LCD Interface) controller1

nxp,imx-elcdif

DMA

on-chip

NXP MCUX EDMA controller1

nxp,mcux-edma

on-chip

NXP PXP 2D DMA engine1

nxp,pxp

Ethernet

on-chip

NXP ENET IP Module2

nxp,enet

on-chip

NXP ENET MAC/L2 Device2

nxp,enet-mac

on-chip

NXP ENET PTP (Precision Time Protocol) Clock2

nxp,enet-ptp-clock

GPIO & Headers

on-chip

i.MX GPIO9

nxp,imx-gpio

I2C

on-chip

NXP LPI2C controller2 2

nxp,lpi2c

I2S

on-chip

NXP mcux SAI-I2S controller3

nxp,mcux-i2s

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MDIO

on-chip

NXP ENET MDIO Features2

nxp,enet-mdio

Memory controller

on-chip

NXP FlexRAM on-chip ram controller If the flexram,bank-spec property is specified, then the flexram will be dynamically reconfigured to the configuration specified at runtime1

nxp,flexram

on-chip

NXP Smart External Memory Controller (SEMC)1

nxp,imx-semc

Miscellaneous

on-chip

NXP FlexIO controller3

nxp,flexio

MMU / MPU

on-chip

ARMv7-M Memory Protection Unit (MPU)1

arm,armv7m-mpu

MTD

on-board

NXP FlexSPI NOR1

nxp,imx-flexspi-nor

Pin control

on-chip

This compatible binding should be applied to the device’s iomuxc DTS node1

nxp,imx-iomuxc

on-chip

The node has the ‘pinctrl’ node label set in MCUX RT SoC’s devicetree1

nxp,mcux-rt-pinctrl

on-chip

i.MX IOMUXC1

nxp,imx-gpr

PWM

on-chip

NXP eFLEX PWM module with mcux-pwm submodules4

nxp,flexpwm

on-chip

NXP MCUX PWM9 7

nxp,imx-pwm

RNG

on-chip

Kinetis TRNG (True Random Number Generator)1

nxp,kinetis-trng

RTC

on-chip

NXP SNVS LP/HP RTC1

nxp,imx-snvs-rtc

SDHC

on-chip

NXP imx USDHC controller1 1

nxp,imx-usdhc

Sensors

on-chip

NXP MCUX QDEC4

nxp,mcux-qdec

on-chip

NXP on-die temperature monitor1

nxp,tempmon

Serial controller

on-chip

NXP LPUART5 3

nxp,lpuart

SPI

on-chip

NXP FlexSPI controller1 1

nxp,imx-flexspi

on-chip

NXP LPSPI controller2 2

nxp,lpspi

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

NXP MCUX General-Purpose HW Timer (GPT)1

nxp,gpt-hw-timer

on-chip

NXP MCUX General-Purpose Timer (GPT)1

nxp,imx-gpt

USB

on-chip

NXP EHCI USB device mode1 1

nxp,ehci

on-chip

NXP USB high speed phy that is used on NXP RTxxxx, RTxxx, MCX, LPC and Kinetis platforms if high speed usb is supported on these platforms2

nxp,usbphy

Video

on-chip

NXP MCUX CMOS sensor interface1

nxp,imx-csi

Watchdog

on-chip

imxRT watchdog2

nxp,imx-wdog

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 debugger 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