Skip to content

Commit f1018ee

Browse files
robert-hhdpgeorge
authored andcommitted
mimxrt/boards/MAKERDIARY_RT1011_NANO_KIT: Add new Makerdiary board.
This is a board based on the i.MX RT1011 in breadboard-friendly shape. A good basic board with 16M flash and regular pinout, providing access to many GPIO_nn and GPIO_AD_nn Pins. Signed-off-by: robert-hh <[email protected]>
1 parent 31a008c commit f1018ee

File tree

6 files changed

+245
-20
lines changed

6 files changed

+245
-20
lines changed

Diff for: docs/mimxrt/pinout.rst

+47-20
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,28 @@ MIMXRT1170-EVK Debug USB D0/D1 D12/D11 D10/D13
3030
Adafruit Metro M7 - D0/D1 D7/D3 A1/A0
3131
Olimex RT1010Py - RxD/TxD D7/D8 D5/D6
3232
Seeed ARCH MIX - J3_19/J3_20 J4_16/J4_17 J4_06/J4_07
33+
Makerdiary RT1011 - D9/D10 D13/A0 D11/D12
3334
================= =========== =========== =========== ===========
3435

3536
|
3637
37-
================ =========== =========== ======= ======= =====
38-
Board / Pin UART4 UART5 UART6 UART7 UART8
39-
================ =========== =========== ======= ======= =====
40-
Teensy 4.0 16/17 21/20 25/24 28/29 -
41-
Teensy 4.1 16/17 21/20 25/24 28/29 34/35
42-
MIMXRT1010-EVK - - - - -
43-
MIMXRT1015-EVK - - - - -
44-
MIMXRT1020-EVK D15/D14 A1/A0 - - -
45-
MIMXRT1050-EVK A1/A0 - - - -
46-
MIMXRT1050-EVKB A1/A0 - - - -
47-
MIMXRT1060-EVK A1/A0 - - - -
48-
MIMXRT1064-EVK A1/A0 - - - -
49-
MIMXRT1170-EVK D15/D14 D25/D26 D33/D34 D35/D36 -
50-
Olimex RT1010Py - - - - -
51-
Seeed ARCH MIX J4_10/J4_11 J5_08/J5_12 - - -
52-
================ =========== =========== ======= ======= =====
38+
================= =========== =========== ======= ======= =====
39+
Board / Pin UART4 UART5 UART6 UART7 UART8
40+
================= =========== =========== ======= ======= =====
41+
Teensy 4.0 16/17 21/20 25/24 28/29 -
42+
Teensy 4.1 16/17 21/20 25/24 28/29 34/35
43+
MIMXRT1010-EVK - - - - -
44+
MIMXRT1015-EVK - - - - -
45+
MIMXRT1020-EVK D15/D14 A1/A0 - - -
46+
MIMXRT1050-EVK A1/A0 - - - -
47+
MIMXRT1050-EVKB A1/A0 - - - -
48+
MIMXRT1060-EVK A1/A0 - - - -
49+
MIMXRT1064-EVK A1/A0 - - - -
50+
MIMXRT1170-EVK D15/D14 D25/D26 D33/D34 D35/D36 -
51+
Olimex RT1010Py - - - - -
52+
Seeed ARCH MIX J4_10/J4_11 J5_08/J5_12 - - -
53+
Makerdiary RT1011 A1/A2 - - - -
54+
================= =========== =========== ======= ======= =====
5355

5456
.. _mimxrt_pwm_pinout:
5557

@@ -188,7 +190,6 @@ LED_BLUE F1/3/B
188190
========= ===============
189191
Pin Olimex RT1010PY
190192
========= ===============
191-
D0 -
192193
D1 F1/0/B
193194
D2 F1/0/A
194195
D3 F1/1/B
@@ -197,13 +198,10 @@ D5 F1/2/B
197198
D6 F1/2/A
198199
D7 F1/3/B
199200
D8 F1/3/A
200-
D9 -
201201
D10 F1/0/B
202202
D11 F1/0/A
203203
D12 F1/1/B
204204
D13 F1/1/A
205-
D14 -
206-
A0 -
207205
A1 F1/2/B
208206
A2 F1/2/A
209207
A3 F1/3/B
@@ -214,6 +212,32 @@ CS0 F1/1/X
214212
SCK F1/0/X
215213
========= ===============
216214

