[boards] Add remaining WR2x and WR3x boards
@@ -1,7 +1,15 @@
|
||||
<!-- This file is auto-generated -->
|
||||
|
||||
- [BW12](../boards/bw12/README.md)
|
||||
- [CB2S Wi-Fi Module](../boards/cb2s/README.md)
|
||||
- [WB2L Wi-Fi Module](../boards/wb2l/README.md)
|
||||
- [WR3 Wi-Fi Module](../boards/wr3/README.md)
|
||||
- [CB2S](../boards/cb2s/README.md)
|
||||
- [WB2L](../boards/wb2l/README.md)
|
||||
- [WR2](../boards/wr2/README.md)
|
||||
- [WR2E](../boards/wr2e/README.md)
|
||||
- [WR3](../boards/wr3/README.md)
|
||||
- [WR3E](../boards/wr3e/README.md)
|
||||
- [WR3N](../boards/wr3n/README.md)
|
||||
- [WR2L](../boards/wr2l/README.md)
|
||||
- [WR2LE](../boards/wr2le/README.md)
|
||||
- [WR3L](../boards/wr3l/README.md)
|
||||
- [WR3LE](../boards/wr3le/README.md)
|
||||
- [Generic - Host-native](../boards/generic-native/README.md)
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_blue_light",
|
||||
"TRACE_COLOR": "#58839B",
|
||||
"SILK_COLOR": "white",
|
||||
"PINTYPE_HORZ": "pin_horz_2mm_cast_hole"
|
||||
"SILK_COLOR": "white"
|
||||
},
|
||||
"pinout_hidden": "I2S,JTAG,FLASH",
|
||||
"pinout": {
|
||||
|
||||
14
boards/_base/pcb/wr2-base.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"pcb": {
|
||||
"templates": [
|
||||
"tuya2",
|
||||
"rf-15mm-type1",
|
||||
"tuya2-shield"
|
||||
],
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_blue_light",
|
||||
"TRACE_COLOR": "#58839B",
|
||||
"SILK_COLOR": "white"
|
||||
}
|
||||
}
|
||||
}
|
||||
49
boards/_base/pcb/wr2.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"pcb": {
|
||||
"scale": 10.5,
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI",
|
||||
"pinout": {
|
||||
"1": {
|
||||
"PWR": 3.3
|
||||
},
|
||||
"2": {
|
||||
"IC": 17,
|
||||
"ARD": "D0"
|
||||
},
|
||||
"3": {
|
||||
"GND": null
|
||||
},
|
||||
"4": {
|
||||
"IC": 16,
|
||||
"ARD": "D1"
|
||||
},
|
||||
"5": {
|
||||
"IC": 29,
|
||||
"ARD": "D4"
|
||||
},
|
||||
"6": {
|
||||
"IC": 28,
|
||||
"ARD": "D2"
|
||||
},
|
||||
"7": {
|
||||
"IC": 32,
|
||||
"ARD": "D5"
|
||||
},
|
||||
"8": {
|
||||
"IC": 27,
|
||||
"ARD": "A1"
|
||||
},
|
||||
"9": {
|
||||
"IC": 13,
|
||||
"ARD": "D6"
|
||||
},
|
||||
"10": {
|
||||
"IC": 12
|
||||
},
|
||||
"11": {
|
||||
"IC": 14,
|
||||
"ARD": "D7"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
52
boards/_base/pcb/wr2e.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"pcb": {
|
||||
"scale": 10.5,
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI,SDA0",
|
||||
"pinout": {
|
||||
"1": {
|
||||
"PWR": 3.3
|
||||
},
|
||||
"2": {
|
||||
"IC": 17,
|
||||
"ARD": "D0"
|
||||
},
|
||||
"3": {
|
||||
"GND": null
|
||||
},
|
||||
"4": {
|
||||
"IC": 30,
|
||||
"ARD": [
|
||||
"D1",
|
||||
"A0"
|
||||
]
|
||||
},
|
||||
"5": {
|
||||
"IC": 29,
|
||||
"ARD": "D3"
|
||||
},
|
||||
"6": {
|
||||
"IC": 28,
|
||||
"ARD": "D2"
|
||||
},
|
||||
"7": {
|
||||
"IC": 32,
|
||||
"ARD": "D4"
|
||||
},
|
||||
"8": {
|
||||
"IC": 27,
|
||||
"ARD": "A1"
|
||||
},
|
||||
"9": {
|
||||
"IC": 13,
|
||||
"ARD": "D5"
|
||||
},
|
||||
"10": {
|
||||
"IC": 12
|
||||
},
|
||||
"11": {
|
||||
"IC": 14,
|
||||
"ARD": "D6"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
boards/_base/pcb/wr2l-base.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"pcb": {
|
||||
"templates": [
|
||||
"tuya2l",
|
||||
"rf-15mm-type1",
|
||||
"tuya2l-shield"
|
||||
],
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_blue_light",
|
||||
"TRACE_COLOR": "#58839B",
|
||||
"SILK_COLOR": "white",
|
||||
"PINTYPE_HORZ": "pin_horz_2mm_cast_hole"
|
||||
}
|
||||
}
|
||||
}
|
||||
36
boards/_base/pcb/wr2l.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"pcb": {
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI,I2C",
|
||||
"pinout": {
|
||||
"1": {
|
||||
"IC": 14,
|
||||
"ARD": "D0"
|
||||
},
|
||||
"2": {
|
||||
"IC": 13,
|
||||
"ARD": "D1"
|
||||
},
|
||||
"3": {
|
||||
"IC": 28,
|
||||
"ARD": "D2"
|
||||
},
|
||||
"4": {
|
||||
"IC": 30,
|
||||
"ARD": [
|
||||
"D3",
|
||||
"A0"
|
||||
]
|
||||
},
|
||||
"5": {
|
||||
"IC": 17,
|
||||
"ARD": "D4"
|
||||
},
|
||||
"6": {
|
||||
"GND": null
|
||||
},
|
||||
"7": {
|
||||
"PWR": 3.3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
33
boards/_base/pcb/wr2le.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"pcb": {
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI,I2C",
|
||||
"pinout": {
|
||||
"1": {
|
||||
"IC": 14,
|
||||
"ARD": "D0"
|
||||
},
|
||||
"2": {
|
||||
"IC": 13,
|
||||
"ARD": "D1"
|
||||
},
|
||||
"3": {
|
||||
"IC": 28,
|
||||
"ARD": "D2"
|
||||
},
|
||||
"4": {
|
||||
"IC": 31,
|
||||
"ARD": "D3"
|
||||
},
|
||||
"5": {
|
||||
"IC": 17,
|
||||
"ARD": "D4"
|
||||
},
|
||||
"6": {
|
||||
"GND": null
|
||||
},
|
||||
"7": {
|
||||
"PWR": 3.3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
16
boards/_base/pcb/wr3-base.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"pcb": {
|
||||
"templates": [
|
||||
"esp12s",
|
||||
"esp12s-shield",
|
||||
"tuya-16x24",
|
||||
"rf-16mm-type1"
|
||||
],
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_black",
|
||||
"TRACE_COLOR": "#505050",
|
||||
"SILK_COLOR": "white",
|
||||
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,5 @@
|
||||
{
|
||||
"pcb": {
|
||||
"templates": [
|
||||
"esp12s",
|
||||
"esp12s-shield",
|
||||
"tuya-16x24",
|
||||
"rf-16mm-type1"
|
||||
],
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_black",
|
||||
"TRACE_COLOR": "#505050",
|
||||
"SILK_COLOR": "white",
|
||||
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole"
|
||||
},
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
|
||||
"pinout": {
|
||||
"1": {
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
{
|
||||
"pcb": {
|
||||
"templates": [
|
||||
"esp12s",
|
||||
"esp12s-shield",
|
||||
"tuya-16x24",
|
||||
"rf-16mm-type1"
|
||||
],
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_black",
|
||||
"TRACE_COLOR": "#505050",
|
||||
"SILK_COLOR": "white",
|
||||
"PINTYPE_VERT": "pin_vert_2mm_cast_nohole"
|
||||
"MASK_PRESET": "mask_blue_light",
|
||||
"TRACE_COLOR": "#58839B",
|
||||
"SILK_COLOR": "white"
|
||||
},
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD",
|
||||
"pinout": {
|
||||
@@ -26,19 +19,19 @@
|
||||
},
|
||||
"4": {
|
||||
"IC": 2,
|
||||
"ARD": "D5"
|
||||
"ARD": "D0"
|
||||
},
|
||||
"5": {
|
||||
"IC": 13,
|
||||
"ARD": "D2"
|
||||
"ARD": "D1"
|
||||
},
|
||||
"6": {
|
||||
"IC": 14,
|
||||
"ARD": "D3"
|
||||
"ARD": "D2"
|
||||
},
|
||||
"7": {
|
||||
"IC": 31,
|
||||
"ARD": "D0"
|
||||
"ARD": "D3"
|
||||
},
|
||||
"8": {
|
||||
"PWR": 3.3
|
||||
@@ -52,12 +45,12 @@
|
||||
},
|
||||
"11": {
|
||||
"IC": 1,
|
||||
"ARD": "D6"
|
||||
"ARD": "D5"
|
||||
},
|
||||
"12": {
|
||||
"IC": 30,
|
||||
"ARD": [
|
||||
"D1",
|
||||
"D6",
|
||||
"A0"
|
||||
]
|
||||
},
|
||||
|
||||
16
boards/_base/pcb/wr3l-base.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"pcb": {
|
||||
"templates": [
|
||||
"esp12s",
|
||||
"esp12e-shield",
|
||||
"tuya-16x24",
|
||||
"rf-16mm-type1"
|
||||
],
|
||||
"vars": {
|
||||
"MASK_PRESET": "mask_white",
|
||||
"TRACE_COLOR": "#E0E0E0",
|
||||
"SILK_COLOR": "black",
|
||||
"PINTYPE_VERT": "pin_vert_2mm_cast_hole"
|
||||
}
|
||||
}
|
||||
}
|
||||
65
boards/_base/pcb/wr3n.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"pcb": {
|
||||
"pinout_hidden": "I2S,TRIG,WAKE,CTS,RTS,SD,SPI",
|
||||
"pinout": {
|
||||
"1": {
|
||||
"NC": null
|
||||
},
|
||||
"2": {
|
||||
"IC": 27,
|
||||
"ARD": "A1"
|
||||
},
|
||||
"3": {
|
||||
"IC": 12
|
||||
},
|
||||
"4": {
|
||||
"IC": 2,
|
||||
"ARD": "D0"
|
||||
},
|
||||
"5": {
|
||||
"IC": 13,
|
||||
"ARD": "D1"
|
||||
},
|
||||
"6": {
|
||||
"IC": 14,
|
||||
"ARD": "D2"
|
||||
},
|
||||
"7": {
|
||||
"IC": 16,
|
||||
"ARD": "D3"
|
||||
},
|
||||
"8": {
|
||||
"PWR": 3.3
|
||||
},
|
||||
"9": {
|
||||
"GND": null
|
||||
},
|
||||
"10": {
|
||||
"NC": null
|
||||
},
|
||||
"11": {
|
||||
"IC": 1,
|
||||
"ARD": "D4"
|
||||
},
|
||||
"12": {
|
||||
"NC": null
|
||||
},
|
||||
"13": {
|
||||
"IC": 28,
|
||||
"ARD": "D5"
|
||||
},
|
||||
"14": {
|
||||
"IC": 17,
|
||||
"ARD": "D6"
|
||||
},
|
||||
"15": {
|
||||
"IC": 29,
|
||||
"ARD": "D7"
|
||||
},
|
||||
"16": {
|
||||
"IC": 32,
|
||||
"ARD": "D8"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
boards/wr2.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr2-base",
|
||||
"pcb/wr2"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bn",
|
||||
"variant": "wr2"
|
||||
},
|
||||
"name": "WR2 Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wifiwr2module?id=K9605tko0juc3",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR2"
|
||||
}
|
||||
}
|
||||
62
boards/wr2/README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# WR2 Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wifiwr2module?id=K9605tko0juc3)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|---------------------------------
|
||||
MCU | RTL8710BN
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 125 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 7x GPIO, 5x PWM, 1x UART, 1x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------|----------|----------|----------------------|------|------
|
||||
D0 | PA12 | | | | PWM3 |
|
||||
D1 | PA00 | | | | PWM2 |
|
||||
D2 | PA05 | | | | PWM4 |
|
||||
D4 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | |
|
||||
D5 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 |
|
||||
D6 | PA14 | | | | PWM0 | SWCLK
|
||||
D7 | PA15 | | | | PWM1 | SWDIO
|
||||
A1 | ADC2 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
224
boards/wr2/pinout_wr2.svg
Normal file
@@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,97.52380952380952,47.61904761904762" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="47.61904761904762" stroke="black" stroke-width="0.1" width="97.52380952380952" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="17.799999999999997" stroke="#b5a739" stroke-width="0.1" width="14.9" x="15.930952380952377" y="11.45952380952381"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="15.880952380952376" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="17.480952380952377" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="15.780952380952376" y="25.859523809523807"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="29.180952380952377" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="29.180952380952377" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="29.280952380952378" y="25.859523809523807"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin1.pad" rx="0.2" ry="0.2" width="1.0" x="18.880952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin2.pad" rx="0.2" ry="0.2" width="1.0" x="20.880952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin3.pad" rx="0.2" ry="0.2" width="1.0" x="22.880952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin4.pad" rx="0.2" ry="0.2" width="1.0" x="24.880952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin5.pad" rx="0.2" ry="0.2" width="1.0" x="26.880952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="19.280952380952375" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="19.080952380952375" y="31.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label1.anchor" width="0.0" x="19.580952380952375" y="31.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="21.280952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="19.080952380952375" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label2.anchor" width="0.0" x="19.580952380952375" y="33.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="23.280952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="19.080952380952375" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label3.anchor" width="0.0" x="19.580952380952375" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="25.280952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="25.380952380952376" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label4.anchor" width="0.0" x="29.080952380952375" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="27.280952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="27.380952380952376" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label5.anchor" width="0.0" x="29.080952380952375" y="33.40952380952381"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="22.880952380952376" y="16.40952380952381">WR2</text>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="16.680952380952377" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="4.6" x="16.680952380952377" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="18.880952380952376" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="20.780952380952378" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="20.780952380952378" y="14.40952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="23.280952380952378" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.7" x="23.280952380952378" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="25.480952380952374" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="25.480952380952374" y="14.40952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="27.980952380952374" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.5" x="27.980952380952374" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="4.4" width="0.5" x="29.980952380952374" y="11.90952380952381"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="8.0" rx="0.5" ry="0.5" width="14.4" x="16.180952380952377" y="17.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.580952380952375" y="33.30952380952381"/>
|
||||
<g transform="translate(32.99531173489728,32.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="34.48095238095238" y="33.40952380952381">PA12</text>
|
||||
<g transform="translate(36.59531173489728,32.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="37.78095238095238" y="33.40952380952381">D0</text>
|
||||
<g transform="translate(39.59531173489728,32.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="41.08095238095238" y="33.40952380952381">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.580952380952375" y="35.30952380952381"/>
|
||||
<g transform="translate(32.99531173489728,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="34.48095238095238" y="35.40952380952381">PA00</text>
|
||||
<g transform="translate(36.59531173489728,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="37.78095238095238" y="35.40952380952381">D1</text>
|
||||
<g transform="translate(39.59531173489728,34.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="41.08095238095238" y="35.40952380952381">PWM2</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="16.480952380952374" y="35.30952380952381"/>
|
||||
<g transform="translate(12.695311734897274,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="14.180952380952375" y="35.40952380952381">PA05</text>
|
||||
<g transform="translate(9.695311734897274,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="10.880952380952376" y="35.40952380952381">D2</text>
|
||||
<g transform="translate(6.095311734897274,34.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="7.580952380952376" y="35.40952380952381">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="16.480952380952374" y="33.30952380952381"/>
|
||||
<g transform="translate(12.695311734897274,32.609523809523814)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="14.180952380952375" y="33.40952380952381">ADC2</text>
|
||||
<g transform="translate(9.695311734897274,32.609523809523814)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="10.880952380952376" y="33.40952380952381">A1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="16.480952380952374" y="31.30952380952381"/>
|
||||
<g transform="translate(12.695311734897274,30.60952380952381)">
|
||||
<rect fill="#ed602e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="14.180952380952375" y="31.40952380952381">CEN</text>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id3" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id3) none" height="17.799999999999997" stroke="#b5a739" stroke-width="0.1" width="14.9" x="63.942857142857136" y="11.45952380952381"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="63.89285714285714" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="65.49285714285713" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="63.79285714285714" y="25.859523809523807"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="77.19285714285714" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="77.19285714285714" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="77.29285714285714" y="25.859523809523807"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin1.pad" rx="0.2" ry="0.2" width="1.0" x="65.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin2.pad" rx="0.2" ry="0.2" width="1.0" x="67.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin3.pad" rx="0.2" ry="0.2" width="1.0" x="69.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin4.pad" rx="0.2" ry="0.2" width="1.0" x="71.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin5.pad" rx="0.2" ry="0.2" width="1.0" x="73.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin6.pad" rx="0.2" ry="0.2" width="1.0" x="75.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="66.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="66.04285714285714" y="31.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label1.anchor" width="0.0" x="66.54285714285714" y="31.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="68.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="66.04285714285714" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label2.anchor" width="0.0" x="66.54285714285714" y="33.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="70.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="66.04285714285714" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label3.anchor" width="0.0" x="66.54285714285714" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="72.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="72.34285714285714" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label4.anchor" width="0.0" x="76.04285714285714" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="74.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="74.34285714285714" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label5.anchor" width="0.0" x="76.04285714285714" y="33.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="76.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="76.34285714285714" y="31.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label6.anchor" width="0.0" x="76.04285714285714" y="31.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="63.44285714285714" y="31.30952380952381"/>
|
||||
<g transform="translate(59.657216496802036,30.60952380952381)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.14285714285714" y="31.40952380952381">3V3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="63.44285714285714" y="33.30952380952381"/>
|
||||
<g transform="translate(59.657216496802036,32.609523809523814)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.14285714285714" y="33.40952380952381">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="63.44285714285714" y="35.30952380952381"/>
|
||||
<g transform="translate(59.657216496802036,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.14285714285714" y="35.40952380952381">PA18</text>
|
||||
<g transform="translate(56.65721649680204,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.84285714285714" y="35.40952380952381">D4</text>
|
||||
<g transform="translate(53.05721649680204,34.609523809523814)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.542857142857144" y="35.40952380952381">RX0</text>
|
||||
<g transform="translate(49.45721649680204,34.609523809523814)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="50.94285714285714" y="35.40952380952381">SCL1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="76.54285714285714" y="35.30952380952381"/>
|
||||
<g transform="translate(79.95721649680203,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="81.44285714285714" y="35.40952380952381">PA23</text>
|
||||
<g transform="translate(83.55721649680203,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="84.74285714285713" y="35.40952380952381">D5</text>
|
||||
<g transform="translate(86.55721649680203,34.609523809523814)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="88.04285714285713" y="35.40952380952381">TX0</text>
|
||||
<g transform="translate(90.15721649680204,34.609523809523814)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="91.64285714285714" y="35.40952380952381">SDA1</text>
|
||||
<g transform="translate(93.75721649680204,34.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="95.24285714285715" y="35.40952380952381">PWM0</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="76.54285714285714" y="33.30952380952381"/>
|
||||
<g transform="translate(79.95721649680203,32.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="81.44285714285714" y="33.40952380952381">PA14</text>
|
||||
<g transform="translate(83.55721649680203,32.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="84.74285714285713" y="33.40952380952381">D6</text>
|
||||
<g transform="translate(86.55721649680203,32.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="88.04285714285713" y="33.40952380952381">PWM0</text>
|
||||
<g transform="translate(90.15721649680204,32.609523809523814)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="91.64285714285714" y="33.40952380952381">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="76.54285714285714" y="31.30952380952381"/>
|
||||
<g transform="translate(79.95721649680203,30.60952380952381)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="81.44285714285714" y="31.40952380952381">PA15</text>
|
||||
<g transform="translate(83.55721649680203,30.60952380952381)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="84.74285714285713" y="31.40952380952381">D7</text>
|
||||
<g transform="translate(86.55721649680203,30.60952380952381)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="88.04285714285713" y="31.40952380952381">PWM1</text>
|
||||
<g transform="translate(90.15721649680204,30.60952380952381)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="91.64285714285714" y="31.40952380952381">SWDIO</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 20 KiB |
1
boards/wr2/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
28
boards/wr2/variant.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
/* This file was auto-generated from wr2.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D1: PA00, PWM2
|
||||
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D2: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D4: PA18, UART0_RX, SPI0_SCK, SPI1_SCK, I2C1_SCL, SD_D2, TMR4_TRIG, I2S0_MCK, WAKE0
|
||||
{PA_18, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D5: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
|
||||
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D6: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D7: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// A1: ADC2
|
||||
{AD_2, PIN_ADC, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
35
boards/wr2/variant.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/* This file was auto-generated from wr2.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 8
|
||||
#define NUM_DIGITAL_PINS 7
|
||||
#define NUM_ANALOG_INPUTS 1
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A1 7u // AD_2
|
||||
#define A1 PIN_A1
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 0
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 1
|
||||
#define PIN_WIRE1_SCL 3u // PA_18
|
||||
#define PIN_WIRE1_SDA 4u // PA_23
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 1
|
||||
#define PIN_SERIAL0_RX 3u // PA_18
|
||||
#define PIN_SERIAL0_TX 4u // PA_23
|
||||
19
boards/wr2e.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr2-base",
|
||||
"pcb/wr2e"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bn",
|
||||
"variant": "wr2e"
|
||||
},
|
||||
"name": "WR2E Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wr2e?id=K97scnsjhue4h",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR2E"
|
||||
}
|
||||
}
|
||||
63
boards/wr2e/README.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# WR2E Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wr2e?id=K97scnsjhue4h)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|---------------------------------
|
||||
MCU | RTL8710BN
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 125 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 7x GPIO, 4x PWM, 1x UART, 2x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------------|-----------|----------|----------------------|------|------
|
||||
D0 | PA12 | | | | PWM3 |
|
||||
D1 | PA19 | UART0_CTS | I2C0_SDA | SPI0_CS, SPI1_CS | |
|
||||
D2 | PA05 | | | | PWM4 |
|
||||
D3 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | |
|
||||
D4 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 |
|
||||
D5 | PA14 | | | | PWM0 | SWCLK
|
||||
D6 | PA15 | | | | PWM1 | SWDIO
|
||||
A0 | PA19, ADC1 | | | | |
|
||||
A1 | ADC2 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
228
boards/wr2e/pinout_wr2e.svg
Normal file
@@ -0,0 +1,228 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,97.52380952380952,47.61904761904762" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="47.61904761904762" stroke="black" stroke-width="0.1" width="97.52380952380952" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="17.799999999999997" stroke="#b5a739" stroke-width="0.1" width="14.9" x="14.430952380952377" y="11.45952380952381"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="14.380952380952376" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="15.980952380952376" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="14.280952380952376" y="25.859523809523807"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="27.680952380952377" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="27.680952380952377" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="27.780952380952378" y="25.859523809523807"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin1.pad" rx="0.2" ry="0.2" width="1.0" x="17.380952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin2.pad" rx="0.2" ry="0.2" width="1.0" x="19.380952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin3.pad" rx="0.2" ry="0.2" width="1.0" x="21.380952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin4.pad" rx="0.2" ry="0.2" width="1.0" x="23.380952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz5_2mm.pin5.pad" rx="0.2" ry="0.2" width="1.0" x="25.380952380952376" y="26.45952380952381"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="17.780952380952375" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="17.580952380952375" y="31.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label1.anchor" width="0.0" x="18.080952380952375" y="31.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="19.780952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="17.580952380952375" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label2.anchor" width="0.0" x="18.080952380952375" y="33.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="21.780952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="17.580952380952375" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label3.anchor" width="0.0" x="18.080952380952375" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="23.780952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="23.880952380952376" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label4.anchor" width="0.0" x="27.580952380952375" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="25.780952380952378" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="25.880952380952376" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.front.pins.label5.anchor" width="0.0" x="27.580952380952375" y="33.40952380952381"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="21.380952380952376" y="16.40952380952381">WR2E</text>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="15.180952380952377" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="4.6" x="15.180952380952377" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="17.380952380952376" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="19.280952380952378" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="19.280952380952378" y="14.40952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="21.780952380952378" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.7" x="21.780952380952378" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="23.980952380952374" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="23.980952380952374" y="14.40952380952381"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="26.480952380952374" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.5" x="26.480952380952374" y="11.90952380952381"/>
|
||||
<rect fill="#58839b" height="4.4" width="0.5" x="28.480952380952374" y="11.90952380952381"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="8.0" rx="0.5" ry="0.5" width="14.4" x="14.680952380952377" y="17.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="28.080952380952375" y="33.30952380952381"/>
|
||||
<g transform="translate(31.495311734897275,32.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="32.98095238095238" y="33.40952380952381">PA12</text>
|
||||
<g transform="translate(35.09531173489728,32.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="36.28095238095238" y="33.40952380952381">D0</text>
|
||||
<g transform="translate(38.09531173489728,32.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="39.58095238095238" y="33.40952380952381">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="28.080952380952375" y="35.30952380952381"/>
|
||||
<g transform="translate(31.495311734897275,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="32.98095238095238" y="35.40952380952381">PA19</text>
|
||||
<g transform="translate(35.09531173489728,34.609523809523814)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="36.58095238095238" y="35.40952380952381">ADC1</text>
|
||||
<g transform="translate(38.69531173489728,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="39.88095238095238" y="35.40952380952381">D1</text>
|
||||
<g transform="translate(41.69531173489728,34.609523809523814)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="42.88095238095238" y="35.40952380952381">A0</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="14.980952380952376" y="35.30952380952381"/>
|
||||
<g transform="translate(11.195311734897274,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="12.680952380952375" y="35.40952380952381">PA05</text>
|
||||
<g transform="translate(8.195311734897274,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="9.380952380952376" y="35.40952380952381">D2</text>
|
||||
<g transform="translate(4.595311734897274,34.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="6.080952380952376" y="35.40952380952381">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="14.980952380952376" y="33.30952380952381"/>
|
||||
<g transform="translate(11.195311734897274,32.609523809523814)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="12.680952380952375" y="33.40952380952381">ADC2</text>
|
||||
<g transform="translate(8.195311734897274,32.609523809523814)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="9.380952380952376" y="33.40952380952381">A1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="14.980952380952376" y="31.30952380952381"/>
|
||||
<g transform="translate(11.195311734897274,30.60952380952381)">
|
||||
<rect fill="#ed602e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="12.680952380952375" y="31.40952380952381">CEN</text>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id3" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id3) none" height="17.799999999999997" stroke="#b5a739" stroke-width="0.1" width="14.9" x="63.942857142857136" y="11.45952380952381"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="63.89285714285714" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="65.49285714285713" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="63.79285714285714" y="25.859523809523807"/>
|
||||
<rect fill="#b5a739" height="0.1" width="1.6" x="77.19285714285714" y="25.75952380952381"/>
|
||||
<rect fill="#b5a739" height="3.45" width="0.1" x="77.19285714285714" y="25.75952380952381"/>
|
||||
<rect fill="#fff" height="3.55" width="1.7" x="77.29285714285714" y="25.859523809523807"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin1.pad" rx="0.2" ry="0.2" width="1.0" x="65.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin2.pad" rx="0.2" ry="0.2" width="1.0" x="67.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin3.pad" rx="0.2" ry="0.2" width="1.0" x="69.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin4.pad" rx="0.2" ry="0.2" width="1.0" x="71.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin5.pad" rx="0.2" ry="0.2" width="1.0" x="73.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#e5b472" height="2.5" id="pads_horz6_2mm.pin6.pad" rx="0.2" ry="0.2" width="1.0" x="75.84285714285714" y="26.45952380952381"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="66.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="66.04285714285714" y="31.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label1.anchor" width="0.0" x="66.54285714285714" y="31.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="68.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="66.04285714285714" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label2.anchor" width="0.0" x="66.54285714285714" y="33.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="70.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="66.04285714285714" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label3.anchor" width="0.0" x="66.54285714285714" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="72.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="72.34285714285714" y="35.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label4.anchor" width="0.0" x="76.04285714285714" y="35.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="74.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="74.34285714285714" y="33.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label5.anchor" width="0.0" x="76.04285714285714" y="33.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="76.24285714285713" y="29.509523809523806"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="76.34285714285714" y="31.30952380952381"/>
|
||||
<rect height="0.0" id="tuya2.back.pins.label6.anchor" width="0.0" x="76.04285714285714" y="31.40952380952381"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="63.44285714285714" y="31.30952380952381"/>
|
||||
<g transform="translate(59.657216496802036,30.60952380952381)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.14285714285714" y="31.40952380952381">3V3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="63.44285714285714" y="33.30952380952381"/>
|
||||
<g transform="translate(59.657216496802036,32.609523809523814)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.14285714285714" y="33.40952380952381">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="63.44285714285714" y="35.30952380952381"/>
|
||||
<g transform="translate(59.657216496802036,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.14285714285714" y="35.40952380952381">PA18</text>
|
||||
<g transform="translate(56.65721649680204,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.84285714285714" y="35.40952380952381">D3</text>
|
||||
<g transform="translate(53.05721649680204,34.609523809523814)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.542857142857144" y="35.40952380952381">RX0</text>
|
||||
<g transform="translate(49.45721649680204,34.609523809523814)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="50.94285714285714" y="35.40952380952381">SCL1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="76.54285714285714" y="35.30952380952381"/>
|
||||
<g transform="translate(79.95721649680203,34.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="81.44285714285714" y="35.40952380952381">PA23</text>
|
||||
<g transform="translate(83.55721649680203,34.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="84.74285714285713" y="35.40952380952381">D4</text>
|
||||
<g transform="translate(86.55721649680203,34.609523809523814)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="88.04285714285713" y="35.40952380952381">TX0</text>
|
||||
<g transform="translate(90.15721649680204,34.609523809523814)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="91.64285714285714" y="35.40952380952381">SDA1</text>
|
||||
<g transform="translate(93.75721649680204,34.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="95.24285714285715" y="35.40952380952381">PWM0</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="76.54285714285714" y="33.30952380952381"/>
|
||||
<g transform="translate(79.95721649680203,32.609523809523814)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="81.44285714285714" y="33.40952380952381">PA14</text>
|
||||
<g transform="translate(83.55721649680203,32.609523809523814)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="84.74285714285713" y="33.40952380952381">D5</text>
|
||||
<g transform="translate(86.55721649680203,32.609523809523814)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="88.04285714285713" y="33.40952380952381">PWM0</text>
|
||||
<g transform="translate(90.15721649680204,32.609523809523814)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="91.64285714285714" y="33.40952380952381">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="76.54285714285714" y="31.30952380952381"/>
|
||||
<g transform="translate(79.95721649680203,30.60952380952381)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="81.44285714285714" y="31.40952380952381">PA15</text>
|
||||
<g transform="translate(83.55721649680203,30.60952380952381)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="84.74285714285713" y="31.40952380952381">D6</text>
|
||||
<g transform="translate(86.55721649680203,30.60952380952381)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="88.04285714285713" y="31.40952380952381">PWM1</text>
|
||||
<g transform="translate(90.15721649680204,30.60952380952381)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="91.64285714285714" y="31.40952380952381">SWDIO</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 21 KiB |
1
boards/wr2e/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
28
boards/wr2e/variant.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
/* This file was auto-generated from wr2e.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D1: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
|
||||
{PA_19, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D2: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D3: PA18, UART0_RX, SPI0_SCK, SPI1_SCK, I2C1_SCL, SD_D2, TMR4_TRIG, I2S0_MCK, WAKE0
|
||||
{PA_18, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D4: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
|
||||
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D5: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D6: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// A1: ADC2
|
||||
{AD_2, PIN_ADC, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
38
boards/wr2e/variant.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/* This file was auto-generated from wr2e.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 8
|
||||
#define NUM_DIGITAL_PINS 7
|
||||
#define NUM_ANALOG_INPUTS 2
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A0 1u // PA_19
|
||||
#define PIN_A1 7u // AD_2
|
||||
#define A0 PIN_A0
|
||||
#define A1 PIN_A1
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 0
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 1
|
||||
#define PIN_WIRE1_SCL 3u // PA_18
|
||||
#define PIN_WIRE1_SDA 4u // PA_23
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 1
|
||||
#define PIN_SERIAL0_CTS 1u // PA_19
|
||||
#define PIN_SERIAL0_RX 3u // PA_18
|
||||
#define PIN_SERIAL0_TX 4u // PA_23
|
||||
20
boards/wr2l.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"realtek-ambz-bx",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr2l-base",
|
||||
"pcb/wr2l"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bx",
|
||||
"variant": "wr2l"
|
||||
},
|
||||
"name": "WR2L Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wifiwr2lmodule?id=K9605tnbj7gva",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR2L"
|
||||
}
|
||||
}
|
||||
60
boards/wr2l/README.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# WR2L Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wifiwr2lmodule?id=K9605tnbj7gva)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|---------------------------------
|
||||
MCU | RTL8710BX
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 62.5 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 5x GPIO, 4x PWM, 1x UART, 1x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------------|-----------|----------|------------------|------|------
|
||||
D0 | PA15 | | | | PWM1 | SWDIO
|
||||
D1 | PA14 | | | | PWM0 | SWCLK
|
||||
D2 | PA05 | | | | PWM4 |
|
||||
D3 | PA19 | UART0_CTS | I2C0_SDA | SPI0_CS, SPI1_CS | |
|
||||
D4 | PA12 | | | | PWM3 |
|
||||
A0 | PA19, ADC1 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
157
boards/wr2l/pinout_wr2l.svg
Normal file
@@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,85.33333333333333,41.666666666666664" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="41.666666666666664" stroke="black" stroke-width="0.1" width="85.33333333333333" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="17.2" stroke="#b5a739" stroke-width="0.1" width="14.9" x="37.016666666666666" y="7.783333333333332"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin1.trace" width="1.2" x="37.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="38.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin1.cast" r="0.35"/>
|
||||
<circle cx="38.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin1.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin2.trace" width="1.2" x="39.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="40.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin2.cast" r="0.35"/>
|
||||
<circle cx="40.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin2.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin3.trace" width="1.2" x="41.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="42.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin3.cast" r="0.35"/>
|
||||
<circle cx="42.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin3.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin4.trace" width="1.2" x="43.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="44.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin4.cast" r="0.35"/>
|
||||
<circle cx="44.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin4.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin5.trace" width="1.2" x="45.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="46.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin5.cast" r="0.35"/>
|
||||
<circle cx="46.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin5.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin6.trace" width="1.2" x="47.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="48.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin6.cast" r="0.35"/>
|
||||
<circle cx="48.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin6.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin7.trace" width="1.2" x="49.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="50.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin7.cast" r="0.35"/>
|
||||
<circle cx="50.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin7.hole" r="0.35"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="38.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="38.16666666666667" y="27.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label1.anchor" width="0.0" x="38.66666666666667" y="27.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="40.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="38.16666666666667" y="29.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label2.anchor" width="0.0" x="38.66666666666667" y="29.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="42.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="38.16666666666667" y="31.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label3.anchor" width="0.0" x="38.66666666666667" y="31.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="8.0" width="0.2" x="44.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="6.2" x="38.16666666666667" y="33.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label4.anchor" width="0.0" x="38.66666666666667" y="33.13333333333333"/>
|
||||
<rect fill="#4e4c4c" height="8.0" width="0.2" x="46.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="46.46666666666667" y="33.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label5.anchor" width="0.0" x="50.16666666666667" y="33.13333333333333"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="48.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="48.46666666666667" y="31.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label6.anchor" width="0.0" x="50.16666666666667" y="31.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="50.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="50.46666666666667" y="29.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label7.anchor" width="0.0" x="50.16666666666667" y="29.133333333333333"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="40.96666666666667" y="13.233333333333333">WR2L</text>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="37.766666666666666" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="4.6" x="37.766666666666666" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="39.96666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="41.86666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="41.86666666666667" y="10.733333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="44.36666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.7" x="44.36666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="46.56666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="46.56666666666667" y="10.733333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="49.06666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.5" x="49.06666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="4.4" width="0.5" x="51.06666666666667" y="8.233333333333333"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="9.0" rx="0.5" ry="0.5" width="13.6" x="37.66666666666667" y="13.733333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="27.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,26.333333333333332)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="27.133333333333333">PA15</text>
|
||||
<g transform="translate(28.781026020611566,26.333333333333332)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="27.133333333333333">D0</text>
|
||||
<g transform="translate(25.181026020611565,26.333333333333332)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="27.133333333333333">PWM1</text>
|
||||
<g transform="translate(21.581026020611564,26.333333333333332)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="23.066666666666666" y="27.133333333333333">SWDIO</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="29.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,28.333333333333332)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="29.133333333333333">PA14</text>
|
||||
<g transform="translate(28.781026020611566,28.333333333333332)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="29.133333333333333">D1</text>
|
||||
<g transform="translate(25.181026020611565,28.333333333333332)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="29.133333333333333">PWM0</text>
|
||||
<g transform="translate(21.581026020611564,28.333333333333332)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="23.066666666666666" y="29.133333333333333">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="31.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,30.333333333333332)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="31.133333333333333">PA05</text>
|
||||
<g transform="translate(28.781026020611566,30.333333333333332)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="31.133333333333333">D2</text>
|
||||
<g transform="translate(25.181026020611565,30.333333333333332)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="31.133333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="33.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,32.333333333333336)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="33.13333333333333">PA19</text>
|
||||
<g transform="translate(28.181026020611565,32.333333333333336)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.666666666666668" y="33.13333333333333">ADC1</text>
|
||||
<g transform="translate(25.181026020611565,32.333333333333336)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.366666666666667" y="33.13333333333333">D3</text>
|
||||
<g transform="translate(22.181026020611565,32.333333333333336)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="23.366666666666667" y="33.13333333333333">A0</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.66666666666667" y="33.03333333333333"/>
|
||||
<g transform="translate(54.08102602061157,32.333333333333336)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.56666666666667" y="33.13333333333333">PA12</text>
|
||||
<g transform="translate(57.681026020611576,32.333333333333336)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="58.866666666666674" y="33.13333333333333">D4</text>
|
||||
<g transform="translate(60.681026020611576,32.333333333333336)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.16666666666668" y="33.13333333333333">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.66666666666667" y="31.03333333333333"/>
|
||||
<g transform="translate(54.08102602061157,30.333333333333332)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.56666666666667" y="31.133333333333333">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.66666666666667" y="29.03333333333333"/>
|
||||
<g transform="translate(54.08102602061157,28.333333333333332)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.56666666666667" y="29.133333333333333">3V3</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
1
boards/wr2l/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
22
boards/wr2l/variant.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
/* This file was auto-generated from wr2l.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D1: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D2: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D3: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
|
||||
{PA_19, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D4: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
31
boards/wr2l/variant.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/* This file was auto-generated from wr2l.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 5
|
||||
#define NUM_DIGITAL_PINS 5
|
||||
#define NUM_ANALOG_INPUTS 1
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A0 3u // PA_19
|
||||
#define A0 PIN_A0
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 0
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 0
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 0
|
||||
20
boards/wr2le.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"realtek-ambz-bx",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr2l-base",
|
||||
"pcb/wr2le"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bx",
|
||||
"variant": "wr2le"
|
||||
},
|
||||
"name": "WR2LE Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wr2le?id=K9eio9y9e8i8c",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR2LE"
|
||||
}
|
||||
}
|
||||
59
boards/wr2le/README.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# WR2LE Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wr2le?id=K9eio9y9e8i8c)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|-------------------------
|
||||
MCU | RTL8710BX
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 62.5 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 5x GPIO, 5x PWM, 1x UART
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------|-----------|----------|----------------------|------|------
|
||||
D0 | PA15 | | | | PWM1 | SWDIO
|
||||
D1 | PA14 | | | | PWM0 | SWCLK
|
||||
D2 | PA05 | | | | PWM4 |
|
||||
D3 | PA22 | UART0_RTS | I2C0_SCL | SPI0_MISO, SPI1_MISO | PWM5 |
|
||||
D4 | PA12 | | | | PWM3 |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
153
boards/wr2le/pinout_wr2le.svg
Normal file
@@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,85.33333333333333,41.666666666666664" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="41.666666666666664" stroke="black" stroke-width="0.1" width="85.33333333333333" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="17.2" stroke="#b5a739" stroke-width="0.1" width="14.9" x="37.016666666666666" y="7.783333333333332"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin1.trace" width="1.2" x="37.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="38.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin1.cast" r="0.35"/>
|
||||
<circle cx="38.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin1.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin2.trace" width="1.2" x="39.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="40.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin2.cast" r="0.35"/>
|
||||
<circle cx="40.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin2.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin3.trace" width="1.2" x="41.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="42.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin3.cast" r="0.35"/>
|
||||
<circle cx="42.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin3.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin4.trace" width="1.2" x="43.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="44.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin4.cast" r="0.35"/>
|
||||
<circle cx="44.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin4.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin5.trace" width="1.2" x="45.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="46.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin5.cast" r="0.35"/>
|
||||
<circle cx="46.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin5.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin6.trace" width="1.2" x="47.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="48.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin6.cast" r="0.35"/>
|
||||
<circle cx="48.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin6.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.7" id="pins_horz7_2mm_0.7mm.pin7.trace" width="1.2" x="49.86666666666667" y="23.333333333333336"/>
|
||||
<circle cx="50.46666666666667" cy="25.03333333333333" fill="#fff" id="pins_horz7_2mm_0.7mm.pin7.cast" r="0.35"/>
|
||||
<circle cx="50.46666666666667" cy="23.983333333333334" fill="#fff" id="pins_horz7_2mm_0.7mm.pin7.hole" r="0.35"/>
|
||||
<rect fill="#4e4c4c" height="2.0" width="0.2" x="38.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="38.16666666666667" y="27.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label1.anchor" width="0.0" x="38.66666666666667" y="27.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="40.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="38.16666666666667" y="29.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label2.anchor" width="0.0" x="38.66666666666667" y="29.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="42.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="38.16666666666667" y="31.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label3.anchor" width="0.0" x="38.66666666666667" y="31.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="8.0" width="0.2" x="44.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="6.2" x="38.16666666666667" y="33.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label4.anchor" width="0.0" x="38.66666666666667" y="33.13333333333333"/>
|
||||
<rect fill="#4e4c4c" height="8.0" width="0.2" x="46.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="4.2" x="46.46666666666667" y="33.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label5.anchor" width="0.0" x="50.16666666666667" y="33.13333333333333"/>
|
||||
<rect fill="#4e4c4c" height="6.0" width="0.2" x="48.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.2" x="48.46666666666667" y="31.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label6.anchor" width="0.0" x="50.16666666666667" y="31.133333333333333"/>
|
||||
<rect fill="#4e4c4c" height="4.0" width="0.2" x="50.36666666666667" y="25.233333333333334"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="0.2" x="50.46666666666667" y="29.03333333333333"/>
|
||||
<rect height="0.0" id="tuya2l.front.pins.label7.anchor" width="0.0" x="50.16666666666667" y="29.133333333333333"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="40.96666666666667" y="13.233333333333333">WR2LE</text>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="37.766666666666666" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="4.6" x="37.766666666666666" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="39.96666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="41.86666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="41.86666666666667" y="10.733333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="44.36666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.7" x="44.36666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="46.56666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="46.56666666666667" y="10.733333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="49.06666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.5" x="49.06666666666667" y="8.233333333333333"/>
|
||||
<rect fill="#58839b" height="4.4" width="0.5" x="51.06666666666667" y="8.233333333333333"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="9.0" rx="0.5" ry="0.5" width="13.6" x="37.66666666666667" y="13.733333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="27.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,26.333333333333332)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="27.133333333333333">PA15</text>
|
||||
<g transform="translate(28.781026020611566,26.333333333333332)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="27.133333333333333">D0</text>
|
||||
<g transform="translate(25.181026020611565,26.333333333333332)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="27.133333333333333">PWM1</text>
|
||||
<g transform="translate(21.581026020611564,26.333333333333332)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="23.066666666666666" y="27.133333333333333">SWDIO</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="29.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,28.333333333333332)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="29.133333333333333">PA14</text>
|
||||
<g transform="translate(28.781026020611566,28.333333333333332)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="29.133333333333333">D1</text>
|
||||
<g transform="translate(25.181026020611565,28.333333333333332)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="29.133333333333333">PWM0</text>
|
||||
<g transform="translate(21.581026020611564,28.333333333333332)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="23.066666666666666" y="29.133333333333333">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="31.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,30.333333333333332)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="31.133333333333333">PA05</text>
|
||||
<g transform="translate(28.781026020611566,30.333333333333332)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="31.133333333333333">D2</text>
|
||||
<g transform="translate(25.181026020611565,30.333333333333332)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="31.133333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="35.56666666666667" y="33.03333333333333"/>
|
||||
<g transform="translate(31.781026020611566,32.333333333333336)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="33.26666666666667" y="33.13333333333333">PA22</text>
|
||||
<g transform="translate(28.781026020611566,32.333333333333336)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.96666666666667" y="33.13333333333333">D3</text>
|
||||
<g transform="translate(25.181026020611565,32.333333333333336)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="26.666666666666668" y="33.13333333333333">PWM5</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.66666666666667" y="33.03333333333333"/>
|
||||
<g transform="translate(54.08102602061157,32.333333333333336)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.56666666666667" y="33.13333333333333">PA12</text>
|
||||
<g transform="translate(57.681026020611576,32.333333333333336)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="58.866666666666674" y="33.13333333333333">D4</text>
|
||||
<g transform="translate(60.681026020611576,32.333333333333336)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.16666666666668" y="33.13333333333333">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.66666666666667" y="31.03333333333333"/>
|
||||
<g transform="translate(54.08102602061157,30.333333333333332)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.56666666666667" y="31.133333333333333">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.66666666666667" y="29.03333333333333"/>
|
||||
<g transform="translate(54.08102602061157,28.333333333333332)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.56666666666667" y="29.133333333333333">3V3</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
1
boards/wr2le/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
22
boards/wr2le/variant.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
/* This file was auto-generated from wr2le.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D1: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D2: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D3: PA22, UART0_RTS, SPI0_MISO, SPI1_MISO, I2C0_SCL, SD_D0, PWM5, I2S0_WS, WAKE2
|
||||
{PA_22, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D4: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
25
boards/wr2le/variant.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* This file was auto-generated from wr2le.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 5
|
||||
#define NUM_DIGITAL_PINS 5
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 0
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 0
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 0
|
||||
@@ -3,6 +3,7 @@
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr3-base",
|
||||
"pcb/wr3"
|
||||
],
|
||||
"build": {
|
||||
|
||||
19
boards/wr3e.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr3-base",
|
||||
"pcb/wr3e"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bn",
|
||||
"variant": "wr3e"
|
||||
},
|
||||
"name": "WR3E Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wr3e-module-datasheet?id=K9elwlqbfosbc",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR3E"
|
||||
}
|
||||
}
|
||||
67
boards/wr3e/README.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# WR3E Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wr3e-module-datasheet?id=K9elwlqbfosbc)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|----------------------------------
|
||||
MCU | RTL8710BN
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 125 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 11x GPIO, 6x PWM, 2x UART, 2x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------------|-----------|----------|----------------------|------|------
|
||||
D0 | PA29 | UART2_RX | I2C0_SCL | | PWM4 |
|
||||
D1 | PA14 | | | | PWM0 | SWCLK
|
||||
D2 | PA15 | | | | PWM1 | SWDIO
|
||||
D3 | PA22 | UART0_RTS | I2C0_SCL | SPI0_MISO, SPI1_MISO | PWM5 |
|
||||
D4 | PA00 | | | | PWM2 |
|
||||
D5 | PA30 | UART2_TX | I2C0_SDA | | PWM4 |
|
||||
D6 | PA19 | UART0_CTS | I2C0_SDA | SPI0_CS, SPI1_CS | |
|
||||
D7 | PA05 | | | | PWM4 |
|
||||
D8 | PA12 | | | | PWM3 |
|
||||
D9 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | |
|
||||
D10 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 |
|
||||
A0 | PA19, ADC1 | | | | |
|
||||
A1 | ADC2 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
309
boards/wr3e/pinout_wr3e.svg
Normal file
@@ -0,0 +1,309 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,85.33333333333333,41.666666666666664" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="41.666666666666664" stroke="black" stroke-width="0.1" width="85.33333333333333" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="23.9" stroke="#b5a739" stroke-width="0.1" width="15.9" x="32.86666666666666" y="8.883333333333333"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin1.trace" width="0.7" x="32.81666666666666" y="16.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.left.pin1.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin2.trace" width="0.7" x="32.81666666666666" y="18.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.left.pin2.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin3.trace" width="0.7" x="32.81666666666666" y="20.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.left.pin3.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin4.trace" width="0.7" x="32.81666666666666" y="22.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.left.pin4.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin5.trace" width="0.7" x="32.81666666666666" y="24.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.left.pin5.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin6.trace" width="0.7" x="32.81666666666666" y="26.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.left.pin6.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin7.trace" width="0.7" x="32.81666666666666" y="28.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.left.pin7.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin8.trace" width="0.7" x="32.81666666666666" y="30.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.left.pin8.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin1.trace" width="0.7" x="48.11666666666666" y="16.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.right.pin1.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin2.trace" width="0.7" x="48.11666666666666" y="18.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.right.pin2.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin3.trace" width="0.7" x="48.11666666666666" y="20.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.right.pin3.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin4.trace" width="0.7" x="48.11666666666666" y="22.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.right.pin4.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin5.trace" width="0.7" x="48.11666666666666" y="24.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.right.pin5.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin6.trace" width="0.7" x="48.11666666666666" y="26.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.right.pin6.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin7.trace" width="0.7" x="48.11666666666666" y="28.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.right.pin7.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin8.trace" width="0.7" x="48.11666666666666" y="30.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.right.pin8.cast" r="0.35"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="16.8" rx="0.5" ry="0.5" width="13.6" x="34.016666666666666" y="15.783333333333331"/>
|
||||
<rect fill="#fff" height="0.15" width="15.0" x="33.31666666666666" y="15.033333333333331"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="39.81666666666666" y="14.333333333333332">WR3E</text>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="33.916666666666664" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="4.6" x="33.916666666666664" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="36.11666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="38.016666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="38.016666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="40.516666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.7" x="40.516666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="42.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="42.71666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="45.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.5" x="45.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="4.4" width="0.5" x="47.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="17.08333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(25.931026020611558,18.38333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="19.18333333333333">ADC2</text>
|
||||
<g transform="translate(22.93102602061156,18.38333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="19.18333333333333">A1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(25.931026020611558,20.38333333333333)">
|
||||
<rect fill="#ed602e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="21.18333333333333">CEN</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(25.931026020611558,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="23.18333333333333">PA29</text>
|
||||
<g transform="translate(22.93102602061156,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="23.18333333333333">D0</text>
|
||||
<g transform="translate(19.33102602061156,22.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="23.18333333333333">RX2</text>
|
||||
<g transform="translate(15.731026020611564,22.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="23.18333333333333">SCL0</text>
|
||||
<g transform="translate(12.131026020611563,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="13.616666666666664" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="25.183333333333334">PA14</text>
|
||||
<g transform="translate(22.93102602061156,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="25.183333333333334">D1</text>
|
||||
<g transform="translate(19.33102602061156,24.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="25.183333333333334">PWM0</text>
|
||||
<g transform="translate(15.731026020611564,24.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="25.183333333333334">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="27.183333333333334">PA15</text>
|
||||
<g transform="translate(22.93102602061156,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="27.183333333333334">D2</text>
|
||||
<g transform="translate(19.33102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="27.183333333333334">PWM1</text>
|
||||
<g transform="translate(15.731026020611564,26.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="27.183333333333334">SWDIO</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,28.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="29.183333333333334">PA22</text>
|
||||
<g transform="translate(22.93102602061156,28.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="29.183333333333334">D3</text>
|
||||
<g transform="translate(19.33102602061156,28.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="29.183333333333334">SCL0</text>
|
||||
<g transform="translate(15.731026020611564,28.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="29.183333333333334">MISO0</text>
|
||||
<g transform="translate(12.131026020611563,28.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="13.616666666666664" y="29.183333333333334">MISO1</text>
|
||||
<g transform="translate(8.531026020611561,28.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="10.016666666666662" y="29.183333333333334">PWM5</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,30.383333333333333)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="31.183333333333334">3V3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,30.383333333333333)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="31.183333333333334">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,28.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="29.183333333333334">PA00</text>
|
||||
<g transform="translate(56.33102602061157,28.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="29.183333333333334">D4</text>
|
||||
<g transform="translate(59.33102602061157,28.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="29.183333333333334">PWM2</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="27.183333333333334">PA30</text>
|
||||
<g transform="translate(56.33102602061157,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="27.183333333333334">D5</text>
|
||||
<g transform="translate(59.33102602061157,26.383333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="27.183333333333334">TX2</text>
|
||||
<g transform="translate(62.93102602061157,26.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.41666666666667" y="27.183333333333334">SDA0</text>
|
||||
<g transform="translate(66.53102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="68.01666666666667" y="27.183333333333334">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="25.183333333333334">PA19</text>
|
||||
<g transform="translate(56.33102602061157,24.383333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.81666666666667" y="25.183333333333334">ADC1</text>
|
||||
<g transform="translate(59.93102602061157,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.11666666666667" y="25.183333333333334">D6</text>
|
||||
<g transform="translate(62.93102602061157,24.383333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.11666666666667" y="25.183333333333334">A0</text>
|
||||
<g transform="translate(65.93102602061157,24.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="67.41666666666667" y="25.183333333333334">SDA0</text>
|
||||
<g transform="translate(69.53102602061156,24.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="71.01666666666667" y="25.183333333333334">CS0</text>
|
||||
<g transform="translate(73.13102602061156,24.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="74.61666666666666" y="25.183333333333334">CS1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="23.18333333333333">PA05</text>
|
||||
<g transform="translate(56.33102602061157,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="23.18333333333333">D7</text>
|
||||
<g transform="translate(59.33102602061157,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,20.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="21.18333333333333">PA12</text>
|
||||
<g transform="translate(56.33102602061157,20.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="21.18333333333333">D8</text>
|
||||
<g transform="translate(59.33102602061157,20.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="21.18333333333333">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,18.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="19.18333333333333">PA18</text>
|
||||
<g transform="translate(56.33102602061157,18.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="19.18333333333333">D9</text>
|
||||
<g transform="translate(59.33102602061157,18.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="19.18333333333333">RX0</text>
|
||||
<g transform="translate(62.93102602061157,18.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.41666666666667" y="19.18333333333333">SCL1</text>
|
||||
<g transform="translate(66.53102602061156,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="68.01666666666667" y="19.18333333333333">SCK0</text>
|
||||
<g transform="translate(70.13102602061156,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="71.61666666666666" y="19.18333333333333">SCK1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="17.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,16.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="17.18333333333333">PA23</text>
|
||||
<g transform="translate(56.33102602061157,16.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="17.18333333333333">D10</text>
|
||||
<g transform="translate(59.33102602061157,16.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="17.18333333333333">TX0</text>
|
||||
<g transform="translate(62.93102602061157,16.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.41666666666667" y="17.18333333333333">SDA1</text>
|
||||
<g transform="translate(66.53102602061156,16.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="68.01666666666667" y="17.18333333333333">MOSI0</text>
|
||||
<g transform="translate(70.13102602061156,16.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="71.61666666666666" y="17.18333333333333">MOSI1</text>
|
||||
<g transform="translate(73.73102602061157,16.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="75.21666666666667" y="17.18333333333333">PWM0</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 28 KiB |
1
boards/wr3e/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
36
boards/wr3e/variant.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
/* This file was auto-generated from wr3e.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA29, UART2_RX, I2C0_SCL, PWM4
|
||||
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D1: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D2: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D3: PA22, UART0_RTS, SPI0_MISO, SPI1_MISO, I2C0_SCL, SD_D0, PWM5, I2S0_WS, WAKE2
|
||||
{PA_22, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D4: PA00, PWM2
|
||||
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D5: PA30, UART2_TX, I2C0_SDA, PWM4
|
||||
{PA_30, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D6: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
|
||||
{PA_19, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D7: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D8: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D9: PA18, UART0_RX, SPI0_SCK, SPI1_SCK, I2C1_SCL, SD_D2, TMR4_TRIG, I2S0_MCK, WAKE0
|
||||
{PA_18, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D10: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
|
||||
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// A1: ADC2
|
||||
{AD_2, PIN_ADC, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
53
boards/wr3e/variant.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* This file was auto-generated from wr3e.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 12
|
||||
#define NUM_ANALOG_INPUTS 2
|
||||
#define NUM_DIGITAL_PINS 11
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A1 11u // AD_2
|
||||
#define PIN_A0 6u // PA_19
|
||||
#define A1 PIN_A1
|
||||
#define A0 PIN_A0
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 2
|
||||
#define PIN_SPI0_CS 6u // PA_19
|
||||
#define PIN_SPI0_MISO 3u // PA_22
|
||||
#define PIN_SPI0_MOSI 10u // PA_23
|
||||
#define PIN_SPI0_SCK 9u // PA_18
|
||||
#define PIN_SPI1_CS 6u // PA_19
|
||||
#define PIN_SPI1_MISO 3u // PA_22
|
||||
#define PIN_SPI1_MOSI 10u // PA_23
|
||||
#define PIN_SPI1_SCK 9u // PA_18
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 2
|
||||
#define PIN_WIRE0_SCL_0 0u // PA_29
|
||||
#define PIN_WIRE0_SCL_1 3u // PA_22
|
||||
#define PIN_WIRE0_SDA_0 5u // PA_30
|
||||
#define PIN_WIRE0_SDA_1 6u // PA_19
|
||||
#define PIN_WIRE1_SCL 9u // PA_18
|
||||
#define PIN_WIRE1_SDA 10u // PA_23
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 2
|
||||
#define PIN_SERIAL0_CTS 6u // PA_19
|
||||
#define PIN_SERIAL0_RTS 3u // PA_22
|
||||
#define PIN_SERIAL0_RX 9u // PA_18
|
||||
#define PIN_SERIAL0_TX 10u // PA_23
|
||||
#define PIN_SERIAL2_RX 0u // PA_29
|
||||
#define PIN_SERIAL2_TX 5u // PA_30
|
||||
20
boards/wr3l.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"realtek-ambz-bx",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr3l-base",
|
||||
"pcb/wr3"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bx",
|
||||
"variant": "wr3l"
|
||||
},
|
||||
"name": "WR3L Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wifiwr3lmodule?id=K9605tt0kveqm",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR3L"
|
||||
}
|
||||
}
|
||||
67
boards/wr3l/README.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# WR3L Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wifiwr3lmodule?id=K9605tt0kveqm)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|----------------------------------
|
||||
MCU | RTL8710BX
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 62.5 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 11x GPIO, 6x PWM, 2x UART, 2x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------------|-----------|----------|----------------------|------|------
|
||||
D0 | PA22 | UART0_RTS | I2C0_SCL | SPI0_MISO, SPI1_MISO | PWM5 |
|
||||
D1 | PA19 | UART0_CTS | I2C0_SDA | SPI0_CS, SPI1_CS | |
|
||||
D2 | PA14 | | | | PWM0 | SWCLK
|
||||
D3 | PA15 | | | | PWM1 | SWDIO
|
||||
D4 | PA00 | | | | PWM2 |
|
||||
D5 | PA29 | UART2_RX | I2C0_SCL | | PWM4 |
|
||||
D6 | PA30 | UART2_TX | I2C0_SDA | | PWM4 |
|
||||
D7 | PA05 | | | | PWM4 |
|
||||
D8 | PA12 | | | | PWM3 |
|
||||
D9 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | |
|
||||
D10 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 |
|
||||
A0 | PA19, ADC1 | | | | |
|
||||
A1 | ADC2 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
325
boards/wr3l/pinout_wr3l.svg
Normal file
@@ -0,0 +1,325 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,85.33333333333333,41.666666666666664" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="41.666666666666664" stroke="black" stroke-width="0.1" width="85.33333333333333" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#f9f9f9"/>
|
||||
<stop offset="100%" stop-color="#ededed"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="23.9" stroke="#b5a739" stroke-width="0.1" width="15.9" x="34.36666666666666" y="8.883333333333333"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin1.trace" width="1.7" x="34.31666666666666" y="16.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.left.pin1.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.left.pin1.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin2.trace" width="1.7" x="34.31666666666666" y="18.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.left.pin2.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.left.pin2.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin3.trace" width="1.7" x="34.31666666666666" y="20.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.left.pin3.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.left.pin3.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin4.trace" width="1.7" x="34.31666666666666" y="22.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.left.pin4.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.left.pin4.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin5.trace" width="1.7" x="34.31666666666666" y="24.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.left.pin5.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.left.pin5.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin6.trace" width="1.7" x="34.31666666666666" y="26.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.left.pin6.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.left.pin6.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin7.trace" width="1.7" x="34.31666666666666" y="28.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.left.pin7.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.left.pin7.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin8.trace" width="1.7" x="34.31666666666666" y="30.583333333333332"/>
|
||||
<circle cx="34.31666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.left.pin8.cast" r="0.35"/>
|
||||
<circle cx="35.36666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.left.pin8.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin1.trace" width="1.7" x="48.61666666666666" y="16.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.right.pin1.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.right.pin1.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin2.trace" width="1.7" x="48.61666666666666" y="18.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.right.pin2.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.right.pin2.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin3.trace" width="1.7" x="48.61666666666666" y="20.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.right.pin3.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.right.pin3.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin4.trace" width="1.7" x="48.61666666666666" y="22.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.right.pin4.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.right.pin4.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin5.trace" width="1.7" x="48.61666666666666" y="24.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.right.pin5.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.right.pin5.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin6.trace" width="1.7" x="48.61666666666666" y="26.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.right.pin6.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.right.pin6.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin7.trace" width="1.7" x="48.61666666666666" y="28.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.right.pin7.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.right.pin7.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin8.trace" width="1.7" x="48.61666666666666" y="30.583333333333332"/>
|
||||
<circle cx="50.31666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.right.pin8.cast" r="0.35"/>
|
||||
<circle cx="49.266666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.right.pin8.hole" r="0.35"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="15.8" rx="0.5" ry="0.5" width="12.0" x="36.31666666666666" y="15.783333333333331"/>
|
||||
<rect fill="#000" height="0.15" width="15.0" x="34.81666666666666" y="15.033333333333331"/>
|
||||
<text fill="#000" font-family="Consolas" font-size="1.0" x="41.31666666666666" y="14.333333333333332">WR3L</text>
|
||||
<rect fill="#e0e0e0" height="5.2" width="0.5" x="35.416666666666664" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="0.5" width="4.6" x="35.416666666666664" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="5.2" width="0.5" x="37.61666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="3.0" width="0.5" x="39.516666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="0.5" width="3.0" x="39.516666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#e0e0e0" height="3.0" width="0.5" x="42.016666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="0.5" width="2.7" x="42.016666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="3.0" width="0.5" x="44.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="0.5" width="3.0" x="44.21666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#e0e0e0" height="3.0" width="0.5" x="46.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="0.5" width="2.5" x="46.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#e0e0e0" height="4.4" width="0.5" x="48.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="17.08333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(27.431026020611558,18.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="19.18333333333333">PA22</text>
|
||||
<g transform="translate(24.43102602061156,18.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.616666666666664" y="19.18333333333333">D0</text>
|
||||
<g transform="translate(20.83102602061156,18.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.316666666666663" y="19.18333333333333">SCL0</text>
|
||||
<g transform="translate(17.231026020611562,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="18.716666666666665" y="19.18333333333333">MISO0</text>
|
||||
<g transform="translate(13.631026020611563,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="15.116666666666664" y="19.18333333333333">MISO1</text>
|
||||
<g transform="translate(10.031026020611561,18.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="11.516666666666662" y="19.18333333333333">PWM5</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(27.431026020611558,20.38333333333333)">
|
||||
<rect fill="#ed602e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="21.18333333333333">CEN</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(27.431026020611558,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="23.18333333333333">PA19</text>
|
||||
<g transform="translate(23.83102602061156,22.38333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.316666666666663" y="23.18333333333333">ADC1</text>
|
||||
<g transform="translate(20.83102602061156,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.016666666666662" y="23.18333333333333">D1</text>
|
||||
<g transform="translate(17.83102602061156,22.38333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="19.016666666666662" y="23.18333333333333">A0</text>
|
||||
<g transform="translate(14.23102602061156,22.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="15.716666666666661" y="23.18333333333333">SDA0</text>
|
||||
<g transform="translate(10.631026020611559,22.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="12.11666666666666" y="23.18333333333333">CS0</text>
|
||||
<g transform="translate(7.031026020611558,22.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="8.516666666666659" y="23.18333333333333">CS1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(27.431026020611558,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="25.183333333333334">PA14</text>
|
||||
<g transform="translate(24.43102602061156,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.616666666666664" y="25.183333333333334">D2</text>
|
||||
<g transform="translate(20.83102602061156,24.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.316666666666663" y="25.183333333333334">PWM0</text>
|
||||
<g transform="translate(17.231026020611562,24.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="18.716666666666665" y="25.183333333333334">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(27.431026020611558,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="27.183333333333334">PA15</text>
|
||||
<g transform="translate(24.43102602061156,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.616666666666664" y="27.183333333333334">D3</text>
|
||||
<g transform="translate(20.83102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.316666666666663" y="27.183333333333334">PWM1</text>
|
||||
<g transform="translate(17.231026020611562,26.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="18.716666666666665" y="27.183333333333334">SWDIO</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(27.431026020611558,28.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="29.183333333333334">PA00</text>
|
||||
<g transform="translate(24.43102602061156,28.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.616666666666664" y="29.183333333333334">D4</text>
|
||||
<g transform="translate(20.83102602061156,28.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.316666666666663" y="29.183333333333334">PWM2</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.21666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(27.431026020611558,30.383333333333333)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="28.91666666666666" y="31.183333333333334">3V3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(54.231026020611566,30.383333333333333)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="31.183333333333334">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(54.231026020611566,28.383333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="29.183333333333334">ADC2</text>
|
||||
<g transform="translate(57.83102602061157,28.383333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="29.183333333333334">A1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(54.231026020611566,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="27.183333333333334">PA29</text>
|
||||
<g transform="translate(57.83102602061157,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="27.183333333333334">D5</text>
|
||||
<g transform="translate(60.83102602061157,26.383333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.31666666666667" y="27.183333333333334">RX2</text>
|
||||
<g transform="translate(64.43102602061157,26.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="65.91666666666667" y="27.183333333333334">SCL0</text>
|
||||
<g transform="translate(68.03102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="69.51666666666667" y="27.183333333333334">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(54.231026020611566,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="25.183333333333334">PA30</text>
|
||||
<g transform="translate(57.83102602061157,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="25.183333333333334">D6</text>
|
||||
<g transform="translate(60.83102602061157,24.383333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.31666666666667" y="25.183333333333334">TX2</text>
|
||||
<g transform="translate(64.43102602061157,24.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="65.91666666666667" y="25.183333333333334">SDA0</text>
|
||||
<g transform="translate(68.03102602061156,24.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="69.51666666666667" y="25.183333333333334">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(54.231026020611566,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="23.18333333333333">PA05</text>
|
||||
<g transform="translate(57.83102602061157,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="23.18333333333333">D7</text>
|
||||
<g transform="translate(60.83102602061157,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.31666666666667" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(54.231026020611566,20.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="21.18333333333333">PA12</text>
|
||||
<g transform="translate(57.83102602061157,20.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="21.18333333333333">D8</text>
|
||||
<g transform="translate(60.83102602061157,20.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.31666666666667" y="21.18333333333333">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(54.231026020611566,18.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="19.18333333333333">PA18</text>
|
||||
<g transform="translate(57.83102602061157,18.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="19.18333333333333">D9</text>
|
||||
<g transform="translate(60.83102602061157,18.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.31666666666667" y="19.18333333333333">RX0</text>
|
||||
<g transform="translate(64.43102602061157,18.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="65.91666666666667" y="19.18333333333333">SCL1</text>
|
||||
<g transform="translate(68.03102602061156,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="69.51666666666667" y="19.18333333333333">SCK0</text>
|
||||
<g transform="translate(71.63102602061156,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="73.11666666666666" y="19.18333333333333">SCK1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="50.81666666666666" y="17.08333333333333"/>
|
||||
<g transform="translate(54.231026020611566,16.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="55.71666666666667" y="17.18333333333333">PA23</text>
|
||||
<g transform="translate(57.83102602061157,16.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.016666666666666" y="17.18333333333333">D10</text>
|
||||
<g transform="translate(60.83102602061157,16.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.31666666666667" y="17.18333333333333">TX0</text>
|
||||
<g transform="translate(64.43102602061157,16.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="65.91666666666667" y="17.18333333333333">SDA1</text>
|
||||
<g transform="translate(68.03102602061156,16.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="69.51666666666667" y="17.18333333333333">MOSI0</text>
|
||||
<g transform="translate(71.63102602061156,16.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="73.11666666666666" y="17.18333333333333">MOSI1</text>
|
||||
<g transform="translate(75.23102602061157,16.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="76.71666666666667" y="17.18333333333333">PWM0</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 30 KiB |
1
boards/wr3l/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
36
boards/wr3l/variant.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
/* This file was auto-generated from wr3l.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA22, UART0_RTS, SPI0_MISO, SPI1_MISO, I2C0_SCL, SD_D0, PWM5, I2S0_WS, WAKE2
|
||||
{PA_22, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D1: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
|
||||
{PA_19, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D2: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D3: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D4: PA00, PWM2
|
||||
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D5: PA29, UART2_RX, I2C0_SCL, PWM4
|
||||
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D6: PA30, UART2_TX, I2C0_SDA, PWM4
|
||||
{PA_30, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D7: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D8: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D9: PA18, UART0_RX, SPI0_SCK, SPI1_SCK, I2C1_SCL, SD_D2, TMR4_TRIG, I2S0_MCK, WAKE0
|
||||
{PA_18, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D10: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
|
||||
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// A1: ADC2
|
||||
{AD_2, PIN_ADC, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
53
boards/wr3l/variant.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* This file was auto-generated from wr3l.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 12
|
||||
#define NUM_DIGITAL_PINS 11
|
||||
#define NUM_ANALOG_INPUTS 2
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A0 1u // PA_19
|
||||
#define PIN_A1 11u // AD_2
|
||||
#define A0 PIN_A0
|
||||
#define A1 PIN_A1
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 2
|
||||
#define PIN_SPI0_CS 1u // PA_19
|
||||
#define PIN_SPI0_MISO 0u // PA_22
|
||||
#define PIN_SPI0_MOSI 10u // PA_23
|
||||
#define PIN_SPI0_SCK 9u // PA_18
|
||||
#define PIN_SPI1_CS 1u // PA_19
|
||||
#define PIN_SPI1_MISO 0u // PA_22
|
||||
#define PIN_SPI1_MOSI 10u // PA_23
|
||||
#define PIN_SPI1_SCK 9u // PA_18
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 2
|
||||
#define PIN_WIRE0_SCL_0 0u // PA_22
|
||||
#define PIN_WIRE0_SCL_1 5u // PA_29
|
||||
#define PIN_WIRE0_SDA_0 1u // PA_19
|
||||
#define PIN_WIRE0_SDA_1 6u // PA_30
|
||||
#define PIN_WIRE1_SCL 9u // PA_18
|
||||
#define PIN_WIRE1_SDA 10u // PA_23
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 2
|
||||
#define PIN_SERIAL0_CTS 1u // PA_19
|
||||
#define PIN_SERIAL0_RTS 0u // PA_22
|
||||
#define PIN_SERIAL0_RX 9u // PA_18
|
||||
#define PIN_SERIAL0_TX 10u // PA_23
|
||||
#define PIN_SERIAL2_RX 5u // PA_29
|
||||
#define PIN_SERIAL2_TX 6u // PA_30
|
||||
20
boards/wr3le.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"realtek-ambz-bx",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr3l-base",
|
||||
"pcb/wr3e"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bx",
|
||||
"variant": "wr3le"
|
||||
},
|
||||
"name": "WR3LE Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wr3le?id=K986l7a1ha8tm",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR3LE"
|
||||
}
|
||||
}
|
||||
67
boards/wr3le/README.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# WR3LE Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wr3le?id=K986l7a1ha8tm)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|----------------------------------
|
||||
MCU | RTL8710BX
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 62.5 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 11x GPIO, 6x PWM, 2x UART, 2x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------------|-----------|----------|----------------------|------|------
|
||||
D0 | PA29 | UART2_RX | I2C0_SCL | | PWM4 |
|
||||
D1 | PA14 | | | | PWM0 | SWCLK
|
||||
D2 | PA15 | | | | PWM1 | SWDIO
|
||||
D3 | PA22 | UART0_RTS | I2C0_SCL | SPI0_MISO, SPI1_MISO | PWM5 |
|
||||
D4 | PA00 | | | | PWM2 |
|
||||
D5 | PA30 | UART2_TX | I2C0_SDA | | PWM4 |
|
||||
D6 | PA19 | UART0_CTS | I2C0_SDA | SPI0_CS, SPI1_CS | |
|
||||
D7 | PA05 | | | | PWM4 |
|
||||
D8 | PA12 | | | | PWM3 |
|
||||
D9 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | |
|
||||
D10 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 |
|
||||
A0 | PA19, ADC1 | | | | |
|
||||
A1 | ADC2 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
325
boards/wr3le/pinout_wr3le.svg
Normal file
@@ -0,0 +1,325 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,85.33333333333333,41.666666666666664" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="41.666666666666664" stroke="black" stroke-width="0.1" width="85.33333333333333" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#47a8cd"/>
|
||||
<stop offset="100%" stop-color="#008fb5"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="23.9" stroke="#b5a739" stroke-width="0.1" width="15.9" x="32.86666666666666" y="8.883333333333333"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin1.trace" width="1.7" x="32.81666666666666" y="16.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.left.pin1.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.left.pin1.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin2.trace" width="1.7" x="32.81666666666666" y="18.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.left.pin2.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.left.pin2.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin3.trace" width="1.7" x="32.81666666666666" y="20.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.left.pin3.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.left.pin3.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin4.trace" width="1.7" x="32.81666666666666" y="22.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.left.pin4.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.left.pin4.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin5.trace" width="1.7" x="32.81666666666666" y="24.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.left.pin5.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.left.pin5.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin6.trace" width="1.7" x="32.81666666666666" y="26.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.left.pin6.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.left.pin6.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin7.trace" width="1.7" x="32.81666666666666" y="28.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.left.pin7.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.left.pin7.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin8.trace" width="1.7" x="32.81666666666666" y="30.583333333333332"/>
|
||||
<circle cx="32.81666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.left.pin8.cast" r="0.35"/>
|
||||
<circle cx="33.86666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.left.pin8.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin1.trace" width="1.7" x="47.11666666666666" y="16.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.right.pin1.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.right.pin1.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin2.trace" width="1.7" x="47.11666666666666" y="18.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.right.pin2.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.right.pin2.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin3.trace" width="1.7" x="47.11666666666666" y="20.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.right.pin3.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.right.pin3.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin4.trace" width="1.7" x="47.11666666666666" y="22.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.right.pin4.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.right.pin4.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin5.trace" width="1.7" x="47.11666666666666" y="24.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.right.pin5.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.right.pin5.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin6.trace" width="1.7" x="47.11666666666666" y="26.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.right.pin6.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.right.pin6.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin7.trace" width="1.7" x="47.11666666666666" y="28.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.right.pin7.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.right.pin7.hole" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin8.trace" width="1.7" x="47.11666666666666" y="30.583333333333332"/>
|
||||
<circle cx="48.81666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.right.pin8.cast" r="0.35"/>
|
||||
<circle cx="47.766666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.right.pin8.hole" r="0.35"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="15.8" rx="0.5" ry="0.5" width="12.0" x="34.81666666666666" y="15.783333333333331"/>
|
||||
<rect fill="#fff" height="0.15" width="15.0" x="33.31666666666666" y="15.033333333333331"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="39.81666666666666" y="14.333333333333332">WR3LE</text>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="33.916666666666664" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="4.6" x="33.916666666666664" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="5.2" width="0.5" x="36.11666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="38.016666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="38.016666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="40.516666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.7" x="40.516666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="42.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="3.0" x="42.71666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#58839b" height="3.0" width="0.5" x="45.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="0.5" width="2.5" x="45.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#58839b" height="4.4" width="0.5" x="47.21666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="17.08333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(25.931026020611558,18.38333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="19.18333333333333">ADC2</text>
|
||||
<g transform="translate(22.93102602061156,18.38333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="19.18333333333333">A1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(25.931026020611558,20.38333333333333)">
|
||||
<rect fill="#ed602e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="21.18333333333333">CEN</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(25.931026020611558,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="23.18333333333333">PA29</text>
|
||||
<g transform="translate(22.93102602061156,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="23.18333333333333">D0</text>
|
||||
<g transform="translate(19.33102602061156,22.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="23.18333333333333">RX2</text>
|
||||
<g transform="translate(15.731026020611564,22.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="23.18333333333333">SCL0</text>
|
||||
<g transform="translate(12.131026020611563,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="13.616666666666664" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="25.183333333333334">PA14</text>
|
||||
<g transform="translate(22.93102602061156,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="25.183333333333334">D1</text>
|
||||
<g transform="translate(19.33102602061156,24.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="25.183333333333334">PWM0</text>
|
||||
<g transform="translate(15.731026020611564,24.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="25.183333333333334">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="27.183333333333334">PA15</text>
|
||||
<g transform="translate(22.93102602061156,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="27.183333333333334">D2</text>
|
||||
<g transform="translate(19.33102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="27.183333333333334">PWM1</text>
|
||||
<g transform="translate(15.731026020611564,26.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="27.183333333333334">SWDIO</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,28.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="29.183333333333334">PA22</text>
|
||||
<g transform="translate(22.93102602061156,28.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="24.116666666666664" y="29.183333333333334">D3</text>
|
||||
<g transform="translate(19.33102602061156,28.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="20.816666666666663" y="29.183333333333334">SCL0</text>
|
||||
<g transform="translate(15.731026020611564,28.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="17.216666666666665" y="29.183333333333334">MISO0</text>
|
||||
<g transform="translate(12.131026020611563,28.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="13.616666666666664" y="29.183333333333334">MISO1</text>
|
||||
<g transform="translate(8.531026020611561,28.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="10.016666666666662" y="29.183333333333334">PWM5</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="29.71666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(25.931026020611558,30.383333333333333)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="27.41666666666666" y="31.183333333333334">3V3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,30.383333333333333)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="31.183333333333334">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,28.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="29.183333333333334">PA00</text>
|
||||
<g transform="translate(56.33102602061157,28.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="29.183333333333334">D4</text>
|
||||
<g transform="translate(59.33102602061157,28.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="29.183333333333334">PWM2</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="27.183333333333334">PA30</text>
|
||||
<g transform="translate(56.33102602061157,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="27.183333333333334">D5</text>
|
||||
<g transform="translate(59.33102602061157,26.383333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="27.183333333333334">TX2</text>
|
||||
<g transform="translate(62.93102602061157,26.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.41666666666667" y="27.183333333333334">SDA0</text>
|
||||
<g transform="translate(66.53102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="68.01666666666667" y="27.183333333333334">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(52.731026020611566,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="25.183333333333334">PA19</text>
|
||||
<g transform="translate(56.33102602061157,24.383333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.81666666666667" y="25.183333333333334">ADC1</text>
|
||||
<g transform="translate(59.93102602061157,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="61.11666666666667" y="25.183333333333334">D6</text>
|
||||
<g transform="translate(62.93102602061157,24.383333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.11666666666667" y="25.183333333333334">A0</text>
|
||||
<g transform="translate(65.93102602061157,24.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="67.41666666666667" y="25.183333333333334">SDA0</text>
|
||||
<g transform="translate(69.53102602061156,24.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="71.01666666666667" y="25.183333333333334">CS0</text>
|
||||
<g transform="translate(73.13102602061156,24.383333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="74.61666666666666" y="25.183333333333334">CS1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="23.18333333333333">PA05</text>
|
||||
<g transform="translate(56.33102602061157,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="23.18333333333333">D7</text>
|
||||
<g transform="translate(59.33102602061157,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,20.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="21.18333333333333">PA12</text>
|
||||
<g transform="translate(56.33102602061157,20.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="21.18333333333333">D8</text>
|
||||
<g transform="translate(59.33102602061157,20.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="21.18333333333333">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,18.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="19.18333333333333">PA18</text>
|
||||
<g transform="translate(56.33102602061157,18.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="19.18333333333333">D9</text>
|
||||
<g transform="translate(59.33102602061157,18.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="19.18333333333333">RX0</text>
|
||||
<g transform="translate(62.93102602061157,18.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.41666666666667" y="19.18333333333333">SCL1</text>
|
||||
<g transform="translate(66.53102602061156,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="68.01666666666667" y="19.18333333333333">SCK0</text>
|
||||
<g transform="translate(70.13102602061156,18.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="71.61666666666666" y="19.18333333333333">SCK1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="49.31666666666666" y="17.08333333333333"/>
|
||||
<g transform="translate(52.731026020611566,16.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="54.21666666666667" y="17.18333333333333">PA23</text>
|
||||
<g transform="translate(56.33102602061157,16.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="57.516666666666666" y="17.18333333333333">D10</text>
|
||||
<g transform="translate(59.33102602061157,16.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="60.81666666666667" y="17.18333333333333">TX0</text>
|
||||
<g transform="translate(62.93102602061157,16.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="64.41666666666667" y="17.18333333333333">SDA1</text>
|
||||
<g transform="translate(66.53102602061156,16.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="68.01666666666667" y="17.18333333333333">MOSI0</text>
|
||||
<g transform="translate(70.13102602061156,16.38333333333333)">
|
||||
<rect fill="#e9ba33" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="71.61666666666666" y="17.18333333333333">MOSI1</text>
|
||||
<g transform="translate(73.73102602061157,16.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="75.21666666666667" y="17.18333333333333">PWM0</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 30 KiB |
1
boards/wr3le/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
36
boards/wr3le/variant.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
/* This file was auto-generated from wr3le.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA29, UART2_RX, I2C0_SCL, PWM4
|
||||
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D1: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D2: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D3: PA22, UART0_RTS, SPI0_MISO, SPI1_MISO, I2C0_SCL, SD_D0, PWM5, I2S0_WS, WAKE2
|
||||
{PA_22, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D4: PA00, PWM2
|
||||
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D5: PA30, UART2_TX, I2C0_SDA, PWM4
|
||||
{PA_30, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D6: PA19, ADC1, UART0_CTS, SPI0_CS, SPI1_CS, I2C0_SDA, SD_D3, TMR5_TRIG, I2S0_TX
|
||||
{PA_19, PIN_GPIO | PIN_IRQ | PIN_ADC | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D7: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D8: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D9: PA18, UART0_RX, SPI0_SCK, SPI1_SCK, I2C1_SCL, SD_D2, TMR4_TRIG, I2S0_MCK, WAKE0
|
||||
{PA_18, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D10: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
|
||||
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// A1: ADC2
|
||||
{AD_2, PIN_ADC, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
53
boards/wr3le/variant.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* This file was auto-generated from wr3le.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 12
|
||||
#define NUM_ANALOG_INPUTS 2
|
||||
#define NUM_DIGITAL_PINS 11
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A1 11u // AD_2
|
||||
#define PIN_A0 6u // PA_19
|
||||
#define A1 PIN_A1
|
||||
#define A0 PIN_A0
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 2
|
||||
#define PIN_SPI0_CS 6u // PA_19
|
||||
#define PIN_SPI0_MISO 3u // PA_22
|
||||
#define PIN_SPI0_MOSI 10u // PA_23
|
||||
#define PIN_SPI0_SCK 9u // PA_18
|
||||
#define PIN_SPI1_CS 6u // PA_19
|
||||
#define PIN_SPI1_MISO 3u // PA_22
|
||||
#define PIN_SPI1_MOSI 10u // PA_23
|
||||
#define PIN_SPI1_SCK 9u // PA_18
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 2
|
||||
#define PIN_WIRE0_SCL_0 0u // PA_29
|
||||
#define PIN_WIRE0_SCL_1 3u // PA_22
|
||||
#define PIN_WIRE0_SDA_0 5u // PA_30
|
||||
#define PIN_WIRE0_SDA_1 6u // PA_19
|
||||
#define PIN_WIRE1_SCL 9u // PA_18
|
||||
#define PIN_WIRE1_SDA 10u // PA_23
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 2
|
||||
#define PIN_SERIAL0_CTS 6u // PA_19
|
||||
#define PIN_SERIAL0_RTS 3u // PA_22
|
||||
#define PIN_SERIAL0_RX 9u // PA_18
|
||||
#define PIN_SERIAL0_TX 10u // PA_23
|
||||
#define PIN_SERIAL2_RX 0u // PA_29
|
||||
#define PIN_SERIAL2_TX 5u // PA_30
|
||||
19
boards/wr3n.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"_base": [
|
||||
"realtek-ambz",
|
||||
"realtek-ambz-2mb-large",
|
||||
"pcb/ic-rtl8710bn",
|
||||
"pcb/wr3-base",
|
||||
"pcb/wr3n"
|
||||
],
|
||||
"build": {
|
||||
"mcu": "rtl8710bn",
|
||||
"variant": "wr3n"
|
||||
},
|
||||
"name": "WR3N Wi-Fi Module",
|
||||
"url": "https://developer.tuya.com/en/docs/iot/wr3n-datasheet?id=K98zdx31ztdge",
|
||||
"vendor": "Tuya Inc.",
|
||||
"pcb": {
|
||||
"symbol": "WR3N"
|
||||
}
|
||||
}
|
||||
64
boards/wr3n/README.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# WR3N Wi-Fi Module
|
||||
|
||||
*by Tuya Inc.*
|
||||
|
||||
[Product page](https://developer.tuya.com/en/docs/iot/wr3n-datasheet?id=K98zdx31ztdge)
|
||||
|
||||
- [General info](../../docs/platform/realtek/README.md)
|
||||
- [Debugging](../../docs/platform/realtek/debugging.md)
|
||||
- [Flashing guide](../../docs/platform/realtek-ambz/flashing.md)
|
||||
- [ImageTool (AmebaZ/AmebaD)](https://images.tuyacn.com/smart/Image_Tool/Image_Tool.zip)
|
||||
|
||||
Parameter | Value
|
||||
-------------|---------------------------------
|
||||
MCU | RTL8710BN
|
||||
Manufacturer | Realtek
|
||||
Series | AmebaZ
|
||||
Frequency | 125 MHz
|
||||
Flash size | 2 MiB
|
||||
RAM size | 256 KiB
|
||||
Voltage | 3.0V - 3.6V
|
||||
I/O | 9x GPIO, 5x PWM, 2x UART, 1x ADC
|
||||
Wi-Fi | 802.11 b/g/n
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Arduino Core pin mapping
|
||||
|
||||
No. | Pin | UART | I²C | SPI | PWM | Other
|
||||
----|------|----------|----------|----------------------|------|------
|
||||
D0 | PA29 | UART2_RX | I2C0_SCL | | PWM4 |
|
||||
D1 | PA14 | | | | PWM0 | SWCLK
|
||||
D2 | PA15 | | | | PWM1 | SWDIO
|
||||
D3 | PA00 | | | | PWM2 |
|
||||
D4 | PA30 | UART2_TX | I2C0_SDA | | PWM4 |
|
||||
D5 | PA05 | | | | PWM4 |
|
||||
D6 | PA12 | | | | PWM3 |
|
||||
D7 | PA18 | UART0_RX | I2C1_SCL | SPI0_SCK, SPI1_SCK | |
|
||||
D8 | PA23 | UART0_TX | I2C1_SDA | SPI0_MOSI, SPI1_MOSI | PWM0 |
|
||||
A1 | ADC2 | | | | |
|
||||
|
||||
## Flash memory map
|
||||
|
||||
Flash size: 2 MiB / 2,097,152 B / 0x200000
|
||||
|
||||
Hex values are in bytes.
|
||||
|
||||
Name | Start | Length | End
|
||||
----------------|----------|-------------------|---------
|
||||
Boot XIP | 0x000000 | 16 KiB / 0x4000 | 0x004000
|
||||
Boot RAM | 0x004000 | 16 KiB / 0x4000 | 0x008000
|
||||
(reserved) | 0x008000 | 4 KiB / 0x1000 | 0x009000
|
||||
System Data | 0x009000 | 4 KiB / 0x1000 | 0x00A000
|
||||
Calibration | 0x00A000 | 4 KiB / 0x1000 | 0x00B000
|
||||
OTA1 Image | 0x00B000 | 788 KiB / 0xC5000 | 0x0D0000
|
||||
OTA2 Image | 0x0D0000 | 788 KiB / 0xC5000 | 0x195000
|
||||
Key-Value Store | 0x195000 | 24 KiB / 0x6000 | 0x19B000
|
||||
User Data | 0x19B000 | 400 KiB / 0x64000 | 0x1FF000
|
||||
RDP | 0x1FF000 | 4 KiB / 0x1000 | 0x200000
|
||||
|
||||
RDP is most likely not used in Tuya firmwares, as the System Data partition contains an incorrect offset 0xFF000 for RDP, which is in the middle of OTA2 image.
|
||||
|
||||
Additionally, Tuya firmware uses an encrypted KV or file storage, which resides at the end of flash memory. This seems to overlap system RDP area.
|
||||
241
boards/wr3n/pinout_wr3n.svg
Normal file
@@ -0,0 +1,241 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="full" height="500" version="1.1" viewBox="0,0,85.33333333333333,41.666666666666664" width="1024">
|
||||
<defs/>
|
||||
<rect fill="white" height="41.666666666666664" stroke="black" stroke-width="0.1" width="85.33333333333333" x="0" y="0"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id1" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="#4d4d4d"/>
|
||||
<stop offset="100%" stop-color="#0f0f0f"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id1) none" height="23.9" stroke="#b5a739" stroke-width="0.1" width="15.9" x="34.66666666666666" y="8.883333333333333"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin1.trace" width="0.7" x="34.61666666666666" y="16.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.left.pin1.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin2.trace" width="0.7" x="34.61666666666666" y="18.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.left.pin2.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin3.trace" width="0.7" x="34.61666666666666" y="20.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.left.pin3.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin4.trace" width="0.7" x="34.61666666666666" y="22.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.left.pin4.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin5.trace" width="0.7" x="34.61666666666666" y="24.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.left.pin5.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin6.trace" width="0.7" x="34.61666666666666" y="26.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.left.pin6.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin7.trace" width="0.7" x="34.61666666666666" y="28.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.left.pin7.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.left.pin8.trace" width="0.7" x="34.61666666666666" y="30.583333333333332"/>
|
||||
<circle cx="34.61666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.left.pin8.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin1.trace" width="0.7" x="49.91666666666666" y="16.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="17.18333333333333" fill="#fff" id="esp12s.front.right.pin1.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin2.trace" width="0.7" x="49.91666666666666" y="18.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="19.18333333333333" fill="#fff" id="esp12s.front.right.pin2.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin3.trace" width="0.7" x="49.91666666666666" y="20.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="21.18333333333333" fill="#fff" id="esp12s.front.right.pin3.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin4.trace" width="0.7" x="49.91666666666666" y="22.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="23.18333333333333" fill="#fff" id="esp12s.front.right.pin4.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin5.trace" width="0.7" x="49.91666666666666" y="24.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="25.183333333333334" fill="#fff" id="esp12s.front.right.pin5.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin6.trace" width="0.7" x="49.91666666666666" y="26.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="27.183333333333334" fill="#fff" id="esp12s.front.right.pin6.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin7.trace" width="0.7" x="49.91666666666666" y="28.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="29.183333333333334" fill="#fff" id="esp12s.front.right.pin7.cast" r="0.35"/>
|
||||
<rect fill="#e5b472" height="1.2" id="esp12s.front.right.pin8.trace" width="0.7" x="49.91666666666666" y="30.583333333333332"/>
|
||||
<circle cx="50.61666666666666" cy="31.183333333333334" fill="#fff" id="esp12s.front.right.pin8.cast" r="0.35"/>
|
||||
<linearGradient gradientUnits="objectBoundingBox" id="id2" x1="1.0" x2="0.0" y1="0.0" y2="1.0">
|
||||
<stop offset="0%" stop-color="whitesmoke"/>
|
||||
<stop offset="100%" stop-color="#999"/>
|
||||
</linearGradient>
|
||||
<rect fill="url(#id2) none" height="16.8" rx="0.5" ry="0.5" width="13.6" x="35.81666666666666" y="15.783333333333331"/>
|
||||
<rect fill="#fff" height="0.15" width="15.0" x="35.11666666666666" y="15.033333333333331"/>
|
||||
<text fill="#fff" font-family="Consolas" font-size="1.0" x="41.61666666666666" y="14.333333333333332">WR3N</text>
|
||||
<rect fill="#505050" height="5.2" width="0.5" x="35.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="0.5" width="4.6" x="35.71666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="5.2" width="0.5" x="37.91666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="3.0" width="0.5" x="39.81666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="0.5" width="3.0" x="39.81666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#505050" height="3.0" width="0.5" x="42.31666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="0.5" width="2.7" x="42.31666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="3.0" width="0.5" x="44.51666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="0.5" width="3.0" x="44.51666666666666" y="12.133333333333333"/>
|
||||
<rect fill="#505050" height="3.0" width="0.5" x="47.01666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="0.5" width="2.5" x="47.01666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#505050" height="4.4" width="0.5" x="49.01666666666666" y="9.633333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="17.08333333333333"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(27.731026020611555,18.38333333333333)">
|
||||
<rect fill="#8ad039" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="19.18333333333333">ADC2</text>
|
||||
<g transform="translate(24.73102602061156,18.38333333333333)">
|
||||
<rect fill="#16a352" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.91666666666666" y="19.18333333333333">A1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(27.731026020611555,20.38333333333333)">
|
||||
<rect fill="#ed602e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="21.18333333333333">CEN</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(27.731026020611555,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="23.18333333333333">PA29</text>
|
||||
<g transform="translate(24.73102602061156,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.91666666666666" y="23.18333333333333">D0</text>
|
||||
<g transform="translate(21.131026020611557,22.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.61666666666666" y="23.18333333333333">RX2</text>
|
||||
<g transform="translate(17.53102602061156,22.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="19.016666666666662" y="23.18333333333333">SCL0</text>
|
||||
<g transform="translate(13.93102602061156,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="15.41666666666666" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="25.083333333333332"/>
|
||||
<g transform="translate(27.731026020611555,24.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="25.183333333333334">PA14</text>
|
||||
<g transform="translate(24.73102602061156,24.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.91666666666666" y="25.183333333333334">D1</text>
|
||||
<g transform="translate(21.131026020611557,24.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.61666666666666" y="25.183333333333334">PWM0</text>
|
||||
<g transform="translate(17.53102602061156,24.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="19.016666666666662" y="25.183333333333334">SWCLK</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(27.731026020611555,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="27.183333333333334">PA15</text>
|
||||
<g transform="translate(24.73102602061156,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.91666666666666" y="27.183333333333334">D2</text>
|
||||
<g transform="translate(21.131026020611557,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.61666666666666" y="27.183333333333334">PWM1</text>
|
||||
<g transform="translate(17.53102602061156,26.383333333333333)">
|
||||
<rect fill="#ffe680" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="19.016666666666662" y="27.183333333333334">SWDIO</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="29.083333333333332"/>
|
||||
<g transform="translate(27.731026020611555,28.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="29.183333333333334">PA00</text>
|
||||
<g transform="translate(24.73102602061156,28.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="25.91666666666666" y="29.183333333333334">D3</text>
|
||||
<g transform="translate(21.131026020611557,28.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="22.61666666666666" y="29.183333333333334">PWM2</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="31.51666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(27.731026020611555,30.383333333333333)">
|
||||
<rect fill="#cd3c24" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="29.216666666666658" y="31.183333333333334">3V3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="31.083333333333332"/>
|
||||
<g transform="translate(54.53102602061156,30.383333333333333)">
|
||||
<rect fill="#000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="56.016666666666666" y="31.183333333333334">GND</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="29.083333333333332"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="27.083333333333332"/>
|
||||
<g transform="translate(54.53102602061156,26.383333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="56.016666666666666" y="27.183333333333334">PA30</text>
|
||||
<g transform="translate(58.131026020611564,26.383333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.31666666666666" y="27.183333333333334">D4</text>
|
||||
<g transform="translate(61.131026020611564,26.383333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.61666666666667" y="27.183333333333334">TX2</text>
|
||||
<g transform="translate(64.73102602061155,26.383333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="66.21666666666665" y="27.183333333333334">SDA0</text>
|
||||
<g transform="translate(68.33102602061156,26.383333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="69.81666666666666" y="27.183333333333334">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="25.083333333333332"/>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="23.08333333333333"/>
|
||||
<g transform="translate(54.53102602061156,22.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="56.016666666666666" y="23.18333333333333">PA05</text>
|
||||
<g transform="translate(58.131026020611564,22.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.31666666666666" y="23.18333333333333">D5</text>
|
||||
<g transform="translate(61.131026020611564,22.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.61666666666667" y="23.18333333333333">PWM4</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="21.08333333333333"/>
|
||||
<g transform="translate(54.53102602061156,20.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="56.016666666666666" y="21.18333333333333">PA12</text>
|
||||
<g transform="translate(58.131026020611564,20.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.31666666666666" y="21.18333333333333">D6</text>
|
||||
<g transform="translate(61.131026020611564,20.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.61666666666667" y="21.18333333333333">PWM3</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="19.08333333333333"/>
|
||||
<g transform="translate(54.53102602061156,18.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="56.016666666666666" y="19.18333333333333">PA18</text>
|
||||
<g transform="translate(58.131026020611564,18.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.31666666666666" y="19.18333333333333">D7</text>
|
||||
<g transform="translate(61.131026020611564,18.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.61666666666667" y="19.18333333333333">RX0</text>
|
||||
<g transform="translate(64.73102602061155,18.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="66.21666666666665" y="19.18333333333333">SCL1</text>
|
||||
<rect fill="#4e4c4c" height="0.2" width="2.6" x="51.11666666666666" y="17.08333333333333"/>
|
||||
<g transform="translate(54.53102602061156,16.38333333333333)">
|
||||
<rect fill="#800000" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="56.016666666666666" y="17.18333333333333">PA23</text>
|
||||
<g transform="translate(58.131026020611564,16.38333333333333)">
|
||||
<rect fill="#99188d" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="2.8" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="white" font-family="Consolas" font-size="1.2" text-anchor="middle" x="59.31666666666666" y="17.18333333333333">D8</text>
|
||||
<g transform="translate(61.131026020611564,16.38333333333333)">
|
||||
<rect fill="#dcd4ee" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="62.61666666666667" y="17.18333333333333">TX0</text>
|
||||
<g transform="translate(64.73102602061155,16.38333333333333)">
|
||||
<rect fill="#f95" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="66.21666666666665" y="17.18333333333333">SDA1</text>
|
||||
<g transform="translate(68.33102602061156,16.38333333333333)">
|
||||
<rect fill="#afa35e" height="1.6" rx="0.3" ry="0.3" transform="skewX(-15)" width="3.4" x="0" y="0"/>
|
||||
</g>
|
||||
<text dominant-baseline="central" fill="#423F42" font-family="Consolas" font-size="1.2" text-anchor="middle" x="69.81666666666666" y="17.18333333333333">PWM0</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
1
boards/wr3n/pins_arduino.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "variant.h"
|
||||
32
boards/wr3n/variant.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
/* This file was auto-generated from wr3n.json using boardgen */
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
// clang-format off
|
||||
PinInfo pinTable[PINS_COUNT] = {
|
||||
// D0: PA29, UART2_RX, I2C0_SCL, PWM4
|
||||
{PA_29, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D1: PA14, PWM0, SWCLK
|
||||
{PA_14, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D2: PA15, PWM1, SWDIO
|
||||
{PA_15, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_SWD, PIN_NONE, 0},
|
||||
// D3: PA00, PWM2
|
||||
{PA_0, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D4: PA30, UART2_TX, I2C0_SDA, PWM4
|
||||
{PA_30, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_UART, PIN_NONE, 0},
|
||||
// D5: PA05, PWM4, WAKE1
|
||||
{PA_5, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D6: PA12, PWM3
|
||||
{PA_12, PIN_GPIO | PIN_IRQ | PIN_PWM, PIN_NONE, 0},
|
||||
// D7: PA18, UART0_RX, SPI0_SCK, SPI1_SCK, I2C1_SCL, SD_D2, TMR4_TRIG, I2S0_MCK, WAKE0
|
||||
{PA_18, PIN_GPIO | PIN_IRQ | PIN_I2C | PIN_I2S | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// D8: PA23, UART0_TX, SPI0_MOSI, SPI1_MOSI, I2C1_SDA, SD_D1, PWM0, WAKE3
|
||||
{PA_23, PIN_GPIO | PIN_IRQ | PIN_PWM | PIN_I2C | PIN_SPI | PIN_UART, PIN_NONE, 0},
|
||||
// A1: ADC2
|
||||
{AD_2, PIN_ADC, PIN_NONE, 0},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
} // extern "C"
|
||||
39
boards/wr3n/variant.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* This file was auto-generated from wr3n.json using boardgen */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <WVariant.h>
|
||||
|
||||
// clang-format off
|
||||
|
||||
// Pins
|
||||
// ----
|
||||
#define PINS_COUNT 10
|
||||
#define NUM_ANALOG_INPUTS 1
|
||||
#define NUM_DIGITAL_PINS 9
|
||||
#define NUM_ANALOG_OUTPUTS 0
|
||||
|
||||
// Analog pins
|
||||
// -----------
|
||||
#define PIN_A1 9u // AD_2
|
||||
#define A1 PIN_A1
|
||||
|
||||
// SPI Interfaces
|
||||
// --------------
|
||||
#define SPI_INTERFACES_COUNT 0
|
||||
|
||||
// Wire Interfaces
|
||||
// ---------------
|
||||
#define WIRE_INTERFACES_COUNT 2
|
||||
#define PIN_WIRE0_SCL 0u // PA_29
|
||||
#define PIN_WIRE0_SDA 4u // PA_30
|
||||
#define PIN_WIRE1_SCL 7u // PA_18
|
||||
#define PIN_WIRE1_SDA 8u // PA_23
|
||||
|
||||
// Serial ports
|
||||
// ------------
|
||||
#define SERIAL_INTERFACES_COUNT 2
|
||||
#define PIN_SERIAL0_RX 7u // PA_18
|
||||
#define PIN_SERIAL0_TX 8u // PA_23
|
||||
#define PIN_SERIAL2_RX 0u // PA_29
|
||||
#define PIN_SERIAL2_TX 4u // PA_30
|
||||
@@ -7,6 +7,14 @@ Name | MCU | Flash | RAM | Pin
|
||||
**Tuya Inc.** | | | | | | | |
|
||||
[CB2S](../boards/cb2s/README.md) | BK7231N | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ✔️ | ❌ | `beken-7231n`
|
||||
[WB2L](../boards/wb2l/README.md) | BK7231T | 2 MiB | 256 KiB | 7 (5 I/O) | ✔️ | ✔️ | ❌ | `beken-7231t`
|
||||
[WR2](../boards/wr2/README.md) | RTL8710BN | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR2E](../boards/wr2e/README.md) | RTL8710BN | 2 MiB | 256 KiB | 11 (8 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR3](../boards/wr3/README.md) | RTL8710BN | 2 MiB | 256 KiB | 16 (12 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR3E](../boards/wr3e/README.md) | RTL8710BN | 2 MiB | 256 KiB | 16 (12 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR3N](../boards/wr3n/README.md) | RTL8710BN | 2 MiB | 256 KiB | 16 (10 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR2L](../boards/wr2l/README.md) | RTL8710BX | 2 MiB | 256 KiB | 7 (5 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR2LE](../boards/wr2le/README.md) | RTL8710BX | 2 MiB | 256 KiB | 7 (5 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR3L](../boards/wr3l/README.md) | RTL8710BX | 2 MiB | 256 KiB | 16 (12 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
[WR3LE](../boards/wr3le/README.md) | RTL8710BX | 2 MiB | 256 KiB | 16 (12 I/O) | ✔️ | ❌ | ❌ | `realtek-ambz`
|
||||
**N/A** | | | | | | | |
|
||||
[Native](../boards/generic-native/README.md) | NATIVE | 4 MiB | 4 MiB | - | ✔️ | ❌ | ❌ | `host-native`
|
||||
|
||||
@@ -42,18 +42,10 @@ WBR3T | RTL8720DN | 4 MiB | 512 KiB | 16 | ✔️ | ✔️ | ❌
|
||||
**WR Series** | | | | | | |
|
||||
WR1 | RTL8710BN | 1 MiB | 256 KiB | 18 | ✔️ | ❌ | ❌
|
||||
WR1E | RTL8710BN | 2 MiB | 256 KiB | 18 | ✔️ | ❌ | ❌
|
||||
WR2 | RTL8710BN | 2 MiB | 256 KiB | 11 | ✔️ | ❌ | ❌
|
||||
WR2E | RTL8710BN | 2 MiB | 256 KiB | 11 | ✔️ | ❌ | ❌
|
||||
WR3E | RTL8710BN | 2 MiB | 256 KiB | 16 | ✔️ | ❌ | ❌
|
||||
WR3N | RTL8710BN | 2 MiB | 256 KiB | 16 | ✔️ | ❌ | ❌
|
||||
WR4 | RTL8710BN | 1 MiB | 256 KiB | 16 | ✔️ | ❌ | ❌
|
||||
WR5E | RTL8710BN | 2 MiB | 256 KiB | 15 | ✔️ | ❌ | ❌
|
||||
WR6 | RTL8710BN | 2 MiB | 256 KiB | 14 | ✔️ | ❌ | ❌
|
||||
WR6-H | RTL8710BN | 2 MiB | 256 KiB | 14 | ✔️ | ❌ | ❌
|
||||
WR2L | RTL8710BX | 2 MiB | 256 KiB | 7 | ✔️ | ❌ | ❌
|
||||
WR2LE | RTL8710BX | 2 MiB | 256 KiB | 7 | ✔️ | ❌ | ❌
|
||||
WR3L | RTL8710BX | 2 MiB | 256 KiB | 18 | ✔️ | ❌ | ❌
|
||||
WR3LE | RTL8710BX | 2 MiB | 256 KiB | 18 | ✔️ | ❌ | ❌
|
||||
WRG1 | RTL8711AM | 4 MiB | 2 MiB | 25 | ✔️ | ❌ | ❌
|
||||
**XR Series** | | | | | | |
|
||||
XR1 | XR809 | 2 MiB | 384 KiB | 18 | ✔️ | ❌ | ❌
|
||||
|
||||
@@ -116,6 +116,15 @@ def board_sort(tpl):
|
||||
)
|
||||
|
||||
|
||||
def get_board_symbol(board_name: str, board: dict) -> str:
|
||||
symbol = get(board, "symbol")
|
||||
if not symbol and board_name.startswith("generic-"):
|
||||
symbol = board_name[8:]
|
||||
else:
|
||||
symbol = symbol or board_name.upper()
|
||||
return symbol
|
||||
|
||||
|
||||
def write_chips(mcus: List[str]):
|
||||
md = Markdown(dirname(__file__), "supported_chips")
|
||||
md.add_list(*mcus)
|
||||
@@ -154,11 +163,7 @@ def write_boards(boards: List[Tuple[str, dict]]):
|
||||
pins_io = sum(1 for pin in pinout if "ARD" in pin)
|
||||
pins = f"{pins_total} ({pins_io} I/O)"
|
||||
# format row values
|
||||
symbol = get(board, "symbol")
|
||||
if not symbol and board_name.startswith("generic-"):
|
||||
symbol = board_name[8:]
|
||||
else:
|
||||
symbol = symbol or board_name.upper()
|
||||
symbol = get_board_symbol(board_name, board)
|
||||
board_url = f"[{symbol}](../boards/{board_name}/README.md)"
|
||||
row = [
|
||||
board_url,
|
||||
@@ -271,8 +276,10 @@ def write_boards_list(boards: List[Tuple[str, dict]]):
|
||||
md = Markdown(dirname(__file__), join("..", "boards", "SUMMARY"))
|
||||
items = []
|
||||
for board_name, board in boards:
|
||||
title = get(board, "name")
|
||||
items.append(f"[{title}](../boards/{board_name}/README.md)")
|
||||
symbol = get_board_symbol(board_name, board)
|
||||
if board_name.startswith("generic-"):
|
||||
symbol = get(board, "name")
|
||||
items.append(f"[{symbol}](../boards/{board_name}/README.md)")
|
||||
md.add_list(*items)
|
||||
md.write()
|
||||
|
||||
|
||||