{{announcement.body}}
{{announcement.title}}

Seeed Studio Arch Mix NXP i.MX RT1052 Board

DZone 's Guide to

Seeed Studio Arch Mix NXP i.MX RT1052 Board

Learn more about debugging your board with Seed Studio Arch.

· IoT Zone ·
Free Resource

The Seeed Studio 'Arch Mix' board is a small and versatile development board with an NXP i.MX RT1052 on it, and it only costs $29.90. So, I was not able to resist and have just ordered one so I can explore it.

Image title

Seeed Arch Mix Top Side

It comes with a pre-installed RT-Thread real-time operating system and with built-in MicroPython. The RT-Thread is a kind of 'FreeRTOS from China', but for now, I'm more than covered with FreeRTOS, so this might be something to look at in the future.

The board is small (70×44 mm). It has an LCD connector, three buttons (user, reset, and power on/off). Using a 4-pin DIP switch, the boot source (Hyperflash, SPI flash, and SD card) can be configured, but the Hyperflash is not populated. There is a dedicated USB port for powering the board, plus one host/device USB port. The pins are nicely labeled and the board has four useful mounting holes.

On the bottom, there is a connector for the RTC battery and the micro-SD card connector:

Image title

Seeed Arch Mix Top Side

The board is breadboard-friendly with pins mapped to the sides of the board:

Image title

Seed Arch Mix Pinout (Source)

With a UART-2-USB cable, I connect to the board with GND, Rx, and Tx:

Image title

UART Connection

After pressing the reset button, the board writes the boot messages to the console:

Image title

Arch Mix i.MX RT Boot Messages

Below the full log of the messages:

sdram heap, begin: 0x80000000, end: 0x81e00000
sram heap, begin: 0x20006e8c, end: 0x20020000

 \ | /
- RT -     Thread Operating System
 / | \     4.0.0 build Dec 21 2018
 2006 - 2018 Copyright by rt-thread team