215+
|
216+
217+
========= =================
218+
Pin Makerdiary RT1011
219+
========= =================
220+
D1 F1/0/B
221+
D2 F1/0/A
222+
D3 F1/1/B
223+
D4 F1/1/A
224+
D5 F1/2/B
225+
D6 F1/2/A
226+
D7 F1/3/B
227+
D8 F1/3/A
228+
A3 F1/2/B
229+
A4 F1/2/A
230+
A5 F1/3/B
231+
A6 F1/3/A
232+
A9 F1/3/X
233+
A10 F1/2/X
234+
A11 F1/1/X
235+
SD1 F1/0/B
236+
SD2 F1/0/A
237+
LED F1/1/B
238+
DIO F1/0/X
239+
========= =================
240+
217241
Legend:
218242

219243
* Qm/n: QTMR module m, channel n
@@ -322,6 +346,7 @@ MIXMXRT1170-EVK D10/-/D11/D12/D13 D28/-/D25/D24/D26 -/-/D14/D
322346
Adafruit Metro M7 -/-/MOSI/MISO/SCK - -
323347
Olimex RT1010Py - CS0/-/SDO/SDI/SCK SDCARD with CS1
324348
Seeed ARCH MIX J4_12/-/J4_14/J4_13/J4_15 J3_09/J3_05/J3_08_J3_11
349+
Makerdiary RT1011 A5/A2/A4/A3/A6 A11/A1/A10/A9/CLK
325350
================= ========================= ======================= ===============
326351

327352
Pins denoted with (*) are by default not wired at the board. The CS0 and CS1 signals
@@ -355,6 +380,7 @@ MIXMXRT1170-EVK D14/D15 D1/D0 A4/A5 D26/D25 D19/D18
355380
Adafruit Metro M7 D14/D15 D0/D1
356381
Olimex RT1010Py - SDA1/SCL1 SDA2/SCL2 - -
357382
Seeed ARCH MIX J3_17/J3_16 J4_06/J4_07 J5_05/J5_04 - -
383+
Makerdiary RT1011 D1/D2 A7/A8
358384
================= =========== =========== =========== ======= =======
359385

360386
.. _mimxrt_i2s_pinout:
@@ -379,6 +405,7 @@ Adafruit Metro M7 1 D8 D10 D9 D12 D14 D15 D13
379405
Olimex RT1010Py 1 D8 D6 D7 D4 D1 D2 D3
380406
Olimex RT1010Py 3 - D10 D9 D11 - - -
381407
MIMXRT_DEV 1 "MCK" "SCK_TX" "WS_TX" "SD_TX" "SCK_RX" "WS_RX" "SD_RX"
408+
Makerdiary RT1011 1 D8 SD1 D7 D4 D1 D2 D3
382409
================= == ===== ======== ======= ======= ======== ======= =======
383410

