Compare commits

..

No commits in common. "main" and "arduinopins" have entirely different histories.

18 changed files with 2406 additions and 6668 deletions

5
.gitignore vendored
View file

@ -1,6 +1 @@
/workdir
/*.fzpz
output.svg
pinlabels.svg
.DS_Store
.idea

112
README.md
View file

@ -1,104 +1,36 @@
# PrettyPins
PrettyPins is designed to create lovely pinout diagrams.
![KB2040 pinout diagram](https://cdn-learn.adafruit.com/assets/assets/000/106/984/original/adafruit_products_Adafruit_KB2040_Pinout.png)
## Requirements
The following is a list of required software and files necessary to run PrettyPins:
* A local clone of the PrettyPins repository
* The Fritzing object file for the board for which you are generating a diagram (available [here](https://github.com/adafruit/Fritzing-Library/tree/master/parts))
* An SVG editor, such as InkScape (free and available for all major OS's) or Illustrator (not free, and not available for all major OS's)
* Python 3 installed on your machine
* A local clone of the CircuitPython repository (for boards that support CircuitPython)
* The latest Arduino core for the board-type you're working with installed on your machine (for boards that support Arduino)
* `pip install` the following libraries (in a virtual environment or otherwise):
* `click`
* `lxml`
* `svgutils`
* `svgwrite`
* `xmltodict`
## Running PrettyPins
1. Place the Fritzing object file in the PrettyPins directory.
2. Run the PrettyPins command as shown below.
3. In the case of Arduino support, you must run the command TWICE for the Arduino pins to show up.
4. Open the `output.svg` and `pinlabels.svg` files into your SVG editor.
5. Save the `output.svg` file as something else, such as the name of the board you're diagramming.
* In Illustrator, when you "Save as", click "Ok", (and "Yes" to replacing the file if it already exists), then, under "Advanced Options", change "CSS Properties" to "Presentation Attributes". and "Decimal Places" to "4". Then, click Ok.
6. Copy the different seconds of labels out of `pinlabels.svg` into your working board file, and arrange them properly.
* For pins that are not easily accessible (such as NeoPixels or displays), either draw extra lines to the pin location, or create an icon for the pin next to the board and attach the labels to that.
* If you are replacing an old diagram (as with many of the ATtiny boards), include any notes from the original diagram in the new one.
7. Verify the pin label layout with Kattni by providing a screenshot of your working board file.
8. Finalise the diagram with the pin legend, any text blocks and the title/URL.
9. Save the SVG as follows:
* In Illustrator, do "Save as", click "Ok", (and "Yes" to replacing the file if it already exists), then, under "Advanced Options", change "CSS Properties" to "Presentation Attributes". and "Decimal Places" to "4". Then, click Ok.
* In Inkscape, save the file.
10. Finally, save the file as both a PDF and a PNG as well.
## Upload Files
Once you have an SVG, PDF and PNG, you need to upload them to the following locations, and link to them where indicated.
#### The PNG
1. The PNG gets added to the Pinouts page of the guide, rendered, immediately below the board image at the top of the page.
#### The PDF
1. Upload to the board-specific EagleCAD PCB file repository on GitHub.
2. Link under "Files:" on the Downloads page in the applicable board guide.
3. Link on the Pinouts page in the applicable board guide (under the rendered PNG of the diagram).
#### The SVG
1. Upload the SVG to Learn as a file using Media > Upload, under the "Files" section on the Downloads page. Title the file "PrettyPins SVG for Board Name".
## Example PrettyPins Command Structure by Board Type
These are some examples of what the PrettyPins commandline command looks like, based on board chip type. More to be added soon!
#### ATMega328:
ATMega328 does not support CircuitPython.
```python3 parser.py "Adafruit Metro Mini.fzpz" None atmega328pins.csv -s "^IO([0-9])" "D\1"```
#### ATtiny8x
ATtiny8x does not support CircuitPython.
```python parser.py "Adafruit Trinket 3V.fzpz" None attiny8xpins.csv```
#### RP2040:
RP2040 does not have official Arduino support (yet).
```python3 parser.py "Adafruit Feather RP2040.fzpz" path/to/circuitpython/ports/raspberrypi/boards/adafruit_feather_rp2040/pins.c rp2040pins.csv```
```python3 parser.py "Adafruit ItsyBitsy RP2040.fzpz" path/to/circuitpython/ports/raspberrypi/boards/adafruit_itsybitsy_rp2040/pins.c rp2040pins.csv```
```python3 parser.py "Adafruit QT Py RP2040.fzpz" path/to/circuitpython/ports/raspberrypi/boards/adafruit_qtpy_rp2040/pins.c rp2040pins.csv```
#### ESP32-S2:
```python3 parser.py "Adafruit Feather ESP32-S2.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_feather_esp32s2/pins.c esp32s2pins.csv```
```python3 parser.py "Adafruit Metro ESP32-S2.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_metro_esp32s2/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
```python3 parser.py "Adafruit MagTag 2.9in.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_magtag_2.9_grayscale/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
```python3 parser.py "Adafruit FunHouse.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_funhouse/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
examples:
#### ESP32:
RP2040:
```python3 parser.py "Adafruit QT Py ESP32 Pico.fzpz" None -a ../../ArduinoSketches/hardware/espressif/esp32/variants/adafruit_qtpy_esp32 esp32pins.csv```
```
python3 parser.py "Adafruit Feather RP2040.fzpz" C:\Users\ladyada\Dropbox\micropython\circuitpython\ports\raspberrypi\boards\adafruit_feather_rp2040\pins.c rp2040pins.csv
```
```python3 parser.py "Adafruit ESP32 Feather V2.fzpz" None -a ../../ArduinoSketches/hardware/espressif/esp32/variants/adafruit_feather_esp32_v2 esp32pins.csv```
```
python3 parser.py "Adafruit ItsyBitsy RP2040.fzpz" C:\Users\ladyada\Dropbox\micropython\circuitpython\ports\raspberrypi\boards\adafruit_feather_rp2040\pins.c rp2040pins.csv
```
```python3 parser.py "Adafruit HUZZAH32 ESP32 Feather.fzpz" None -a ../../ArduinoSketches/hardware/espressif/esp32/variants/feather_esp32 esp32pins.csv```
```
python3 parser.py "Adafruit QT Py RP2040.fzpz" C:\Users\ladyada\Dropbox\micropython\circuitpython\ports\raspberrypi\boards\adafruit_qtpy_rp2040\pins.c rp2040pins.csv
```
ESP32-S2:
#### nRF52:
```python3 parser.py "Adafruit Metro ESP32-S2.fzpz" C:\Users\ladyada\Dropbox\micropython\circuitpython\ports\esp32s2\boards\adafruit_metro_esp32s2\pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
```python3 parser.py "Adafruit Feather nRF52840.fzpz" path/to/circuitpython/ports/nrf/boards/feather_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/feather_nrf52840_express```
```python3 parser.py "Adafruit Metro ESP32-S2.fzpz" ~/Git/circuitpython/ports/esp32s2/boards/adafruit_metro_esp32s2/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
```python3 parser.py "Adafruit ItsyBitsy nRF52840.fzpz" path/to/circuitpython/ports/nrf/boards/itsybitsy_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/itsybitsy_nrf52840_express```
```python3 parser.py "Adafruit MagTag 2.9in.fzpz" ~/Git/circuitpython/ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
```python3 parser.py "Adafruit nRF52840 CLUE.fzpz" path/to/circuitpython/ports/nrf/boards/clue_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/clue_nrf52840```
```python3 parser.py "Adafruit FunHouse.fzpz" ~/Git/circuitpython/ports/esp32s2/boards/adafruit_funhouse/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"```
#### SAMD21:
nRF52:
```python3 parser.py "Adafruit Feather M0 Express.fzpz" path/to/circuitpython/ports/atmel-samd/boards/feather_m0_express/pins.c samd21pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/samd/variants/feather_m0```
```python3 parser.py "Adafruit Feather nRF52840.fzpz" ~/Git/circuitpython/ports/nrf/boards/feather_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/feather_nrf52840_express```
```python3 parser.py "Adafruit ItsyBitsy nRF52840.fzpz" ~/Git/circuitpython/ports/nrf/boards/itsybitsy_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/itsybitsy_nrf52840_express```
```python3 parser.py "Adafruit nRF52840 CLUE.fzpz" ~/Git/circuitpython/ports/nrf/boards/clue_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/clue_nrf52840```

View file

@ -1,26 +0,0 @@
GPIO,ADC,Other,PWM
PD0,,RX,
PD1,,TX,
PD2,,INT0,
PD3,,INT1,OC2B
PD4,,,
PD5,,,OC0B
PD6,,,OC0A
PD7,,,
PB0,,,
PB1,,,OC1A
PB2,,SS,OC1B
PB3,,MOSI,OC2A
PB4,,MISO,
PB5,,SCK,
PC0,A0,,
PC1,A1,,
PC2,A2,,
PC3,A3,,
PC4,A4,SDA,
PC5,A5,SCL,
A6,A6,,
A7,A7,,
,,,
,,,
DESCRIPTION,,,
1 GPIO ADC Other PWM
2 PD0 RX
3 PD1 TX
4 PD2 INT0
5 PD3 INT1 OC2B
6 PD4
7 PD5 OC0B
8 PD6 OC0A
9 PD7
10 PB0
11 PB1 OC1A
12 PB2 SS OC1B
13 PB3 MOSI OC2A
14 PB4 MISO
15 PB5 SCK
16 PC0 A0
17 PC1 A1
18 PC2 A2
19 PC3 A3
20 PC4 A4 SDA
21 PC5 A5 SCL
22 A6 A6
23 A7 A7
24
25
26 DESCRIPTION

View file

@ -1,26 +0,0 @@
GPIO,ADC,Arduino ADC,Other,INT,PWM
PD2,,,RX,INT2,
PD3,,,TX,INT3,
PD1,,,SDA,INT1,
PD0,,,SCL,INT0,OC0B
PD4,ADC8,A6,,,
PC6,,,,,OC3A/OC4A
PD7,ADC10,A7,,,OC4D
PE6,,,,INT6,
PB4,ADC11,A8,,PCINT4,
PB5,ADC12,A9,,PCINT5,OC1A/!OC4B
PB6,ADC13,A10,,PCINT6,OC1B/OC4B
PB7,,,,PCINT7,OC0A/OC1C
PD6,ADC9,A11,,,!OC4D
PC7,,,,,OC4A
PB3,,,MISO,PCINT3,
PB2,,,MOSI,PCINT2,
PB1,,,SCK,PCINT1,
PF7,ADC7,A0,,,
PF6,ADC6,A1,,,
PF5,ADC5,A2,,,
PF4,ADC4,A3,,,
PF1,ADC1,A4,,,
PF0,ADC0,A5,,,
,,,,,
DESCRIPTION,,,,,
1 GPIO ADC Arduino ADC Other INT PWM
2 PD2 RX INT2
3 PD3 TX INT3
4 PD1 SDA INT1
5 PD0 SCL INT0 OC0B
6 PD4 ADC8 A6
7 PC6 OC3A/OC4A
8 PD7 ADC10 A7 OC4D
9 PE6 INT6
10 PB4 ADC11 A8 PCINT4
11 PB5 ADC12 A9 PCINT5 OC1A/!OC4B
12 PB6 ADC13 A10 PCINT6 OC1B/OC4B
13 PB7 PCINT7 OC0A/OC1C
14 PD6 ADC9 A11 !OC4D
15 PC7 OC4A
16 PB3 MISO PCINT3
17 PB2 MOSI PCINT2
18 PB1 SCK PCINT1
19 PF7 ADC7 A0
20 PF6 ADC6 A1
21 PF5 ADC5 A2
22 PF4 ADC4 A3
23 PF1 ADC1 A4
24 PF0 ADC0 A5
25
26 DESCRIPTION

View file

@ -1,9 +0,0 @@
GPIO,INT,PWM,,SPI,ADC,Special
PB0,PCINT0,OC0A/!OC1A,SDA,MOSI,,
PB1,PCINT1,OC0B/OC1A,,MISO,,
PB2,INT0/PCINT2,,SCL,SCK,A1,
PB3,PCINT3,!OC1B,,,A3,USB
PB4,PCINT4,OC1B,,,A2,USB
,,,,,,
,,,,,,
DESCRIPTION,,,,,,
1 GPIO INT PWM SPI ADC Special
2 PB0 PCINT0 OC0A/!OC1A SDA MOSI
3 PB1 PCINT1 OC0B/OC1A MISO
4 PB2 INT0/PCINT2 SCL SCK A1
5 PB3 PCINT3 !OC1B A3 USB
6 PB4 PCINT4 OC1B A2 USB
7
8
9 DESCRIPTION

View file

@ -1,26 +0,0 @@
GPIO,ADC,HS/QSPI,Other
0,ADC1_CH0,,32K_XP
1,ADC1_CH1,,32K_XN
2,ADC1_CH2,FSPIQ,
3,ADC1_CH3,,
4,ADC1_CH4,,MTMS
5,ADC2_CH0,FSPIHD,MTDI
6,,FSPICLK,MTCK
7,,FSPID,MTDO
8,,,
9,,,
10,,FSPICS0,
11,,,VDD_SPI
12,,SPIHD,
13,,SPIWP,
14,,SPICS0,MTMS
15,,SPICLK,
16,,SPID,
17,,SPIQ,
18,,,USB D+AC0-
19,,,USB D+-
20,,,U0RXD
21,,,U0TXD
,,,
,,,
DESCRIPTION,,,
1 GPIO ADC HS/QSPI Other
2 0 ADC1_CH0 32K_XP
3 1 ADC1_CH1 32K_XN
4 2 ADC1_CH2 FSPIQ
5 3 ADC1_CH3
6 4 ADC1_CH4 MTMS
7 5 ADC2_CH0 FSPIHD MTDI
8 6 FSPICLK MTCK
9 7 FSPID MTDO
10 8
11 9
12 10 FSPICS0
13 11 VDD_SPI
14 12 SPIHD
15 13 SPIWP
16 14 SPICS0 MTMS
17 15 SPICLK
18 16 SPID
19 17 SPIQ
20 18 USB D+AC0-
21 19 USB D+-
22 20 U0RXD
23 21 U0TXD
24
25
26 DESCRIPTION

View file

@ -1,34 +0,0 @@
GPIO,Power Domain,ADC,SPI,Debug,Other
IO0,LP_UART_DTRN,ADC1_CH0,,,XTAL_32K_P
IO1,LP_UART_DSRN,ADC1_CH1,,,XTAL_32K_N
IO2,LP_UART_RTSN,ADC1_CH2,FSPIQ,,
IO3,LP_UART_CTSN,ADC1_CH3,,,
IO4,LP_UART_RXD,ADC1_CH4,FSPIHD,MTMS,
IO5,LP_UART_TXD,ADC1_CH5,FSPIWP,MTDI,
IO6,LP_I2C_SDA,ADC1_CH6,FSPICLK,MTCK,
IO7,LP_I2C_SCL,,FSPID,MTDO,
IO8,,,,,
IO9,,,,,
IO10,,,,,
IO11,,,,,
IO12,,,,,USB_D-
IO13,,,,,USB_D+
IO14,,,,,
IO15,,,,,
IO16,,,,,
IO17,,,,,
IO18,,,SDIO_CMD,,
IO19,,,SDIO_CLK,,
IO20,,,SDIO_DATA0,,
IO21,,,SDIO_DATA1,,
IO22,,,SDIO_DATA2,,
IO23,,,SDIO_DATA3,,
IO24,,,SPICS0,,
IO25,,,SPIQ,,
IO26,,,SPIWP,,
IO27,,,,,VDD_SPI
IO28,,,SPIHD,,
IO29,,,SPICLK,,
IO30,,,SPID,,
,,,,,
DESCRIPTION,"The ESP32-C6 is Espressifs first Wi-Fi 6 SoC integrating 2.4 GHz Wi-Fi 6, Bluetooth 5 (LE) and the 802.15.4 protocol.",,,,
1 GPIO Power Domain ADC SPI Debug Other
2 IO0 LP_UART_DTRN ADC1_CH0 XTAL_32K_P
3 IO1 LP_UART_DSRN ADC1_CH1 XTAL_32K_N
4 IO2 LP_UART_RTSN ADC1_CH2 FSPIQ
5 IO3 LP_UART_CTSN ADC1_CH3
6 IO4 LP_UART_RXD ADC1_CH4 FSPIHD MTMS
7 IO5 LP_UART_TXD ADC1_CH5 FSPIWP MTDI
8 IO6 LP_I2C_SDA ADC1_CH6 FSPICLK MTCK
9 IO7 LP_I2C_SCL FSPID MTDO
10 IO8
11 IO9
12 IO10
13 IO11
14 IO12 USB_D-
15 IO13 USB_D+
16 IO14
17 IO15
18 IO16
19 IO17
20 IO18 SDIO_CMD
21 IO19 SDIO_CLK
22 IO20 SDIO_DATA0
23 IO21 SDIO_DATA1
24 IO22 SDIO_DATA2
25 IO23 SDIO_DATA3
26 IO24 SPICS0
27 IO25 SPIQ
28 IO26 SPIWP
29 IO27 VDD_SPI
30 IO28 SPIHD
31 IO29 SPICLK
32 IO30 SPID
33
34 DESCRIPTION The ESP32-C6 is Espressif’s first Wi-Fi 6 SoC integrating 2.4 GHz Wi-Fi 6, Bluetooth 5 (LE) and the 802.15.4 protocol.

View file

@ -1,57 +0,0 @@
GPIO,ADC,HS/QSPI,SDMMC,Touch,RTC,UART,Other,Special
0,ADC2_CH1,,,T1,RTC11,,CLK_OUT1,
1,,,,,,U0TXD,CLK_OUT3,
2,ADC2_CH2,HSPIWP,HS2_DATA0,T2,RTC12,,,
3,,,,,,U0RXD,CLK_OUT2,
4,ADC2_CH0,HSPIHD,HS2_DATA1,T0,RTC10,,,
5,,VSPICS0,HS1_DATA6,,,,,
6,,SPICLK,HS1_CLK,,,U1CTS,,
7,,SPIQ,HS1_DATA0,,,U2RTS,,
8,,SPID,HS1_DATA1,,,U2CTS,,
9,,SPIHD,HS1_DATA2,,,U1RXD,,
10,,SPIWP,HS1_DATA3,,,U1TXD,,
11,,SPI_CS0,HS1_CMD,,,U1RTS,,
12,ADC2_CH5,HSPIQ,HS2_DATA2,T5,RTC15,,MTDI,
13,ADC2_CH4,HSPID,HS2_DATA3,T4,RTC14,,MTCK,
14,ADC2_CH6,HSPICLK,HS2_CLK,T6,RTC16,,MTMS,
15,ADC2_CH3,HSPICS0,HS2_CMD,T3,RTC13,,MTDO,
16,,,HS1_DATA4,,,U2RXD,,
17,,,HS1_DATA5,,,U2TXD,,
18,,VSPICLK,HS1_DATA7,,,,,
19,,VSPIQ,,,,U0CTS,,
20,,,,,,,,
21,,VSPIHD,,,,,,
22,,VSPIWP,,,,U0RTS,,
23,,VSPID,HS1_STROBE,,,,,
25,ADC2_CH8,,,,RTC6,,DAC1,
26,ADC2_CH9,,,,RTC7,,DAC2,
27,ADC2_CH7,,,T7,RTC17,,,
32,ADC1_CH4,,,T9,RTC9,,32K_XP,
33,ADC1_CH5,,,T8,RTC8,,32K_XN,
34,ADC1_CH6,,,,RTC4,,VDET1,Input Only
35,ADC1_CH7,,,,RTC5,,VDET2,Input Only
36,ADC1_CH0,,,,RTC0,,SENSE_V+,Input Only
37,ADC1_CH1,,,,RTC1,,SENSE_CAP+,Input Only
38,ADC1_CH2,,,,RTC2,,SENSE_CAP-,Input Only
39,ADC1_CH3,,,,RTC3,,SENSE_V-,Input Only
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,,,,
DESCRIPTION,,,,,,,,
1 GPIO ADC HS/QSPI SDMMC Touch RTC UART Other Special
2 0 ADC2_CH1 T1 RTC11 CLK_OUT1
3 1 U0TXD CLK_OUT3
4 2 ADC2_CH2 HSPIWP HS2_DATA0 T2 RTC12
5 3 U0RXD CLK_OUT2
6 4 ADC2_CH0 HSPIHD HS2_DATA1 T0 RTC10
7 5 VSPICS0 HS1_DATA6
8 6 SPICLK HS1_CLK U1CTS
9 7 SPIQ HS1_DATA0 U2RTS
10 8 SPID HS1_DATA1 U2CTS
11 9 SPIHD HS1_DATA2 U1RXD
12 10 SPIWP HS1_DATA3 U1TXD
13 11 SPI_CS0 HS1_CMD U1RTS
14 12 ADC2_CH5 HSPIQ HS2_DATA2 T5 RTC15 MTDI
15 13 ADC2_CH4 HSPID HS2_DATA3 T4 RTC14 MTCK
16 14 ADC2_CH6 HSPICLK HS2_CLK T6 RTC16 MTMS
17 15 ADC2_CH3 HSPICS0 HS2_CMD T3 RTC13 MTDO
18 16 HS1_DATA4 U2RXD
19 17 HS1_DATA5 U2TXD
20 18 VSPICLK HS1_DATA7
21 19 VSPIQ U0CTS
22 20
23 21 VSPIHD
24 22 VSPIWP U0RTS
25 23 VSPID HS1_STROBE
26 25 ADC2_CH8 RTC6 DAC1
27 26 ADC2_CH9 RTC7 DAC2
28 27 ADC2_CH7 T7 RTC17
29 32 ADC1_CH4 T9 RTC9 32K_XP
30 33 ADC1_CH5 T8 RTC8 32K_XN
31 34 ADC1_CH6 RTC4 VDET1 Input Only
32 35 ADC1_CH7 RTC5 VDET2 Input Only
33 36 ADC1_CH0 RTC0 SENSE_V+ Input Only
34 37 ADC1_CH1 RTC1 SENSE_CAP+ Input Only
35 38 ADC1_CH2 RTC2 SENSE_CAP- Input Only
36 39 ADC1_CH3 RTC3 SENSE_V- Input Only
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 DESCRIPTION

View file

@ -1,65 +0,0 @@
GPIO,Power Domain,ADC,HS/QSPI,Touch,Debug,Other
GPIO0,RTC,,,,,
GPIO1,RTC,ADC1_CH0,,T1,,
GPIO2,RTC,ADC1_CH1,,T2,,
GPIO3,RTC,ADC1_CH2,,T3,,
GPIO4,RTC,ADC1_CH3,,T4,,
GPIO5,RTC,ADC1_CH4,,T5,,
GPIO6,RTC,ADC1_CH5,,T6,,
GPIO7,RTC,ADC1_CH6,,T7,,
GPIO8,RTC,ADC1_CH7,,T8,,
GPIO9,RTC,ADC1_CH8,FSPIHD,T9,,
GPIO10,RTC,ADC1_CH9,FSPICS0,T10,,
GPIO11,RTC,ADC2_CH0,FSPID,T11,,
GPIO12,RTC,ADC2_CH1,FSPICLK,T12,,
GPIO13,RTC,ADC2_CH2,FSPIQ,T13,,
GPIO14,RTC,ADC2_CH3,FSPIWP,T14,,
GPIO15,RTC,ADC2_CH4,,,U0RTS,XTAL_32K_P
GPIO16,RTC,ADC2_CH5,,,U0CTS,XTAL_32K_N
GPIO17,RTC,ADC2_CH6,,,U1TXD,
GPIO18,RTC,ADC2_CH7,,,U1RXD,
GPIO19,RTC,ADC2_CH8,,,U1RTS,USB_D-
GPIO20,RTC,ADC2_CH9,,,U1CTS,USB_D+
GPIO21,RTC,,,,,
GPIO26,SPI,,SPICS1,,,
GPIO27,SPI,,SPIHD,,,
GPIO28,SPI,,SPIWP,,,
GPIO29,SPI,,SPICS0,,,
GPIO30,SPI,,SPICLK,,,
GPIO31,SPI,,SPIQ,,,
GPIO32,SPI,,SPID,,,
GPIO33,SPI/CPU,,FSPIHD,,,
GPIO34,SPI/CPU,,FSPICS0,,,
GPIO35,SPI/CPU,,FSPID,,,
GPIO36,SPI/CPU,,FSPICLK,,,
GPIO37,SPI/CPU,,FSPIQ,,,
GPIO38,CPU,,FSPIWP,,,
GPIO39,CPU,,,,MTCK,
GPIO40,CPU,,,,MTDO,
GPIO41,CPU,,,,MTDI,
GPIO42,CPU,,,,MTMS,
GPIO43,CPU,,,,U0TXD,
GPIO44,CPU,,,,U0RXD,
GPIO45,CPU,,,,,
GPIO46,CPU,,,,,INPUT ONLY
GPIO47,CPU,,CLK_P_DIFF,,,
GPIO48,CPU,,CLK_N_DIFF,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,,
DESCRIPTION,The ESP32 description goes here,,,,,
1 GPIO Power Domain ADC HS/QSPI Touch Debug Other
2 GPIO0 RTC
3 GPIO1 RTC ADC1_CH0 T1
4 GPIO2 RTC ADC1_CH1 T2
5 GPIO3 RTC ADC1_CH2 T3
6 GPIO4 RTC ADC1_CH3 T4
7 GPIO5 RTC ADC1_CH4 T5
8 GPIO6 RTC ADC1_CH5 T6
9 GPIO7 RTC ADC1_CH6 T7
10 GPIO8 RTC ADC1_CH7 T8
11 GPIO9 RTC ADC1_CH8 FSPIHD T9
12 GPIO10 RTC ADC1_CH9 FSPICS0 T10
13 GPIO11 RTC ADC2_CH0 FSPID T11
14 GPIO12 RTC ADC2_CH1 FSPICLK T12
15 GPIO13 RTC ADC2_CH2 FSPIQ T13
16 GPIO14 RTC ADC2_CH3 FSPIWP T14
17 GPIO15 RTC ADC2_CH4 U0RTS XTAL_32K_P
18 GPIO16 RTC ADC2_CH5 U0CTS XTAL_32K_N
19 GPIO17 RTC ADC2_CH6 U1TXD
20 GPIO18 RTC ADC2_CH7 U1RXD
21 GPIO19 RTC ADC2_CH8 U1RTS USB_D-
22 GPIO20 RTC ADC2_CH9 U1CTS USB_D+
23 GPIO21 RTC
24 GPIO26 SPI SPICS1
25 GPIO27 SPI SPIHD
26 GPIO28 SPI SPIWP
27 GPIO29 SPI SPICS0
28 GPIO30 SPI SPICLK
29 GPIO31 SPI SPIQ
30 GPIO32 SPI SPID
31 GPIO33 SPI/CPU FSPIHD
32 GPIO34 SPI/CPU FSPICS0
33 GPIO35 SPI/CPU FSPID
34 GPIO36 SPI/CPU FSPICLK
35 GPIO37 SPI/CPU FSPIQ
36 GPIO38 CPU FSPIWP
37 GPIO39 CPU MTCK
38 GPIO40 CPU MTDO
39 GPIO41 CPU MTDI
40 GPIO42 CPU MTMS
41 GPIO43 CPU U0TXD
42 GPIO44 CPU U0RXD
43 GPIO45 CPU
44 GPIO46 CPU INPUT ONLY
45 GPIO47 CPU CLK_P_DIFF
46 GPIO48 CPU CLK_N_DIFF
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 DESCRIPTION The ESP32 description goes here

View file

@ -1,49 +0,0 @@
GPIO,ADC,PWM,I2C,SPI,UART,I2S,Other,Debug
GPIO_00,,,,DQS/PCS3/PCS3,,MCLK,,
GPIO_01,,PWM0_B,SDA,,,RX_BCLK,,
GPIO_02,,PWM0_A,SCL,,,RX_SYNC,,
GPIO_03,,PWM1_B,,,,RX_DATA0,,
GPIO_04,,PWM1_A,,,,TX_DATA0,,
GPIO_05,,PWM2_B,,,RXD,TX_DATA1/RX_DATA1,,
GPIO_06,,PWM2_A,,,TXD,TX_BCLK,,
GPIO_07,,PWM3_B,,,RTS_B/RXD,TX_SYNC,,
GPIO_08,,PWM3_A,,,CTS_B/TXD,MCLK,,
GPIO_09,,,SDA,SS1_B,RXD,,,
GPIO_10,,,HREQ/SCL,,TXD,,,
GPIO_11,,,SDA,SS1_B,RXD,,,TRACE3
GPIO_12,,,SCL,,TXD,,,TRACE2
GPIO_13,,,,PCS2,RXD,,,TRACE1
GPIO_AD_00,ADC0,,,PCS2,TXD,,,TRACE0
GPIO_AD_01,ADC1,,SDA,PCS1,RXD,,,TRACE_SWO
GPIO_AD_02,ADC2,,SCL,PCS1,TXD,,,TRACE_CLK
GPIO_AD_03,ADC3,PWM2_B,,SDI,,,,JTAG_DE_B
GPIO_AD_04,ADC4,PWM2_A,,SDO,,,,
GPIO_AD_05,ADC5,PWM3_B,,PCS0,,,,
GPIO_AD_06,ADC6,PWM3_A,HREQ,SCK,,,,
GPIO_AD_07,ADC7,,SDA,,RTS_B/RXD,,XBAR1_INOUT03,CM7_RXEV
GPIO_AD_08,ADC8,,SCL,,CTS_B/TXD,,,CM7_TXEV/JTAG_TRSTB
GPIO_AD_09,ADC9,PWM3_X,,SDI,,,,TRACE_SWO/JTAG_TDO
GPIO_AD_10,ADC10,PWM2_X,,SDO,,,,JTAG_TDI
GPIO_AD_11,ADC11,PWM1_X,,PCS0,,,,JTAG_MOD
GPIO_AD_12,ADC12,PWM0_X,,SCK,,,,JTAG_TCK
GPIO_AD_13,ADC13,,SDA,,RTS_B/RTS_B,,,JTAG_TMS
GPIO_AD_14,ADC14,,SCL,,CTS_B/CTS_B,,XBAR1_INOUT02,
GPIO_SD_00,,,,SS0_B,,TX_SYNC,,CM7_RXEV
GPIO_SD_01,,PWM0_B,,DATA1,,TX_BCLK,,
GPIO_SD_02,,PWM0_A,,DATA2,,TX_DATA,,
GPIO_SD_03,,PWM1_B,,DATA0,,RX_DATA,,
GPIO_SD_04,,PWM1_A,,DATA3,,RX_SYNC,,
GPIO_SD_05,,,SDA,SS1_B/SDI,,,,
GPIO_SD_06,,,SCL,SS0_B/SDO,,,,
GPIO_SD_07,,,SDA,DATA1/PCS0,,,,
GPIO_SD_08,,,SCL,DATA2/SCK,,,,
GPIO_SD_09,,,,DATA0/SDI,RXD,,,
GPIO_SD_10,,,,SCLK/SDO,TXD,,,
GPIO_SD_11,,,,DATA3/SCK,RXD,,,
GPIO_SD_12,,,,DQS/PCS0,TXD,,,
GPIO_SD_13,,,,SCLK,,RX_BCLK,,CM7_TXEV
GPIO_SD_14,,,,DQS/DQS,,,,
PMIC_ON_REQ,,,,,,,,
POR_B,,,,,,,,
ONOFF,,,,,,,,
DESCRIPTION,,,,,,,,
1 GPIO ADC PWM I2C SPI UART I2S Other Debug
2 GPIO_00 DQS/PCS3/PCS3 MCLK
3 GPIO_01 PWM0_B SDA RX_BCLK
4 GPIO_02 PWM0_A SCL RX_SYNC
5 GPIO_03 PWM1_B RX_DATA0
6 GPIO_04 PWM1_A TX_DATA0
7 GPIO_05 PWM2_B RXD TX_DATA1/RX_DATA1
8 GPIO_06 PWM2_A TXD TX_BCLK
9 GPIO_07 PWM3_B RTS_B/RXD TX_SYNC
10 GPIO_08 PWM3_A CTS_B/TXD MCLK
11 GPIO_09 SDA SS1_B RXD
12 GPIO_10 HREQ/SCL TXD
13 GPIO_11 SDA SS1_B RXD TRACE3
14 GPIO_12 SCL TXD TRACE2
15 GPIO_13 PCS2 RXD TRACE1
16 GPIO_AD_00 ADC0 PCS2 TXD TRACE0
17 GPIO_AD_01 ADC1 SDA PCS1 RXD TRACE_SWO
18 GPIO_AD_02 ADC2 SCL PCS1 TXD TRACE_CLK
19 GPIO_AD_03 ADC3 PWM2_B SDI JTAG_DE_B
20 GPIO_AD_04 ADC4 PWM2_A SDO
21 GPIO_AD_05 ADC5 PWM3_B PCS0
22 GPIO_AD_06 ADC6 PWM3_A HREQ SCK
23 GPIO_AD_07 ADC7 SDA RTS_B/RXD XBAR1_INOUT03 CM7_RXEV
24 GPIO_AD_08 ADC8 SCL CTS_B/TXD CM7_TXEV/JTAG_TRSTB
25 GPIO_AD_09 ADC9 PWM3_X SDI TRACE_SWO/JTAG_TDO
26 GPIO_AD_10 ADC10 PWM2_X SDO JTAG_TDI
27 GPIO_AD_11 ADC11 PWM1_X PCS0 JTAG_MOD
28 GPIO_AD_12 ADC12 PWM0_X SCK JTAG_TCK
29 GPIO_AD_13 ADC13 SDA RTS_B/RTS_B JTAG_TMS
30 GPIO_AD_14 ADC14 SCL CTS_B/CTS_B XBAR1_INOUT02
31 GPIO_SD_00 SS0_B TX_SYNC CM7_RXEV
32 GPIO_SD_01 PWM0_B DATA1 TX_BCLK
33 GPIO_SD_02 PWM0_A DATA2 TX_DATA
34 GPIO_SD_03 PWM1_B DATA0 RX_DATA
35 GPIO_SD_04 PWM1_A DATA3 RX_SYNC
36 GPIO_SD_05 SDA SS1_B/SDI
37 GPIO_SD_06 SCL SS0_B/SDO
38 GPIO_SD_07 SDA DATA1/PCS0
39 GPIO_SD_08 SCL DATA2/SCK
40 GPIO_SD_09 DATA0/SDI RXD
41 GPIO_SD_10 SCLK/SDO TXD
42 GPIO_SD_11 DATA3/SCK RXD
43 GPIO_SD_12 DQS/PCS0 TXD
44 GPIO_SD_13 SCLK RX_BCLK CM7_TXEV
45 GPIO_SD_14 DQS/DQS
46 PMIC_ON_REQ
47 POR_B
48 ONOFF
49 DESCRIPTION

3150
output.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 148 KiB

196
parser.py
View file

@ -116,7 +116,6 @@ themes = [
conn_renames = [('!RESET', 'RESET'),
('D5_5V', 'D5'),
('+3V3', '3.3V'),
('3V3', '3.3V'),
('+5V', '5V')
]
product_url = None
@ -191,57 +190,9 @@ def get_arduino_mapping(connections, variantfolder):
global longest_arduinopin
if not variantfolder:
return connections
###################################################### special case of very early chips
if ("atmega328" in variantfolder) or ("atmega32u4" in variantfolder) or ("attiny8x" in variantfolder):
pinmap8x = ["PB0", "PB1", "PB2", "PB3", "PB4"]
pinmap328 = ["PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
"PB0", "PB1", "PB2", "PB3", "PB4", "PB5",
"PC0", "PC1", "PC2", "PC3", "PC4", "PC5"]
specialnames328 = {"A0" : "PC0", "A1" : "PC1", "A2" : "PC2",
"A3" : "PC3", "A4" : "PC4", "A5" : "PC5",
"A4/SDA" : "PC4", "A5/SCL" : "PC5",
"SS" : "PB2", "MOSI" : "PB3",
"MISO": "PB4", "SCK": "PB5"}
pinmap32u4 = ["PD2", "PD3", "PD1", "PD0", "PD4", "PC6", "PD7", "PE6",
"PB4", "PB5", "PB6", "PB7", "PD6", "PC7",
"PB3", "PB1", "PB2", "PB0",
"PF7", "PF6", "PF5", "PF4", "PF1", "PF0"]
specialnames32u4 = {"SDA" : "PD1", "SCL" : "PD0",
"MISO" : "PB3", "SCK" : "PB1", "MOSI" : "PB2",
"A0" : "PF7", "A1" : "PF6", "A2" : "PF5",
"A3" : "PF4", "A4" : "PF1", "A5" : "PF0" }
if "attiny8x" in variantfolder:
pinmap = pinmap8x
specialnames = None
if "atmega328" in variantfolder:
pinmap = pinmap328
specialnames = specialnames328
if "atmega32u4" in variantfolder:
pinmap = pinmap32u4
specialnames = specialnames32u4
for conn in connections:
print(conn['name'])
# digital pins
matches = re.match(r'(IO|D|#)([0-9]+)', conn['name'])
if matches:
#print(matches)
digitalname = matches.group(2)
conn['pinname'] = pinmap[int(digitalname)]
conn['arduinopin'] = digitalname
longest_arduinopin = max(longest_arduinopin, len(str(conn['arduinopin'])))
# other pins :/
if specialnames:
if conn['name'] in specialnames:
conn['pinname'] = specialnames[conn['name']]
conn['arduinopin'] = pinmap.index(conn['pinname'])
longest_arduinopin = max(longest_arduinopin, len(str(conn['arduinopin'])))
#print(connections)
return connections
###################################################### NRF52 board variant handler
elif "nrf52" in variantfolder.lower():
# NRF52 board variant handler
if "nrf52" in variantfolder.lower():
# copy over the variant.cpp minus any includes
variantcpp = open(variantfolder+"/"+"variant.cpp").readlines()
@ -295,8 +246,8 @@ int main(void) {
outfileh.write(line)
outfileh.close()
###################################################### SAMDxx board variant handler
elif "samd" in variantfolder.lower():
# SAMDxx board variant handler
if "samd" in variantfolder.lower():
# copy over the variant.cpp minus any includes
variantcpp = open(variantfolder+"/"+"variant.cpp").readlines()
@ -318,7 +269,6 @@ int main(void) {
#define EXTERNAL_INT_NMI 32
#define PIN_ATTR_PWM 0
#define PIN_ATTR_ANALOG 0
#define PIN_ATTR_ANALOG_ALT 0
#define PIN_ATTR_DIGITAL 0
#define PIO_SERCOM 0
#define PIO_DIGITAL 0
@ -328,22 +278,16 @@ int main(void) {
#define PIO_TIMER 0
#define PIO_TIMER_ALT 0
#define PIO_PWM 0
#define PIO_PWM_ALT 0
#define PIN_ATTR_TIMER 0
#define PIN_ATTR_TIMER_ALT 0
#define PIO_COM 0
#define PORTA 0
#define PORTB 1
#define PORTC 2
#define PORTD 3
#define DAC_Channel0 0
""")
for define in ("NOT_ON_TIMER", "NOT_ON_PWM", "No_ADC_Channel",
"EXTERNAL_INT_NONE", "PIN_ATTR_NONE",
"PIN_ATTR_PWM_E", "PIN_ATTR_PWM_F", "PIN_ATTR_PWM_G",
"DAC_Channel1", "TCC_INST_NUM", "TC_INST_NUM",
"NOT_A_PORT", "PIO_NOT_A_PIN", "PIN_NOT_A_PIN"):
outfilecpp.write("#define %s 10\n" % define)
"EXTERNAL_INT_NONE", "PIN_ATTR_NONE"):
outfilecpp.write("#define %s -1\n" % define)
for adc in range(0, 32):
outfilecpp.write("#define ADC_Channel%d %d\n" % (adc, adc))
for irq in range(0, 32):
@ -353,23 +297,14 @@ int main(void) {
outfilecpp.write("#define TCC0_CH%d %d\n" % (tcc, tcc))
outfilecpp.write("#define PWM1_CH%d %d\n" % (tcc, tcc))
outfilecpp.write("#define TCC1_CH%d %d\n" % (tcc, tcc))
outfilecpp.write("#define TCC%d_GCLK_ID %d\n" % (tcc, tcc))
for tc in range(0, 8):
for tc in range(0, 2):
outfilecpp.write("#define PWM2_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TCC2_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TCC3_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TCC4_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define PWM3_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC3_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define PWM4_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC7_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC6_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC5_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC4_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC2_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC1_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC0_CH%d %d\n" % (tc, tc))
outfilecpp.write("#define TC%d_GCLK_ID %d\n" % (tc, tc))
outfilecpp.write("""
typedef struct _PinDescription
{
@ -421,67 +356,16 @@ int main(void) {
outfileh.write(line)
outfileh.close()
arduinopins = ""
###################################################### SAMDxx board variant handler
elif "esp32" in variantfolder.lower():
for conn in connections:
print(conn['name'])
# digital pins
iomatches = re.match(r'(GPIO|IO|D|I|#)([0-9]+)', conn['name'])
if iomatches:
print(iomatches)
digitalname = iomatches.group(2)
conn['pinname'] = digitalname
#conn['arduinopin'] = digitalname
longest_arduinopin = max(longest_arduinopin, len(digitalname))
else:
conn['pinname'] = conn['name']
# open the file
varianth = open(variantfolder+"/"+"pins_arduino.h").readlines()
arduinopins = ""
for line in varianth:
#print(line)
# find the const defines
matches2 = re.match(r'\s*static\s*const\s*uint8_t\s*([A-Z0-9_]+)\s*=\s*([0-9]+)\s*;.*', line)
if matches2:
prettyname = matches2[1]
pinnumber = matches2[2]
print(prettyname, pinnumber)
for conn in connections:
if conn['pinname'] == prettyname:
conn['pinname'] = pinnumber
#print(conn)
arduinopins += pinnumber + ", " + prettyname + "\n"
# ok after we map everything, lets find internal pins
for pinpair in arduinopins.split('\n'):
if not pinpair:
continue
pinnumber, prettyname = pinpair.split(",")
conn = next((c for c in connections if c.get('pinname') == pinnumber), None)
if conn:
continue
print("Found an internal pin!")
newconn = {'name': prettyname, 'pinname': pinnumber}
print(newconn)
connections.append(newconn)
#print(arduinopins)
else:
raise NotImplementedError("Unknown Arduino variant type! (if RP2040, leave off -a arguments and try again)", variantfolder.lower())
if not arduinopins: # some variants can auto-extract the pins for us, if not we do it the hard way
time.sleep(1)
# now compile it!
compileit = subprocess.Popen("g++ -w variant.cpp -o arduinopins", shell=True, stdout=subprocess.PIPE)
#print(compileit.stdout.read())
runit = subprocess.Popen("./arduinopins", shell=True, stdout=subprocess.PIPE)
time.sleep(1)
arduinopins = runit.stdout.read().decode("utf-8")
#print(arduinopins)
#exit()
time.sleep(1)
# now compile it!
compileit = subprocess.Popen("g++ -w variant.cpp -o arduinopins", shell=True, stdout=subprocess.PIPE)
#print(compileit.stdout.read())
runit = subprocess.Popen("./arduinopins", shell=True, stdout=subprocess.PIPE)
time.sleep(1)
arduinopins = runit.stdout.read().decode("utf-8")
print(arduinopins)
#exit()
for pinpair in arduinopins.split("\n"):
if not pinpair:
continue
@ -490,8 +374,8 @@ int main(void) {
if 'arduinopin' in conn:
continue
conn['arduinopin'] = arduinopin
print(arduinopin, pinname, conn)
longest_arduinopin = max(longest_arduinopin, len(arduinopin))
#print(arduinopin, pinname, connection)
return connections
@ -709,7 +593,6 @@ def draw_pinlabels_svg(connections):
if 'arduinopin' in conn:
#box_w = (longest_arduinopin + 1) * BOX_WIDTH_PER_CHAR
box_w = longest_arduinopin * BOX_WIDTH_PER_CHAR
if conn['location'] in ('top', 'right', 'unknown'):
last_used_x = box_x # Save-and-increment
box_x += box_w
@ -761,11 +644,11 @@ def draw_pinlabels_svg(connections):
# clean up some names!
label_type = 'CircuitPython Name'
if name_label in ("3.3V", "VMAX", "VHIGH", "VIN", "5V", "VBAT", "VBUS", "VHI", "VCCIO", "VIO"):
if name_label in ("3.3V", "VHIGH", "VIN", "5V", "VBAT", "VBUS", "VHI"):
label_type = 'Power'
if name_label in ("GND"):
label_type = 'GND'
if name_label in ("EN", "RST", "RESET", "SWCLK", "SWC", "SWDIO", "SWD"):
if name_label in ("EN", "RESET", "SWCLK", "SWC", "SWDIO", "SWD"):
label_type = 'Control'
if name_label in ('SCL', 'SCL1', 'SCL0') and conn.get('svgtype') == 'ellipse':
# special stemma QT!
@ -816,9 +699,9 @@ def draw_pinlabels_svg(connections):
continue
if mux == 'GPIO': # the underlying pin GPIO name
label_type = 'Port'
elif mux in ('SPI', 'HS/QSPI', 'QSPI/CAN') : # SPI ports
elif mux in ('SPI', 'HS/QSPI') : # SPI ports
label_type = 'SPI'
elif mux in ('I2C',): # I2C ports
elif mux == 'I2C': # I2C ports
label_type = 'I2C'
elif mux in ('UART', 'Debug'): # UART ports
label_type = 'UART'
@ -828,18 +711,14 @@ def draw_pinlabels_svg(connections):
label_type = 'Touch'
elif mux == 'ADC': # analog ins
label_type = 'Analog'
elif mux == 'Arduino ADC': # analog ins
label_type = 'SERCOM'
elif mux == 'Other':
label_type = 'I2C'
elif mux == 'Power Domain':
label_type = 'Power Domain'
elif mux in ('High Speed', "PCC"):
elif mux == 'High Speed':
label_type = 'High Speed'
elif mux == 'Low Speed':
label_type = 'Low Speed'
elif mux == 'RTC':
label_type = 'Low Speed'
elif mux == 'Speed':
label_type = 'Speed'
elif mux in('Special', 'SPECIAL'):
@ -856,13 +735,9 @@ def draw_pinlabels_svg(connections):
label_type = 'Timer'
elif mux == 'Timer Alt':
label_type = 'Timer Alt'
elif mux == 'Timer Alt2':
label_type = 'Timer Alt2'
elif mux in ('SDMMC', "I2S"):
label_type = 'SERCOM'
else:
continue
# Here, labels are chromatic mux items, not in themes
if conn['location'] in ('top', 'right', 'unknown'):
# Draw-and-increment
@ -908,7 +783,7 @@ def draw_pinlabels_svg(connections):
font_family = LABEL_FONT,
font_weight = 'bold',
fill = 'black',
text_anchor = 'middle'
text_anchor = 'end'
))
g.add(dwg.text(
product_url,
@ -917,7 +792,7 @@ def draw_pinlabels_svg(connections):
font_family = LABEL_FONT,
font_weight = 'bold',
fill = 'black',
text_anchor = 'middle'
text_anchor = 'end'
))
dwg.add(g)
@ -1003,18 +878,11 @@ def parse(fzpz, circuitpydef, pinoutcsv, arduinovariantfolder, substitute):
# find the 'true' GPIO pin names via the circuitpython file
# e.g. "MISO" and "D2" map to "GPIO03" or "P0.04"
if circuitpydef != "None":
connections = get_circuitpy_aliases(connections, circuitpydef)
connections = get_circuitpy_aliases(connections, circuitpydef)
# find the mapping between gpio pins and arduino pins
# atmega 328's/32u4 dont have a mapping
if not arduinovariantfolder and pinoutcsv == "atmega328pins.csv":
arduinovariantfolder = "atmega328"
if not arduinovariantfolder and pinoutcsv == "atmega32u4pins.csv":
arduinovariantfolder = "atmega32u4"
if not arduinovariantfolder and pinoutcsv == "attiny8xpins.csv":
arduinovariantfolder = "attiny8x"
connections = get_arduino_mapping(connections, arduinovariantfolder)
# open and parse the pinout mapper CSV
pinarray = get_chip_pinout(connections, pinoutcsv)
#print(pinarray)
@ -1028,16 +896,12 @@ def parse(fzpz, circuitpydef, pinoutcsv, arduinovariantfolder, substitute):
svg_width = 25.4 * float(svg_width[:-2]) * MM_TO_PX
elif "mm" in svg_width:
svg_width = float(svg_width[:-2]) * MM_TO_PX
elif "px" in svg_width:
svg_width = float(svg_width[:-2])
else:
raise RuntimeError("Dont know units of width!", svg_width)
if "in" in svg_height:
svg_height = 25.4 * float(svg_height[:-2]) * MM_TO_PX
elif "mm" in svg_height:
svg_height = float(svg_height[:-2]) * MM_TO_PX
elif "px" in svg_height:
svg_height = float(svg_height[:-2])
else:
raise RuntimeError("Dont know units of width!", svg_height)
@ -1077,9 +941,7 @@ def parse(fzpz, circuitpydef, pinoutcsv, arduinovariantfolder, substitute):
if not 'pinname' in conn:
continue
# find muxes next
muxes = next((pin for pin in pinarray if pin['GPIO'] == conn['pinname']), None)
#print("***", muxes)
conn['mux'] = muxes
draw_pinlabels_svg(connections)

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View file

@ -1,406 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- Generator: Adobe Illustrator 25.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="1280px" height="1024px" viewBox="0 0 1280 1024" enable-background="new 0 0 1280 1024" xml:space="preserve">
width="1280px" height="1024px" viewBox="0 0 1280 1024" style="enable-background:new 0 0 1280 1024;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#8C8C8C;stroke-width:0.7087;stroke-linecap:round;}
.st1{fill:#920000;}
.st2{fill:#FFFFFF;}
.st3{font-family:'CourierNewPS-BoldMT';}
.st4{font-size:6px;}
.st5{fill:#FFFF6D;}
.st6{fill:#006DDB;}
.st7{fill:none;stroke:#0000FF;stroke-width:0.7087;stroke-linecap:round;}
.st8{fill:none;stroke:#FFFF00;stroke-width:0.7087;stroke-linecap:round;}
.st9{fill:none;stroke:#000000;stroke-width:0.7087;stroke-linecap:round;}
.st10{fill:none;stroke:#FF0000;stroke-width:0.7087;stroke-linecap:round;}
.st11{fill:#FFFF00;}
.st12{fill:#0000FF;}
.st13{fill:#333333;stroke:#333333;stroke-width:0.2877;stroke-miterlimit:3.8362;}
.st14{fill:#666666;}
.st15{fill:#DCDCDC;}
.st16{fill:#1E1E1E;}
.st17{fill:#B4B4B4;}
</style>
<g>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="35" y1="46.9" x2="59" y2="46.9"/>
<path fill="#920000" d="M49.9,43.8h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1V45
<line class="st0" x1="35" y1="46.9" x2="59" y2="46.9"/>
<path class="st1" d="M49.9,43.8h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1V45
C48.8,44.3,49.3,43.8,49.9,43.8z"/>
<text transform="matrix(1 0 0 1 51.8051 48.6211)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">3.3V</text>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="44.2" y1="32.5" x2="59" y2="32.5"/>
<path fill="#FFFF6D" d="M49.9,29.5h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1v-3.8
<text transform="matrix(1 0 0 1 51.8051 48.6211)" class="st2 st3 st4">3.3V</text>
<line class="st0" x1="44.2" y1="32.5" x2="59" y2="32.5"/>
<path class="st5" d="M49.9,29.5h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C48.7,30,49.2,29.5,49.9,29.5z"/>
<text transform="matrix(1 0 0 1 53.5721 34.2982)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="39.6" y1="39.7" x2="59" y2="39.7"/>
<path fill="#006DDB" d="M49.9,36.7h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1v-3.8
<text transform="matrix(1 0 0 1 53.5721 34.2982)" class="st3 st4">SCL</text>
<line class="st0" x1="39.6" y1="39.7" x2="59" y2="39.7"/>
<path class="st6" d="M49.9,36.7h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C48.7,37.2,49.2,36.7,49.9,36.7z"/>
<text transform="matrix(1 0 0 1 53.5721 41.4981)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="30.5" y1="54" x2="59" y2="54"/>
<text transform="matrix(1 0 0 1 53.5721 41.4981)" class="st2 st3 st4">SDA</text>
<line class="st0" x1="30.5" y1="54" x2="59" y2="54"/>
<path d="M49.9,51h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H49.9c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C48.8,51.5,49.3,51,49.9,51z"/>
<text transform="matrix(1 0 0 1 53.6053 55.744)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="35" y1="46.9" x2="35.1" y2="26.4"/>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="30.5" y1="53.8" x2="30.5" y2="26.4"/>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="39.6" y1="39.7" x2="39.6" y2="26.4"/>
<line fill="none" stroke="#8C8C8C" stroke-width="0.7087" stroke-linecap="round" x1="44.1" y1="32.5" x2="44.1" y2="26.4"/>
<text transform="matrix(1 0 0 1 53.6053 55.744)" class="st2 st3 st4">GND</text>
<line class="st0" x1="35" y1="46.9" x2="35.1" y2="26.4"/>
<line class="st0" x1="30.5" y1="53.8" x2="30.5" y2="26.4"/>
<line class="st0" x1="39.6" y1="39.7" x2="39.6" y2="26.4"/>
<line class="st0" x1="44.1" y1="32.5" x2="44.1" y2="26.4"/>
</g>
<g id="g18467" transform="translate(4.4999716,-4.9999826)">
</g>
<g>
<path fill="#DCDCDC" d="M184.9,27.1v-0.2c-0.2,0-0.4,0-0.6,0c-0.3,0-0.5,0-0.8-0.1v0.3h-3.1v-0.3c-0.2,0-0.4,0-0.6,0
<line class="st7" x1="104.7" y1="54.3" x2="104.7" y2="41"/>
<line class="st8" x1="108" y1="47.1" x2="108" y2="41"/>
<line class="st9" x1="98" y1="68.4" x2="98" y2="41"/>
<line class="st10" x1="101.4" y1="61.5" x2="101.5" y2="41"/>
<line class="st10" x1="101.4" y1="61.5" x2="122.9" y2="61.5"/>
<line class="st8" x1="108.1" y1="47.1" x2="122.9" y2="47.1"/>
<line class="st7" x1="104.7" y1="54.3" x2="122.9" y2="54.3"/>
<line class="st9" x1="98" y1="68.6" x2="122.9" y2="68.6"/>
<path class="st1" d="M124.1,58.4h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C122.9,58.9,123.4,58.4,124.1,58.4z"/>
<text transform="matrix(1 0 0 1 125.9662 63.1797)" class="st2 st3 st4">3.3V</text>
<path class="st5" d="M124,44.1h18.2c0.6,0,1.1,0.5,1.1,1.1V49c0,0.6-0.5,1.1-1.1,1.1H124c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C122.9,44.6,123.4,44.1,124,44.1z"/>
<text transform="matrix(1 0 0 1 127.7333 48.8568)" class="st3 st4">SCL</text>
<path class="st6" d="M124,51.3h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H124c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C122.9,51.8,123.4,51.3,124,51.3z"/>
<text transform="matrix(1 0 0 1 127.7333 56.0568)" class="st2 st3 st4">SDA</text>
<path d="M124.1,65.5h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C122.9,66,123.4,65.5,124.1,65.5z"/>
<text transform="matrix(1 0 0 1 127.7665 70.3026)" class="st2 st3 st4">GND</text>
<path class="st11" d="M124,44.1h18.2c0.6,0,1.1,0.5,1.1,1.1V49c0,0.6-0.5,1.1-1.1,1.1H124c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C122.9,44.6,123.4,44.1,124,44.1z"/>
<text transform="matrix(1 0 0 1 127.7332 48.8568)" class="st3 st4">SCL</text>
<path class="st12" d="M124,51.3h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1H124c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C122.9,51.8,123.4,51.3,124,51.3z"/>
<text transform="matrix(1 0 0 1 127.7332 56.0568)" class="st2 st3 st4">SDA</text>
<g>
<rect id="rect18427" x="95.4" y="25.8" class="st13" width="15.5" height="12.6"/>
<rect id="rect18429" x="92.7" y="38.3" class="st14" width="20.8" height="3.3"/>
<g>
<rect id="rect18431" x="95.1" y="34.7" class="st14" width="2.8" height="3.9"/>
<rect id="rect18433" x="99.1" y="34.7" class="st14" width="1.5" height="3.9"/>
<rect id="rect18435" x="102.6" y="34.7" class="st14" width="1.1" height="3.9"/>
<rect id="rect18437" x="105.8" y="34.7" class="st14" width="1.5" height="3.9"/>
<rect id="rect18439" x="108.5" y="34.7" class="st14" width="2.6" height="3.9"/>
</g>
</g>
</g>
<desc>
<referenceFile>ItsyBitsy RP2040 rev C1_breadboard.svg</referenceFile>
</desc>
<desc>Fritzing breadboard generated by brd2svg</desc>
<g>
<path class="st15" d="M184.9,27.1v-0.2c-0.2,0-0.4,0-0.6,0c-0.3,0-0.5,0-0.8-0.1v0.3h-3.1v-0.3c-0.2,0-0.4,0-0.6,0
c-0.3,0-0.6,0-0.8-0.1V27h-1.3v9.9h1.3v0.2c0.2,0,0.3,0,0.5,0c0.3,0,0.6,0,0.9,0.1V37h3.1v0.3c0.2,0,0.3,0,0.5,0
c0.3,0,0.6,0,0.9,0.1V37h1.3v-9.9H184.9z"/>
<circle fill="#1E1E1E" cx="181.9" cy="32.1" r="2.5"/>
<rect x="177.7" y="36.9" fill="#B4B4B4" width="8.5" height="0.6"/>
<rect x="177.7" y="26.7" fill="#B4B4B4" width="8.5" height="0.6"/>
</g>
<g>
<line fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" x1="234.5" y1="42.4" x2="245.1" y2="40.6"/>
<line fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" x1="234.6" y1="38.1" x2="245.1" y2="33.4"/>
<line fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" x1="245.1" y1="54.9" x2="234.5" y2="50.2"/>
<line fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" x1="245" y1="47.8" x2="234.5" y2="46.1"/>
<line fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" x1="245.1" y1="47.8" x2="255.7" y2="47.8"/>
<line fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" x1="245.1" y1="33.4" x2="255.7" y2="33.4"/>
<line fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" x1="245.1" y1="40.6" x2="255.7" y2="40.6"/>
<line fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" x1="245.1" y1="54.9" x2="255.7" y2="54.9"/>
<path fill="#920000" d="M256.9,44.7h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C255.7,45.2,256.2,44.7,256.9,44.7z"/>
<text transform="matrix(1 0 0 1 258.7333 49.4797)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">3.3V</text>
<path fill="#FFFF6D" d="M256.8,30.4H275c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C255.7,30.9,256.2,30.4,256.8,30.4z"/>
<text transform="matrix(1 0 0 1 260.5004 35.1569)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<path fill="#006DDB" d="M256.8,37.6H275c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C255.7,38.1,256.2,37.6,256.8,37.6z"/>
<text transform="matrix(1 0 0 1 260.5004 42.3569)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<path d="M256.9,51.8h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C255.7,52.3,256.2,51.8,256.9,51.8z"/>
<text transform="matrix(1 0 0 1 260.5336 56.6027)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
<path fill="#FFFF00" d="M256.8,30.4H275c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C255.7,30.9,256.2,30.4,256.8,30.4z"/>
<text transform="matrix(1 0 0 1 260.5002 35.1569)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<path fill="#0000FF" d="M256.8,37.6H275c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C255.7,38.1,256.2,37.6,256.8,37.6z"/>
<text transform="matrix(1 0 0 1 260.5002 42.3569)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<line fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" x1="223.8" y1="38.1" x2="234.5" y2="38.1"/>
<line fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" x1="223.8" y1="42.4" x2="234.5" y2="42.4"/>
<line fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" x1="223.8" y1="46.1" x2="234.4" y2="46.1"/>
<line fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" x1="223.8" y1="50.2" x2="234.5" y2="50.2"/>
<g>
<rect id="rect18427_1_" x="209.9" y="36.2" fill="#333333" stroke="#333333" stroke-width="0.2877" stroke-miterlimit="3.8362" width="12.6" height="15.5"/>
<rect id="rect18429_1_" x="222.4" y="33.6" fill="#666666" width="3.3" height="20.8"/>
<g>
<rect id="rect18431_1_" x="218.8" y="49.2" fill="#666666" width="3.9" height="2.8"/>
<rect id="rect18433_1_" x="218.8" y="46.5" fill="#666666" width="3.9" height="1.5"/>
<rect id="rect18435_1_" x="218.8" y="43.4" fill="#666666" width="3.9" height="1.1"/>
<rect id="rect18437_1_" x="218.8" y="39.8" fill="#666666" width="3.9" height="1.5"/>
<rect id="rect18439_1_" x="218.8" y="36" fill="#666666" width="3.9" height="2.6"/>
</g>
</g>
</g>
<g>
<path fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M145.5,55.5h-43.7
c-1,0-1.9-0.9-1.9-1.9V34.7"/>
<path fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M145.5,62.7h-47
c-1,0-1.9-0.9-1.9-1.9V34.7"/>
<path fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M145.5,41.1h-37
c-1,0-1.9-0.9-1.9-1.9v-4.5"/>
<path fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M145.5,48.3h-40.4
c-1,0-1.9-0.9-1.9-1.9V34.7"/>
<g>
<rect id="rect18427_2_" x="93.8" y="19.6" fill="#333333" stroke="#333333" stroke-width="0.2877" stroke-miterlimit="3.8362" width="15.5" height="12.6"/>
<rect id="rect18429_2_" x="91.1" y="32" fill="#666666" width="20.8" height="3.3"/>
<g>
<rect id="rect18431_2_" x="106.8" y="28.4" fill="#666666" width="2.8" height="3.9"/>
<rect id="rect18433_2_" x="104.1" y="28.4" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18435_2_" x="100.9" y="28.4" fill="#666666" width="1.1" height="3.9"/>
<rect id="rect18437_2_" x="97.4" y="28.4" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18439_2_" x="93.5" y="28.4" fill="#666666" width="2.6" height="3.9"/>
</g>
</g>
<path fill="#920000" d="M136.4,52.5h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C135.3,53,135.8,52.5,136.4,52.5z"/>
<text transform="matrix(1 0 0 1 138.337 57.2971)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">3.3V</text>
<path fill="#0000FF" d="M136.4,45.3h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C135.3,45.8,135.8,45.3,136.4,45.3z"/>
<text transform="matrix(1 0 0 1 140.1373 50.097)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<path fill="#FFFF00" d="M136.4,38.1h18.2c0.6,0,1.1,0.5,1.1,1.1V43c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C135.3,38.6,135.8,38.1,136.4,38.1z"/>
<text transform="matrix(1 0 0 1 140.1373 42.897)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<path d="M136.4,59.7h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C135.3,60.2,135.8,59.7,136.4,59.7z"/>
<text transform="matrix(1 0 0 1 140.1373 64.497)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
</g>
<g>
<line fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" x1="343.1" y1="46.4" x2="332.5" y2="48.2"/>
<line fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" x1="343" y1="50.7" x2="332.5" y2="55.4"/>
<line fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" x1="332.5" y1="33.9" x2="343.1" y2="38.6"/>
<line fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" x1="332.6" y1="41" x2="343.1" y2="42.7"/>
<line fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" x1="332.5" y1="41" x2="321.9" y2="41"/>
<line fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" x1="332.5" y1="55.4" x2="321.9" y2="55.4"/>
<line fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" x1="332.5" y1="48.2" x2="321.9" y2="48.2"/>
<line fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" x1="332.5" y1="33.9" x2="321.9" y2="33.9"/>
<line fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" x1="353.8" y1="50.7" x2="343.1" y2="50.7"/>
<line fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" x1="353.8" y1="46.4" x2="343.1" y2="46.4"/>
<line fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" x1="353.8" y1="42.7" x2="343.2" y2="42.7"/>
<line fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" x1="353.8" y1="38.6" x2="343.1" y2="38.6"/>
<g>
<rect id="rect18427_3_" x="355.8" y="37" fill="#333333" stroke="#333333" stroke-width="0.2877" stroke-miterlimit="3.8362" width="12.6" height="15.5"/>
<rect id="rect18429_3_" x="352.6" y="34.3" fill="#666666" width="3.3" height="20.8"/>
<g>
<rect id="rect18431_3_" x="355.6" y="36.7" fill="#666666" width="3.9" height="2.8"/>
<rect id="rect18433_3_" x="355.6" y="40.7" fill="#666666" width="3.9" height="1.5"/>
<rect id="rect18435_3_" x="355.6" y="44.2" fill="#666666" width="3.9" height="1.1"/>
<rect id="rect18437_3_" x="355.6" y="47.4" fill="#666666" width="3.9" height="1.5"/>
<rect id="rect18439_3_" x="355.6" y="50.1" fill="#666666" width="3.9" height="2.6"/>
</g>
</g>
<path fill="#920000" d="M304.1,38.2h18.2c0.6,0,1.1,0.5,1.1,1.1V43c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C302.9,38.7,303.4,38.2,304.1,38.2z"/>
<text transform="matrix(1 0 0 1 305.9028 42.9297)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">3.3V</text>
<path d="M304.1,31h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C302.9,31.5,303.4,31,304.1,31z"/>
<text transform="matrix(1 0 0 1 307.7031 35.8027)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
<path fill="#FFFF00" d="M304.2,52.4h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C303.1,52.9,303.6,52.4,304.2,52.4z"/>
<text transform="matrix(1 0 0 1 307.857 57.1569)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<path fill="#0000FF" d="M304.2,45.3h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C303.1,45.8,303.6,45.3,304.2,45.3z"/>
<text transform="matrix(1 0 0 1 307.857 50.0569)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
</g>
<g>
<g>
<path fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M456.4,39.2v18.9
c0,1-0.9,1.9-1.9,1.9h-43.7"/>
<path fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M459.7,39.2v26.1
c0,1-0.9,1.9-1.9,1.9h-47"/>
<path fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M449.7,39.2v4.5
c0,1-0.9,1.9-1.9,1.9h-37"/>
<path fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M453.1,39.2v11.7
c0,1-0.9,1.9-1.9,1.9h-40.4"/>
</g>
<g>
<rect id="rect18427_00000178914106809447511930000013866159404436575389_" x="447.2" y="23.9" fill="#333333" stroke="#333333" stroke-width="0.2877" stroke-miterlimit="3.8362" width="15.5" height="12.6"/>
<rect id="rect18429_00000031928373075921312910000014790377498140978847_" x="444.5" y="36.3" fill="#666666" width="20.8" height="3.3"/>
<g>
<rect id="rect18431_00000170993680101322717880000001644850932840291517_" x="460.2" y="32.7" fill="#666666" width="2.8" height="3.9"/>
<rect id="rect18433_00000103241704361221988900000015591929497546297534_" x="457.5" y="32.7" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18435_00000173155515476320139280000004429963318720837812_" x="454.3" y="32.7" fill="#666666" width="1.1" height="3.9"/>
<rect id="rect18437_00000061454898119703330670000013955461483550485126_" x="450.8" y="32.7" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18439_00000055704433746169303960000015895652824250320515_" x="446.9" y="32.7" fill="#666666" width="2.6" height="3.9"/>
</g>
</g>
<g>
<path fill="#920000" d="M409.6,56.8h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C408.5,57.3,409,56.8,409.6,56.8z"/>
<text transform="matrix(1 0 0 1 411.4896 61.5797)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">3.3V</text>
<path fill="#0000FF" d="M409.6,49.6h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C408.5,50.1,409,49.6,409.6,49.6z"/>
<text transform="matrix(1 0 0 1 413.2899 54.3796)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<path fill="#FFFF00" d="M409.6,42.4h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C408.5,42.9,409,42.4,409.6,42.4z"/>
<text transform="matrix(1 0 0 1 413.2899 47.1795)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<path d="M409.6,64h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C408.5,64.5,409,64,409.6,64z"/>
<text transform="matrix(1 0 0 1 413.2899 68.7795)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
</g>
</g>
<g>
<path fill="#E91E32" d="M529.4,45.5c-0.1,0-0.1,0.1-0.1,0.1v2.3c0,0.1,0.1,0.1,0.1,0.1H555c0.1,0,0.1-0.1,0.1-0.1v-2.3
c0-0.1-0.1-0.1-0.1-0.1H529.4z"/>
<path fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" d="M529.4,45.5
c-0.1,0-0.1,0.1-0.1,0.1v2.3c0,0.1,0.1,0.1,0.1,0.1H555c0.1,0,0.1-0.1,0.1-0.1v-2.3c0-0.1-0.1-0.1-0.1-0.1H529.4z"/>
<path fill="#231F20" d="M529.4,38.9c-0.1,0-0.1,0.1-0.1,0.1v2.3c0,0.1,0.1,0.1,0.1,0.1H555c0.1,0,0.1-0.1,0.1-0.1V39
c0-0.1-0.1-0.1-0.1-0.1H529.4z"/>
<path fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" d="M529.4,38.9
c-0.1,0-0.1,0.1-0.1,0.1v2.3c0,0.1,0.1,0.1,0.1,0.1H555c0.1,0,0.1-0.1,0.1-0.1V39c0-0.1-0.1-0.1-0.1-0.1H529.4z"/>
<polygon fill="#F4F4F4" points="529.9,45 529.9,48.6 531.6,49.4 531.6,53.1 528.9,53.1 525.4,51.1 508.6,51.1 508.6,44.2
508.6,35.7 525.4,35.7 528.9,33.7 531.6,33.7 531.6,37.5 529.9,38.2 529.9,42 531.6,42.7 531.6,44.2 "/>
<polygon fill="none" stroke="#231F20" stroke-width="0.2" points="529.9,45 529.9,48.6 531.6,49.4 531.6,53.1 528.9,53.1
525.4,51.1 508.6,51.1 508.6,44.2 508.6,35.7 525.4,35.7 528.9,33.7 531.6,33.7 531.6,37.5 529.9,38.2 529.9,42 531.6,42.7
531.6,44.2 "/>
<rect x="508.6" y="35.7" fill="#919497" width="16.9" height="15.4"/>
<rect x="508.6" y="35.7" fill="none" stroke="#231F20" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="16.9" height="15.4"/>
<polygon fill="#F4F4F4" points="513.7,51.1 508.6,51.1 508.6,44.2 513.7,44.2 513.7,45.5 510.6,45.5 510.6,48 513.7,48 "/>
<polygon fill="none" stroke="#231F20" stroke-width="0.2" points="513.7,51.1 508.6,51.1 508.6,44.2 513.7,44.2 513.7,45.5
510.6,45.5 510.6,48 513.7,48 "/>
<rect x="508.6" y="42.7" fill="#E1E1E1" width="14.4" height="1.5"/>
<rect x="508.6" y="42.7" fill="none" stroke="#231F20" stroke-width="0.2" width="14.4" height="1.5"/>
<rect x="513.7" y="49.4" fill="#E1E1E1" width="9.1" height="1.8"/>
<rect x="513.7" y="49.4" fill="none" stroke="#231F20" stroke-width="0.2" width="9.1" height="1.8"/>
<rect x="513.7" y="35.7" fill="#E1E1E1" width="9.1" height="1.8"/>
<rect x="513.7" y="35.7" fill="none" stroke="#231F20" stroke-width="0.2" width="9.1" height="1.8"/>
<line fill="none" stroke="#000000" stroke-width="0.2" x1="516.2" y1="44.7" x2="516.2" y2="48.9"/>
<line fill="none" stroke="#000000" stroke-width="0.2" x1="525.4" y1="51.1" x2="525.4" y2="44.8"/>
<line fill="none" stroke="#000000" stroke-width="0.2" x1="512.1" y1="48" x2="512.1" y2="45.5"/>
<line fill="none" stroke="#000000" stroke-width="0.2" x1="512.1" y1="41.4" x2="512.1" y2="38.9"/>
<line fill="none" stroke="#000000" stroke-width="0.2" x1="516.2" y1="37.9" x2="516.2" y2="42.3"/>
<line fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" x1="529.9" y1="38.2" x2="529.9" y2="33.7"/>
<line fill="none" stroke="#000000" stroke-width="0.2" x1="525.4" y1="44.8" x2="525.4" y2="35.7"/>
<rect x="529.9" y="42.7" fill="#FFFFFF" width="1.7" height="1.5"/>
<rect x="529.9" y="42.7" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="1.7" height="1.5"/>
<rect x="525.4" y="42" fill="#FFFFFF" width="4.5" height="2.9"/>
<rect x="525.4" y="42" fill="none" stroke="#000000" stroke-width="0.2" width="4.5" height="2.9"/>
<rect x="528.9" y="45" fill="#FFFFFF" width="1" height="8.2"/>
<rect x="528.9" y="45" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="1" height="8.2"/>
<rect x="528.9" y="33.7" fill="#FFFFFF" width="1" height="8.3"/>
<rect x="528.9" y="33.7" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="1" height="8.3"/>
<rect x="510.6" y="38.9" fill="#F1EED9" width="5.2" height="2.5"/>
<rect x="510.6" y="38.9" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="5.2" height="2.5"/>
<rect x="515.1" y="38.9" fill="#E6E1CC" width="0.7" height="2.5"/>
<rect x="515.1" y="38.9" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="0.7" height="2.5"/>
<line fill="none" stroke="#6E7071" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" x1="513.7" y1="44.2" x2="513.7" y2="42.7"/>
<rect x="510.6" y="45.5" fill="#F1EED9" width="5.2" height="2.5"/>
<rect x="510.6" y="45.5" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="5.2" height="2.5"/>
<rect x="515.1" y="45.5" fill="#E6E1CC" width="0.7" height="2.5"/>
<rect x="515.1" y="45.5" fill="none" stroke="#000000" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="0.7" height="2.5"/>
<path fill="#F4F4F4" d="M522.5,51.1h3V35.7h-3v1.2c0,0.6-0.5,1-1,1h-5.7v4.4h5.7c0.6,0,1,0.5,1,1v0.3c0,0.6-0.5,1-1,1h-5.7v4.3h5.7
c0.6,0,1,0.5,1,1V51.1z"/>
<path fill="none" stroke="#231F20" stroke-width="0.2" d="M522.5,51.1h3V35.7h-3v1.2c0,0.6-0.5,1-1,1h-5.7v4.4h5.7c0.6,0,1,0.5,1,1
v0.3c0,0.6-0.5,1-1,1h-5.7v4.3h5.7c0.6,0,1,0.5,1,1V51.1z"/>
<polyline fill="#F4F4F4" points="513.7,35.7 508.6,35.7 508.6,42.7 513.7,42.7 513.7,41.4 510.6,41.4 510.6,38.9 513.7,38.9
513.7,35.7 "/>
<polyline fill="none" stroke="#231F20" stroke-width="0.2" points="513.7,35.7 508.6,35.7 508.6,42.7 513.7,42.7 513.7,41.4
510.6,41.4 510.6,38.9 513.7,38.9 513.7,35.7 "/>
</g>
<g>
<path fill="#A3A5A7" d="M617.2,53.4h-17c-0.1,0-0.1,0-0.2,0c-0.9-0.1-1.6-0.8-1.6-1.8c0-0.3,0.1-0.6,0.2-0.9c0,0,0-0.1,0.1-0.1
l8.5-13.8l0.1-0.1c0.3-0.4,0.8-0.7,1.4-0.7c0.6,0,1.1,0.3,1.4,0.7c0,0,0,0.1,0.1,0.1l8.5,13.8l0.1,0.1c0.1,0.2,0.2,0.5,0.2,0.8
c0,0.9-0.7,1.7-1.6,1.8C617.4,53.4,617.3,53.4,617.2,53.4 M608.7,36.4c-0.5,0-0.9,0.2-1.2,0.6l-0.1,0.1l-8.5,13.8c0,0,0,0,0,0.1
c-0.1,0.2-0.2,0.5-0.2,0.7c0,0.8,0.6,1.4,1.3,1.5c0.1,0,0.1,0,0.1,0h17h0.1c0.8-0.1,1.3-0.7,1.3-1.5c0-0.2-0.1-0.5-0.2-0.7
c0,0,0-0.1-0.1-0.1L610,37.1c0,0,0,0-0.1-0.1C609.6,36.6,609.2,36.4,608.7,36.4"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F39337" d="M618.1,51.6c0,0.5-0.4,0.9-0.9,0.9l0,0h-17l0,0l0,0
c-0.5,0-0.9-0.4-0.9-0.9c0-0.2,0.1-0.3,0.1-0.5l0,0l8.5-13.8l0,0c0.2-0.2,0.4-0.4,0.7-0.4s0.6,0.2,0.8,0.4l0,0l8.5,13.8l0,0
C618.1,51.3,618.1,51.5,618.1,51.6"/>
<path fill="#E3E4E4" d="M617.2,52.7H600l0,0c-0.5-0.1-0.9-0.5-0.9-1c0-0.1,0-0.3,0.1-0.4l0,0l0.1-0.1l8.6-13.9l0,0
c0.2-0.2,0.5-0.4,0.8-0.4s0.6,0.1,0.8,0.4l0,0l0.1,0.1l8.6,13.9l0,0c0.1,0.1,0.1,0.3,0.1,0.4c0,0.5-0.4,0.9-0.9,1l0,0L617.2,52.7z
M600.3,52.4H617l0,0h0.1c0.4,0,0.7-0.3,0.7-0.7c0-0.1,0-0.3-0.1-0.4l-0.1-0.1l0,0l-8.4-13.6l0,0l-0.1-0.1
c-0.1-0.2-0.4-0.4-0.6-0.4c-0.2,0-0.5,0.1-0.6,0.3l-0.1,0.1l0,0l-8.4,13.5l0,0l-0.1,0.1c-0.1,0.1-0.1,0.3-0.1,0.4
c0,0.4,0.3,0.7,0.7,0.7L600.3,52.4L600.3,52.4L600.3,52.4z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M609.9,42c0-0.6-0.5-1.2-1.2-1.2c-0.6,0-1.2,0.5-1.2,1.2v4.4
c0,0.7,0.5,1.2,1.2,1.2c0.6,0,1.2-0.5,1.2-1.2V42z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M608.7,48.4c-0.6,0-1.2,0.5-1.2,1.2c0,0.6,0.5,1.2,1.2,1.2
c0.6,0,1.2-0.5,1.2-1.2S609.4,48.4,608.7,48.4"/>
</g>
<g>
<path fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M724.2,36.6v19.8
c0,1.4-0.7,2.3-2,2.3h-40.3"/>
<path fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M720.9,30.6v18.9
c0,1-0.9,1.9-1.8,1.9h-41.4"/>
<path fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M727.5,31.4v31.3
c0,2.8-0.5,3.2-3.2,3.2h-35.7"/>
<path fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M717.5,23.7v18.6
c0,1-0.9,1.9-1.9,1.9h-37.9"/>
<path fill="#0000FF" d="M677.4,55.5h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C676.3,56,676.8,55.5,677.4,55.5z"/>
<path d="M677.4,41h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C676.3,41.5,676.8,41,677.4,41z"/>
<text transform="matrix(1 0 0 1 681.131 45.8295)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
<path fill="#FFFF00" d="M677.4,62.7h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C676.3,63.2,676.8,62.7,677.4,62.7z"/>
<g>
<rect id="rect18427_00000060028905247321236260000016538577171732800398_" x="715" y="22.5" fill="#333333" stroke="#333333" stroke-width="0.2877" stroke-miterlimit="3.8362" width="15.5" height="12.6"/>
<rect id="rect18429_00000136380620032927873150000008133730919514636695_" x="712.3" y="35" fill="#666666" width="20.8" height="3.3"/>
<g>
<rect id="rect18431_00000067232381136894892490000013012950741728482693_" x="728" y="31.4" fill="#666666" width="2.8" height="3.9"/>
<rect id="rect18433_00000039092270229879896300000000163092724316894638_" x="725.3" y="31.4" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18435_00000018217946427967510590000005138267382436280508_" x="722.1" y="31.4" fill="#666666" width="1.1" height="3.9"/>
<rect id="rect18437_00000053525560374292404480000001696303565037957564_" x="718.6" y="31.4" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18439_00000061453906011602837510000005837779149130639238_" x="714.7" y="31.4" fill="#666666" width="2.6" height="3.9"/>
</g>
</g>
<path fill="#920000" d="M677.4,48.2h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C676.3,48.8,676.8,48.2,677.4,48.2z"/>
<text transform="matrix(1 0 0 1 679.3307 53.0297)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">3.3V</text>
<path fill="#0000FF" d="M677.4,55.5h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C676.3,56,676.8,55.5,677.4,55.5z"/>
<text transform="matrix(1 0 0 1 681.131 60.2296)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<path fill="#FFFF00" d="M677.4,62.7h18.2c0.6,0,1.1,0.5,1.1,1.1v3.8c0,0.6-0.5,1.1-1.1,1.1h-18.2c-0.6,0-1.1-0.5-1.1-1.1v-3.8
C676.3,63.2,676.8,62.7,677.4,62.7z"/>
<text transform="matrix(1 0 0 1 681.131 67.4295)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
</g>
<g>
<path fill="#A3A5A7" d="M617.2,83.2h-17c-0.1,0-0.1,0-0.2,0c-1-0.1-1.7-0.9-1.6-1.9c0-0.2,0.1-0.5,0.2-0.7c0,0,0-0.1,0.1-0.1
l8.5-13.8l0.1-0.1c0.6-0.8,1.7-0.9,2.5-0.3c0.1,0.1,0.3,0.2,0.4,0.4c0,0,0,0.1,0.1,0.1l8.5,13.8l0.1,0.1c0.4,0.9,0.1,1.9-0.8,2.4
c-0.2,0.1-0.4,0.2-0.6,0.2C617.3,83.2,617.3,83.2,617.2,83.2 M608.7,66.1c-0.5,0-0.9,0.2-1.2,0.6l-0.1,0.1l-8.5,13.8c0,0,0,0,0,0.1
c-0.1,0.2-0.2,0.5-0.2,0.7c0,0.8,0.6,1.4,1.3,1.5h0.1h17h0.1c0.8-0.1,1.3-0.7,1.3-1.5c0-0.2-0.1-0.5-0.2-0.7c0,0,0-0.1-0.1-0.1
L610,66.8c0,0,0,0-0.1-0.1C609.6,66.4,609.2,66.1,608.7,66.1"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#1536FF" d="M618.1,81.4c0,0.5-0.4,0.9-0.9,0.9l0,0h-17l0,0l0,0
c-0.5,0-0.9-0.4-0.9-0.9c0-0.2,0-0.3,0.1-0.5l0,0l8.5-13.8l0,0c0.3-0.4,0.8-0.5,1.2-0.3c0.1,0.1,0.2,0.2,0.3,0.3l0,0L618,81l0,0
C618.1,81.1,618.1,81.3,618.1,81.4"/>
<path fill="#E3E4E4" d="M617.2,82.4H600l0,0c-0.5-0.1-0.9-0.5-0.9-1c0-0.1,0-0.3,0.1-0.4l0,0l0.1-0.1l8.6-13.9l0,0
c0.4-0.4,1-0.5,1.4-0.1l0.1,0.1l0,0l0.1,0.1l8.6,13.9l0,0c0.2,0.5,0,1.1-0.5,1.3c-0.1,0-0.2,0.1-0.3,0.1l0,0H617.2z M600.3,82.2
H617l0,0h0.1c0.4,0,0.7-0.3,0.7-0.7c0-0.1,0-0.3-0.1-0.4l-0.1-0.1l0,0l-8.4-13.6l0,0l-0.1-0.1c-0.2-0.3-0.7-0.5-1-0.3
c-0.1,0.1-0.2,0.1-0.2,0.2l-0.1,0.1l0,0l-8.4,13.6l0,0l-0.1,0.1c-0.2,0.3-0.1,0.8,0.2,1c0.1,0.1,0.3,0.1,0.4,0.1L600.3,82.2
L600.3,82.2L600.3,82.2z"/>
<text transform="matrix(1 0 0 1 604.9225 80.8256)" fill="#FFFFFF" font-family="'ArialRoundedMTBold'" font-size="13px">?</text>
</g>
<g>
<path fill="none" stroke="#FF0000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M780.7648,49.9665
v-18.9c0-1,0.9-1.9,1.9-1.9h43.7"/>
<path fill="none" stroke="#000000" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M777.4648,49.9665
v-26.1c0-1,0.7156-1.9,1.5107-1.9h37.3708"/>
<path fill="none" stroke="#FFFF00" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M787.4648,49.9665
v-4.5c0-1,0.7454-1.9,1.5736-1.9h30.6431"/>
<path fill="none" stroke="#0000FF" stroke-width="0.7087" stroke-linecap="round" stroke-linejoin="round" d="M784.0648,49.9665
v-11.7c0-1,0.7706-1.9,1.6269-1.9h34.5937"/>
<g>
<rect id="rect18427_00000116943696674707758360000017825434837459895480_" x="774.6648" y="52.4665" fill="#333333" stroke="#333333" stroke-width="0.2877" stroke-miterlimit="3.8362" width="15.5" height="12.6"/>
<rect id="rect18429_00000137090772507022974370000005226029994886005931_" x="771.9648" y="49.3665" fill="#666666" width="20.8" height="3.3"/>
<g>
<rect id="rect18431_00000065787331369743706590000015133379946716299431_" x="787.6648" y="52.3665" fill="#666666" width="2.8" height="3.9"/>
<rect id="rect18433_00000003825769621864205960000008149423384283175824_" x="784.9648" y="52.3665" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18435_00000155829848388907457810000001883953621611135370_" x="781.7648" y="52.3665" fill="#666666" width="1.1" height="3.9"/>
<rect id="rect18437_00000166674337339107047640000008104075451349266357_" x="778.2648" y="52.3665" fill="#666666" width="1.5" height="3.9"/>
<rect id="rect18439_00000121968638656140496540000015156553289452774056_" x="774.3648" y="52.3665" fill="#666666" width="2.6" height="3.9"/>
</g>
</g>
<path fill="#FFFF00" stroke="#737373" stroke-width="0.3543" d="M801.7148,40.7107h18.1984c0.5284,0,0.9567,0.4283,0.9567,0.9567
v3.7984c0,0.5284-0.4283,0.9567-0.9567,0.9567h-18.1984c-0.5284,0-0.9567-0.4283-0.9567-0.9567v-3.7984
C800.7582,41.139,801.1865,40.7107,801.7148,40.7107z"/>
<text transform="matrix(1 0 0 1 805.4132 45.3166)" font-family="'CourierNewPS-BoldMT'" font-size="6px">SCL</text>
<path fill="#0000FF" stroke="#737373" stroke-width="0.3543" d="M801.7148,33.5107h18.1984c0.5284,0,0.9567,0.4283,0.9567,0.9567
v3.7984c0,0.5284-0.4283,0.9567-0.9567,0.9567h-18.1984c-0.5284,0-0.9567-0.4283-0.9567-0.9567v-3.7984
C800.7582,33.939,801.1865,33.5107,801.7148,33.5107z"/>
<text transform="matrix(1 0 0 1 805.4132 38.1166)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">SDA</text>
<g>
<path fill="#920000" stroke="#737373" stroke-width="0.3543" d="M801.7148,26.3106h25.3984c0.5283,0,0.9567,0.4283,0.9567,0.9567
v3.7984c0,0.5284-0.4283,0.9567-0.9567,0.9567h-25.3984c-0.5284,0-0.9567-0.4283-0.9567-0.9567v-3.7984
C800.7582,26.7389,801.1865,26.3106,801.7148,26.3106z"/>
<text transform="matrix(1 0 0 1 801.812 30.9165)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">VSENSOR</text>
</g>
<path d="M801.7148,18.9335h18.1983c0.6262,0,1.1339,0.5077,1.1339,1.1339v3.7983c0,0.6262-0.5077,1.1339-1.1339,1.1339h-18.1983
c-0.6262,0-1.1339-0.5077-1.1339-1.1339v-3.7983C800.5809,19.4412,801.0886,18.9335,801.7148,18.9335z"/>
<text transform="matrix(1 0 0 1 805.4132 23.7166)" fill="#FFFFFF" font-family="'CourierNewPS-BoldMT'" font-size="6px">GND</text>
</g>
<g>
<polygon fill="#DCDCDC" points="183.2591,44.422 184.4936,44.422 184.4936,45.839 185.6044,45.839 185.6044,55.761
184.4936,55.761 184.4936,57.178 183.2591,57.178 183.2591,55.761 180.5417,55.761 180.5417,57.178 179.3073,57.178
179.3073,55.761 178.1955,55.761 178.1955,45.839 179.3073,45.839 179.3073,44.422 180.5417,44.422 180.5417,45.839
183.2591,45.839 "/>
<ellipse fill="#1E1E1E" cx="181.997" cy="50.8615" rx="3.2202" ry="4.3886"/>
<rect x="178.1955" y="55.7674" fill="#B4B4B4" width="7.4089" height="0.397"/>
<rect x="178.1955" y="45.5624" fill="#B4B4B4" width="7.4089" height="0.397"/>
</g>
<g>
<rect x="175.619" y="17.4079" fill="#DCDCDC" width="12.756" height="1.3462"/>
<rect x="176.8311" y="10.9257" fill="#DCDCDC" width="10.1269" height="8.0787"/>
<rect x="175.619" y="11.2114" fill="#DCDCDC" width="12.756" height="1.3462"/>
<ellipse fill="#1E1E1E" cx="181.9354" cy="15.0707" rx="4.3886" ry="3.5113"/>
<rect x="176.6326" y="10.9257" fill="#B4B4B4" width="0.397" height="8.0787"/>
<rect x="186.8376" y="10.9257" fill="#B4B4B4" width="0.397" height="8.0787"/>
<circle class="st16" cx="181.9" cy="32.1" r="2.5"/>
<rect x="177.7" y="36.9" class="st17" width="8.5" height="0.6"/>
<rect x="177.7" y="26.7" class="st17" width="8.5" height="0.6"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -1,51 +0,0 @@
GPIO,SPI,UART,I2C,PWM,ADC,Other
GPIO0,RX0,TX0,SDA0,PWM0A,,
GPIO1,CSn0,RX0,SCL0,PWM0B,,
GPIO2,SCK0,CTS0,SDA1,PWM1A,,
GPIO3,TX0,RTS0,SCL1,PWM1B,,
GPIO4,RX0,TX1,SDA0,PWM2A,,
GPIO5,CSn0,RX1,SCL0,PWM2B,,
GPIO6,SCK0,CTS1,SDA1,PWM3A,,
GPIO7,TX0,RTS1,SCL1,PWM3B,,
GPIO8,RX1,TX1,SDA0,PWM4A,,
GPIO9,CSn1,RX1,SCL0,PWM4B,,
GPIO10,SCK1,CTS1,SDA1,PWM5A,,
GPIO11,TX1,RTS1,SCL1,PWM5B,,
GPIO12,RX1,TX0,SDA0,PWM6A,,HSTX
GPIO13,CSn1,RX0,SCL0,PWM6B,,HSTX
GPIO14,SCK1,CTS0,SDA1,PWM7A,,HSTX
GPIO15,TX1,RTS0,SCL1,PWM7B,,HSTX
GPIO16,RX0,TX0,SDA0,PWM0A,,HSTX
GPIO17,CSn0,RX0,SCL0,PWM0B,,HSTX
GPIO18,SCK0,CTS0,SDA1,PWM1A,,HSTX
GPIO19,TX0,RTS0,SCL1,PWM1B,,HSTX
GPIO20,RX0,TX1,SDA0,PWM2A,,
GPIO21,CSn0,RX1,SCL0,PWM2B,,
GPIO22,SCK0,CTS1,SDA1,PWM3A,,
GPIO23,TX0,RTS1,SCL1,PWM3B,,
GPIO24,RX1,TX1,SDA0,PWM4A,,
GPIO25,CSn1,RX1,SCL0,PWM4B,,
GPIO26,SCK1,CTS1,SDA1,PWM5A,,
GPIO27,TX1,RTS1,SCL1,PWM5B,,
GPIO28,RX1,TX0,SDA0,PWM6A,,
GPIO29,CSn1,RX0,SCL0,PWM6B,,
GPIO30,SCK1,CTS0,SDA1,PWM7A,,
GPIO31,TX1,RTS0,SCL1,PWM7B,,
GPIO32,RX0,TX0,SDA0,PWM8A,,
GPIO33,CSn0,RX0,SCL0,PWM8B,,
GPIO34,SCK0,CTS0,SDA1,PWM9A,,
GPIO35,TX0,RTS0,SCL1,PWM9B,,
GPIO36,RX0,TX1,SDA0,PWM10A,,
GPIO37,CSn0,RX1,SCL0,PWM10B,,
GPIO38,SCK0,CTS1,SDA1,PWM11A,,
GPIO39,TX0,RTS1,SCL1,PWM11B,,
GPIO40,RX1,TX1,SDA0,PWM8A,ADC0,
GPIO41,CSn1,RX1,SCL0,PWM8B,ADC1,
GPIO42,SCK1,CTS1,SDA1,PWM9A,ADC2,
GPIO43,TX1,RTS1,SCL1,PWM9B,ADC3,
GPIO44,RX1,TX0,SDA0,PWM10A,ADC4,
GPIO45,CSn1,RX0,SCL0,PWM10B,ADC5,
GPIO46,SCK1,CTS0,SDA1,PWM11A,ADC6,
GPIO47,TX1,RTS0,SCL1,PWM11B,ADC7,
,,,,,,
DESCRIPTION,The Raspberry Pi RP2350 is a dual ARM M33 core with 150 MHz clock rate and built in USB. Flash memory is provided by external QSPI chip.,,,,,
1 GPIO SPI UART I2C PWM ADC Other
2 GPIO0 RX0 TX0 SDA0 PWM0A
3 GPIO1 CSn0 RX0 SCL0 PWM0B
4 GPIO2 SCK0 CTS0 SDA1 PWM1A
5 GPIO3 TX0 RTS0 SCL1 PWM1B
6 GPIO4 RX0 TX1 SDA0 PWM2A
7 GPIO5 CSn0 RX1 SCL0 PWM2B
8 GPIO6 SCK0 CTS1 SDA1 PWM3A
9 GPIO7 TX0 RTS1 SCL1 PWM3B
10 GPIO8 RX1 TX1 SDA0 PWM4A
11 GPIO9 CSn1 RX1 SCL0 PWM4B
12 GPIO10 SCK1 CTS1 SDA1 PWM5A
13 GPIO11 TX1 RTS1 SCL1 PWM5B
14 GPIO12 RX1 TX0 SDA0 PWM6A HSTX
15 GPIO13 CSn1 RX0 SCL0 PWM6B HSTX
16 GPIO14 SCK1 CTS0 SDA1 PWM7A HSTX
17 GPIO15 TX1 RTS0 SCL1 PWM7B HSTX
18 GPIO16 RX0 TX0 SDA0 PWM0A HSTX
19 GPIO17 CSn0 RX0 SCL0 PWM0B HSTX
20 GPIO18 SCK0 CTS0 SDA1 PWM1A HSTX
21 GPIO19 TX0 RTS0 SCL1 PWM1B HSTX
22 GPIO20 RX0 TX1 SDA0 PWM2A
23 GPIO21 CSn0 RX1 SCL0 PWM2B
24 GPIO22 SCK0 CTS1 SDA1 PWM3A
25 GPIO23 TX0 RTS1 SCL1 PWM3B
26 GPIO24 RX1 TX1 SDA0 PWM4A
27 GPIO25 CSn1 RX1 SCL0 PWM4B
28 GPIO26 SCK1 CTS1 SDA1 PWM5A
29 GPIO27 TX1 RTS1 SCL1 PWM5B
30 GPIO28 RX1 TX0 SDA0 PWM6A
31 GPIO29 CSn1 RX0 SCL0 PWM6B
32 GPIO30 SCK1 CTS0 SDA1 PWM7A
33 GPIO31 TX1 RTS0 SCL1 PWM7B
34 GPIO32 RX0 TX0 SDA0 PWM8A
35 GPIO33 CSn0 RX0 SCL0 PWM8B
36 GPIO34 SCK0 CTS0 SDA1 PWM9A
37 GPIO35 TX0 RTS0 SCL1 PWM9B
38 GPIO36 RX0 TX1 SDA0 PWM10A
39 GPIO37 CSn0 RX1 SCL0 PWM10B
40 GPIO38 SCK0 CTS1 SDA1 PWM11A
41 GPIO39 TX0 RTS1 SCL1 PWM11B
42 GPIO40 RX1 TX1 SDA0 PWM8A ADC0
43 GPIO41 CSn1 RX1 SCL0 PWM8B ADC1
44 GPIO42 SCK1 CTS1 SDA1 PWM9A ADC2
45 GPIO43 TX1 RTS1 SCL1 PWM9B ADC3
46 GPIO44 RX1 TX0 SDA0 PWM10A ADC4
47 GPIO45 CSn1 RX0 SCL0 PWM10B ADC5
48 GPIO46 SCK1 CTS0 SDA1 PWM11A ADC6
49 GPIO47 TX1 RTS0 SCL1 PWM11B ADC7
50
51 DESCRIPTION The Raspberry Pi RP2350 is a dual ARM M33 core with 150 MHz clock rate and built in USB. Flash memory is provided by external QSPI chip.

View file

@ -1,33 +0,0 @@
GPIO,SPI,UART,I2C,PWM,ADC,Other
GPIO0,RX0,TX0,SDA0,PWM0A,,
GPIO1,CSn0,RX0,SCL0,PWM0B,,
GPIO2,SCK0,CTS0,SDA1,PWM1A,,
GPIO3,TX0,RTS0,SCL1,PWM1B,,
GPIO4,RX0,TX1,SDA0,PWM2A,,
GPIO5,CSn0,RX1,SCL0,PWM2B,,
GPIO6,SCK0,CTS1,SDA1,PWM3A,,
GPIO7,TX0,RTS1,SCL1,PWM3B,,
GPIO8,RX1,TX1,SDA0,PWM4A,,
GPIO9,CSn1,RX1,SCL0,PWM4B,,
GPIO10,SCK1,CTS1,SDA1,PWM5A,,
GPIO11,TX1,RTS1,SCL1,PWM5B,,
GPIO12,RX1,TX0,SDA0,PWM6A,,HSTX
GPIO13,CSn1,RX0,SCL0,PWM6B,,HSTX
GPIO14,SCK1,CTS0,SDA1,PWM7A,,HSTX
GPIO15,TX1,RTS0,SCL1,PWM7B,,HSTX
GPIO16,RX0,TX0,SDA0,PWM0A,,HSTX
GPIO17,CSn0,RX0,SCL0,PWM0B,,HSTX
GPIO18,SCK0,CTS0,SDA1,PWM1A,,HSTX
GPIO19,TX0,RTS0,SCL1,PWM1B,,HSTX
GPIO20,RX0,TX1,SDA0,PWM2A,,
GPIO21,CSn0,RX1,SCL0,PWM2B,,
GPIO22,SCK0,CTS1,SDA1,PWM3A,,
GPIO23,TX0,RTS1,SCL1,PWM3B,,
GPIO24,RX1,TX1,SDA0,PWM4A,,
GPIO25,CSn1,RX1,SCL0,PWM4B,,
GPIO26,SCK1,CTS1,SDA1,PWM5A,ADC0,
GPIO27,TX1,RTS1,SCL1,PWM5B,ADC1,
GPIO28,RX1,TX0,SDA0,PWM6A,ADC2,
GPIO29,CSn1,RX0,SCL0,PWM6B,ADC3,
,,,,,,
DESCRIPTION,The Raspberry Pi RP2350 is a dual ARM M33 core with 150 MHz clock rate and built in USB. Flash memory is provided by external QSPI chip.,,,,,
1 GPIO SPI UART I2C PWM ADC Other
2 GPIO0 RX0 TX0 SDA0 PWM0A
3 GPIO1 CSn0 RX0 SCL0 PWM0B
4 GPIO2 SCK0 CTS0 SDA1 PWM1A
5 GPIO3 TX0 RTS0 SCL1 PWM1B
6 GPIO4 RX0 TX1 SDA0 PWM2A
7 GPIO5 CSn0 RX1 SCL0 PWM2B
8 GPIO6 SCK0 CTS1 SDA1 PWM3A
9 GPIO7 TX0 RTS1 SCL1 PWM3B
10 GPIO8 RX1 TX1 SDA0 PWM4A
11 GPIO9 CSn1 RX1 SCL0 PWM4B
12 GPIO10 SCK1 CTS1 SDA1 PWM5A
13 GPIO11 TX1 RTS1 SCL1 PWM5B
14 GPIO12 RX1 TX0 SDA0 PWM6A HSTX
15 GPIO13 CSn1 RX0 SCL0 PWM6B HSTX
16 GPIO14 SCK1 CTS0 SDA1 PWM7A HSTX
17 GPIO15 TX1 RTS0 SCL1 PWM7B HSTX
18 GPIO16 RX0 TX0 SDA0 PWM0A HSTX
19 GPIO17 CSn0 RX0 SCL0 PWM0B HSTX
20 GPIO18 SCK0 CTS0 SDA1 PWM1A HSTX
21 GPIO19 TX0 RTS0 SCL1 PWM1B HSTX
22 GPIO20 RX0 TX1 SDA0 PWM2A
23 GPIO21 CSn0 RX1 SCL0 PWM2B
24 GPIO22 SCK0 CTS1 SDA1 PWM3A
25 GPIO23 TX0 RTS1 SCL1 PWM3B
26 GPIO24 RX1 TX1 SDA0 PWM4A
27 GPIO25 CSn1 RX1 SCL0 PWM4B
28 GPIO26 SCK1 CTS1 SDA1 PWM5A ADC0
29 GPIO27 TX1 RTS1 SCL1 PWM5B ADC1
30 GPIO28 RX1 TX0 SDA0 PWM6A ADC2
31 GPIO29 CSn1 RX0 SCL0 PWM6B ADC3
32
33 DESCRIPTION The Raspberry Pi RP2350 is a dual ARM M33 core with 150 MHz clock rate and built in USB. Flash memory is provided by external QSPI chip.

View file

@ -1,122 +0,0 @@
GPIO,INT,DAC/AREF,ADC,SERCOM,SERCOM Alt,Timer,Timer Alt,Timer Alt2,QSPI/CAN,Special,I2S,PCC
PA00,0,,,,S1.0,TC2[0],,,,,,
PA01,1,,,,S1.1,TC2[1],,,,,,
PA02,2,VOUT0,A0[0],,,,,,,,,
PA03,3,VREFA,A0[1],,,,,,,,,
PA04,4,VREFB,A0[4],,S0.0,TC0[0],,,,,,
PA05,5,VOUT1,A0[5],,S0.1,TC0[1],,,,,,
PA06,6,VREFC,A0[6],,S0.2,TC1[0],,,,SDCD,,
PA07,7,,A0[7],,S0.3,TC1[1],,,,SDWP,,
PA08,NMI,,A0[8]/A1[2],S0.0,S2.1,TC0[0],TCC0[0],TCC1[4],DATA0,SDCMD,MCK0,
PA09,9,,A0[0]/A1[3],S0.1,S2.0,TC0[1],TCC0[1],TCC1[5],DATA1,SDDAT0,FS0,
PA10,10,,A0[10],S0.2,S2.2,TC1[0],TCC0[2],TCC1[6],DATA2,SDDAT1,SCK0,
PA11,11,,A0[11],S0.3,S2.3,TC1[1],TCC0[3],TCC1[7],DATA3,SDDAT2,SDO,
PA12,12,,,S2.0,S4.1,TC2[0],TCC0[6],TCC1[2],,SDCD,,DEN1
PA13,13,,,S2.1,S4.0,TC2[1],TCC0[7],TCC1[3],,SDWP,,DEN2
PA14,14,,,S2.2,S4.2,TC3[0],TCC2[0],TCC1[2],,,,CLK
PA15,15,,,S2.3,S4.3,TC3[1],TCC2[1],TCC1[3],,,,
PA16,0,,,S1.0,S3.1,TC2[0],TCC1[0],TCC0[4],,,,DATA0
PA17,1,,,S1.1,S3.0,TC2[1],TCC1[1],TCC0[5],,,,DATA1
PA18,2,,,S1.2,S3.2,TC3[0],TCC1[2],TCC0[6],,,,DATA2
PA19,3,,,S1.3,S3.3,TC3[1],TCC1[3],TCC0[7],,,,DATA3
PA20,4,,,S5.2,S3.2,TC7[0],TCC1[4],TCC0[0],,SDCMD,FS0,DATA4
PA21,5,,,S5.3,S3.3,TC7[1],TCC1[5],TCC0[1],,SDCK,SDO,DATA5
PA22,6,,,S3.0,S5.1,TC4[0],TCC1[6],TCC0[2],CAN0TX,,SDI,DATA6
PA23,7,,,S3.1,S5.0,TC4[1],TCC1[7],TCC0[3],CAN0RX,SOF 1KHZ,FS1,DATA7
PA24,8,,,S3.2,S5.2,TC5[0],TCC2[2],,CAN0TX,USB D-,,
PA25,9,,,S3.3,S5.1,TC5[1],,,CAN0RX,USB D+,,
PA27,11,,,,,,,,,,,
PA30,14,,,S7.2,S1.2,TC6[0],TCC2[0],,,SWCLK,,
PA31,15,,,S7.3,S1.3,TC6[1],TCC2[1],,,SWDIO,,
PB00,0,,A0[12],,S5.2,TC7[0],,,,,,
PB01,1,,A0[13],,S5.3,TC7[1],,,,,,
PB02,2,,A0[14],,S5.0,TC6[0],TCC2[2],,,,,
PB03,3,,A0[15],,S5.1,TC6[1],,,,,,
PB04,4,,A1[6],,,,,,,,,
PB05,5,,A1[7],,,,,,,,,
PB06,6,,A1[8],,,,,,,,,
PB07,7,,A1[9],,,,,,,,,
PB08,8,,A0[2]/A1[0],,S4.0,TC4[0],,,,,,
PB09,9,,A0[3]/A1[1],,S4.1,TC4[1],,,,,,
PB10,10,,,,S4.2,TC5[0],TCC0[4],TCC1[0],SCK,SDDAT3,SDI,
PB11,11,,,,S4.3,TC5[1],TCC0[5],TCC1[1],CS,SDCK,FS1,
PB12,12,,,S4.0,,TC4[0],TCC3[0],TCC0[0],CAN1TX,SDCD,SCK1,
PB13,13,,,S4.1,,TC4[1],TCC3[1],TCC0[1],CAN1RX,SDWP,MCK1,
PB14,14,,,S4.2,,TC5[0],TCC4[0],TCC0[2],CAN1TX,,,DATA8
PB15,15,,,S4.3,,TC5[1],TCC4[1],TCC0[3],CAN1RX,,,DATA9
PB16,0,,,S5.0,,TC6[0],TCC3[0],TCC0[4],,SDCD,SCK0,
PB17,1,,,S5.1,,TC6[1],TCC3[1],TCC0[5],,SDWP,MCK0,
PB18,2,,,S5.2,S7.2,,TCC1[0],,,SDDAT0,,
PB19,3,,,S5.3,S7.3,,TCC1[1],,,SDDAT1,,
PB20,4,,,S3.0,S7.1,,TCC1[2],,,SDDAT2,,
PB21,5,,,S3.1,S7.0,,TCC1[3],,,SDDAT3,,
PB22,6,,,S1.2,S5.2,TC7[0],,,,SOF 1KHZ,,
PB23,7,,,S1.2,S5.3,TC7[1],,,,,,
PB24,8,,,S0.0,S2.1,,,,,,,
PB25,9,,,S0.1,S2.0,,,,,,,
PB26,12,,,S2.0,S4.1,,TCC1[2],,,,,
PB27,13,,,S2.1,S4.0,,TCC1[3],,,,,
PB28,14,,,S2.2,S4.2,,TCC1[4],,,,SCK1,
PB29,15,,,S2.3,S4.3,,TCC1[5],,,,MCK1,
PB30,14,,,S7.0,S5.1,TC0[0],TCC4[0],TCC0[6],,SWDO,,
PB31,15,,,S7.1,S5.0,TC0[1],TCC4[1],TCC0[7],,,,
PC00,0,,A1[10],,,,,,,,,
PC01,1,,A1[11],,,,,,,,,
PC02,2,,A1[4],,,,,,,,,
PC03,3,,A1[5],,,,,,,,,
PC04,4,,,S6.0,,,TCC[0],,,,,
PC05,5,,,S6.1,,,,,,,,
PC06,6,,,S6.2,,,,,,SDCD,,
PC07,9,,,S6.3,,,,,,SDWP,,
PC10,10,,,S6.2,S7.2,,TCC0[0],TCC1[4],,,,
PC11,11,,,S6.3,S7.3,,TCC0[1],TCC1[5],,,,
PC12,12,,,S7.0,S6.1,,TCC0[2],TCC1[6],,,,DATA10
PC13,13,,,S7.1,S6.0,,TCC0[3],TCC1[7],,,,DATA11
PC14,14,,,S7.2,S6.2,,TCC0[4],TCC1[0],,,,DATA12
PC15,15,,,S7.3,S6.3,,TCC0[5],TCC1[1],,,,DATA13
PC16,0,,,S6.0,S0.1,,TCC0[0],,,,,
PC17,1,,,S6.1,S0.0,,TCC0[1],,,,,
PC18,2,,,S6.2,S0.2,,TCC0[2],,,,,
PC19,3,,,S6.3,S0.3,,TCC0[3],,,,,
PC20,4,,,,,,TCC0[4],,,SDCD,,
PC21,5,,,,,,TCC0[5],,,SDWP,,
PC22,6,,,S1.0,S3.1,,TCC0[6],,,,,
PC23,7,,,S1.1,S3.0,,TCC0[7],,,,,
PC24,8,,,S0.2,S2.2,,,,,,,
PC25,9,,,S0.3,S2.3,,,,,,,
PC26,10,,,,,,,,,,,
PC27,11,,,S1.0,,,,,,,,
PC28,12,,,S1.1,,,,,,,,
PC30,14,,A1[12],,,,,,,,,
PC31,15,,A1[13],,,,,,,,,
PD00,0,,A1[7],,,,,,,,,
PD01,1,,A1[15],,,,,,,,,
PD08,3,,,S7.0,S6.1,,TCC0[1],,,,,
PD09,4,,,S7.1,S6.0,,TCC0[2],,,,,
PD10,5,,,S7.2,S6.2,,TCC0[3],,,,,
PD11,6,,,S7.3,S6.3,,TCC0[4],,,,,
PD12,7,,,,,,TCC0[5],,,,,
PD20,10,,,S1.2,S3.2,,TCC1[0],,,SDCD,,
PD21,11,,,S1.3,S3.3,,TCC1[1],,,SDWP,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
DESCRIPTION,"The Microchip (nee Atmel) SAMD51 is an ARM Cortex-M4F running at 120 MHz with 192 or 256kB on-chip SRAM, up to 1MB Flash memory and built in USB. All GPIO is 3.3V in/out max unless otherwise stated. SERCOMs can be used as UART (TX on SERCOM pad 0, RX on any pad), I2C (SDA on pad 0, SCL on pad 1), or SPI (SCK on pad 1, MOSI on pad 0 or 3, MISO on any pad remaining) ",,,,,,,,,,,
1 GPIO INT DAC/AREF ADC SERCOM SERCOM Alt Timer Timer Alt Timer Alt2 QSPI/CAN Special I2S PCC
2 PA00 0 S1.0 TC2[0]
3 PA01 1 S1.1 TC2[1]
4 PA02 2 VOUT0 A0[0]
5 PA03 3 VREFA A0[1]
6 PA04 4 VREFB A0[4] S0.0 TC0[0]
7 PA05 5 VOUT1 A0[5] S0.1 TC0[1]
8 PA06 6 VREFC A0[6] S0.2 TC1[0] SDCD
9 PA07 7 A0[7] S0.3 TC1[1] SDWP
10 PA08 NMI A0[8]/A1[2] S0.0 S2.1 TC0[0] TCC0[0] TCC1[4] DATA0 SDCMD MCK0
11 PA09 9 A0[0]/A1[3] S0.1 S2.0 TC0[1] TCC0[1] TCC1[5] DATA1 SDDAT0 FS0
12 PA10 10 A0[10] S0.2 S2.2 TC1[0] TCC0[2] TCC1[6] DATA2 SDDAT1 SCK0
13 PA11 11 A0[11] S0.3 S2.3 TC1[1] TCC0[3] TCC1[7] DATA3 SDDAT2 SDO
14 PA12 12 S2.0 S4.1 TC2[0] TCC0[6] TCC1[2] SDCD DEN1
15 PA13 13 S2.1 S4.0 TC2[1] TCC0[7] TCC1[3] SDWP DEN2
16 PA14 14 S2.2 S4.2 TC3[0] TCC2[0] TCC1[2] CLK
17 PA15 15 S2.3 S4.3 TC3[1] TCC2[1] TCC1[3]
18 PA16 0 S1.0 S3.1 TC2[0] TCC1[0] TCC0[4] DATA0
19 PA17 1 S1.1 S3.0 TC2[1] TCC1[1] TCC0[5] DATA1
20 PA18 2 S1.2 S3.2 TC3[0] TCC1[2] TCC0[6] DATA2
21 PA19 3 S1.3 S3.3 TC3[1] TCC1[3] TCC0[7] DATA3
22 PA20 4 S5.2 S3.2 TC7[0] TCC1[4] TCC0[0] SDCMD FS0 DATA4
23 PA21 5 S5.3 S3.3 TC7[1] TCC1[5] TCC0[1] SDCK SDO DATA5
24 PA22 6 S3.0 S5.1 TC4[0] TCC1[6] TCC0[2] CAN0TX SDI DATA6
25 PA23 7 S3.1 S5.0 TC4[1] TCC1[7] TCC0[3] CAN0RX SOF 1KHZ FS1 DATA7
26 PA24 8 S3.2 S5.2 TC5[0] TCC2[2] CAN0TX USB D-
27 PA25 9 S3.3 S5.1 TC5[1] CAN0RX USB D+
28 PA27 11
29 PA30 14 S7.2 S1.2 TC6[0] TCC2[0] SWCLK
30 PA31 15 S7.3 S1.3 TC6[1] TCC2[1] SWDIO
31 PB00 0 A0[12] S5.2 TC7[0]
32 PB01 1 A0[13] S5.3 TC7[1]
33 PB02 2 A0[14] S5.0 TC6[0] TCC2[2]
34 PB03 3 A0[15] S5.1 TC6[1]
35 PB04 4 A1[6]
36 PB05 5 A1[7]
37 PB06 6 A1[8]
38 PB07 7 A1[9]
39 PB08 8 A0[2]/A1[0] S4.0 TC4[0]
40 PB09 9 A0[3]/A1[1] S4.1 TC4[1]
41 PB10 10 S4.2 TC5[0] TCC0[4] TCC1[0] SCK SDDAT3 SDI
42 PB11 11 S4.3 TC5[1] TCC0[5] TCC1[1] CS SDCK FS1
43 PB12 12 S4.0 TC4[0] TCC3[0] TCC0[0] CAN1TX SDCD SCK1
44 PB13 13 S4.1 TC4[1] TCC3[1] TCC0[1] CAN1RX SDWP MCK1
45 PB14 14 S4.2 TC5[0] TCC4[0] TCC0[2] CAN1TX DATA8
46 PB15 15 S4.3 TC5[1] TCC4[1] TCC0[3] CAN1RX DATA9
47 PB16 0 S5.0 TC6[0] TCC3[0] TCC0[4] SDCD SCK0
48 PB17 1 S5.1 TC6[1] TCC3[1] TCC0[5] SDWP MCK0
49 PB18 2 S5.2 S7.2 TCC1[0] SDDAT0
50 PB19 3 S5.3 S7.3 TCC1[1] SDDAT1
51 PB20 4 S3.0 S7.1 TCC1[2] SDDAT2
52 PB21 5 S3.1 S7.0 TCC1[3] SDDAT3
53 PB22 6 S1.2 S5.2 TC7[0] SOF 1KHZ
54 PB23 7 S1.2 S5.3 TC7[1]
55 PB24 8 S0.0 S2.1
56 PB25 9 S0.1 S2.0
57 PB26 12 S2.0 S4.1 TCC1[2]
58 PB27 13 S2.1 S4.0 TCC1[3]
59 PB28 14 S2.2 S4.2 TCC1[4] SCK1
60 PB29 15 S2.3 S4.3 TCC1[5] MCK1
61 PB30 14 S7.0 S5.1 TC0[0] TCC4[0] TCC0[6] SWDO
62 PB31 15 S7.1 S5.0 TC0[1] TCC4[1] TCC0[7]
63 PC00 0 A1[10]
64 PC01 1 A1[11]
65 PC02 2 A1[4]
66 PC03 3 A1[5]
67 PC04 4 S6.0 TCC[0]
68 PC05 5 S6.1
69 PC06 6 S6.2 SDCD
70 PC07 9 S6.3 SDWP
71 PC10 10 S6.2 S7.2 TCC0[0] TCC1[4]
72 PC11 11 S6.3 S7.3 TCC0[1] TCC1[5]
73 PC12 12 S7.0 S6.1 TCC0[2] TCC1[6] DATA10
74 PC13 13 S7.1 S6.0 TCC0[3] TCC1[7] DATA11
75 PC14 14 S7.2 S6.2 TCC0[4] TCC1[0] DATA12
76 PC15 15 S7.3 S6.3 TCC0[5] TCC1[1] DATA13
77 PC16 0 S6.0 S0.1 TCC0[0]
78 PC17 1 S6.1 S0.0 TCC0[1]
79 PC18 2 S6.2 S0.2 TCC0[2]
80 PC19 3 S6.3 S0.3 TCC0[3]
81 PC20 4 TCC0[4] SDCD
82 PC21 5 TCC0[5] SDWP
83 PC22 6 S1.0 S3.1 TCC0[6]
84 PC23 7 S1.1 S3.0 TCC0[7]
85 PC24 8 S0.2 S2.2
86 PC25 9 S0.3 S2.3
87 PC26 10
88 PC27 11 S1.0
89 PC28 12 S1.1
90 PC30 14 A1[12]
91 PC31 15 A1[13]
92 PD00 0 A1[7]
93 PD01 1 A1[15]
94 PD08 3 S7.0 S6.1 TCC0[1]
95 PD09 4 S7.1 S6.0 TCC0[2]
96 PD10 5 S7.2 S6.2 TCC0[3]
97 PD11 6 S7.3 S6.3 TCC0[4]
98 PD12 7 TCC0[5]
99 PD20 10 S1.2 S3.2 TCC1[0] SDCD
100 PD21 11 S1.3 S3.3 TCC1[1] SDWP
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 DESCRIPTION The Microchip (nee Atmel) SAMD51 is an ARM Cortex-M4F running at 120 MHz with 192 or 256kB on-chip SRAM, up to 1MB Flash memory and built in USB. All GPIO is 3.3V in/out max unless otherwise stated. SERCOMs can be used as UART (TX on SERCOM pad 0, RX on any pad), I2C (SDA on pad 0, SCL on pad 1), or SPI (SCK on pad 1, MOSI on pad 0 or 3, MISO on any pad remaining)

Binary file not shown.