[1B][32m[I/[FLEXSPI]] NorFlash Init

[1B][0m[1B][32m[I/[FLEXSPI]] Vendor ID: 0x16

[1B][0m[1B][32m[I/[FLEXSPI]] NorFlash Init Done

[1B][0m[D/FAL] (fal_flash_init:61) Flash device |                norflash0 | addr: 0x00000000 | len: 0x00800000 | blk_size: 0x00001000 |initialized finish.
[1B][32;22m[I/FAL] ==================== FAL partition table ====================[1B][0m
[1B][32;22m[I/FAL] | name     | flash_dev |   offset   |    length  |[1B][0m
[1B][32;22m[I/FAL] -------------------------------------------------------------[1B][0m
[1B][32;22m[I/FAL] | bl       | norflash0 | 0x00000000 | 0x00040000 |[1B][0m
[1B][32;22m[I/FAL] | env      | norflash0 | 0x00040000 | 0x00001000 |[1B][0m
[1B][32;22m[I/FAL] | pt       | norflash0 | 0x00041000 | 0x00001000 |[1B][0m
[1B][32;22m[I/FAL] | app      | norflash0 | 0x00042000 | 0x00100000 |[1B][0m
[1B][32;22m[I/FAL] | download | norflash0 | 0x00142000 | 0x00100000 |[1B][0m
[1B][32;22m[I/FAL] | fs       | norflash0 | 0x00242000 | 0x00000000 |[1B][0m
[1B][32;22m[I/FAL] =============================================================[1B][0m
[1B][32;22m[I/FAL] RT-Thread Flash Abstraction Layer (V0.3.0) initialize success.[1B][0m
[1B][36;22m[I/OTA] RT-Thread OTA package(V0.2.2) initialize success.[1B][0m
[Flash] (packages\EasyFlash-latest\src\ef_env.c:152) ENV start address is 0x00000000, size is 262144 bytes.
[Flash] (packages\EasyFlash-latest\src\ef_env.c:821) Calculate ENV CRC32 number is 0xD808A5B2.
[Flash] (packages\EasyFlash-latest\src\ef_env.c:833) Verify ENV CRC32 result is OK.
[Flash] EasyFlash V3.2.3 is initialize success.
[Flash] You can get the latest version on https://github.com/armink/EasyFlash .
Hit any key to stop autoboot : 1
Hit any key to stop autoboot : 0

run application

0x60042000
sdram heap, begin: 0x80000134, end: 0x81e00000
sram heap, begin: 0x200066d4, end: 0x20020000

 \ | /
- RT -     Thread Operating System
 / | \     4.0.0 build Dec 25 2018
 2006 - 2018 Copyright by rt-thread team
[1B][32m[I/[FLEXSPI]] NorFlash Init

[1B][0m[1B][32m[I/[FLEXSPI]] Vendor ID: 0x16

[1B][0m[1B][32m[I/[FLEXSPI]] NorFlash Init Done

[1B][0m[D/FAL] (fal_flash_init:61) Flash device |                norflash0 | addr: 0x00000000 | len: 0x00800000 | blk_size: 0x00001000 |initialized finish.
[1B][32;22m[I/FAL] ==================== FAL partition table ====================[1B][0m
[1B][32;22m[I/FAL] | name     | flash_dev |   offset   |    length  |[1B][0m
[1B][32;22m[I/FAL] -------------------------------------------------------------[1B][0m
[1B][32;22m[I/FAL] | bl       | norflash0 | 0x00000000 | 0x00040000 |[1B][0m
[1B][32;22m[I/FAL] | env      | norflash0 | 0x00040000 | 0x00001000 |[1B][0m
[1B][32;22m[I/FAL] | pt       | norflash0 | 0x00041000 | 0x00001000 |[1B][0m
[1B][32;22m[I/FAL] | app      | norflash0 | 0x00042000 | 0x00100000 |[1B][0m
[1B][32;22m[I/FAL] | download | norflash0 | 0x00142000 | 0x00100000 |[1B][0m
[1B][32;22m[I/FAL] | fs       | norflash0 | 0x00242000 | 0x005be000 |[1B][0m
[1B][32;22m[I/FAL] =============================================================[1B][0m
[1B][32;22m[I/FAL] RT-Thread Flash Abstraction Layer (V0.2.0) initialize success.[1B][0m
[Flash] (packages\EasyFlash-latest\src\ef_env.c:152) ENV start address is 0x00000000, size is 4096 bytes.
[Flash] (packages\EasyFlash-latest\src\ef_env.c:821) Calculate ENV CRC32 number is 0xD808A5B2.
[Flash] (packages\EasyFlash-latest\src\ef_env.c:833) Verify ENV CRC32 result is OK.
[Flash] EasyFlash V3.2.3 is initialize success.
[Flash] You can get the latest version on https://github.com/armink/EasyFlash .
[1B][32;22m[I/FAL] The FAL block device (fs) created successfully[1B][0m
[1B][32;22m[I/FAL] The FAL char device (download) created successfully[1B][0m
File System on fs_part initialized!
build time: Dec 25 2018 09:03:15
msh />


This shows the running RT-Thread OS with the built-in micro-python. The RT-Thread comes with a command-line interface:

Image title

RT-Thread Shell commands

The built-in MicroPython REPL is nice, but unfortunately, it did not work for me:

Image title

Micropython

The board has the SWD debug pins available on the header. I tried to use a J-Link EDU mini (but that failed for unknown reasons). What worked out-of-the-box was using an NXP LPC-Link2 debug probe. I have to use an adapter and to connect GND, VddSense, SWDIO, and SWDCLK (see here for a similar connection).

Image title

SWD Debug Connection with LPC-Link2

And voilà: I'm able to debug the board with the NXP MCUXpresso V11.0.0 Eclipse IDE! Below is an NXP MCUXpresso SDK RAM-based application running with the IDE on the board:

Image title

Debugging Seeedstudio Arch Mix with MCUXpresso

This is, for now, an application in RAM. I have to change it to use the external SPI Flash. More about this (hopefully) later. You can find the project on GitHub.

I like this inexpensive and small i.MX RT board: finally an RT board to be used in my projects. And if time permits: I'm going to order an LCD for that LCD connector: that will be fun.

Happy ArchMixing!

Helpful Links

Topics:
iot ,tutorial

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}