384411
Symbolic pin names are provided for the MIMXRT_10xx_DEV boards.
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"deploy": [
3+
"deploy_makerdiary.md"
4+
],
5+
"docs": "",
6+
"features": [
7+
"External Flash",
8+
"USB",
9+
"microSD"
10+
],
11+
"images": [
12+
"MAKERDIARY_RT1011_NANO_KIT.jpg"
13+
],
14+
"mcu": "mimxrt",
15+
"product": "iMX RT1011 Nano Kit",
16+
"thumbnail": "",
17+
"url": "https://makerdiary.com/products/imxrt1011-nanokit",
18+
"vendor": "Makerdiary"
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## 1. Deploy the MicroPython firmware to the iMX RT1011 Nano Kit.
2+
3+
The iMX RT1011 Nano Kit comes pre-installed with a UF2 bootloader.
4+
It can be started by pushing reset twice. Then the bootloader drive will
5+
appear. If that does not happen or the bootloader was lost, you can
6+
reinstall the bootloader using the procedure below.
7+
8+
Once the bootloader is installed and started, you can install MicroPython
9+
by copying the .uf2 version of the firmware file to the bootloader
10+
drive. When the firmware is installed, the drive will disappear.
11+
12+
## 2. Reinstall the bootloader iMX RT1011 Nano Kit.
13+
14+
1. Get the NXP program sdphost for your operating system, e.g. from
15+
https://github.com/adafruit/tinyuf2/tree/master/ports/mimxrt10xx/sdphost.
16+
You can also get them from the NXP web sites.
17+
18+
2. Get the UF2 boot-loader package https://github.com/adafruit/tinyuf2/releases/tag/0.21.0
19+
and extract the file tinyuf2-makerdiary_rt1011-0.21.0.bin. You may as
20+
well go for a newer release.
21+
22+
Now you have all files at hand that you will need for updating.
23+
24+
1. Push and hold the "USR/BT" button, then press "RST", and release both buttons.
25+
26+
2. Run the commands:
27+
28+
```
29+
sudo ./sdphost -u 0x1fc9,0x0145 -- write-file 0x20206400 tinyuf2-makerdiary_rt1011-0.21.0.bin
30+
sudo ./sdphost -u 0x1fc9,0x0145 -- jump-address 0x20207000
31+
```
32+
Wait until a drive icon appears on the computer (or mount it explicitly).
33+
At this point the bootloader is installed. You can now copy the
34+
MicroPython .uf2 file to the board.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#define MICROPY_HW_BOARD_NAME "iMX_RT1011_Nano_Kit"
2+
#define MICROPY_HW_MCU_NAME "MIMXRT1011DAE5A"
3+
#define MICROPY_HW_USB_MANUFACTURER_STRING "Makerdiary"
4+
#define MICROPY_HW_USB_VID 0xf055
5+
#define MICROPY_HW_USB_PID 0x9802
6+
#define MICROPY_PY_OS_DUPTERM_BUILTIN_STREAM (0)
7+
8+
// RT1011-Nanokit has 1 board LED
9+
#define MICROPY_HW_LED1_PIN (pin_GPIO_SD_04)
10+
#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_high(pin))
11+
#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_low(pin))
12+
13+
#define MICROPY_HW_NUM_PIN_IRQS (2 * 32)
14+
#define MICROPY_PY_MACHINE_SDCARD (0)
15+
16+
17+
#define MICROPY_HW_UART_NUM (sizeof(uart_index_table) / sizeof(uart_index_table)[0])
18+
#define MICROPY_HW_UART_INDEX { 0, 1, 2, 3, 4 }
19+
20+
#define IOMUX_TABLE_UART \
21+
{ IOMUXC_GPIO_10_LPUART1_TXD }, { IOMUXC_GPIO_09_LPUART1_RXD }, \
22+
{ IOMUXC_GPIO_AD_00_LPUART2_TXD }, { IOMUXC_GPIO_13_LPUART2_RXD }, \
23+
{ IOMUXC_GPIO_12_LPUART3_TXD }, { IOMUXC_GPIO_11_LPUART3_RXD }, \
24+
{ IOMUXC_GPIO_AD_02_LPUART4_TXD }, { IOMUXC_GPIO_AD_01_LPUART4_RXD },
25+
26+
#define IOMUX_TABLE_UART_CTS_RTS \
27+
{ IOMUXC_GPIO_08_LPUART1_CTS_B }, { IOMUXC_GPIO_07_LPUART1_RTS_B }, \
28+
{ IOMUXC_GPIO_AD_08_LPUART2_CTS_B }, { IOMUXC_GPIO_AD_07_LPUART2_RTS_B }, \
29+
{ IOMUXC_GPIO_AD_14_LPUART3_CTS_B }, { IOMUXC_GPIO_AD_13_LPUART3_RTS_B }, \
30+
{ IOMUXC_GPIO_AD_14_LPUART4_CTS_B }, { IOMUXC_GPIO_AD_13_LPUART4_RTS_B },
31+
32+
#define MICROPY_HW_SPI_INDEX { 1, 2 }
33+
34+
#define IOMUX_TABLE_SPI \
35+
{ IOMUXC_GPIO_AD_06_LPSPI1_SCK }, { IOMUXC_GPIO_AD_05_LPSPI1_PCS0 }, \
36+
{ IOMUXC_GPIO_AD_04_LPSPI1_SDO }, { IOMUXC_GPIO_AD_03_LPSPI1_SDI }, \
37+
{ IOMUXC_GPIO_AD_02_LPSPI1_PCS1 }, \
38+
{ IOMUXC_GPIO_AD_12_LPSPI2_SCK }, { IOMUXC_GPIO_AD_11_LPSPI2_PCS0 }, \
39+
{ IOMUXC_GPIO_AD_10_LPSPI2_SDO }, { IOMUXC_GPIO_AD_09_LPSPI2_SDI }, \
40+
{ IOMUXC_GPIO_AD_01_LPSPI2_PCS1 }
41+
42+
#define DMA_REQ_SRC_RX { 0, kDmaRequestMuxLPSPI1Rx, kDmaRequestMuxLPSPI2Rx }
43+
#define DMA_REQ_SRC_TX { 0, kDmaRequestMuxLPSPI1Tx, kDmaRequestMuxLPSPI2Tx }
44+
45+
// Define mapping hardware I2C # to logical I2C #
46+
// SDA/SCL HW-I2C Logical I2C
47+
// SDA1/SCL1 LPI2C1 -> 0
48+
// SDA2/SCL2 LPI2C2 -> 1
49+
50+
#define MICROPY_HW_I2C_INDEX { 1, 2 }
51+
52+
#define IOMUX_TABLE_I2C \
53+
{ IOMUXC_GPIO_02_LPI2C1_SCL }, { IOMUXC_GPIO_01_LPI2C1_SDA }, \
54+
{ IOMUXC_GPIO_AD_08_LPI2C2_SCL }, { IOMUXC_GPIO_AD_07_LPI2C2_SDA },
55+
56+
#define MICROPY_PY_MACHINE_I2S (1)
57+
#define MICROPY_HW_I2S_NUM (3)
58+
#define I2S_CLOCK_MUX { 0, kCLOCK_Sai1Mux, 0, kCLOCK_Sai3Mux }
59+
#define I2S_CLOCK_PRE_DIV { 0, kCLOCK_Sai1PreDiv, 0, kCLOCK_Sai3PreDiv }
60+
#define I2S_CLOCK_DIV { 0, kCLOCK_Sai1Div, 0, kCLOCK_Sai3Div }
61+
#define I2S_IOMUXC_GPR_MODE { 0, kIOMUXC_GPR_SAI1MClkOutputDir, 0, kIOMUXC_GPR_SAI3MClkOutputDir }
62+
#define I2S_DMA_REQ_SRC_RX { 0, kDmaRequestMuxSai1Rx, 0, kDmaRequestMuxSai3Rx }
63+
#define I2S_DMA_REQ_SRC_TX { 0, kDmaRequestMuxSai1Tx, 0, kDmaRequestMuxSai3Tx }
64+
#define I2S_AUDIO_PLL_CLOCK (2U)
65+
66+
#define I2S_GPIO(_hwid, _fn, _mode, _pin, _iomux) \
67+
{ \
68+
.hw_id = _hwid, \
69+
.fn = _fn, \
70+
.mode = _mode, \
71+
.name = MP_QSTR_##_pin, \
72+
.iomux = {_iomux}, \
73+
}
74+
75+
#define I2S_GPIO_MAP \
76+
{ \
77+
I2S_GPIO(1, MCK, TX, GPIO_08, IOMUXC_GPIO_08_SAI1_MCLK), /* pin D8 */ \
78+
I2S_GPIO(1, SCK, RX, GPIO_01, IOMUXC_GPIO_01_SAI1_RX_BCLK), /* pin D1 */ \
79+
I2S_GPIO(1, WS, RX, GPIO_02, IOMUXC_GPIO_02_SAI1_RX_SYNC), /* pin D2 */ \
80+
I2S_GPIO(1, SD, RX, GPIO_03, IOMUXC_GPIO_03_SAI1_RX_DATA00), /* pin D3 */ \
81+
I2S_GPIO(1, SCK, TX, GPIO_06, IOMUXC_GPIO_06_SAI1_TX_BCLK), /* pin D6 */ \
82+
I2S_GPIO(1, WS, TX, GPIO_07, IOMUXC_GPIO_07_SAI1_TX_SYNC), /* pin D7 */ \
83+
I2S_GPIO(1, SD, TX, GPIO_04, IOMUXC_GPIO_04_SAI1_TX_DATA00), /* pin D4 */ \
84+
I2S_GPIO(3, SCK, TX, GPIO_SD_01, IOMUXC_GPIO_SD_01_SAI3_TX_BCLK), /* pin SD1 */ \
85+
I2S_GPIO(3, WS, TX, GPIO_SD_00, IOMUXC_GPIO_SD_00_SAI3_TX_SYNC), /* pin SD0 */ \
86+
I2S_GPIO(3, SD, TX, GPIO_SD_02, IOMUXC_GPIO_SD_02_SAI3_TX_DATA) /* pin SD2 */ \
87+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
MCU_SERIES = MIMXRT1011
2+
MCU_VARIANT = MIMXRT1011DAE5A
3+
4+
MICROPY_FLOAT_IMPL = single
5+
MICROPY_HW_FLASH_TYPE = qspi_nor_flash
6+
MICROPY_HW_FLASH_SIZE = 0x1000000 # 16MB
7+
MICROPY_HW_FLASH_CLK = kFlexSpiSerialClk_100MHz
8+
MICROPY_HW_FLASH_QE_CMD = 0x31
9+
MICROPY_HW_FLASH_QE_ARG = 0x02
10+
11+
USE_UF2_BOOTLOADER = 1
12+
13+
CFLAGS += -DMICROPY_HW_FLASH_SAMPLE_CLK=kFLEXSPIReadSampleClk_LoopbackInternally
14+
15+
SRC_C += \
16+
hal/flexspi_nor_flash.c \
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
A0,GPIO_AD_00
2+
A1,GPIO_AD_01
3+
A2,GPIO_AD_02
4+
A3,GPIO_AD_03
5+
A4,GPIO_AD_04
6+
A5,GPIO_AD_05
7+
A6,GPIO_AD_06
8+
A7,GPIO_AD_07
9+
A8,GPIO_AD_08
10+
A9,GPIO_AD_09
11+
A10,GPIO_AD_10
12+
A11,GPIO_AD_11
13+
A14,GPIO_AD_14
14+
15+
D0,GPIO_00
16+
D1,GPIO_01
17+
D2,GPIO_02
18+
D3,GPIO_03
19+
D4,GPIO_04
20+
D5,GPIO_05
21+
D6,GPIO_06
22+
D7,GPIO_07
23+
D8,GPIO_08
24+
D9,GPIO_09
25+
D10,GPIO_10
26+
D11,GPIO_11
27+
D12,GPIO_12
28+
D13,GPIO_13
29+
30+
SD0,GPIO_SD_00
31+
SD1,GPIO_SD_01
32+
SD2,GPIO_SD_02
33+
SD5,GPIO_SD_05
34+
# Test pads at the bottom side
35+
SD3,GPIO_SD_03
36+
SD4,GPIO_SD_04
37+
SD12,GPIO_SD_12
38+
SD13,GPIO_SD_13
39+
40+
LED,GPIO_SD_04
41+
CLK,GPIO_AD_12
42+
DIO,GPIO_AD_13

0 commit comments

Comments
 (0)