├── .github
└── workflows
│ └── boards.yml
├── .gitignore
├── .vscode
└── settings.json
├── README.md
├── boards
├── aitewinrobot-esp32c3-supermini
│ ├── board.json
│ ├── board.svg
│ └── diagram.jpg
├── arduino-nano-esp32
│ ├── board.json
│ └── board.svg
├── cd74hc4067
│ ├── board.json
│ └── board.svg
├── ds18b20
│ ├── board.json
│ └── board.svg
├── epaper-2in9
│ ├── board.json
│ └── board.svg
├── esp-01
│ ├── board.json
│ └── board.svg
├── esp32-c3-devkitm-1
│ ├── board.json
│ └── board.svg
├── esp32-c3-rust-1
│ ├── board.json
│ └── board.svg
├── esp32-c6-devkitc-1
│ ├── board.json
│ └── board.svg
├── esp32-devkit-c-v4
│ ├── board.json
│ └── board.svg
├── esp32-devkit-v1
│ ├── board.json
│ └── board.svg
├── esp32-h2-devkitm-1
│ ├── board.json
│ └── board.svg
├── esp32-p4-function-ev
│ ├── board.json
│ └── board.svg
├── esp32-p4-preview
│ ├── board.json
│ └── board.svg
├── esp32-s2-devkitm-1
│ ├── board.json
│ └── board.svg
├── esp32-s3-box-3
│ ├── board.json
│ └── board.svg
├── esp32-s3-box
│ ├── board.json
│ └── board.svg
├── esp32-s3-devkitc-1
│ ├── board.json
│ └── board.svg
├── franzininho-wifi
│ ├── board.json
│ └── board.svg
├── grove-oled-sh1107
│ ├── board.json
│ └── board.svg
├── ili9341-cap-touch
│ ├── board.json
│ └── board.svg
├── ili9881c-8in
│ ├── board.json
│ └── board.svg
├── lm35
│ ├── board.json
│ └── board.svg
├── m5stack-core-s3
│ ├── board.json
│ └── board.svg
├── mch2022-badge
│ ├── board.json
│ └── board.svg
├── nokia-5110
│ ├── board.json
│ └── board.svg
├── notecarrier-a
│ ├── board.json
│ └── board.svg
├── pi-pico-w
│ ├── board.json
│ └── board.svg
├── pi-pico
│ ├── board.json
│ └── board.svg
├── ssd1306
│ ├── board.json
│ └── board.svg
├── st-nucleo-c031c6
│ ├── board.json
│ └── board.svg
├── st-nucleo-l031k6
│ ├── board.json
│ └── board.svg
├── st-nucleo-l432kc
│ ├── board.json
│ └── board.svg
├── stm32-blackpill
│ ├── board.json
│ └── board.svg
├── stm32-bluepill
│ ├── board.json
│ └── board.svg
├── tt-block-bidirectional-io
│ ├── board.json
│ └── board.svg
├── tt-block-input-8
│ ├── board.json
│ └── board.svg
├── tt-block-input
│ ├── board.json
│ └── board.svg
├── tt-block-output
│ ├── board.json
│ └── board.svg
├── wemos-s2-mini
│ ├── board.json
│ └── board.svg
├── xiao-esp32-c3
│ ├── board.json
│ └── board.svg
├── xiao-esp32-c6
│ ├── board.json
│ └── board.svg
└── xiao-esp32-s3
│ ├── board.json
│ └── board.svg
└── tools
├── .gitignore
├── make-bundle.js
├── make-index.js
├── package-lock.json
└── package.json
/.github/workflows/boards.yml:
--------------------------------------------------------------------------------
1 | name: Publish boards
2 |
3 | on:
4 | workflow_dispatch:
5 | push:
6 | branches:
7 | - main
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-24.04
12 | name: Build build boards index
13 | steps:
14 | - uses: actions/checkout@v4
15 | - uses: actions/setup-node@v4
16 | with:
17 | node-version: 20
18 | - run: npm ci --prefix tools
19 | - name: Generate board index
20 | run: node ./tools/make-index.js
21 | - name: Generate board bundle
22 | run: node ./tools/make-bundle.js
23 | - name: Upload pages artifact
24 | uses: actions/upload-pages-artifact@v3
25 | with:
26 | path: 'boards'
27 |
28 | deploy:
29 | needs: build
30 |
31 | permissions:
32 | pages: write
33 | id-token: write
34 |
35 | environment:
36 | name: github-pages
37 | url: ${{ steps.deployment.outputs.page_url }}
38 |
39 | runs-on: ubuntu-latest
40 | steps:
41 | - name: Deploy to GitHub Pages
42 | id: deployment
43 | uses: actions/deploy-pages@v4
44 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | boards/index.json
3 | boards/bundle.json
4 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.associations": {
3 | "*.json": "jsonc"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # wokwi-boards
2 |
3 | Definition for the boards supported on [wokwi.com](https://wokwi.com).
4 |
5 | See [boards/esp32-devkit-v1/board.json](boards/esp32-devkit-v1/board.json) for an example.
6 |
7 | ## Board contribution guidelines
8 |
9 | Please review the [contribution guidelines](https://docs.google.com/document/d/1K59xkKL70uN_c_GNCs_Xk09F3tK12B-ygmFbw6i14t4/edit#heading=h.92fnwowlaoo8) before submitting a new board definition.
10 |
11 | ## Testing a custom board
12 |
13 | 1. Create a [new project on wokwi](https://wokwi.com/arduino/new)
14 | 2. Click inside the code editor, press "F1" and choose "Load custom board file..."
15 | 3. Select the directory that contains the board definition files (board.json and board.svg)
16 | 4. The board should load into Wokwi. Check the browser JavaScript console for any error messages.
17 | 5. Paste the following code into the diagram.json file:
18 |
19 | ```json
20 | {
21 | "version": 1,
22 | "author": "Ambitious maker",
23 | "editor": "wokwi",
24 | "parts": [{ "type": "wokwi-custom-board", "id": "board" }],
25 | "connections": []
26 | }
27 | ```
28 |
29 | Your custom board should appear in the diagram editor. You can test the pin out, connect external
30 | components to it, and even start the simulation.
31 |
--------------------------------------------------------------------------------
/boards/aitewinrobot-esp32c3-supermini/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Aitewin Robot ESP32-C3 SuperMini",
3 | "version": 1,
4 | "description": "A common ESP32 dev board by AITEWIN ROBOT (Derived from Adafruit QT Py ESP32-C3)",
5 | "author": "GeekGarage",
6 | "mcu": "esp32-c3",
7 | "fqbn": "esp32:esp32:esp32c3",
8 | "width": 18.00,
9 | "height": 24.576,
10 | "pins": {
11 | "5V": { "x": 16.702, "y": 3.238, "target": "power(5)" },
12 | "GND": { "x": 16.702, "y": 5.778, "target": "GND" },
13 | "3V3": { "x": 16.702, "y": 8.318, "target": "power(3.3)" },
14 | "4": { "x": 16.702, "y": 10.858, "target": "GPIO4" },
15 | "3": { "x": 16.702, "y": 13.398, "target": "GPIO3" },
16 | "2": { "x": 16.702, "y": 15.938, "target": "GPIO2" },
17 | "1": { "x": 16.702, "y": 18.478, "target": "GPIO1" },
18 | "0": { "x": 16.702, "y": 21.018, "target": "GPIO0" },
19 | "5": { "x": 1.462, "y": 3.238, "target": "GPIO5" },
20 | "6": { "x": 1.462, "y": 5.778, "target": "GPIO6" },
21 | "7": { "x": 1.462, "y": 8.318, "target": "GPIO7" },
22 | "8": { "x": 1.462, "y": 10.858, "target": "GPIO8" },
23 | "9": { "x": 1.462, "y": 13.398, "target": "GPIO9" },
24 | "10": { "x": 1.462, "y": 15.938, "target": "GPIO10" },
25 | "RX": { "x": 1.462, "y": 18.478, "target": "GPIO20" },
26 | "TX": { "x": 1.462, "y": 21.018, "target": "GPIO21" }
27 | },
28 | "leds": [
29 | {
30 | "id": "power",
31 | "x": 3.121,
32 | "y": 7.022,
33 | "type": "0603",
34 | "color": "red",
35 | "pins": {
36 | "A": "3V3",
37 | "C": "GND"
38 | }
39 | },
40 | {
41 | "id": "io8led",
42 | "x": 13.599,
43 | "y": 12.885,
44 | "type": "0603",
45 | "color": "blue",
46 | "radius": 3.0,
47 | "pins": {
48 | "A": "8",
49 | "C": "GND"
50 | }
51 | }
52 | ],
53 | "buy": [
54 | {
55 | "store": "Aliexpress",
56 | "link": "https://www.aliexpress.com/item/1005005757810089.html"
57 | },
58 | {
59 | "store": "Ebay",
60 | "link": "https://www.ebay.com/itm/276300462231"
61 | },
62 | {
63 | "store": "Temu",
64 | "link": "https://www.temu.com/dk/esp32-c3-development-board-esp32-supermini-wifi-wireless-g-601099534456789.html"
65 | }
66 | ]
67 | }
68 |
--------------------------------------------------------------------------------
/boards/aitewinrobot-esp32c3-supermini/diagram.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wokwi/wokwi-boards/d951bc94e37ea041f792cece49d53def288faf9a/boards/aitewinrobot-esp32c3-supermini/diagram.jpg
--------------------------------------------------------------------------------
/boards/arduino-nano-esp32/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Arduino Nano ESP32",
3 | "version": 1,
4 | "description": "Nano form factor board based on the ESP32-S3",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "esp32-s3",
7 | "fqbn": "esp32:esp32:nano_nora",
8 |
9 | "width": 43.3,
10 | "height": 18.05,
11 |
12 | "pins": {
13 | "D12": { "x": 4.8, "y": 1.5, "target": "GPIO47" },
14 | "D11": { "x": 7.34, "y": 1.5, "target": "GPIO38" },
15 | "D10": { "x": 9.88, "y": 1.5, "target": "GPIO21" },
16 | "D9": { "x": 12.42, "y": 1.5, "target": "GPIO18" },
17 | "D8": { "x": 14.96, "y": 1.5, "target": "GPIO17" },
18 | "D7": { "x": 17.5, "y": 1.5, "target": "GPIO10" },
19 | "D6": { "x": 20.04, "y": 1.5, "target": "GPIO9" },
20 | "D5": { "x": 22.58, "y": 1.5, "target": "GPIO8" },
21 | "D4": { "x": 25.12, "y": 1.5, "target": "GPIO7" },
22 | "D3": { "x": 27.66, "y": 1.5, "target": "GPIO6" },
23 | "D2": { "x": 30.2, "y": 1.5, "target": "GPIO5" },
24 | "GND.1": { "x": 32.74, "y": 1.5, "target": "GND" },
25 | "RST": { "x": 35.28, "y": 1.5, "target": "RST" },
26 | "RX0": { "x": 37.82, "y": 1.5, "target": "GPIO44" },
27 | "TX1": { "x": 40.36, "y": 1.5, "target": "GPIO43" },
28 |
29 | "D13": { "x": 4.8, "y": 16.74, "target": "GPIO48" },
30 | "3V3": { "x": 7.34, "y": 16.74, "target": "power(3.3)" },
31 | "B0": { "x": 9.88, "y": 16.74, "target": "GPIO46" },
32 | "A0": { "x": 12.42, "y": 16.74, "target": "GPIO1" },
33 | "A1": { "x": 14.96, "y": 16.74, "target": "GPIO2" },
34 | "A2": { "x": 17.5, "y": 16.74, "target": "GPIO3" },
35 | "A3": { "x": 20.04, "y": 16.74, "target": "GPIO4" },
36 | "A4": { "x": 22.58, "y": 16.74, "target": "GPIO11" },
37 | "A5": { "x": 25.12, "y": 16.74, "target": "GPIO12" },
38 | "A6": { "x": 27.66, "y": 16.74, "target": "GPIO13" },
39 | "A7": { "x": 30.2, "y": 16.74, "target": "GPIO14" },
40 | "VBUS": { "x": 32.74, "y": 16.74, "target": "power(5)" },
41 | "B1": { "x": 35.28, "y": 16.74, "target": "GPIO0" },
42 | "GND.2": { "x": 37.82, "y": 16.74, "target": "GND" },
43 | "VIN": { "x": 40.36, "y": 16.74, "target": "power(5)" },
44 |
45 | "$gpio45": { "target": "GPIO45" }
46 | },
47 | "leds": [
48 | {
49 | "id": "power",
50 | "x": 2.49,
51 | "y": 3.73,
52 | "type": "0603",
53 | "color": "#90ff00", //green
54 | "pins": {
55 | "A": "VIN",
56 | "C": "GND.1"
57 | }
58 | },
59 | {
60 | "id": "ledBuiltIn",
61 | "x": 2.49,
62 | "y": 13.85,
63 | "type": "0603",
64 | "color": "#eb3b37ff", //red
65 | "pins": {
66 | "A": "D13",
67 | "C": "GND.1"
68 | }
69 | },
70 | {
71 | "id": "rgb",
72 | "x": 11.7,
73 | "y": 5,
74 | "type": "rgb",
75 | "pins": {
76 | "R": "B0",
77 | "G": "B1",
78 | "B": "$gpio45",
79 | "A": "3V3"
80 | }
81 | }
82 | ]
83 | }
84 |
--------------------------------------------------------------------------------
/boards/cd74hc4067/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CD74HC4067",
3 | "version": 1,
4 | "description": "CD74HC4067 16 Channel Analog Multiplexer",
5 | "author": "Maverick",
6 | "width": 16.1,
7 | "height": 40.343,
8 |
9 | "chips": [{ "id": "chip", "type": "github:Droog71/CD74HC4067@0.0.3" }],
10 |
11 | "pins": {
12 | "I15": { "x": 1.3, "y": 1.15, "target": "chip:I15" },
13 | "I14": { "x": 1.3, "y": 3.69, "target": "chip:I14" },
14 | "I13": { "x": 1.3, "y": 6.23, "target": "chip:I13" },
15 | "I12": { "x": 1.3, "y": 8.77, "target": "chip:I12" },
16 | "I11": { "x": 1.3, "y": 11.31, "target": "chip:I11" },
17 | "I10": { "x": 1.3, "y": 13.85, "target": "chip:I10" },
18 | "I9": { "x": 1.3, "y": 16.39, "target": "chip:I9" },
19 | "I8": { "x": 1.3, "y": 18.93, "target": "chip:I8" },
20 | "I7": { "x": 1.3, "y": 21.47, "target": "chip:I7" },
21 | "I6": { "x": 1.3, "y": 24.01, "target": "chip:I6" },
22 | "I5": { "x": 1.3, "y": 26.55, "target": "chip:I5" },
23 | "I4": { "x": 1.3, "y": 29.09, "target": "chip:I4" },
24 | "I3": { "x": 1.3, "y": 31.63, "target": "chip:I3" },
25 | "I2": { "x": 1.3, "y": 34.17, "target": "chip:I2" },
26 | "I1": { "x": 1.3, "y": 36.71, "target": "chip:I1" },
27 | "I0": { "x": 1.3, "y": 39.25, "target": "chip:I0" },
28 | "COM": { "x": 13.992, "y": 11.31, "target": "chip:COM" },
29 | "S3": { "x": 13.992, "y": 13.85, "target": "chip:S3" },
30 | "S2": { "x": 13.992, "y": 16.39, "target": "chip:S2" },
31 | "S1": { "x": 13.992, "y": 18.93, "target": "chip:S1" },
32 | "S0": { "x": 13.992, "y": 21.47, "target": "chip:S0" },
33 | "EN": { "x": 13.992, "y": 24.01, "target": "chip:EN" },
34 | "VCC": { "x": 13.992, "y": 26.55, "target": "chip:VCC" },
35 | "GND": { "x": 13.992, "y": 29.09, "target": "chip:GND" }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/boards/ds18b20/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DS18B20 Temperature Sensor",
3 | "version": 1,
4 | "description": "One Wire Temperature Sensor",
5 | "author": "Ariella Eliassaf",
6 | "width": 8.564,
7 | "height": 13.388,
8 |
9 | "chips": [{ "id": "chip", "type": "github:bonnyr/wokwi-ds1820-custom-chip@0.4.5" }],
10 |
11 | "pins": {
12 | "GND": { "x": 1.46, "y": 13, "target": "chip:GND" },
13 | "DQ": { "x": 4, "y": 13, "target": "chip:DQ" },
14 | "VCC": { "x": 6.54, "y": 13, "target": "chip:VCC" }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/boards/ds18b20/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
--------------------------------------------------------------------------------
/boards/epaper-2in9/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "2.9\" BW/BWR/BWY e-paper module",
3 | "version": 1,
4 | "description": "2.9\" 2 and 3 colour e-Paper Module (V2)",
5 | "author": "Bonny Rais",
6 | "width": 89.5,
7 | "height": 38,
8 |
9 | "chips": [{ "id": "chip", "type": "github:bonnyr/wokwi-ws29v2-custom-chip@0.0.5" }],
10 |
11 | "pins": {
12 | "BUSY" : { "x": 4, "y": 10, "target": "chip:BUSY" },
13 | "RST": { "x": 4, "y": 12.54, "target": "chip:RST" },
14 | "DC": { "x": 4, "y": 15.08, "target": "chip:DC" },
15 | "CS": { "x": 4, "y": 17.62, "target": "chip:CS" },
16 | "CLK": { "x": 4, "y": 20.18, "target": "chip:CLK" },
17 | "DIN": { "x": 4, "y": 22.72, "target": "chip:DIN" },
18 | "VCC": { "x": 4, "y": 25.26, "target": "chip:VCC" },
19 | "GND": { "x": 4, "y": 27.8, "target": "chip:GND" }
20 | },
21 |
22 | "displays": [
23 | {
24 | "id": "chip",
25 | "x": 31.9,
26 | "y": -15,
27 | "rotate": -90,
28 | "width": 31,
29 | "height": 67.5,
30 | "pixelWidth": 128,
31 | "pixelHeight": 296,
32 | "chip": "ws29v2"
33 | }
34 | ]
35 | }
36 |
37 |
38 |
--------------------------------------------------------------------------------
/boards/epaper-2in9/board.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boards/esp-01/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP-01",
3 | "version": 1,
4 | "description": "Wi-Fi module that allows microcontrollers access to a Wi-Fi network",
5 | "author": "Ariella Eliassaf",
6 | "width": 24.8,
7 | "height": 14.574,
8 |
9 | "pins": {
10 | "GND": { "x": 4.1, "y": 3.88, "target": "esp:GND" },
11 | "TX": { "x": 1.4, "y": 3.88, "target": "esp:U0TXD" },
12 | "GPIO2": { "x": 4.1, "y": 6, "target": "esp:GPIO2" },
13 | "CH_PD": { "x": 1.4, "y": 6, "target": "esp:CH_EN" },
14 | "GPIO0": { "x": 4.1, "y": 8.74, "target": "esp:GPIO0" },
15 | "RESET": { "x": 1.4, "y": 8.74, "target": "esp:RESET" },
16 | "RX": { "x": 4.1, "y": 11.34, "target": "esp:U0RXD" },
17 | "VCC": { "x": 1.4, "y": 11.34, "target": "esp:VCC" }
18 | },
19 |
20 | "chips": [
21 | {
22 | "id": "esp",
23 | "type": "esp-01",
24 | "name": "IMU"
25 | }
26 | ],
27 |
28 | "leds": [
29 | {
30 | "id": "power",
31 | "x": 17.7,
32 | "y": 13.84,
33 | "type": "0603",
34 | "color": "red",
35 | "pins": {
36 | "A": "VCC",
37 | "C": "GND"
38 | }
39 | },
40 | {
41 | "id": "WiFi",
42 | "x": 17.7,
43 | "y": 10.64,
44 | "type": "0603",
45 | "color": "blue",
46 | "pins": {
47 | "A": "VCC",
48 | "C": "GPIO2"
49 | }
50 | }
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/boards/esp-01/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
61 |
--------------------------------------------------------------------------------
/boards/esp32-c3-devkitm-1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | /* The name of the board */
3 | "name": "ESP32-C3-DevKitM-1",
4 |
5 | /* Board version. Increment it whenever you make changes. */
6 | "version": 1,
7 |
8 | /* One-liner description of the board, it's capabilities, etc. */
9 | "description": "An entry-level ESP32-C3 development board",
10 |
11 | /* The name of the person who created this file */
12 | "author": "Uri Shaked",
13 |
14 | /* Microcontroller name. Valid values: atmega328p, atmega2560, attiny85, rp2040, esp32 */
15 | "mcu": "esp32-c3",
16 |
17 | /* Fully Qualified Board Name (FQBN) for the Arduino CLI */
18 | "fqbn": "esp32:esp32:esp32c3",
19 |
20 | /* Width of the board graphics, in mm. Must match the width defined in board.svg */
21 | "width": 25.4,
22 |
23 | /* Height of the board graphics, in mm. Must match the height defined in board.svg */
24 | "height": 42.91,
25 |
26 | /* The pins available on the board.
27 | "x"/"y" positions are in mm, and are relative to the top-left corner of the board.
28 | "target" is either:
29 | - an MCU pin name
30 | - "GND" for ground
31 | - "power(n)" for power supply pins, where n is the voltage. e.g. "power(3.3)"
32 | */
33 | "pins": {
34 | "GND.1": { "x": 1, "y": 5.16, "target": "GND" },
35 | "3V3.1": { "x": 1, "y": 7.7, "target": "power(3.3)" },
36 | "3V3.2": { "x": 1, "y": 10.24, "target": "power(3.3)" },
37 | "2": { "x": 1, "y": 12.78, "target": "GPIO2" },
38 | "3": { "x": 1, "y": 15.32, "target": "GPIO3" },
39 | "GND.2": { "x": 1, "y": 17.86, "target": "GND" },
40 | "RST": { "x": 1, "y": 20.4, "target": "CHIP_PU" },
41 | "GND.3": { "x": 1, "y": 22.94, "target": "GND" },
42 | "0": { "x": 1, "y": 25.48, "target": "GPIO0" },
43 | "1": { "x": 1, "y": 28.02, "target": "GPIO1" },
44 | "10": { "x": 1, "y": 30.56, "target": "GPIO10" },
45 | "GND.4": { "x": 1, "y": 33.1, "target": "GND" },
46 | "5V.1": { "x": 1, "y": 35.64, "target": "power(5)" },
47 | "5V.2": { "x": 1, "y": 38.18, "target": "power(5)" },
48 | "GND.5": { "x": 1, "y": 40.72, "target": "GND" },
49 | "GND.6": { "x": 24.5, "y": 40.72, "target": "GND" },
50 | "19": { "x": 24.5, "y": 38.18, "target": "GPIO19" },
51 | "18": { "x": 24.5, "y": 35.64, "target": "GPIO18" },
52 | "GND.7": { "x": 24.5, "y": 33.1, "target": "GND" },
53 | "4": { "x": 24.5, "y": 30.56, "target": "GPIO4" },
54 | "5": { "x": 24.5, "y": 28.02, "target": "GPIO5" },
55 | "6": { "x": 24.5, "y": 25.48, "target": "GPIO6" },
56 | "7": { "x": 24.5, "y": 22.94, "target": "GPIO7" },
57 | "GND.8": { "x": 24.5, "y": 20.4, "target": "GND" },
58 | "8": { "x": 24.5, "y": 17.86, "target": "GPIO8" },
59 | "9": { "x": 24.5, "y": 15.32, "target": "GPIO9" },
60 | "GND.9": { "x": 24.5, "y": 12.78, "target": "GND" },
61 | "RX": { "x": 24.5, "y": 10.24, "target": "GPIO20" },
62 | "TX": { "x": 24.5, "y": 7.7, "target": "GPIO21" },
63 | "GND.10": { "x": 24.5, "y": 5.16, "target": "GND" }
64 | },
65 |
66 | /* On-board LED definitions. These only draw the light of the LED when it's on.
67 | You should draw the body of the LED in your .svg file. */
68 | "leds": [
69 | {
70 | /* A unique identifier of the LED on the board */
71 | "id": "power",
72 |
73 | /* x/y positions of the LED center, in mm. Relative to the top-left corner of the board */
74 | "x": 4.2,
75 | "y": 31.54,
76 |
77 | /* Supported LED types: 0603, ws2812, apa102, rgb */
78 | "type": "0603",
79 |
80 | /* LED color - only relevant for 0603 LEDs */
81 | "color": "red",
82 |
83 | /* The PINs object defines how the LED pins connect to the MCU pins. The LED pin names depend on the type of the LED:
84 | - 0603 - "A" for Anode, "C" for cathode
85 | - ws2812 - "DI" for data input
86 | - apa102 - "DI" for data input, "CI" for clock output
87 | - rgb - "R" for red input, "G" for green input, "B" for blue input, "C" for cathode, "A" for anode (define either A or C, not both)
88 | */
89 | "pins": {
90 | "A": "3V3.1", // This is a power LED, so it's always on
91 | "C": "GND.1"
92 | }
93 | },
94 | {
95 | /* A unique identifier of the LED on the board */
96 | "id": "rgb1",
97 |
98 | /* x/y positions of the LED center, in mm. Relative to the top-left corner of the board */
99 | "x": 19.31,
100 | "y": 21.28,
101 |
102 | /* Supported LED types: 0603, ws2812, apa102, rgb */
103 | "type": "ws2812",
104 |
105 | /* LED light circle radius, in mm */
106 | "radius": 5.26,
107 |
108 | /* The PINs object defines how the LED pins connect to the MCU pins. The LED pin names depend on the type of the LED:
109 | - 0603 - "A" for Anode, "C" for cathode
110 | - ws2812 - "DI" for data input
111 | - apa102 - "DI" for data input, "CI" for clock output
112 | - rgb - "R" for red input, "G" for green input, "B" for blue input, "C" for cathode, "A" for anode (define either A or C, not both)
113 | */
114 | "pins": {
115 | "DI": "8"
116 | }
117 | }
118 | ]
119 | }
120 |
--------------------------------------------------------------------------------
/boards/esp32-c3-devkitm-1/board.svg:
--------------------------------------------------------------------------------
1 |
220 |
--------------------------------------------------------------------------------
/boards/esp32-c3-rust-1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Rust Board ESP32-C3",
3 | "version": 1,
4 | "description": "ESP32-C3 board for Rust development",
5 | "author": "Uri Shaked",
6 |
7 | "mcu": "esp32-c3",
8 | "fqbn": "esp32:esp32:esp32c3",
9 |
10 | "width": 22.86,
11 | "height": 63.67,
12 |
13 | "chips": [
14 | {
15 | "id": "sens1",
16 | "type": "github:SergioGasquez/wokwi-icm42670p@0.1",
17 | "name": "IMU"
18 | },
19 | {
20 | "id": "sens2",
21 | "type": "github:SergioGasquez/wokwi-shtc3@0.1",
22 | "name": "Environmental Sensor"
23 | }
24 | ],
25 |
26 | "pins": {
27 | "RST": { "x": 1.23, "y": 11.42, "target": "CHIP_EN" },
28 | "3V3": { "x": 1.23, "y": 13.96, "target": "power(3.3)" },
29 | "NC1": { "x": 1.23, "y": 16.5, "target": "" },
30 | "GND": { "x": 1.23, "y": 19.04, "target": "GND" },
31 | "0": { "x": 1.23, "y": 21.58, "target": "GPIO0" },
32 | "1": { "x": 1.23, "y": 24.12, "target": "GPIO1" },
33 | "2": { "x": 1.23, "y": 26.66, "target": "GPIO2" },
34 | "3": { "x": 1.23, "y": 29.2, "target": "GPIO3" },
35 | "4": { "x": 1.23, "y": 31.74, "target": "GPIO4" },
36 | "5": { "x": 1.23, "y": 34.28, "target": "GPIO5" },
37 | "6": { "x": 1.23, "y": 36.82, "target": "GPIO6" },
38 | "7": { "x": 1.23, "y": 39.36, "target": "GPIO7" },
39 | "8.1": { "x": 1.23, "y": 41.9, "target": "GPIO8" },
40 | "21": { "x": 1.23, "y": 44.44, "target": "GPIO21" },
41 | "20": { "x": 1.23, "y": 46.98, "target": "GPIO20" },
42 | "9": { "x": 1.23, "y": 49.52, "target": "GPIO9" },
43 | "10": { "x": 21.55, "y": 49.52, "target": "GPIO10" },
44 | "8.2": { "x": 21.55, "y": 46.98, "target": "GPIO8" },
45 | "18": { "x": 21.55, "y": 44.44, "target": "GPIO18" },
46 | "19": { "x": 21.55, "y": 41.9, "target": "GPIO19" },
47 | "NC2": { "x": 21.55, "y": 39.36, "target": "" },
48 | "NC3": { "x": 21.55, "y": 36.82, "target": "" },
49 | "NC4": { "x": 21.55, "y": 34.28, "target": "" },
50 | "NC5": { "x": 21.55, "y": 31.74, "target": "" },
51 | "NC6": { "x": 21.55, "y": 29.2, "target": "" },
52 | "5V": { "x": 21.55, "y": 26.66, "target": "power(5)" },
53 | "EN": { "x": 21.55, "y": 24.12, "target": "CHIP_EN" },
54 | "BAT+": { "x": 21.55, "y": 21.58, "target": "power(5)" },
55 | "$sens1_SDA": {"target": ["GPIO10", "sens1:SDA"]},
56 | "$sens1_SCL": {"target": ["GPIO8", "sens1:SCL"]},
57 | "$sens2_SDA": {"target": ["GPIO10", "sens2:SDA"]},
58 | "$sens2_SCL": {"target": ["GPIO8", "sens2:SCL"]}
59 | },
60 |
61 | "leds": [
62 | {
63 | "id": "pin7",
64 | "x": 20.2,
65 | "y": 17.92,
66 | "type": "0603",
67 | "color": "blue",
68 | "pins": {
69 | "A": "7",
70 | "C": "GND"
71 | }
72 | },
73 | {
74 | "id": "rgb1",
75 | "x": 11.22,
76 | "y": 32.75,
77 | "type": "ws2812",
78 | "pins": {
79 | "DI": "2"
80 | }
81 | }
82 | ]
83 | }
84 |
--------------------------------------------------------------------------------
/boards/esp32-c6-devkitc-1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-C6-DevKitc-1",
3 | "version": 1,
4 | "description": "An entry-level ESP32-C6 development board",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "esp32-c6",
7 | "fqbn": "esp32:esp32:esp32c6",
8 |
9 | "width": 26.214,
10 | "height": 57.74,
11 |
12 | "pins": {
13 | "3V3": { "x": 1.45, "y": 8.76, "target": "power(3.3)" },
14 | "RST": { "x": 1.45, "y": 11.3, "target": "CHIP_PU" },
15 | "4": { "x": 1.45, "y": 13.84, "target": "GPIO4" },
16 | "5": { "x": 1.45, "y": 16.38, "target": "GPIO5" },
17 | "6": { "x": 1.45, "y": 18.92, "target": "GPIO6" },
18 | "7": { "x": 1.45, "y": 21.46, "target": "GPIO7" },
19 | "0": { "x": 1.45, "y": 24, "target": "GPIO0" },
20 | "1": { "x": 1.45, "y": 26.54, "target": "GPIO1" },
21 | "8": { "x": 1.45, "y": 29.08, "target": "GPIO8" },
22 | "10": { "x": 1.45, "y": 31.62, "target": "GPIO10" },
23 | "11": { "x": 1.45, "y": 34.16, "target": "GPIO11" },
24 | "2": { "x": 1.45, "y": 36.7, "target": "GPIO2" },
25 | "3": { "x": 1.45, "y": 39.24, "target": "GPIO3" },
26 | "5V": { "x": 1.45, "y": 41.78, "target": "power(5)" },
27 | "GND.1": { "x": 1.45, "y": 44.32, "target": "GND" },
28 | "NC0": { "x": 1.45, "y": 46.86, "target": "" },
29 |
30 | "NC1": { "x": 24.6, "y": 46.86, "target": "" },
31 | "GND.2": { "x": 24.6, "y": 44.32, "target": "GND" },
32 | "12": { "x": 24.6, "y": 41.78, "target": "GPIO12" },
33 | "13": { "x": 24.6, "y": 39.24, "target": "GPIO13" },
34 | "GND.3": { "x": 24.6, "y": 36.7, "target": "GND" },
35 | "9": { "x": 24.6, "y": 34.16, "target": "GPIO9" },
36 | "18": { "x": 24.6, "y": 31.62, "target": "GPIO18" },
37 | "19": { "x": 24.6, "y": 29.08, "target": "GPIO19" },
38 | "20": { "x": 24.6, "y": 26.54, "target": "GPIO20" },
39 | "21": { "x": 24.6, "y": 24, "target": "GPIO21" },
40 | "22": { "x": 24.6, "y": 21.46, "target": "GPIO22" },
41 | "23": { "x": 24.6, "y": 18.92, "target": "GPIO23" },
42 | "15": { "x": 24.6, "y": 16.38, "target": "GPIO15" },
43 | "RX": { "x": 24.6, "y": 13.84, "target": "GPIO17" },
44 | "TX": { "x": 24.6, "y": 11.3, "target": "GPIO16" },
45 | "GND.4": { "x": 24.6, "y": 8.76, "target": "GND" }
46 | },
47 |
48 | "leds": [
49 | {
50 | "id": "power",
51 | "x": 20.2,
52 | "y": 34.6,
53 | "type": "0603",
54 | "color": "red",
55 | "pins": {
56 | "A": "3V3",
57 | "C": "GND.1"
58 | }
59 | },
60 | {
61 | "id": "rgb",
62 | "x": 8.56,
63 | "y": 40.6,
64 | "type": "ws2812",
65 | "pins": {
66 | "DI": "8"
67 | }
68 | }
69 | ]
70 | }
71 |
--------------------------------------------------------------------------------
/boards/esp32-devkit-c-v4/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32 DevKit C V4",
3 | "version": 1,
4 | "description": "ESP32-DevKitC by Espressif",
5 | "author": "Marc Endtricht",
6 | "mcu": "esp32",
7 | "fqbn": "esp32:esp32:esp32",
8 | "width": 27.9,
9 | "height": 56.628,
10 | "pins": {
11 | "3V3": {
12 | "x": 1.22,
13 | "y": 7.62,
14 | "target": "power(3.3)"
15 | },
16 | "EN": {
17 | "x": 1.22,
18 | "y": 10.16,
19 | "target": "CHIP_PU"
20 | },
21 | "VP": {
22 | "x": 1.22,
23 | "y": 12.7,
24 | "target": "GPIO36"
25 | },
26 | "VN": {
27 | "x": 1.22,
28 | "y": 15.24,
29 | "target": "GPIO39"
30 | },
31 | "34": {
32 | "x": 1.22,
33 | "y": 17.78,
34 | "target": "GPIO34"
35 | },
36 | "35": {
37 | "x": 1.22,
38 | "y": 20.32,
39 | "target": "GPIO35"
40 | },
41 | "32": {
42 | "x": 1.22,
43 | "y": 22.86,
44 | "target": "GPIO32"
45 | },
46 | "33": {
47 | "x": 1.22,
48 | "y": 25.40,
49 | "target": "GPIO33"
50 | },
51 | "25": {
52 | "x": 1.22,
53 | "y": 27.94,
54 | "target": "GPIO25"
55 | },
56 | "26": {
57 | "x": 1.22,
58 | "y": 30.48,
59 | "target": "GPIO26"
60 | },
61 | "27": {
62 | "x": 1.22,
63 | "y": 33.02,
64 | "target": "GPIO27"
65 | },
66 | "14": {
67 | "x": 1.22,
68 | "y": 35.56,
69 | "target": "GPIO14"
70 | },
71 | "12": {
72 | "x": 1.22,
73 | "y": 38.10,
74 | "target": "GPIO12"
75 | },
76 | "GND.1": {
77 | "x": 1.22,
78 | "y": 40.64,
79 | "target": "GND"
80 | },
81 | "13": {
82 | "x": 1.22,
83 | "y": 43.18,
84 | "target": "GPIO13"
85 | },
86 | "D2": {
87 | "x": 1.22,
88 | "y": 45.72,
89 | "target": "GPIO9"
90 | },
91 | "D3": {
92 | "x": 1.22,
93 | "y": 48.26,
94 | "target": "GPIO10"
95 | },
96 | "CMD": {
97 | "x": 1.22,
98 | "y": 50.80,
99 | "target": "GPIO11"
100 | },
101 | "5V": {
102 | "x": 1.22,
103 | "y": 53.34,
104 | "target": "power(5)"
105 | },
106 | "GND.2": {
107 | "x": 26.66,
108 | "y": 7.62,
109 | "target": "GND"
110 | },
111 | "23": {
112 | "x": 26.66,
113 | "y": 10.16,
114 | "target": "GPIO23"
115 | },
116 | "22": {
117 | "x": 26.66,
118 | "y": 12.7,
119 | "target": "GPIO22"
120 | },
121 | "TX": {
122 | "x": 26.66,
123 | "y": 15.24,
124 | "target": "GPIO1"
125 | },
126 | "RX": {
127 | "x": 26.66,
128 | "y": 17.78,
129 | "target": "GPIO3"
130 | },
131 | "21": {
132 | "x": 26.66,
133 | "y": 20.32,
134 | "target": "GPIO21"
135 | },
136 | "GND.3": {
137 | "x": 26.66,
138 | "y": 22.86,
139 | "target": "GND"
140 | },
141 | "19": {
142 | "x": 26.66,
143 | "y": 25.40,
144 | "target": "GPIO19"
145 | },
146 | "18": {
147 | "x": 26.66,
148 | "y": 27.94,
149 | "target": "GPIO18"
150 | },
151 | "5": {
152 | "x": 26.66,
153 | "y": 30.48,
154 | "target": "GPIO5"
155 | },
156 | "17": {
157 | "x": 26.66,
158 | "y": 33.02,
159 | "target": "GPIO17"
160 | },
161 | "16": {
162 | "x": 26.66,
163 | "y": 35.56,
164 | "target": "GPIO16"
165 | },
166 | "4": {
167 | "x": 26.66,
168 | "y": 38.10,
169 | "target": "GPIO4"
170 | },
171 | "0": {
172 | "x": 26.66,
173 | "y": 40.64,
174 | "target": "GPIO0"
175 | },
176 | "2": {
177 | "x": 26.66,
178 | "y": 43.18,
179 | "target": "GPIO2"
180 | },
181 | "15": {
182 | "x": 26.66,
183 | "y": 45.72,
184 | "target": "GPIO15"
185 | },
186 | "D1": {
187 | "x": 26.66,
188 | "y": 48.26,
189 | "target": "GPIO8"
190 | },
191 | "D0": {
192 | "x": 26.66,
193 | "y": 50.80,
194 | "target": "GPIO7"
195 | },
196 | "CLK": {
197 | "x": 26.66,
198 | "y": 53.34,
199 | "target": "GPIO6"
200 | }
201 | },
202 | "leds": [
203 | {
204 | "id": "power",
205 | "x": 6.09,
206 | "y": 42.07,
207 | "type": "0603",
208 | "color": "red",
209 | "pins": {
210 | "A": "5V",
211 | "C": "GND.1"
212 | }
213 | }
214 | ]
215 | }
216 |
--------------------------------------------------------------------------------
/boards/esp32-devkit-v1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | /* The name of the board */
3 | "name": "ESP32 DevKit V1",
4 |
5 | /* Board version. Increment it whenever you make changes. */
6 | "version": 1,
7 |
8 | /* One-liner description of the board, it's capabilities, etc. */
9 | "description": "A common ESP32 dev board by DOIT",
10 |
11 | /* The name of the person who created this file */
12 | "author": "Uri Shaked",
13 |
14 | /* Microcontroller name. Valid values: atmega328p, atmega2560, attiny85, rp2040, esp32 */
15 | "mcu": "esp32",
16 |
17 | /* Fully Qualified Board Name (FQBN) for the Arduino CLI */
18 | "fqbn": "esp32:esp32:esp32doit-devkit-v1",
19 |
20 | /* Width of the board graphics, in mm. Must match the width defined in board.svg */
21 | "width": 28.2,
22 |
23 | /* Height of the board graphics, in mm. Must match the height defined in board.svg */
24 | "height": 53,
25 |
26 | /* The pins available on the board.
27 | "x"/"y" positions are in mm, and are relative to the top-left corner of the board.
28 | "target" is either:
29 | - an MCU pin name
30 | - "GND" for ground
31 | - "power(n)" for power supply pins, where n is the voltage. e.g. "power(3.3)"
32 | */
33 | "pins": {
34 | "EN": { "x": 1.27, "y": 5.8, "target": "CHIP_PU" },
35 | "VN": { "x": 1.27, "y": 8.34, "target": "GPIO39" },
36 | "VP": { "x": 1.27, "y": 10.88, "target": "GPIO36" },
37 | "D34": { "x": 1.27, "y": 13.42, "target": "GPIO34" },
38 | "D35": { "x": 1.27, "y": 15.96, "target": "GPIO35" },
39 | "D32": { "x": 1.27, "y": 18.5, "target": "GPIO32" },
40 | "D33": { "x": 1.27, "y": 21.04, "target": "GPIO33" },
41 | "D25": { "x": 1.27, "y": 23.58, "target": "GPIO25" },
42 | "D26": { "x": 1.27, "y": 26.12, "target": "GPIO26" },
43 | "D27": { "x": 1.27, "y": 28.66, "target": "GPIO27" },
44 | "D14": { "x": 1.27, "y": 31.2, "target": "GPIO14" },
45 | "D12": { "x": 1.27, "y": 33.74, "target": "GPIO12" },
46 | "D13": { "x": 1.27, "y": 36.28, "target": "GPIO13" },
47 | "GND.2": { "x": 1.27, "y": 38.82, "target": "GND" },
48 | "VIN": { "x": 1.27, "y": 41.36, "target": "power(5)" },
49 | "3V3": { "x": 26.8, "y": 41.36, "target": "power(3.3)" },
50 | "GND.1": { "x": 26.8, "y": 38.82, "target": "GND" },
51 | "D15": { "x": 26.8, "y": 36.28, "target": "15" },
52 | "D2": { "x": 26.8, "y": 33.74, "target": "GPIO2" },
53 | "D4": { "x": 26.8, "y": 31.2, "target": "GPIO4" },
54 | "RX2": { "x": 26.8, "y": 28.66, "target": "GPIO16" },
55 | "TX2": { "x": 26.8, "y": 26.12, "target": "GPIO17" },
56 | "D5": { "x": 26.8, "y": 23.58, "target": "GPIO5" },
57 | "D18": { "x": 26.8, "y": 21.04, "target": "GPIO18" },
58 | "D19": { "x": 26.8, "y": 18.5, "target": "GPIO19" },
59 | "D21": { "x": 26.8, "y": 15.96, "target": "GPIO21" },
60 | "RX0": { "x": 26.8, "y": 13.42, "target": "GPIO3" },
61 | "TX0": { "x": 26.8, "y": 10.88, "target": "GPIO1" },
62 | "D22": { "x": 26.8, "y": 8.34, "target": "GPIO22" },
63 | "D23": { "x": 26.8, "y": 5.8, "target": "GPIO23" }
64 | },
65 |
66 | /* On-board LED definitions. These only draw the light of the LED when it's on.
67 | You should draw the body of the LED in your .svg file. */
68 | "leds": [
69 | {
70 | /* A unique identifier of the LED on the board */
71 | "id": "power",
72 |
73 | /* x/y positions of the LED center, in mm. Relative to the top-left corner of the board */
74 | "x": 9.77,
75 | "y": 29.8,
76 |
77 | /* Supported LED types: 0603, ws2812, apa102, rgb */
78 | "type": "0603",
79 |
80 | /* LED color - only relevant for 0603 LEDs */
81 | "color": "red",
82 |
83 | /* The PINs object defines how the LED pins connect to the MCU pins. The LED pin names depend on the type of the LED:
84 | - 0603 - "A" for Anode, "C" for cathode
85 | - ws2812 - "DI" for data input
86 | - apa102 - "DI" for data input, "CI" for clock output
87 | - rgb - "R" for red input, "G" for green input, "B" for blue input, "C" for cathode, "A" for anode (define either A or C, not both)
88 | */
89 | "pins": {
90 | "A": "3V3", // This is a power LED, so it's always on
91 | "C": "GND.1"
92 | }
93 | },
94 | {
95 | "id": "led1",
96 | "x": 18.9,
97 | "y": 29.8,
98 | "type": "0603",
99 | "color": "blue",
100 | "pins": {
101 | "A": "D2", // The LED connects to GPIO pin 2
102 | "C": "GND.1"
103 | }
104 | }
105 | ]
106 | }
107 |
--------------------------------------------------------------------------------
/boards/esp32-devkit-v1/board.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boards/esp32-h2-devkitm-1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-H2-DevKitM-1",
3 | "version": 1,
4 | "description": "An entry-level development board based on Bluetooth® Low Energy and IEEE 802.15.4 combo module ESP32-H2-MINI-1 or ESP32-H2-MINI-1U",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "esp32-h2",
7 | "fqbn": "esp32:esp32:esp32h2",
8 |
9 | "width": 26.214,
10 | "height": 55.446,
11 |
12 | "pins": {
13 | "3V3": { "x": 1.35, "y": 7.03, "target": "power(3.3)" },
14 | "RST": { "x": 1.35, "y": 9.57, "target": "CHIP_PU" },
15 | "0": { "x": 1.35, "y": 12.11, "target": "GPIO0" },
16 | "1": { "x": 1.35, "y": 14.65, "target": "GPIO1" },
17 | "2": { "x": 1.35, "y": 17.19, "target": "GPIO2" },
18 | "3": { "x": 1.35, "y": 19.73, "target": "GPIO3" },
19 | "13": { "x": 1.35, "y": 22.27, "target": "GPIO13" },
20 | "14": { "x": 1.35, "y": 24.81, "target": "GPIO14" },
21 | "4": { "x": 1.35, "y": 27.35, "target": "GPIO4" },
22 | "5": { "x": 1.35, "y": 29.89, "target": "GPIO5" },
23 | "NC": { "x": 1.35, "y": 32.43, "target": "" },
24 | "VBAT": { "x": 1.35, "y": 34.97, "target": "power(3.3)" },
25 | "GND.1": { "x": 1.35, "y": 37.51, "target": "GND" },
26 | "5V": { "x": 1.35, "y": 40.05, "target": "power(5)" },
27 | "GND.2": { "x": 1.35, "y": 42.59, "target": "GND" },
28 |
29 | "GND.3": { "x": 24.6, "y":42.59, "target": "GND" },
30 | "26": { "x": 24.6, "y": 40.05, "target": "GPIO26" },
31 | "27": { "x": 24.6, "y": 37.51, "target": "GPIO27" },
32 | "GND.4": { "x": 24.6, "y": 34.97, "target": "GND" },
33 | "9": { "x": 24.6, "y": 32.43, "target": "GPIO9" },
34 | "GND.5": { "x": 24.6, "y": 29.89, "target": "GND" },
35 | "22": { "x": 24.6, "y": 27.35, "target": "GPIO22" },
36 | "8": { "x": 24.6, "y": 24.81, "target": "GPIO8" },
37 | "12": { "x": 24.6, "y": 22.27, "target": "GPIO12" },
38 | "25": { "x": 24.6, "y": 19.73, "target": "GPIO25" },
39 | "11": { "x": 24.6, "y": 17.19, "target": "GPIO11" },
40 | "10": { "x": 24.6, "y": 14.65, "target": "GPIO10" },
41 | "RX": { "x": 24.6, "y": 12.11, "target": "GPIO23" },
42 | "TX": { "x": 24.6, "y": 9.57, "target": "GPIO24" },
43 |
44 |
45 |
46 | "GND.6": { "x": 24.6, "y": 7.03, "target": "GND" }
47 | },
48 |
49 | "leds": [
50 | {
51 | "id": "power",
52 | "x": 15.8,
53 | "y": 24.1,
54 | "type": "0603",
55 | "color": "red",
56 | "pins": {
57 | "A": "3V3",
58 | "C": "GND.1"
59 | }
60 | },
61 | {
62 | "id": "rgb",
63 | "x": 8.45,
64 | "y": 38.27,
65 | "type": "ws2812",
66 | "pins": {
67 | "DI": "8"
68 | }
69 | }
70 | ]
71 | }
72 |
--------------------------------------------------------------------------------
/boards/esp32-p4-function-ev/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-P4-Function-EV-Board",
3 | "version": 1,
4 | "description": "A multimedia development board based on the ESP32-P4 chip",
5 | "author": "Uri Shaked",
6 | "mcu": "esp32-p4",
7 | "mcuAttrs": {
8 | "flashSize": "16",
9 | "psramSize": "32",
10 | "psramType": "octal"
11 | },
12 | "fqbn": "esp32:esp32:esp32p4",
13 |
14 | "width": 167.366,
15 | "height": 155.646,
16 |
17 | "pins": {
18 | "5V.1": { "x": 48.0555, "y": 2.3065, "target": "power(5)" },
19 | "5V.2": { "x": 50.5955, "y": 2.3065, "target": "power(5)" },
20 | "GND.1": { "x": 53.1355, "y": 2.3065, "target": "GND" },
21 | "37": { "x": 55.6755, "y": 2.3065, "target": "GPIO37" },
22 | "38": { "x": 58.2155, "y": 2.3065, "target": "GPIO38" },
23 | "22": { "x": 60.7555, "y": 2.3065, "target": "GPIO22" },
24 | "GND.2": { "x": 63.2955, "y": 2.3065, "target": "GND" },
25 | "5": { "x": 65.8355, "y": 2.3065, "target": "GPIO5" },
26 | "4": { "x": 68.3755, "y": 2.3065, "target": "GPIO4" },
27 | "GND.3": { "x": 70.9155, "y": 2.3065, "target": "GND" },
28 | "1": { "x": 73.4555, "y": 2.3065, "target": "GPIO1" },
29 | "36": { "x": 75.9955, "y": 2.3065, "target": "GPIO36" },
30 | "32": { "x": 78.5355, "y": 2.3065, "target": "GPIO32" },
31 | "25": { "x": 81.0755, "y": 2.3065, "target": "GPIO25" },
32 | "GND.4": { "x": 83.6155, "y": 2.3065, "target": "GND" },
33 | "54": { "x": 86.1555, "y": 2.3065, "target": "GPIO54" },
34 | "GND.5": { "x": 88.6955, "y": 2.3065, "target": "GND" },
35 | "46": { "x": 91.2355, "y": 2.3065, "target": "GPIO46" },
36 | "27": { "x": 93.7755, "y": 2.3065, "target": "GPIO27" },
37 | "45": { "x": 96.3155, "y": 2.3065, "target": "GPIO45" },
38 |
39 | "3V3.1": { "x": 48.0555, "y": 4.8465, "target": "power(3.3)", "tooltip": "bottom" },
40 | "7": { "x": 50.5955, "y": 4.8465, "target": ["GPIO7", "touch1:SDA"], "tooltip": "bottom" }, // SDA
41 | "8": { "x": 53.1355, "y": 4.8465, "target": ["GPIO8", "touch1:SCL"], "tooltip": "bottom" }, // SCL
42 | "23": { "x": 55.6755, "y": 4.8465, "target": "GPIO23", "tooltip": "bottom" },
43 | "GND.6": { "x": 58.2155, "y": 4.8465, "target": "GND", "tooltip": "bottom" },
44 | "21": { "x": 60.7555, "y": 4.8465, "target": "GPIO21", "tooltip": "bottom" },
45 | "20": { "x": 63.2955, "y": 4.8465, "target": "GPIO20", "tooltip": "bottom" },
46 | "6": { "x": 65.8355, "y": 4.8465, "target": "GPIO6", "tooltip": "bottom" },
47 | "3V3.2": { "x": 68.3755, "y": 4.8465, "target": "power(3.3)", "tooltip": "bottom" },
48 | "3": { "x": 70.9155, "y": 4.8465, "target": "GPIO3", "tooltip": "bottom" },
49 | "2": { "x": 73.4555, "y": 4.8465, "target": "GPIO2", "tooltip": "bottom" },
50 | "0": { "x": 75.9955, "y": 4.8465, "target": "GPIO0", "tooltip": "bottom" },
51 | "GND.7": { "x": 78.5355, "y": 4.8465, "target": "GND", "tooltip": "bottom" },
52 | "24": { "x": 81.0755, "y": 4.8465, "target": "GPIO24", "tooltip": "bottom" },
53 | "33": { "x": 83.6155, "y": 4.8465, "target": "GPIO33", "tooltip": "bottom" },
54 | "26": { "x": 86.1555, "y": 4.8465, "target": "GPIO26", "tooltip": "bottom" },
55 | "48": { "x": 88.6955, "y": 4.8465, "target": "GPIO48", "tooltip": "bottom" },
56 | "53": { "x": 91.2355, "y": 4.8465, "target": "GPIO53", "tooltip": "bottom" },
57 | "47": { "x": 93.7755, "y": 4.8465, "target": "GPIO47", "tooltip": "bottom" },
58 | "GND.8": { "x": 96.3155, "y": 4.8465, "target": "GND", "tooltip": "bottom" },
59 |
60 | // internal signals:
61 | "$gpio9": { "target": "GPIO9" },
62 | "$gpio10": { "target": "GPIO10" },
63 | "$gpio11": { "target": "GPIO11" },
64 | "$gpio12": { "target": "GPIO12" },
65 | "$gpio13": { "target": "GPIO13" },
66 | "$gpio14": { "target": "GPIO14" },
67 | "$gpio15": { "target": "GPIO15" },
68 | "$gpio16": { "target": "GPIO16" },
69 | "$gpio17": { "target": "GPIO17" },
70 | "$gpio18": { "target": "GPIO18" },
71 | "$gpio19": { "target": "GPIO19" },
72 | "$gpio28": { "target": "GPIO28" },
73 | "$gpio29": { "target": "GPIO29" },
74 | "$gpio30": { "target": "GPIO30" },
75 | "$gpio31": { "target": "GPIO31" },
76 | "$gpio34": { "target": "GPIO34" },
77 | "$gpio35": { "target": "GPIO35" },
78 | "$gpio39": { "target": "GPIO39" },
79 | "$gpio40": { "target": "GPIO40" },
80 | "$gpio41": { "target": "GPIO41" },
81 | "$gpio42": { "target": "GPIO42" },
82 | "$gpio43": { "target": "GPIO43" },
83 | "$gpio44": { "target": "GPIO44" },
84 | "$gpio49": { "target": "GPIO49" },
85 | "$gpio50": { "target": "GPIO50" },
86 | "$gpio51": { "target": "GPIO51" },
87 | "$gpio52": { "target": "GPIO52" }
88 | },
89 |
90 | "displays": [
91 | {
92 | "id": "lcd1",
93 | "x": 8.775,
94 | "y": 62.528,
95 | "width": 154.2144,
96 | "height": 85.92,
97 | "pixelWidth": 1024,
98 | "pixelHeight": 600,
99 | "chip": "ek79007",
100 | "touch": {
101 | "id": "touch1",
102 | "chip": "gt911"
103 | }
104 | }
105 | ]
106 | }
107 |
--------------------------------------------------------------------------------
/boards/esp32-p4-preview/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-P4 Preview",
3 | "version": 1,
4 | "description": "ESP32-P4 Preview",
5 | "author": "Uri Shaked",
6 | "mcu": "esp32-p4",
7 | "fqbn": "esp32:esp32:esp32p4",
8 |
9 | "width": 26.214,
10 | "height": 84.271,
11 |
12 | "pins": {
13 | "RST": { "x": 1.705, "y": 2.018, "target": "CHIP_PU" },
14 | "0": { "x": 1.705, "y": 4.558, "target": "GPIO0" },
15 | "1": { "x": 1.705, "y": 7.098, "target": "GPIO1" },
16 | "2": { "x": 1.705, "y": 9.638, "target": "GPIO2" },
17 | "3": { "x": 1.705, "y": 12.178, "target": "GPIO3" },
18 | "4": { "x": 1.705, "y": 14.718, "target": "GPIO4" },
19 | "5": { "x": 1.705, "y": 17.258, "target": "GPIO5" },
20 | "6": { "x": 1.705, "y": 19.798, "target": "GPIO6" },
21 | "7": { "x": 1.705, "y": 22.338, "target": "GPIO7" },
22 | "8": { "x": 1.705, "y": 24.878, "target": "GPIO8" },
23 | "9": { "x": 1.705, "y": 27.418, "target": "GPIO9" },
24 | "10": { "x": 1.705, "y": 29.958, "target": "GPIO10" },
25 | "11": { "x": 1.705, "y": 32.498, "target": "GPIO11" },
26 | "12": { "x": 1.705, "y": 35.038, "target": "GPIO12" },
27 | "13": { "x": 1.705, "y": 37.578, "target": "GPIO13" },
28 | "14": { "x": 1.705, "y": 40.118, "target": "GPIO14" },
29 | "15": { "x": 1.705, "y": 42.658, "target": "GPIO15" },
30 | "16": { "x": 1.705, "y": 45.198, "target": "GPIO16" },
31 | "17": { "x": 1.705, "y": 47.738, "target": "GPIO17" },
32 | "18": { "x": 1.705, "y": 50.278, "target": "GPIO18" },
33 | "19": { "x": 1.705, "y": 52.818, "target": "GPIO19" },
34 | "20": { "x": 1.705, "y": 55.358, "target": "GPIO20" },
35 | "21": { "x": 1.705, "y": 57.898, "target": "GPIO21" },
36 | "22": { "x": 1.705, "y": 60.438, "target": "GPIO22" },
37 | "23": { "x": 1.705, "y": 62.978, "target": "GPIO23" },
38 | "24": { "x": 1.705, "y": 65.518, "target": "GPIO24" },
39 | "25": { "x": 1.705, "y": 68.058, "target": "GPIO25" },
40 | "26": { "x": 1.705, "y": 70.598, "target": "GPIO26" },
41 | "27": { "x": 1.705, "y": 73.138, "target": "GPIO27" },
42 | "3V3": { "x": 1.705, "y": 75.678, "target": "power(3.3)" },
43 | "GND.1": { "x": 1.705, "y": 78.218, "target": "GND" },
44 |
45 | "GND.2": { "x": 24.565, "y": 78.218, "target": "GND" },
46 | "28": { "x": 24.565, "y": 75.678, "target": "GPIO28" },
47 | "29": { "x": 24.565, "y": 73.138, "target": "GPIO29" },
48 | "30": { "x": 24.565, "y": 70.598, "target": "GPIO30" },
49 | "31": { "x": 24.565, "y": 68.058, "target": "GPIO31" },
50 | "32": { "x": 24.565, "y": 65.518, "target": "GPIO32" },
51 | "33": { "x": 24.565, "y": 62.978, "target": "GPIO33" },
52 | "34": { "x": 24.565, "y": 60.438, "target": "GPIO34" },
53 | "35": { "x": 24.565, "y": 57.898, "target": "GPIO35" },
54 | "36": { "x": 24.565, "y": 55.358, "target": "GPIO36" },
55 | "TX": { "x": 24.565, "y": 52.818, "target": "GPIO37" },
56 | "RX": { "x": 24.565, "y": 50.278, "target": "GPIO38" },
57 | "39": { "x": 24.565, "y": 47.738, "target": "GPIO39" },
58 | "40": { "x": 24.565, "y": 45.198, "target": "GPIO40" },
59 | "41": { "x": 24.565, "y": 42.658, "target": "GPIO41" },
60 | "42": { "x": 24.565, "y": 40.118, "target": "GPIO42" },
61 | "43": { "x": 24.565, "y": 37.578, "target": "GPIO43" },
62 | "44": { "x": 24.565, "y": 35.038, "target": "GPIO44" },
63 | "45": { "x": 24.565, "y": 32.498, "target": "GPIO45" },
64 | "46": { "x": 24.565, "y": 29.958, "target": "GPIO46" },
65 | "47": { "x": 24.565, "y": 27.418, "target": "GPIO47" },
66 | "48": { "x": 24.565, "y": 24.878, "target": "GPIO48" },
67 | "49": { "x": 24.565, "y": 22.338, "target": "GPIO49" },
68 | "50": { "x": 24.565, "y": 19.798, "target": "GPIO50" },
69 | "51": { "x": 24.565, "y": 17.258, "target": "GPIO51" },
70 | "52": { "x": 24.565, "y": 14.718, "target": "GPIO52" },
71 | "53": { "x": 24.565, "y": 12.178, "target": "GPIO53" },
72 | "54": { "x": 24.565, "y": 9.638, "target": "GPIO54" },
73 | "55": { "x": 24.565, "y": 7.098, "target": "GPIO55" },
74 | "5V": { "x": 24.565, "y": 4.558, "target": "power(5)" },
75 | "GND.3": { "x": 24.565, "y": 2.018, "target": "GND" }
76 | },
77 |
78 | "leds": [
79 | {
80 | "id": "power",
81 | "x": 7.3275,
82 | "y": 20.228,
83 | "type": "0603",
84 | "color": "red",
85 | "pins": {
86 | "A": "3V3",
87 | "C": "GND.1"
88 | }
89 | }
90 | ]
91 | }
92 |
--------------------------------------------------------------------------------
/boards/esp32-s2-devkitm-1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-S2-DevKitM-1",
3 | "version": 1,
4 | "description": "An entry-level ESP32-S2 development board",
5 | "author": "Uri Shaked",
6 | "mcu": "esp32-s2",
7 | "fqbn": "esp32:esp32:esp32s2",
8 |
9 | "width": 25.53,
10 | "height": 59.29,
11 |
12 | "environments": {
13 | "micropython": {
14 | "firmware": "https://wokwi.github.io/firmware-assets/micropython/GENERIC_S2-$VERSION.bin",
15 | "defaultVersion": "20220117-v1.18",
16 | "fs": { "type": "lfs", "flashOffset": 2097152, "blockSize": 4096, "numBlocks": 512 }
17 | }
18 | },
19 |
20 | "pins": {
21 | "3V3": { "x": 1.33, "y": 6.22, "target": "power(3.3)" },
22 | "0": { "x": 1.33, "y": 8.76, "target": "GPIO0" },
23 | "1": { "x": 1.33, "y": 11.3, "target": "GPIO1" },
24 | "2": { "x": 1.33, "y": 13.84, "target": "GPIO2" },
25 | "3": { "x": 1.33, "y": 16.38, "target": "GPIO3" },
26 | "4": { "x": 1.33, "y": 18.92, "target": "GPIO4" },
27 | "5": { "x": 1.33, "y": 21.46, "target": "GPIO5" },
28 | "6": { "x": 1.33, "y": 24, "target": "GPIO6" },
29 | "7": { "x": 1.33, "y": 26.54, "target": "GPIO7" },
30 | "8": { "x": 1.33, "y": 29.08, "target": "GPIO8" },
31 | "9": { "x": 1.33, "y": 31.62, "target": "GPIO9" },
32 | "10": { "x": 1.33, "y": 34.16, "target": "GPIO10" },
33 | "11": { "x": 1.33, "y": 36.7, "target": "GPIO11" },
34 | "12": { "x": 1.33, "y": 39.24, "target": "GPIO12" },
35 | "13": { "x": 1.33, "y": 41.78, "target": "GPIO13" },
36 | "14": { "x": 1.33, "y": 44.32, "target": "GPIO14" },
37 | "15": { "x": 1.33, "y": 46.86, "target": "GPIO15" },
38 | "16": { "x": 1.33, "y": 49.4, "target": "GPIO16" },
39 | "17": { "x": 1.33, "y": 51.94, "target": "GPIO17" },
40 | "5V": { "x": 1.33, "y": 54.48, "target": "power(5)" },
41 | "GND.1": { "x": 1.33, "y": 57.02, "target": "GND" },
42 | "18": { "x": 24.19, "y": 57.02, "target": "GPIO18" },
43 | "19": { "x": 24.19, "y": 54.48, "target": "GPIO19" },
44 | "20": { "x": 24.19, "y": 51.94, "target": "GPIO20" },
45 | "21": { "x": 24.19, "y": 49.4, "target": "GPIO21" },
46 | "26": { "x": 24.19, "y": 46.86, "target": "GPIO26" },
47 | "33": { "x": 24.19, "y": 44.32, "target": "GPIO33" },
48 | "34": { "x": 24.19, "y": 41.78, "target": "GPIO34" },
49 | "35": { "x": 24.19, "y": 39.24, "target": "GPIO35" },
50 | "36": { "x": 24.19, "y": 36.7, "target": "GPIO36" },
51 | "37": { "x": 24.19, "y": 34.16, "target": "GPIO37" },
52 | "38": { "x": 24.19, "y": 31.62, "target": "GPIO38" },
53 | "39": { "x": 24.19, "y": 29.08, "target": "GPIO39" },
54 | "40": { "x": 24.19, "y": 26.54, "target": "GPIO40" },
55 | "41": { "x": 24.19, "y": 24, "target": "GPIO41" },
56 | "42": { "x": 24.19, "y": 21.46, "target": "GPIO42" },
57 | "TX": { "x": 24.19, "y": 18.92, "target": "GPIO43" },
58 | "RX": { "x": 24.19, "y": 16.38, "target": "GPIO44" },
59 | "45": { "x": 24.19, "y": 13.84, "target": "GPIO45" },
60 | "46": { "x": 24.19, "y": 11.3, "target": "GPIO46" },
61 | "RST": { "x": 24.19, "y": 8.76, "target": "CHIP_PU" },
62 | "GND.2": { "x": 24.19, "y": 6.22, "target": "GND" }
63 | },
64 |
65 | "leds": [
66 | {
67 | "id": "power",
68 | "x": 19.241,
69 | "y": 27.8815,
70 | "type": "0603",
71 | "color": "red",
72 | "pins": {
73 | "A": "3V3",
74 | "C": "GND.1"
75 | }
76 | },
77 | {
78 | "id": "rgb1",
79 | "x": 7.56,
80 | "y": 33.21,
81 | "type": "ws2812",
82 | "pins": {
83 | "DI": "18"
84 | }
85 | }
86 | ]
87 | }
88 |
--------------------------------------------------------------------------------
/boards/esp32-s3-box-3/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-S3-BOX-3",
3 | "version": 1,
4 | "description":"Next-generation development tool designed for AIoT, Edge AI, and IIoT applications.",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "esp32-s3",
7 | "mcuAttrs": {
8 | "flashSize": "16",
9 | "psramSize": "16",
10 | "psramType": "octal"
11 | },
12 | "fqbn": "esp32:esp32:esp32s3box",
13 |
14 | "width": 96.54,
15 | "height": 98.79,
16 |
17 | "pins": {
18 | // left socket
19 | "G10": { "x": 13.9, "y": 92.95, "target": "GPIO10", "tooltip": "top" },
20 | "G14": { "x": 16.44, "y": 92.95, "target": "GPIO14", "tooltip": "top" },
21 | "G11": { "x": 18.98, "y": 92.95, "target": "GPIO11", "tooltip": "top" },
22 | "G43": { "x": 21.52, "y": 92.95, "target": "GPIO43", "tooltip": "top" },
23 | "GND.1": { "x": 24.06, "y": 92.95, "target": "GND", "tooltip": "top" },
24 | "3V3.1": {
25 | "x": 26.6,
26 | "y": 92.95,
27 | "target": "power(3.3)",
28 | "tooltip": "top"
29 | },
30 |
31 | "G13": { "x": 13.9, "y": 95.49, "target": "GPIO13", "tooltip": "bottom" },
32 | "G9": { "x": 16.44, "y": 95.49, "target": "GPIO9", "tooltip": "bottom" },
33 | "G12": { "x": 18.98, "y": 95.49, "target": "GPIO12", "tooltip": "bottom" },
34 | "G44": { "x": 21.52, "y": 95.49, "target": "GPIO44", "tooltip": "bottom" },
35 | "GND.2": { "x": 24.06, "y": 95.49, "target": "GND", "tooltip": "bottom" },
36 | "3V3.2": {
37 | "x": 26.6,
38 | "y": 95.49,
39 | "target": "power(3.3)",
40 | "tooltip": "bottom"
41 | },
42 |
43 | // right socket
44 | "G21": { "x": 33.95, "y": 92.95, "target": "GPIO21", "tooltip": "top" },
45 | "G19": { "x": 36.49, "y": 92.95, "target": "GPIO19", "tooltip": "top" },
46 | "G38": { "x": 39.03, "y": 92.95, "target": "GPIO38", "tooltip": "top" },
47 | "G41": { "x": 41.57, "y": 92.95, "target": "GPIO41", "tooltip": "top" },
48 | "GND.3": { "x": 44.11, "y": 92.95, "target": "GND", "tooltip": "top" },
49 | "3V3.3": {
50 | "x": 46.65,
51 | "y": 92.95,
52 | "target": "power(3.3)",
53 | "tooltip": "top"
54 | },
55 |
56 | "G42": { "x": 33.95, "y": 95.49, "target": "GPIO42", "tooltip": "bottom" },
57 | "G20": { "x": 36.49, "y": 95.49, "target": "GPIO20", "tooltip": "bottom" },
58 | "G39": { "x": 39.03, "y": 95.49, "target": "GPIO39", "tooltip": "bottom" },
59 | "G40": { "x": 41.57, "y": 95.49, "target": "GPIO40", "tooltip": "bottom" },
60 | "GND.4": { "x": 44.11, "y": 95.49, "target": "GND", "tooltip": "bottom" },
61 | "3V3.4": {
62 | "x": 46.65,
63 | "y": 95.49,
64 | "target": "power(3.3)",
65 | "tooltip": "bottom"
66 | },
67 |
68 | // internals
69 | "$gpio4": { "target": ["GPIO4", "lcd1:D/C"] },
70 | "$gpio5": { "target": ["GPIO5", "lcd1:CS"] },
71 | "$gpio6": { "target": ["GPIO6", "lcd1:MOSI"] },
72 | "$gpio7": { "target": ["GPIO7", "lcd1:SCK"] },
73 | "$gpio48": { "target": ["GPIO48", "lcd1:RST", "touch1:RST"] },
74 |
75 | "$gpio3": { "target": ["GPIO3", "touch1:INT"] },
76 | "$gpio8": { "target": ["GPIO8", "touch1:SDA"] }, // SDA
77 | "$gpio18": { "target": ["GPIO18", "touch1:SCL"] } // SCL
78 | },
79 |
80 | "displays": [
81 | {
82 | "id": "lcd1",
83 | "x": 13.137,
84 | "y": 18.973,
85 | "width": 70.275,
86 | "height": 53.254,
87 | "pixelWidth": 320,
88 | "pixelHeight": 240,
89 | "flipVertical": true,
90 | "chip": "ili9342c",
91 | "touch": {
92 | "id": "touch1",
93 | "chip": "tt21100"
94 | }
95 | }
96 | ],
97 |
98 | "leds": [
99 | {
100 | "id": "voice",
101 | "x": 66.6,
102 | "y": 90.45,
103 | "type": "0603",
104 | "color": "orange",
105 | "pins": {}
106 | }
107 | ]
108 | }
109 |
--------------------------------------------------------------------------------
/boards/esp32-s3-box/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-S3-BOX",
3 | "version": 1,
4 | "description": "AI voice-development kit, which provides a platform for developing the control of smart devices with offline and online voice assistants.",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "esp32-s3",
7 | "mcuAttrs": {
8 | "flashSize": "16",
9 | "psramSize": "8",
10 | "psramType": "octal"
11 | },
12 | "fqbn": "esp32:esp32:esp32s3box",
13 |
14 | "width": 96.54,
15 | "height": 98.79,
16 |
17 | "pins": {
18 | // left socket
19 | "G9": { "x": 13.9, "y": 92.95, "target": "GPIO9", "tooltip": "top" },
20 | "G43": { "x": 16.44, "y": 92.95, "target": "GPIO43", "tooltip": "top" },
21 | "G44": { "x": 18.98, "y": 92.95, "target": "GPIO44", "tooltip": "top" },
22 | "G14": { "x": 21.52, "y": 92.95, "target": "GPIO14", "tooltip": "top" },
23 | "GND.1": { "x": 24.06, "y": 92.95, "target": "GND", "tooltip": "top" },
24 | "3V3.1": {
25 | "x": 26.6,
26 | "y": 92.95,
27 | "target": "power(3.3)",
28 | "tooltip": "top"
29 | },
30 |
31 | "G10": { "x": 13.9, "y": 95.49, "target": "GPIO10", "tooltip": "bottom" },
32 | "G11": { "x": 16.44, "y": 95.49, "target": "GPIO11", "tooltip": "bottom" },
33 | "G13": { "x": 18.98, "y": 95.49, "target": "GPIO13", "tooltip": "bottom" },
34 | "G12": { "x": 21.52, "y": 95.49, "target": "GPIO12", "tooltip": "bottom" },
35 | "GND.2": { "x": 24.06, "y": 95.49, "target": "GND", "tooltip": "bottom" },
36 | "3V3.2": {
37 | "x": 26.6,
38 | "y": 95.49,
39 | "target": "power(3.3)",
40 | "tooltip": "bottom"
41 | },
42 |
43 | // right socket
44 | "G38": { "x": 33.95, "y": 92.95, "target": "GPIO38", "tooltip": "top" },
45 | "G39": { "x": 36.49, "y": 92.95, "target": "GPIO39", "tooltip": "top" },
46 | "G40": { "x": 39.03, "y": 92.95, "target": "GPIO40", "tooltip": "top" },
47 | "G41": { "x": 41.57, "y": 92.95, "target": "GPIO41", "tooltip": "top" },
48 | "GND.3": { "x": 44.11, "y": 92.95, "target": "GND", "tooltip": "top" },
49 | "3V3.3": {
50 | "x": 46.65,
51 | "y": 92.95,
52 | "target": "power(3.3)",
53 | "tooltip": "top"
54 | },
55 |
56 | "G42": { "x": 33.95, "y": 95.49, "target": "GPIO42", "tooltip": "bottom" },
57 | "G21": { "x": 36.49, "y": 95.49, "target": "GPIO21", "tooltip": "bottom" },
58 | "G19": { "x": 39.03, "y": 95.49, "target": "GPIO19", "tooltip": "bottom" },
59 | "G20": { "x": 41.57, "y": 95.49, "target": "GPIO20", "tooltip": "bottom" },
60 | "GND.4": { "x": 44.11, "y": 95.49, "target": "GND", "tooltip": "bottom" },
61 | "3V3.4": {
62 | "x": 46.65,
63 | "y": 95.49,
64 | "target": "power(3.3)",
65 | "tooltip": "bottom"
66 | },
67 |
68 | // internals
69 | "$gpio4": { "target": ["GPIO4", "lcd1:D/C"] },
70 | "$gpio5": { "target": ["GPIO5", "lcd1:CS"] },
71 | "$gpio6": { "target": ["GPIO6", "lcd1:MOSI"] },
72 | "$gpio7": { "target": ["GPIO7", "lcd1:SCK"] },
73 | "$gpio48": { "target": ["GPIO48", "lcd1:RST", "touch1:RST"] },
74 |
75 | "$gpio3": { "target": ["GPIO3", "touch1:INT"] },
76 | "$gpio8": { "target": ["GPIO8", "touch1:SDA"] }, // SDA
77 | "$gpio18": { "target": ["GPIO18", "touch1:SCL"] } // SCL
78 | },
79 |
80 | "displays": [
81 | {
82 | "id": "lcd1",
83 | "x": 13.137,
84 | "y": 18.973,
85 | "width": 70.275,
86 | "height": 53.254,
87 | "pixelWidth": 320,
88 | "pixelHeight": 240,
89 | "flipVertical": true,
90 | "chip": "ili9342c",
91 | "touch": {
92 | "id": "touch1",
93 | "chip": "tt21100"
94 | }
95 | }
96 | ],
97 |
98 | "leds": [
99 | {
100 | "id": "voice",
101 | "x": 66.6,
102 | "y": 90.45,
103 | "type": "0603",
104 | "color": "orange",
105 | "pins": {}
106 | }
107 | ]
108 | }
109 |
--------------------------------------------------------------------------------
/boards/esp32-s3-devkitc-1/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESP32-S3-DevKitC-1",
3 | "version": 1,
4 | "description": "An entry-level development board equipped with ESP32-S3-WROOM-1, ESP32-S3-WROOM-1U, or ESP32-S3-WROOM-2, a general-purpose Wi-Fi + Bluetooth® LE MCU module that integrates complete Wi-Fi and Bluetooth LE functions",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "esp32-s3",
7 | "fqbn": "esp32:esp32:esp32s3",
8 |
9 | "width": 25.527,
10 | "height": 70.057,
11 |
12 | "pins": {
13 | "3V3.1": { "x": 1.343, "y": 7.667, "target": "power(3.3)" },
14 | "3V3.2": { "x": 1.343, "y": 10.207, "target": "power(3.3)" },
15 | "RST": { "x": 1.343, "y":12.747, "target": "CHIP_PU" },
16 | "4": { "x": 1.343, "y":15.287 , "target": "GPIO4" },
17 | "5": { "x": 1.343, "y":17.827 , "target": "GPIO5" },
18 | "6": { "x": 1.343, "y":20.367 , "target": "GPIO6" },
19 | "7": { "x": 1.343, "y":22.907 , "target": "GPIO7" },
20 | "15": { "x": 1.343, "y":25.447 , "target": "GPIO15" },
21 | "16": { "x": 1.343, "y":27.987 , "target": "GPIO16" },
22 | "17": { "x": 1.343, "y":30.527 , "target": "GPIO17" },
23 | "18": { "x": 1.343, "y":33.067 , "target": "GPIO18" },
24 | "8": { "x": 1.343, "y":35.607 , "target": "GPIO8" },
25 | "3": { "x": 1.343, "y":38.147 , "target": "GPIO3" },
26 | "46": { "x": 1.343, "y":40.687 , "target": "GPIO46" },
27 | "9": { "x": 1.343, "y":43.227 , "target": "GPIO9" },
28 | "10": { "x": 1.343, "y":45.767 , "target": "GPIO10" },
29 | "11": { "x": 1.343, "y":48.307 , "target": "GPIO11" },
30 | "12": { "x": 1.343, "y":50.847 , "target": "GPIO12" },
31 | "13": { "x": 1.343, "y":53.387 , "target": "GPIO13" },
32 | "14": { "x": 1.343, "y":55.927 , "target": "GPIO14" },
33 | "5V": { "x": 1.343, "y":58.467 , "target": "power(5)" },
34 | "GND.1": { "x": 1.343, "y":61.007 , "target": "GND" },
35 |
36 | "GND.2": { "x": 24.19, "y": 7.667, "target": "GND" },
37 | "TX": { "x": 24.19, "y": 10.207, "target": "GPIO43" },
38 | "RX": { "x": 24.19, "y": 12.747, "target": "GPIO44" },
39 | "1": { "x": 24.19, "y": 15.287, "target": "GPIO1" },
40 | "2": { "x": 24.19, "y": 17.827, "target": "GPIO2" },
41 | "42": { "x": 24.19, "y": 20.367, "target": "GPIO42" },
42 | "41": { "x": 24.19, "y": 22.907, "target": "GPIO41" },
43 | "40": { "x": 24.19, "y": 25.447, "target": "GPIO40" },
44 | "39": { "x": 24.19, "y": 27.987, "target": "GPIO39" },
45 | "38": { "x": 24.19, "y": 30.527, "target": "GPIO38" },
46 | "37": { "x": 24.19, "y": 33.067, "target": "GPIO37" },
47 | "36": { "x": 24.19, "y": 35.607, "target": "GPIO36" },
48 | "35": { "x": 24.19, "y": 38.147, "target": "GPIO35" },
49 | "0": { "x": 24.19, "y": 40.687, "target": "GPIO0" },
50 | "45": { "x": 24.19, "y": 43.227, "target": "GPIO45" },
51 | "48": { "x": 24.19, "y": 45.767, "target": "GPIO48" },
52 | "47": { "x": 24.19, "y": 48.307, "target": "GPIO47" },
53 | "21": { "x": 24.19, "y": 50.847, "target": "GPIO21" },
54 | "20": { "x": 24.19, "y": 53.387, "target": "GPIO20" },
55 | "19": { "x": 24.19, "y": 55.927, "target": "GPIO19" },
56 | "GND.3": { "x": 24.19, "y": 58.467, "target": "GND" },
57 | "GND.4": { "x": 24.19, "y": 61.007, "target": "GND" }
58 | },
59 |
60 | "leds": [
61 | {
62 | "id": "power",
63 | "x": 19.135,
64 | "y": 34.282,
65 | "type": "0603",
66 | "color": "red",
67 | "pins": {
68 | "A": "3V3",
69 | "C": "GND.1"
70 | }
71 | },
72 | {
73 | "id": "rgb1",
74 | "x": 7.45,
75 | "y": 40.108,
76 | "type": "ws2812",
77 | "pins": {
78 | "DI": "38"
79 | }
80 | }
81 | ]
82 | }
83 |
--------------------------------------------------------------------------------
/boards/franzininho-wifi/board.json:
--------------------------------------------------------------------------------
1 | {
2 | /* The name of the board */
3 | "name": "Franzininho WiFi",
4 |
5 | /* Board version. Increment it whenever you make changes. */
6 | "version": 1,
7 |
8 | /* One-liner description of the board, it's capabilities, etc. */
9 | "description": "Development board to evaluate ESP32-S2 Modules",
10 |
11 | /* The name of the person who created this file */
12 | "author": "Anderson Costa",
13 |
14 | /* Microcontroller name. Valid values: atmega328p, atmega2560, attiny85, rp2040, esp32 */
15 | "mcu": "esp32-s2",
16 |
17 | /* Fully Qualified Board Name (FQBN) for the Arduino CLI */
18 | "fqbn": "esp32:esp32:franzininho_wifi_esp32s2",
19 |
20 | /* Width of the board graphics, in mm. Must match the width defined in board.svg */
21 | "width": 64.2,
22 |
23 | /* Height of the board graphics, in mm. Must match the height defined in board.svg */
24 | "height": 25.3,
25 |
26 | "environments": {
27 | "circuitpython": {
28 | "firmware": "https://wokwi.github.io/firmware-assets/circuitpython/adafruit-circuitpython-franzininho_wifi_wroom-en_US-$VERSION.bin",
29 | "defaultVersion": "7.2.0"
30 | }
31 | },
32 |
33 | /* The pins available on the board.
34 | "x"/"y" positions are in mm, and are relative to the top-left corner of the board.
35 | "target" is either:
36 | - an MCU pin name
37 | - "GND" for ground
38 | - "power(n)" for power supply pins, where n is the voltage. e.g. "power(3.3)"
39 | */
40 | "pins": {
41 | "0" : { "x": 56.25, "y": 1.22, "target": "GPIO0" },
42 | "1" : { "x": 53.85, "y": 1.22, "target": "GPIO1" },
43 | "2" : { "x": 51.45, "y": 1.22, "target": "GPIO2" },
44 | "3" : { "x": 49.05, "y": 1.22, "target": "GPIO3" },
45 | "4" : { "x": 46.64, "y": 1.22, "target": "GPIO4" },
46 | "5" : { "x": 44.12, "y": 1.22, "target": "GPIO5" },
47 | "6" : { "x": 41.60, "y": 1.22, "target": "GPIO6" },
48 | "7" : { "x": 39.20, "y": 1.22, "target": "GPIO7" },
49 | "10": { "x": 36.50, "y": 1.22, "target": "GPIO10" },
50 | "11": { "x": 34.25, "y": 1.22, "target": "GPIO11" },
51 | "12": { "x": 31.75, "y": 1.22, "target": "GPIO12" },
52 | "13": { "x": 29.15, "y": 1.22, "target": "GPIO13" },
53 | "14": { "x": 26.65, "y": 1.22, "target": "GPIO14" },
54 | "15": { "x": 24.15, "y": 1.22, "target": "GPIO15" },
55 | "16": { "x": 21.65, "y": 1.22, "target": "GPIO16" },
56 | "17": { "x": 19.25, "y": 1.22, "target": "GPIO17" },
57 | "8": { "x": 16.85, "y": 1.22, "target": "GPIO8" },
58 | "9": { "x": 14.35, "y": 1.22, "target": "GPIO9" },
59 | "3V3.1": { "x": 11.80, "y": 1.22, "target": "power(3.3)" },
60 | "GND.1": { "x": 9.35, "y": 1.22, "target": "GND" },
61 | "3V3.2": { "x": 11.80, "y": 6.25, "target": "power(3.3)" },
62 | "GND.7": { "x": 9.35, "y": 6.25, "target": "GND" },
63 | "SDA": { "x": 16.85, "y": 6.25, "target": "GPIO8" },
64 | "SCL": { "x": 14.35, "y": 6.25, "target": "GPIO9" },
65 | "46": { "x": 56.25, "y": 23.55, "target": "GPIO46" },
66 | "45": { "x": 53.85, "y": 23.55, "target": "GPIO45" },
67 | "44": { "x": 51.45, "y": 23.55, "target": "GPIO44" },
68 | "43": { "x": 49.05, "y": 23.55, "target": "GPIO43" },
69 | "42": { "x": 46.64, "y": 23.55, "target": "GPIO42" },
70 | "41": { "x": 44.12, "y": 23.55, "target": "GPIO41" },
71 | "40": { "x": 41.60, "y": 23.55, "target": "GPIO40" },
72 | "39": { "x": 39.20, "y": 23.55, "target": "GPIO39" },
73 | "38": { "x": 36.50, "y": 23.55, "target": "GPIO38" },
74 | "37": { "x": 34.25, "y": 23.55, "target": "GPIO37" },
75 | "36": { "x": 31.75, "y": 23.55, "target": "GPIO36" },
76 | "35": { "x": 29.15, "y": 23.55, "target": "GPIO35" },
77 | "34": { "x": 26.65, "y": 23.55, "target": "GPIO34" },
78 | "33": { "x": 24.15, "y": 23.55, "target": "GPIO33" },
79 | "26": { "x": 21.65, "y": 23.55, "target": "GPIO26" },
80 | "21": { "x": 19.25, "y": 23.55, "target": "GPIO21" },
81 | "18": { "x": 16.85, "y": 23.55, "target": "GPIO18" },
82 | "5V.1": { "x": 14.35, "y": 23.55, "target": "power(5)" },
83 | "GND.3": { "x": 11.80, "y": 23.55, "target": "GND" },
84 | "GND.2": { "x": 9.35, "y": 23.55, "target": "GND" },
85 | "5V.2": { "x": 14.35, "y": 19.25, "target": "power(5)" },
86 | "GND.4": { "x": 9.35, "y": 19.25, "target": "GND" },
87 | "GND.5": { "x": 11.80, "y": 19.25, "target": "GND" },
88 | "GND.6": { "x": 17.95, "y": 19.25, "target": "GND" },
89 | "5V.3": { "x": 20.45, "y": 19.25, "target": "power(5)" },
90 | "21.2": { "x": 23.10, "y": 19.25, "target": "GPIO21" },
91 | },
92 | /* On-board LED definitions. These only draw the light of the LED when it's on.
93 | You should draw the body of the LED in your .svg file. */
94 | "leds": [
95 | {
96 | "id": "power",
97 | "x": 23.25,
98 | "y": 12.60,
99 | "type": "0603",
100 | "color": "#16ed48",
101 | "pins": {
102 | "A": "5V.1", // This is a power LED, so it's always on
103 | "C": "GND.1"
104 | }
105 | },
106 | {
107 | "id": "led33",
108 | "x": 23.50,
109 | "y": 14.85,
110 | "type": "0603",
111 | "color": "#ffc100",
112 | "pins": {
113 | "A": "33", // This is LED 33
114 | "C": "GND.1"
115 | }
116 | },
117 | {
118 | "id": "led21",
119 | "x": 26.48,
120 | "y": 19.15,
121 | "type": "0603",
122 | "color": "#70baff",
123 | "pins": {
124 | "A": "21", // This is LED 21
125 | "C": "GND.1"
126 | }
127 | }
128 | ]
129 | }
130 |
--------------------------------------------------------------------------------
/boards/grove-oled-sh1107/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Grove - OLED Display 1.12 (SH1107)",
3 | "version": 1,
4 | "description": "A monochrome display with 128*128 resolution. Compared with LCDs, there are many advantages on OLED(Organic Light Emitting Diode) like self-emission, high contrast ratio, slim/thin outline, wide viewing angle and low power consumption.",
5 | "author": "Ariella Eliassaf",
6 |
7 | "width": 44.94,
8 | "height": 44.31,
9 |
10 | "chips": [{ "id": "chip", "type": "github:wokwi/chip-sh1107@0.1.0" }],
11 |
12 | "pins": {
13 | // "GND.2": { "x": 15.1, "y": 5.23, "target": "chip:GND" },
14 | // "5V": { "x": 17.64, "y": 5.23, "target": "chip:VCC" },
15 | // "SCL.2": { "x": 20.18, "y": 5.23, "target": "chip:SCL" },
16 | // "SI": { "x": 22.72, "y": 5.23, "target": "chip:SDA" },
17 | // "RES": { "x": 25.26, "y": 5.23, "target": "NRST" },
18 | // "D/C": { "x": 27.8, "y": 5.23, "target": "A0" },
19 | // "CS": { "x": 30.34, "y": 5.23, "target": "CS" },
20 |
21 | /* I2C */
22 | "GND.1": { "x": 44.9, "y": 20.38, "target": "chip:GND" },
23 | "VCC": { "x": 44.9, "y": 22.92, "target": "chip:VCC" },
24 | "SDA": { "x": 44.9, "y":25.46, "target": "chip:SDA" },
25 | "SCL.1": { "x": 44.9, "y": 28, "target": "chip:SCL" }
26 | },
27 |
28 | "displays": [
29 | {
30 | "id": "chip",
31 | "x": 9.244,
32 | "y": 7.403,
33 | "width": 26.06,
34 | "height": 25.981,
35 | "pixelWidth": 128,
36 | "pixelHeight": 128,
37 | "chip": "sh1107"
38 | }
39 | ]
40 | }
41 |
--------------------------------------------------------------------------------
/boards/ili9341-cap-touch/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ILI9341 LCD with Capacitive Touch",
3 | "version": 1,
4 | "description": "Color LCD with FT6206 Capacitive Touch Input",
5 | "author": "Uri Shaked",
6 | "width": 46.5,
7 | "height": 77.6,
8 |
9 | "pins": {
10 | /* Power pins */
11 | "VCC": { "x": 10.26, "y": 76, "target": ["lcd1:VCC", "touch1:VCC"] },
12 | "GND": { "x": 12.8, "y": 76, "target": ["lcd1:GND", "touch1:GND"] },
13 |
14 | /* Display pins */
15 | "CS": { "x": 15.34, "y": 76, "target": "lcd1:CS" },
16 | "RST": { "x": 17.88, "y": 76, "target": "lcd1:RST" },
17 | "D/C": { "x": 20.42, "y": 76, "target": "lcd1:D/C" },
18 | "MOSI": { "x": 22.96, "y": 76, "target": "lcd1:MOSI" },
19 | "SCK": { "x": 25.5, "y": 76, "target": "lcd1:SCK" },
20 | "LED": { "x": 28.04, "y": 76, "target": "lcd1:LED" },
21 | "MISO": { "x": 30.58, "y": 76, "target": "lcd1:MISO" },
22 |
23 | /* Touch pins */
24 | "SCL": { "x": 33.12, "y": 76, "target": "touch1:SCL" },
25 | "SDA": { "x": 35.66, "y": 76, "target": "touch1:SDA" }
26 | },
27 |
28 | "displays": [
29 | {
30 | "id": "lcd1",
31 | "x": 2,
32 | "y": 7,
33 | "width": 42.5,
34 | "height": 56,
35 | "pixelWidth": 240,
36 | "pixelHeight": 320,
37 | "chip": "ili9341",
38 | "touch": {
39 | "id": "touch1",
40 | "chip": "ft6206"
41 | }
42 | }
43 | ]
44 | }
45 |
--------------------------------------------------------------------------------
/boards/ili9341-cap-touch/board.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/boards/ili9881c-8in/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ILI9981C 8 inch MIPI DSI2 800x1280 display",
3 | "version": 1,
4 | "description": "Experimental MIPI DSI2 display panel with ILI9881C driver chip.",
5 | "author": "Uri Shaked",
6 | "width": 133.586,
7 | "height": 194.078,
8 |
9 | "pins": {
10 | /* No pins - the DSI interface is handled internally by the display chip */
11 | },
12 |
13 | "displays": [
14 | {
15 | "id": "lcd1",
16 | "x": 11.657,
17 | "y": 11.972,
18 | "width": 110.271,
19 | "height": 171.078,
20 | "pixelWidth": 800,
21 | "pixelHeight": 1280,
22 | "chip": "ili9881c"
23 | }
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/boards/ili9881c-8in/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
29 |
--------------------------------------------------------------------------------
/boards/lm35/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LM35",
3 | "version": 1,
4 | "description": "LM35 Analog Temperature Sensor",
5 | "author": "Maverick",
6 | "width": 8.56400,
7 | "height": 13.38800,
8 |
9 | "chips": [{ "id": "chip", "type": "github:Droog71/LM35@0.0.2" }],
10 |
11 | "pins": {
12 | "VCC": { "x": 1.46, "y": 13, "target": "chip:VCC" },
13 | "OUT": { "x": 4, "y": 13, "target": "chip:OUT" },
14 | "GND": { "x": 6.54, "y": 13, "target": "chip:GND" }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/boards/lm35/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
109 |
--------------------------------------------------------------------------------
/boards/m5stack-core-s3/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "M5Stack CoreS3",
3 | "version": 1,
4 | "description": "CoreS3 is the third generation of the M5Stack Core series. Powered by the ESP32-S3 solution, this kit features a dual-core Xtensa LX7 processor running at 240MHz",
5 | "author": "Ariella Eliassaf",
6 | "width": 100.207,
7 | "height": 106.458,
8 | "mcu": "esp32-s3",
9 | "fqbn": "esp32:esp32:m5stack_cores3",
10 |
11 | "pins": {
12 | /*left side*/
13 | "GND.1": { "x": 95.3, "y": 27.1, "target": "GND", "tooltip": "left" },
14 | "GND.2": { "x": 95.3, "y": 29.64, "target": "GND", "tooltip": "left" },
15 | "GND.3": { "x": 95.3, "y": 32.18, "target": "GND", "tooltip": "left" },
16 | "G37": { "x": 95.3, "y": 34.72, "target": "GPIO37", "tooltip": "left" },
17 | "G35": { "x": 95.3, "y": 37.26, "target": "GPIO35", "tooltip": "left" },
18 | "G36": { "x": 95.3, "y": 39.8, "target": "GPIO36", "tooltip": "left" },
19 | "G44": { "x": 95.3, "y": 42.34, "target": "GPIO44", "tooltip": "left" },
20 | "G18": { "x": 95.3, "y": 44.88, "target": "GPIO18", "tooltip": "left" },
21 | "G12": { "x": 95.3, "y": 47.42, "target": "GPIO12", "tooltip": "left" },
22 | "G2": { "x": 95.3, "y": 49.96, "target": "GPIO2", "tooltip": "left" },
23 | "G6": { "x": 95.3, "y": 52.5, "target": "GPIO36", "tooltip": "left" },
24 | "G13": { "x": 95.3, "y": 55.04, "target": "GPIO13", "tooltip": "left" },
25 |
26 | /*right side*/
27 | "G10": { "x": 97.84, "y": 27.1, "target": "GPIO10" },
28 | "G8": { "x": 97.84, "y": 29.64, "target": "GPIO8" },
29 | "RST.1": { "x": 97.84, "y": 32.18, "target": "NRST" },
30 | "G5": { "x": 97.84, "y": 34.72, "target": "GPIO5" },
31 | "G9": { "x": 97.84, "y": 37.26, "target": "GPIO9" },
32 | "3V3.1": { "x": 97.84, "y": 39.8, "target": "power(3.3)" },
33 | "G43": { "x": 97.84, "y": 42.34, "target": "GPIO43" },
34 | "G17": { "x": 97.84, "y": 44.88, "target": "GPIO17" },
35 | "G11": { "x": 97.84, "y": 47.42, "target": "GPIO11" },
36 | "G1": { "x": 97.84, "y": 49.96, "target": "GPIO1" },
37 | "G7": { "x": 97.84, "y": 52.5, "target": "GPIO7" },
38 | "G0": { "x": 97.84, "y": 55.04, "target": "GPIO0" },
39 | "G14": { "x": 97.84, "y": 57.58, "target": "GPIO14" },
40 | "5V.1": { "x": 97.84, "y": 60.12, "target": "power(5)" },
41 | "BAT": { "x": 97.84, "y": 62.66, "target": "" },
42 |
43 | /*port A PERFECT*/
44 | "GND.4": { "x": 97.84, "y": 80.04, "target": "GND" },
45 | "VCC.1": { "x": 97.84, "y": 82.58, "target": "power(5)" },
46 | "SDA": { "x": 97.84, "y": 85.12, "target": "GPIO1" },
47 | "SCL": { "x": 97.84, "y": 87.66, "target": "GPIO2" },
48 |
49 | /*port B*/
50 | "G9.2": { "x": 50.84, "y": 101.2, "target": "GPIO9" },
51 | "G8.2": { "x": 53.38, "y": 101.2, "target": "GPIO8" },
52 | "VCC.2": { "x": 55.92, "y": 101.2, "target": "power(3.3)" },
53 | "GND.5": { "x": 58.46, "y": 101.2, "target": "GND" },
54 |
55 | /*port C*/
56 | "RX": { "x": 34.3, "y": 101.2, "target": "GPIO18" },
57 | "TX": { "x": 36.84, "y": 101.2, "target": "GPIO17" },
58 | "VCC.3": { "x": 39.38, "y": 101.2, "target": "power(3.3)" },
59 | "GND.6": { "x": 41.92, "y": 101.2, "target": "GND" },
60 |
61 | // internals
62 | "$gpio37": { "target": ["GPIO37", "lcd1:MOSI"] },
63 | "$gpio36": { "target": ["GPIO36", "lcd1:SCK"] },
64 | "$gpio3": { "target": ["GPIO3", "lcd1:CS"] },
65 | "$gpio35": { "target": ["GPIO35", "lcd1:D/C"] }
66 | },
67 |
68 | "displays": [
69 | {
70 | "id": "lcd1",
71 | "x": 11.2,
72 | "y": 27.5,
73 | "width": 70.3,
74 | "height": 53.3,
75 | "pixelWidth": 320,
76 | "pixelHeight": 240,
77 | "flipVertical": true,
78 | "chip": "ili9342c",
79 | "touch": {
80 | "id": "touch1",
81 | "chip": "ft6336"
82 | }
83 | }
84 | ]
85 | }
86 |
--------------------------------------------------------------------------------
/boards/mch2022-badge/board.json:
--------------------------------------------------------------------------------
1 | {
2 | /* The name of the board */
3 | "name": "MCH2022 Badge",
4 |
5 | /* Board version. Increment it whenever you make changes. */
6 | "version": 1,
7 |
8 | /* One-liner description of the board, it's capabilities, etc. */
9 | "description": "A very capable badge by Badge.team",
10 |
11 | /* The name of the person who created this file */
12 | "author": "Uri Shaked",
13 |
14 | /* Microcontroller name. Valid values: atmega328p, atmega2560, attiny85, rp2040, esp32 */
15 | "mcu": "esp32",
16 |
17 | /* Fully Qualified Board Name (FQBN) for the Arduino CLI */
18 | "fqbn": "esp32:esp32:esp32doit-devkit-v1",
19 |
20 | /* Width of the board graphics, in mm. Must match the width defined in board.svg */
21 | "width": 150,
22 |
23 | /* Height of the board graphics, in mm. Must match the height defined in board.svg */
24 | "height": 98.2,
25 |
26 | "environments": {
27 | "badgepython": {
28 | "firmware": "https://wokwi.github.io/mch2022-firmware-bin/badgePython/badgePython-$VERSION.bin",
29 | "defaultVersion": "9f089be-nosdcard",
30 | "fs": {
31 | "type": "fat",
32 | "flashOffset": 5312512,
33 | "blockSize": 4096,
34 | "numBlocks": 2557,
35 | "mkdirs": ["/lib", "/apps", "/apps/python", "/cache", "/config"]
36 | }
37 | }
38 | },
39 |
40 | /* The pins available on the board.
41 | "x"/"y" positions are in mm, and are relative to the top-left corner of the board.
42 | "target" is either:
43 | - an MCU pin name
44 | - "GND" for ground
45 | - "power(n)" for power supply pins, where n is the voltage. e.g. "power(3.3)"
46 | */
47 | "pins": {
48 | "EN": { "target": "CHIP_PU" },
49 | "VN": { "target": "GPIO39" },
50 | "VP": { "target": "GPIO36" },
51 | "D34": { "target": "GPIO34" },
52 | "D35": { "target": "GPIO35" },
53 | "D32": { "target": ["GPIO32", "lcd1:CS"] },
54 | "D33": { "target": ["GPIO33", "lcd1:D/C"] },
55 | "D25": { "target": "GPIO25" },
56 | "D26": { "target": "GPIO26" },
57 | "D27": { "target": "GPIO27" },
58 | "D14": { "target": "GPIO14" },
59 | "D12": { "target": "GPIO12" },
60 | "D13": { "target": "GPIO13" },
61 | "GND": { "target": ["GND", "lcd1:GND"] },
62 | "VIN": { "target": "power(5)" },
63 | "3V3": { "target": ["power(3.3)", "lcd1:VCC"] },
64 | "D15": { "target": "15" },
65 | "D2": { "target": "GPIO2" },
66 | "D4": { "target": "GPIO4" },
67 | "RX2": { "target": "GPIO16" },
68 | "TX2": { "target": "GPIO17" },
69 | "D5": { "target": "GPIO5" },
70 | "D18": { "target": ["GPIO18", "lcd1:SCK"] },
71 | "D19": { "x": 26.8, "y": 18.5, "target": "GPIO19" },
72 | "D21": { "x": 26.8, "y": 15.96, "target": "GPIO21" },
73 | "RX0": { "x": 26.8, "y": 13.42, "target": "GPIO3" },
74 | "TX0": { "x": 26.8, "y": 10.88, "target": "GPIO1" },
75 | "D22": { "x": 26.8, "y": 8.34, "target": "GPIO22" },
76 | "D23": { "target": ["GPIO23", "lcd1:MOSI"] },
77 | "$kite1": { "target": "$dummy1" },
78 | "$kite2": { "target": "$dummy2" },
79 | "$kite3": { "target": "$dummy3" },
80 | "$kite4": { "target": "$dummy4" }
81 | },
82 |
83 | "leds": [
84 | {
85 | "id": "power",
86 | "x": 108.7,
87 | "y": 38,
88 | "type": "0603",
89 | "color": "red",
90 | "pins": {
91 | "A": "3V3", // This is a power LED, so it's always on
92 | "C": "GND.1"
93 | }
94 | },
95 | {
96 | "id": "kite1",
97 | "x": 32.95,
98 | "y": 22.83,
99 | "type": "ws2812",
100 | "pins": {
101 | "DI": "D5",
102 | "DO": "$kite1"
103 | }
104 | },
105 | {
106 | "id": "kite2",
107 | "x": 36.6,
108 | "y": 14.55,
109 | "type": "ws2812",
110 | "pins": {
111 | "DI": "$kite1",
112 | "DO": "$kite2"
113 | }
114 | },
115 | {
116 | "id": "kite3",
117 | "x": 23.61,
118 | "y": 8.75,
119 | "type": "ws2812",
120 | "pins": {
121 | "DI": "$kite2",
122 | "DO": "$kite3"
123 | }
124 | },
125 | {
126 | "id": "kite4",
127 | "x": 40.52,
128 | "y": 6.7,
129 | "type": "ws2812",
130 | "pins": {
131 | "DI": "$kite3",
132 | "DO": "$kite4"
133 | }
134 | },
135 | {
136 | "id": "kite5",
137 | "x": 57.2,
138 | "y": 23,
139 | "type": "ws2812",
140 | "pins": {
141 | "DI": "$kite4"
142 | }
143 | }
144 | ],
145 |
146 | "displays": [
147 | {
148 | "id": "lcd1",
149 | "x": 53.348,
150 | "y": 22.456,
151 | "width": 42.92,
152 | "height": 60.39,
153 | "pixelWidth": 240,
154 | "pixelHeight": 320,
155 | "rotate": 90,
156 | "chip": "ili9341"
157 | }
158 | ]
159 | }
160 |
--------------------------------------------------------------------------------
/boards/nokia-5110/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Nokia 5110 Screen PCD8544",
3 | "version": 1,
4 | "description": "A low power CMOS LCD controller/driver, designed to drive a graphic display of 48 rows and 84 columns.",
5 | "author": "Ariella Eliassaf",
6 | "width": 45.192,
7 | "height": 45.101,
8 |
9 |
10 | "pins": {
11 | "RST.2 ": { "x": 13.7, "y": 3, "target": "display:RST" },
12 | "CE.2": { "x": 16.24, "y": 3, "target": "display:CE" },
13 | "DC.2": { "x": 18.78, "y": 3, "target": "display:DC" },
14 | "DIN.2 ": { "x": 21.32, "y": 3, "target": "display:DIN" },
15 | "CLK.2 ": { "x": 23.86, "y": 3, "target": "display:CLK" },
16 | "VCC.2 ": { "x": 26.4, "y": 3, "target": "display:VCC" },
17 | "BL.2": { "x": 28.94, "y": 3, "target": "display:BL" },
18 | "GND.2 ": { "x": 31.48, "y": 3, "target": "display:GND" },
19 |
20 |
21 | "RST": { "x": 13.7, "y": 42.15, "target": "display:RST" },
22 | "CE": { "x": 16.24, "y": 42.15, "target": "display:CE" },
23 | "DC": { "x": 18.78, "y": 42.15, "target": "display:DC" },
24 | "DIN": { "x": 21.32, "y": 42.15, "target": "display:DIN" },
25 | "CLK": { "x": 23.86, "y": 42.15, "target": "display:CLK" },
26 | "VCC": { "x": 26.4, "y": 42.15, "target": "display:VCC" },
27 | "BL": { "x": 28.94, "y": 42.15, "target": "display:BL" },
28 | "GND": { "x": 31.48, "y": 42.15, "target": "display:GND" }
29 |
30 |
31 | },
32 |
33 | "displays": [
34 | {
35 | "id": "display",
36 | "x": 3.655,
37 | "y": 11.362,
38 | "width": 37.882,
39 | "height": 26.804,
40 | "pixelWidth": 84,
41 | "pixelHeight": 48,
42 | "chip": "pcd8544"
43 | }
44 | ]
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/boards/notecarrier-a/board.json:
--------------------------------------------------------------------------------
1 | {
2 | /* The name of the board */
3 | "name": "Notecarrier A",
4 |
5 | /* Board version. Increment it whenever you make changes. */
6 | "version": 1,
7 |
8 | /* One-liner description of the board, it's capabilities, etc. */
9 | "description": "Blues.io Cellular IoT development kit",
10 |
11 | /* The name of the person who created this file */
12 | "author": "Uri Shaked",
13 |
14 | /* Width of the board graphics, in mm. Must match the width defined in board.svg */
15 | "width": 66.75,
16 |
17 | /* Height of the board graphics, in mm. Must match the height defined in board.svg */
18 | "height": 58.73,
19 |
20 | "chips": [{ "id": "notecard1", "type": "blues-notecard" }],
21 |
22 | "pins": {
23 | "VUSB": { "x": 7.23, "y": 57.56, "target": "power(5)" },
24 | "BAT": { "x": 9.77, "y": 57.56, "target": "" },
25 | "MAIN": { "x": 12.31, "y": 57.56, "target": "" },
26 | "VIO": { "x": 14.85, "y": 57.56, "target": "" },
27 | "NC1": { "x": 17.39, "y": 57.56, "target": "" },
28 | "V+": { "x": 19.93, "y": 57.56, "target": "" },
29 | "GND": { "x": 22.47, "y": 57.56, "target": "GND" },
30 | "EN": { "x": 25.01, "y": 57.56, "target": "" },
31 | "RST": { "x": 27.55, "y": 57.56, "target": "" },
32 | "NC2": { "x": 30.09, "y": 57.56, "target": "" },
33 | "SCL": { "x": 32.63, "y": 57.56, "target": "notecard1:SCL_P" },
34 | "SDA": { "x": 35.17, "y": 57.56, "target": "notecard1:SDA_P" },
35 | "ATTN": { "x": 37.71, "y": 57.56, "target": "notecard1:ATTN_P" },
36 | "AUXEN": { "x": 40.25, "y": 57.56, "target": "notecard1:AUX_EN_P" },
37 | "AUXRX": { "x": 42.79, "y": 57.56, "target": "notecard1:AUX_RX_P" },
38 | "AUXTX": { "x": 45.33, "y": 57.56, "target": "notecard1:AUX_TX_P" },
39 | "AUX1": { "x": 47.87, "y": 57.56, "target": "notecard1:AUX1" },
40 | "AUX2": { "x": 50.41, "y": 57.56, "target": "notecard1:AUX2" },
41 | "AUX3": { "x": 52.95, "y": 57.56, "target": "notecard1:AUX3" },
42 | "AUX4": { "x": 55.49, "y": 57.56, "target": "notecard1:AUX4" },
43 | "RX": { "x": 58.03, "y": 57.56, "target": "notecard1:RX_P" },
44 | "TX": { "x": 60.57, "y": 57.56, "target": "notecard1:TX_P" }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/boards/pi-pico-w/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Raspberry Pi Pico W",
3 | "version": 1,
4 | "description": "An RP2040 microcontroller board with CYW43439 WiFi+Bluetooth chip",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "rp2040",
7 | "mcuAttrs": {
8 | "cyw43": "1"
9 | },
10 | "fqbn": "rp2040:rp2040:rpipicow",
11 | "width": 20.9,
12 | "height": 52.75,
13 | "environments": {
14 | "micropython": {
15 | "firmware": "https://wokwi.github.io/firmware-assets/micropython/rp2-pico-w-$VERSION.uf2",
16 | "defaultVersion": "20241129-v1.24.1",
17 | "fs": {
18 | "type": "lfs",
19 | "flashOffset": 1228800,
20 | "blockSize": 4096,
21 | "numBlocks": 212
22 | }
23 | }
24 | },
25 | "pins": {
26 | /* Physical pins */
27 | "GP0": { "y": 3.4, "x": 1.6, "target": "GPIO0" },
28 | "GP1": { "y": 5.94, "x": 1.6, "target": "GPIO1" },
29 | "GND.1": { "y": 8.48, "x": 1.6, "target": "GND" },
30 | "GP2": { "y": 11.02, "x": 1.6, "target": "GPIO2" },
31 | "GP3": { "y": 13.56, "x": 1.6, "target": "GPIO3" },
32 | "GP4": { "y": 16.1, "x": 1.6, "target": "GPIO4" },
33 | "GP5": { "y": 18.64, "x": 1.6, "target": "GPIO5" },
34 | "GND.2": { "y": 21.18, "x": 1.6, "target": "GND" },
35 | "GP6": { "y": 23.72, "x": 1.6, "target": "GPIO6" },
36 | "GP7": { "y": 26.26, "x": 1.6, "target": "GPIO7" },
37 | "GP8": { "y": 28.8, "x": 1.6, "target": "GPIO8" },
38 | "GP9": { "y": 31.34, "x": 1.6, "target": "GPIO9" },
39 | "GND.3": { "y": 33.88, "x": 1.6, "target": "GND" },
40 | "GP10": { "y": 36.42, "x": 1.6, "target": "GPIO10" },
41 | "GP11": { "y": 38.96, "x": 1.6, "target": "GPIO11" },
42 | "GP12": { "y": 41.49, "x": 1.6, "target": "GPIO12" },
43 | "GP13": { "y": 44.03, "x": 1.6, "target": "GPIO13" },
44 | "GND.4": { "y": 46.57, "x": 1.6, "target": "GND" },
45 | "GP14": { "y": 49.11, "x": 1.6, "target": "GPIO14" },
46 | "GP15": { "y": 51.65, "x": 1.6, "target": "GPIO15" },
47 | "GP16": { "y": 51.65, "x": 19.3, "target": "GPIO16" },
48 | "GP17": { "y": 49.11, "x": 19.3, "target": "GPIO17" },
49 | "GND.5": { "y": 46.57, "x": 19.3, "target": "GND" },
50 | "GP18": { "y": 44.03, "x": 19.3, "target": "GPIO18" },
51 | "GP19": { "y": 41.49, "x": 19.3, "target": "GPIO19" },
52 | "GP20": { "y": 38.96, "x": 19.3, "target": "GPIO20" },
53 | "GP21": { "y": 36.42, "x": 19.3, "target": "GPIO21" },
54 | "GND.6": { "y": 33.88, "x": 19.3, "target": "GND" },
55 | "GP22": { "y": 31.34, "x": 19.3, "target": "GPIO22" },
56 | "RUN": { "y": 28.8, "x": 19.3 },
57 | "GP26": { "y": 26.26, "x": 19.3, "target": "GPIO26" },
58 | "GP27": { "y": 23.72, "x": 19.3, "target": "GPIO27" },
59 | "GND.7": { "y": 21.18, "x": 19.3, "target": "GND" },
60 | "GP28": { "y": 18.64, "x": 19.3, "target": "GPIO28" },
61 | "ADC_VREF": { "y": 16.1, "x": 19.3 },
62 | "3V3": { "y": 13.56, "x": 19.3, "target": "power(3.3)" },
63 | "3V3_EN": { "y": 11.02, "x": 19.3 },
64 | "GND.8": { "y": 8.48, "x": 19.3, "target": "GND" },
65 | "VSYS": { "y": 5.94, "x": 19.3, "target": "power(3.3)" },
66 | "VBUS": { "y": 3.4, "x": 19.3, "target": "power(5)" },
67 |
68 | /* Virtual pins */
69 | "$gpio24": { "target": "GPIO24" },
70 | "$gpio29": { "target": "GPIO29" },
71 | "TP4": { "target": "WL_GPIO1" },
72 | "TP5": { "target": "WL_GPIO0" }
73 | },
74 | "leds": [
75 | {
76 | "id": "led1",
77 | "x": 4.7,
78 | "y": 6.65,
79 | "type": "0603",
80 | "color": "#90ff00",
81 | "pins": {
82 | "A": "TP5",
83 | "C": "GND.1"
84 | }
85 | }
86 | ]
87 | }
88 |
--------------------------------------------------------------------------------
/boards/pi-pico/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Raspberry Pi Pico",
3 | "version": 1,
4 | "description": "an RP2040 microcontroller board with dual-core ARM Cortex-M0+ processor, 264k of internal RAM, and flexible Programmable I/O (PIO) feature",
5 | "author": "Uri Shaked",
6 | "mcu": "rp2040",
7 | "fqbn": "arduino:mbed_rp2040:pico",
8 | "width": 20.9,
9 | "height": 52.75,
10 | "environments": {
11 | "arduino-community": {
12 | "fqbn": "rp2040:rp2040:rpipico"
13 | },
14 | "micropython": {
15 | "firmware": "https://wokwi.github.io/firmware-assets/rp2-pico-$VERSION.uf2"
16 | },
17 | "circuitpython": {
18 | "firmware": "https://wokwi.github.io/firmware-assets/adafruit-circuitpython-raspberry_pi_pico-en_US-$VERSION.uf2"
19 | }
20 | },
21 | "pins": {
22 | /* Physical pins */
23 | "GP0": { "y": 3.4, "x": 1.6, "target": "GPIO0" },
24 | "GP1": { "y": 5.94, "x": 1.6, "target": "GPIO1" },
25 | "GND.1": { "y": 8.48, "x": 1.6, "target": "GND" },
26 | "GP2": { "y": 11.02, "x": 1.6, "target": "GPIO2" },
27 | "GP3": { "y": 13.56, "x": 1.6, "target": "GPIO3" },
28 | "GP4": { "y": 16.1, "x": 1.6, "target": "GPIO4" },
29 | "GP5": { "y": 18.64, "x": 1.6, "target": "GPIO5" },
30 | "GND.2": { "y": 21.18, "x": 1.6, "target": "GND" },
31 | "GP6": { "y": 23.72, "x": 1.6, "target": "GPIO6" },
32 | "GP7": { "y": 26.26, "x": 1.6, "target": "GPIO7" },
33 | "GP8": { "y": 28.8, "x": 1.6, "target": "GPIO8" },
34 | "GP9": { "y": 31.34, "x": 1.6, "target": "GPIO9" },
35 | "GND.3": { "y": 33.88, "x": 1.6, "target": "GND" },
36 | "GP10": { "y": 36.42, "x": 1.6, "target": "GPIO10" },
37 | "GP11": { "y": 38.96, "x": 1.6, "target": "GPIO11" },
38 | "GP12": { "y": 41.49, "x": 1.6, "target": "GPIO12" },
39 | "GP13": { "y": 44.03, "x": 1.6, "target": "GPIO13" },
40 | "GND.4": { "y": 46.57, "x": 1.6, "target": "GND" },
41 | "GP14": { "y": 49.11, "x": 1.6, "target": "GPIO14" },
42 | "GP15": { "y": 51.65, "x": 1.6, "target": "GPIO15" },
43 | "GP16": { "y": 51.65, "x": 19.3, "target": "GPIO16" },
44 | "GP17": { "y": 49.11, "x": 19.3, "target": "GPIO17" },
45 | "GND.5": { "y": 46.57, "x": 19.3, "target": "GND" },
46 | "GP18": { "y": 44.03, "x": 19.3, "target": "GPIO18" },
47 | "GP19": { "y": 41.49, "x": 19.3, "target": "GPIO19" },
48 | "GP20": { "y": 38.96, "x": 19.3, "target": "GPIO20" },
49 | "GP21": { "y": 36.42, "x": 19.3, "target": "GPIO21" },
50 | "GND.6": { "y": 33.88, "x": 19.3, "target": "GND" },
51 | "GP22": { "y": 31.34, "x": 19.3, "target": "GPIO22" },
52 | "RUN": { "y": 28.8, "x": 19.3 },
53 | "GP26": { "y": 26.26, "x": 19.3, "target": "GPIO26" },
54 | "GP27": { "y": 23.72, "x": 19.3, "target": "GPIO27" },
55 | "GND.7": { "y": 21.18, "x": 19.3, "target": "GND" },
56 | "GP28": { "y": 18.64, "x": 19.3, "target": "GPIO28" },
57 | "ADC_VREF": { "y": 16.1, "x": 19.3 },
58 | "3V3": { "y": 13.56, "x": 19.3, "target": "power(3.3)" },
59 | "3V3_EN": { "y": 11.02, "x": 19.3 },
60 | "GND.8": { "y": 8.48, "x": 19.3, "target": "GND" },
61 | "VSYS": { "y": 5.94, "x": 19.3, "target": "power(3.3)" },
62 | "VBUS": { "y": 3.4, "x": 19.3, "target": "power(5)" },
63 | /* Virtual pins */
64 | "TP4": { "target": "GPIO23" },
65 | "TP5": { "target": "GPIO25" }
66 | },
67 | "leds": [
68 | {
69 | "id": "led1",
70 | "x": 4.7,
71 | "y": 6.65,
72 | "type": "0603",
73 | "color": "#90ff00",
74 | "pins": {
75 | "A": "TP5",
76 | "C": "GND.1"
77 | }
78 | }
79 | ]
80 | }
81 |
--------------------------------------------------------------------------------
/boards/ssd1306/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SSD1306 OLED",
3 | "version": 1,
4 | "description": "Monochrome 128x64 OLED display with I2C interface",
5 | "author": "Uri Shaked",
6 | "width": 27.7,
7 | "height": 22.6,
8 |
9 | "pins": {
10 | /* Power pins */
11 | "GND": { "x": 10.1, "y": 1.71, "target": ["disp1:GND", "touch1:GND"] },
12 | "VCC": { "x": 12.6, "y": 1.71, "target": ["disp1:VCC", "touch1:VCC"] },
13 |
14 | /* I2C */
15 | "SCL": { "x": 15.1, "y": 1.71, "target": "disp1:SCL" },
16 | "SDA": { "x": 17.7, "y": 1.71, "target": "disp1:SDA" }
17 | },
18 |
19 | "displays": [
20 | {
21 | "id": "disp1",
22 | "x": 1.46,
23 | "y": 5.27,
24 | "width": 24.8,
25 | "height": 12.4,
26 | "pixelWidth": 128,
27 | "pixelHeight": 64,
28 | "chip": "ssd1306"
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/boards/ssd1306/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
42 |
--------------------------------------------------------------------------------
/boards/st-nucleo-c031c6/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STM NUCLEO 64 C031C6",
3 | "version": 1,
4 | "description": "The STM32 Nucleo-64 board provides an affordable and flexible way for users to try out new concepts and build prototypes by choosing from the various combinations of performance and power consumption features, provided by the STM32 microcontroller",
5 | "author": "Ariella Eliassaf",
6 | "mcu": "stm32c031c6",
7 | "fqbn": "STMicroelectronics:stm32:Nucleo_64:pnum=NUCLEO_C031C6",
8 |
9 | "width": 70,
10 | "height": 83.64,
11 |
12 | "pins": {
13 | //first row from left
14 | "PD0": { "x": 2.8, "y": 32.8, "target": "PD0" },
15 | "PD2": { "x": 2.8, "y": 35.34, "target": "PD2" },
16 | "VDD": { "x": 2.8, "y": 37.88, "target": "power(3.3)" },
17 | "PA14": { "x": 2.8, "y": 40.42, "target": "PA14" },
18 | // "NC": { "x": 2.8, "y": 42.96, "target": "" },
19 | //"NC": { "x": 2.8, "y": 45.5, "target": "" },
20 | "PA13": { "x": 2.8, "y": 48.04, "target": "PA13" },
21 | // "NC": { "x": 2.8, "y": 50.58, "target": "" },
22 | "PC6": { "x": 2.8, "y": 53.12, "target": "PC6" },
23 | "GND.1": { "x": 2.8, "y": 55.66, "target": "GND" },
24 | // "NC": { "x": 2.8, "y": 58.2, "target": "" },
25 | "PC13": { "x": 2.8, "y": 60.74, "target": "PC13" },
26 | "PC14": { "x": 2.8, "y": 63.28, "target": "PC14" },
27 | // "NC": { "x": 2.8, "y": 65.82, "target": "" },
28 | "PF0": { "x": 2.8, "y": 68.36, "target": "PF0" },
29 | "PF1": { "x": 2.8, "y": 70.9, "target": "PF1" },
30 | // "NC": { "x": 2.8, "y": 73.44, "target": "" },
31 | "PB11": { "x": 2.8, "y": 75.98, "target": "PB11" },
32 | "PA2": { "x": 2.8, "y": 78.52, "target": "PA2" },
33 |
34 | //second row from left
35 | "PD1": { "x": 5.34, "y": 32.8, "target": "PD1" },
36 | "PD2.2": { "x": 5.34, "y": 35.34, "target": "PD2" },
37 | "E5V": { "x": 5.34, "y": 37.88, "target": "power(5)" },
38 | "GND.2": { "x": 5.34, "y": 40.42, "target": "GND" },
39 | // "NC": { "x": 5.34, "y": 42.96, "target": "GPIO3" },
40 | "IOREF.1": { "x": 5.34, "y": 45.5, "target": "IOREF" },
41 | "NRST.1": { "x": 5.34, "y": 48.04, "target": "NRST" },
42 | "3V3.1": { "x": 5.34, "y": 50.58, "target": "power(3.3)" },
43 | "5V.1": { "x": 5.34, "y": 53.12, "target": "power(5)" },
44 | "GND.3": { "x": 5.34, "y": 55.66, "target": "GND" },
45 | "GND.4": { "x": 5.34, "y": 58.2, "target": "GND" },
46 | "VIN.1": { "x": 5.34, "y": 60.74, "target": "power(5)" },
47 | // "NC": { "x": 5.34, "y": 63.28, "target": "GPIO11" },
48 | "PA0": { "x": 5.34, "y": 65.82, "target": "PA0" },
49 | "PA1": { "x": 5.34, "y": 68.36, "target": "PA1" },
50 | "PA4": { "x": 5.34, "y": 70.9, "target": "PA4" },
51 | "PB1": { "x": 5.34, "y": 73.44, "target": "PB1" },
52 | "PA11": { "x": 5.34, "y": 75.98, "target": "PA11" },
53 | "PA12": { "x": 5.34, "y": 78.52, "target": "PA12" },
54 |
55 | //third row from left - female
56 | // "NC": { "x": 10.3, "y": 42.96, "target": "" },
57 | "IOREF.2": { "x": 10.3, "y": 45.5, "target": "IOREF" },
58 | "NRST.2": { "x": 10.3, "y": 48.04, "target": "NRST" },
59 | "3V3.2": { "x": 10.3, "y": 50.58, "target": "power(3.3)" },
60 | "5V.2": { "x": 10.3, "y": 53.12, "target": "power(5)" },
61 | "GND.5": { "x": 10.3, "y": 55.66, "target": "GND" },
62 | "GND.6": { "x": 10.3, "y": 58.2, "target": "GND" },
63 | "VIN.2": { "x": 10.3, "y": 60.74, "target": "power(5)" },
64 | "A0": { "x": 10.3, "y": 65.82, "target": "PA0" },
65 | "A1": { "x": 10.3, "y": 68.36, "target": "PA1" },
66 | "A2": { "x": 10.3, "y": 70.9, "target": "PA4" },
67 | "A3": { "x": 10.3, "y": 73.44, "target": "PB1" },
68 | "A4": { "x": 10.3, "y": 75.98, "target": "PA11" },
69 | "A5": { "x": 10.3, "y": 78.52, "target": "PA12" },
70 |
71 | //first row from right
72 | // "NC": { "x": 67, "y": 32.8, "target": "" },
73 | // "NC": { "x": 67, "y": 35.34, "target": "" },
74 | // "NC": { "x": 67, "y": 37.88, "target": "" },
75 | "5V.3": { "x": 67, "y": 40.42, "target": "power(5)" },
76 | "PA3": { "x": 67, "y": 42.96, "target": "PA3" },
77 | "PC15": { "x": 67, "y": 45.5, "target": "PC15" },
78 | "PB12.1": { "x": 67, "y": 48.04, "target": "PB12" },
79 | "PB12.2": { "x": 67, "y": 50.58, "target": "PB12" },
80 | "PB2": { "x": 67, "y": 53.12, "target": "PB2" },
81 | "GND.7": { "x": 67, "y": 55.66, "target": "GND" },
82 | "PF3": { "x": 67, "y": 58.2, "target": "PF3" },
83 | "PA8": { "x": 67, "y": 60.74, "target": "PA8" },
84 | "PB15": { "x": 67, "y": 63.28, "target": "PB15" },
85 | "PB14": { "x": 67, "y": 65.82, "target": "PB14" },
86 | "PB13": { "x": 67, "y": 68.36, "target": "PB13" },
87 | "AGND": { "x": 67, "y": 70.9, "target": "GND" },
88 | "PB0.1": { "x": 67, "y": 73.44, "target": "PB0" },
89 | // "NC": { "x": 67, "y": 75.98, "target": "" },
90 | // "NC": { "x": 67, "y": 78.52, "target": "" },
91 |
92 | //second row from right
93 | "PD3": { "x": 64.46, "y": 32.8, "target": "power(3.3)" },
94 | "PB8": { "x": 64.46, "y": 35.34, "target": "PB8" },
95 | "PB9": { "x": 64.46, "y": 37.88, "target": "PB9" },
96 | "AVDD.1": { "x": 64.46, "y": 40.42, "target": "power(5)" },
97 | "GND.8": { "x": 64.46, "y": 42.96, "target": "GND" },
98 | "PA5": { "x": 64.46, "y": 45.5, "target": "PA5" },
99 | "PA6": { "x": 64.46, "y": 48.04, "target": "PA6" },
100 | "PA7": { "x": 64.46, "y": 50.58, "target": "PA7" },
101 | "PB0.2": { "x": 64.46, "y": 53.12, "target": "PB0" },
102 | "PC7": { "x": 64.46, "y": 55.66, "target": "PC7" },
103 | "PA9": { "x": 64.46, "y": 58.2, "target": "PA9" },
104 | "PA15": { "x": 64.46, "y": 60.74, "target": "PA15" },
105 | "PB5": { "x": 64.46, "y": 63.28, "target": "PB5" },
106 | "PB4": { "x": 64.46, "y": 65.82, "target": "PB4" },
107 | "PB10": { "x": 64.46, "y": 68.36, "target": "PB10" },
108 | "PB3": { "x": 64.46, "y": 70.9, "target": "PB3" },
109 | "PA10": { "x": 64.46, "y": 73.44, "target": "PA10" },
110 | "PB6": { "x": 64.46, "y": 75.98, "target": "PB6" },
111 | "PB7": { "x": 64.46, "y": 78.52, "target": "PB7" },
112 |
113 | //third row from right
114 | "D15": { "x": 59.3, "y": 32.8, "target": "PB8" },
115 | "D14": { "x": 59.3, "y": 35.34, "target": "PB9" },
116 | "AVDD.2": { "x": 59.3, "y": 37.88, "target": "power(5)" },
117 | "GND.9": { "x": 59.3, "y": 40.42, "target": "GND" },
118 | "D13": { "x": 59.3, "y": 42.96, "target": "PA5" },
119 | "D12": { "x": 59.3, "y": 45.5, "target": "PA6" },
120 | "D11": { "x": 59.3, "y": 48.04, "target": "PA7" },
121 | "D10": { "x": 59.3, "y": 50.58, "target": "PB0" },
122 | "D9": { "x": 59.3, "y": 53.12, "target": "PC7" },
123 | "D8": { "x": 59.3, "y": 55.66, "target": "PA9" },
124 | "D7": { "x": 59.3, "y": 60.74, "target": "PA15" },
125 | "D6": { "x": 59.3, "y": 63.28, "target": "PB5" },
126 | "D5": { "x": 59.3, "y": 65.82, "target": "PB4" },
127 | "D4": { "x": 59.3, "y": 68.36, "target": "PB10" },
128 | "D3": { "x": 59.3, "y": 70.9, "target": "PB3" },
129 | "D2": { "x": 59.3, "y": 73.44, "target": "PA10" },
130 | "D1": { "x": 59.3, "y": 75.9, "target": "PB6" },
131 | "D0": { "x": 59.35, "y": 78.52, "target": "PB7" }
132 | },
133 |
134 | "leds": [
135 | // This red LED is ON when overcurrent is detected:
136 | // {
137 | // "id": "ld2",
138 | // "x": 66,
139 | // "y": 17.18,
140 | // "type": "0603",
141 | // "color": "red",
142 | // "pins": {
143 | // "A": "3V3.1",
144 | // "C": "GND.1"
145 | // }
146 | // },
147 | {
148 | "id": "ld3",
149 | "x": 51.35,
150 | "y": 29,
151 | "type": "0603",
152 | "color": "green",
153 | "pins": {
154 | "A": "3V3",
155 | "C": "GND.1"
156 | }
157 | },
158 | {
159 | "id": "ld4",
160 | "x": 55.2,
161 | "y": 29,
162 | "type": "0603",
163 | "color": "green",
164 | "pins": {
165 | "A": "PA5",
166 | "C": "GND.1"
167 | }
168 | },
169 | // LD1 turns to green to indicate that communication is in progress between the PC and the ST-LINK/V2-1 :
170 | // {
171 | // "id": "ld1",
172 | // "x": 59.36,
173 | // "y": 6.1,
174 | // "type": "ws2812",
175 | // "pins": {
176 | // "DI": "18"
177 | // }
178 | // }
179 | ]
180 | }
181 |
--------------------------------------------------------------------------------
/boards/st-nucleo-l031k6/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ST-Nucleo-L031k6",
3 | "version": 1,
4 | "description": "Affordable and flexible way for users to try out new ideas and build prototypes with any STM32 microcontroller line",
5 | "author": "Ariella Eliassaf",
6 | "width": 18.76,
7 | "height": 52.269,
8 | "mcu": "stm32l031k6",
9 | "fqbn": "STMicroelectronics:stm32:Nucleo_32:pnum=NUCLEO_L031K6",
10 |
11 | "pins": {
12 | "D1": { "x": 1.6, "y": 9.84, "target": "PA9" },
13 | "D0": { "x": 1.6, "y": 12.38, "target": "PA10" },
14 | "RST.1": { "x": 1.6, "y": 14.92, "target": "NRST" },
15 | "GND.1": { "x": 1.6, "y": 17.46, "target": "GND" },
16 | "D2": { "x": 1.6, "y": 20, "target": "PA12" },
17 | "D3": { "x": 1.6, "y": 22.54, "target": "PB0" },
18 | "D4": { "x": 1.6, "y": 25.08, "target": "PB7" },
19 | "D5": { "x": 1.6, "y": 27.62, "target": "PB6" },
20 | "D6": { "x": 1.6, "y": 30.16, "target": "PB1" },
21 | "D7": { "x": 1.6, "y": 32.7, "target": "PF0" },
22 | "D8": { "x": 1.6, "y": 35.24, "target": "PF1" },
23 | "D9": { "x": 1.6, "y": 37.78, "target": "PA8" },
24 | "D10": { "x": 1.6, "y": 40.32, "target": "PA11" },
25 | "D11": { "x": 1.6, "y": 42.86, "target": "PB5" },
26 | "D12": { "x": 1.6, "y": 45.4, "target": "PB4" },
27 |
28 | "VIN": { "x": 17, "y": 9.84, "target": "power(5)" },
29 | "GND.2": { "x": 17, "y": 12.38, "target": "GND" },
30 | "RST.2": { "x": 17, "y": 14.92, "target": "NRST" },
31 | "5V": { "x": 17, "y": 17.46, "target": "power(5)" },
32 | "A7": { "x": 17, "y": 20, "target": "PA2" },
33 | "A6": { "x": 17, "y": 22.54, "target": "PA7" },
34 | "A5": { "x": 17, "y": 25.08, "target": "PA6" },
35 | "A4": { "x": 17, "y": 27.62, "target": "PA5" },
36 | "A3": { "x": 17, "y": 30.16, "target": "PA4" },
37 | "A2": { "x": 17, "y": 32.7, "target": "PA3" },
38 | "A1": { "x": 17, "y": 35.24, "target": "PA1" },
39 | "A0": { "x": 17, "y": 37.78, "target": "PA0" },
40 | "REF": { "x": 17, "y": 40.32, "target": "AREF" },
41 | "3V3": { "x": 17, "y": 42.86, "target": "power(3.3)" },
42 | "D13": { "x": 17, "y": 45.4, "target": "PB3" },
43 |
44 | /* Virtual Com Port (VCP) pins, connected to the ST-LINK/V2.1 interface */
45 | "VCP_TX": { "target": "PA2" },
46 | "VCP_RX": { "target": "PA15" }
47 | },
48 |
49 | "leds": [
50 | {
51 | "id": "LD2",
52 | "x": 4.35,
53 | "y": 49.2,
54 | "type": "0603",
55 | "color": "red",
56 | "pins": {
57 | "A": "VIN",
58 | "C": "GND.1"
59 | }
60 | },
61 | {
62 | "id": "LD3",
63 | "x": 14.4,
64 | "y": 49.2,
65 | "type": "0603",
66 | "color": "green",
67 | "pins": {
68 | "A": "D13",
69 | "C": "GND.1"
70 | }
71 | }
72 | ]
73 | }
74 |
--------------------------------------------------------------------------------
/boards/st-nucleo-l031k6/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
110 |
--------------------------------------------------------------------------------
/boards/st-nucleo-l432kc/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ST-Nucleo-L432KC",
3 | "version": 1,
4 | "description": "The Nucleo L432KC board features an ARM Cortex-M4 based STM32L432KC MCU with a wide range of connectivity support and configurations",
5 | "author": "Ariella Eliassaf",
6 | "width": 18.76,
7 | "height": 52.269,
8 | "mcu": "stm32l432kc",
9 | "fqbn": "STMicroelectronics:stm32:Nucleo_32:pnum=NUCLEO_L432KC",
10 |
11 | "pins": {
12 | "D1": { "x": 1.6, "y": 9.84, "target": "PA9" },
13 | "D0": { "x": 1.6, "y": 12.38, "target": "PA10" },
14 | "RST.1": { "x": 1.6, "y": 14.92, "target": "NRST" },
15 | "GND.1": { "x": 1.6, "y": 17.46, "target": "GND" },
16 | "D2": { "x": 1.6, "y": 20, "target": "PA12" },
17 | "D3": { "x": 1.6, "y": 22.54, "target": "PB0" },
18 | "D4": { "x": 1.6, "y": 25.08, "target": "PB7" },
19 | "D5": { "x": 1.6, "y": 27.62, "target": "PB6" },
20 | "D6": { "x": 1.6, "y": 30.16, "target": "PB1" },
21 | "D7": { "x": 1.6, "y": 32.7, "target": "NC" },
22 | "D8": { "x": 1.6, "y": 35.24, "target": "NC" },
23 | "D9": { "x": 1.6, "y": 37.78, "target": "PA8" },
24 | "D10": { "x": 1.6, "y": 40.32, "target": "PA11" },
25 | "D11": { "x": 1.6, "y": 42.86, "target": "PB5" },
26 | "D12": { "x": 1.6, "y": 45.4, "target": "PB4" },
27 |
28 | "VIN": { "x": 17, "y": 9.84, "target": "power(5)" },
29 | "GND.2": { "x": 17, "y": 12.38, "target": "GND" },
30 | "RST.2": { "x": 17, "y": 14.92, "target": "NRST" },
31 | "5V": { "x": 17, "y": 17.46, "target": "power(5)" },
32 | "A7": { "x": 17, "y": 20, "target": "PA2" },
33 | "A6": { "x": 17, "y": 22.54, "target": "PA7" },
34 | "A5": { "x": 17, "y": 25.08, "target": "PA6" },
35 | "A4": { "x": 17, "y": 27.62, "target": "PA5" },
36 | "A3": { "x": 17, "y": 30.16, "target": "PA4" },
37 | "A2": { "x": 17, "y": 32.7, "target": "PA3" },
38 | "A1": { "x": 17, "y": 35.24, "target": "PA1" },
39 | "A0": { "x": 17, "y": 37.78, "target": "PA0" },
40 | "REF": { "x": 17, "y": 40.32, "target": "AREF" },
41 | "3V3": { "x": 17, "y": 42.86, "target": "power(3.3)" },
42 | "D13": { "x": 17, "y": 45.4, "target": "PB3" },
43 |
44 | /* Virtual Com Port (VCP) pins, connected to the ST-LINK/V2.1 interface */
45 | "VCP_TX": { "target": "PA2" },
46 | "VCP_RX": { "target": "PA15" }
47 | },
48 |
49 | "leds": [
50 | {
51 | "id": "LD2",
52 | "x": 4.35,
53 | "y": 49.2,
54 | "type": "0603",
55 | "color": "red",
56 | "pins": {
57 | "A": "VIN",
58 | "C": "GND.1"
59 | }
60 | },
61 | {
62 | "id": "LD3",
63 | "x": 14.4,
64 | "y": 49.2,
65 | "type": "0603",
66 | "color": "green",
67 | "pins": {
68 | "A": "D13",
69 | "C": "GND.1"
70 | }
71 | }
72 | ]
73 | }
74 |
--------------------------------------------------------------------------------
/boards/st-nucleo-l432kc/board.svg:
--------------------------------------------------------------------------------
1 |
2 |
116 |
--------------------------------------------------------------------------------
/boards/stm32-blackpill/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STM32-Black-Pill",
3 | "version": 1,
4 | "description": "STM32 Black Pill is a high-performance, breadboard friendly development board with loads of features in a small form factor",
5 | "author": "Ariella Eliassaf",
6 | "width": 20.695,
7 | "height": 53.125,
8 | "mcu": "stm32f411ce",
9 | "fqbn": "STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE",
10 |
11 | "pins": {
12 | "VB": { "x": 2.65, "y": 3.15, "target": "" },
13 | "C13": { "x": 2.65, "y": 5.69, "target": "PC13" },
14 | "C14": { "x": 2.65, "y": 8.23, "target": "PC14" },
15 | "C15": { "x": 2.65, "y": 10.77, "target": "PC15" },
16 | "R": { "x": 2.65, "y": 13.31, "target": "NRST" },
17 | "A0": { "x": 2.65, "y": 15.85, "target": "PA0" },
18 | "A1": { "x": 2.65, "y": 18.39, "target": "PA1" },
19 | "A2": { "x": 2.65, "y": 20.93, "target": "PA2" },
20 | "A3": { "x": 2.65, "y": 23.47, "target": "PA3" },
21 | "A4": { "x": 2.65, "y": 26.01, "target": "PA4" },
22 | "A5": { "x": 2.65, "y": 28.55, "target": "PA5" },
23 | "A6": { "x": 2.65, "y": 31.09, "target": "PA6" },
24 | "A7": { "x": 2.65, "y": 33.63, "target": "PA7" },
25 | "B0": { "x": 2.65, "y": 36.17, "target": "PB0" },
26 | "B1": { "x": 2.65, "y": 38.71, "target": "PB1" },
27 | "B2": { "x": 2.65, "y": 41.25, "target": "PB2" },
28 | "B10": { "x": 2.65, "y": 43.79, "target": "PB10" },
29 | "3V3.1": { "x": 2.65, "y": 46.33, "target": "power(3)" },
30 | "GND.1": { "x": 2.65, "y": 48.87, "target": "GND" },
31 | "5V.1": { "x": 2.65, "y": 51.41, "target": "power(5)" },
32 |
33 | "3V3.2": { "x": 17.85, "y": 2.9, "target": "power(3)" },
34 | "GND.3": { "x": 17.85, "y": 5.44, "target": "GND" },
35 | "5V.2": { "x": 17.85, "y": 7.98, "target": "power(5)" },
36 | "B9": { "x": 17.85, "y": 10.52, "target": "PB9" },
37 | "B8": { "x": 17.85, "y": 13.06, "target": "PB8" },
38 | "B7": { "x": 17.85, "y": 15.6, "target": "PB7" },
39 | "B6": { "x": 17.85, "y": 18.14, "target": "PB6" },
40 | "B5": { "x": 17.85, "y": 20.68, "target": "PB5" },
41 | "B4": { "x": 17.85, "y": 23.22, "target": "PB4" },
42 | "B3": { "x": 17.85, "y": 25.76, "target": "PB3" },
43 | "A15": { "x": 17.85, "y": 28.3, "target": "PA15" },
44 | "A12": { "x": 17.85, "y": 30.84, "target": "PA12" },
45 | "A11": { "x": 17.85, "y": 33.38, "target": "PA11" },
46 | "A10": { "x": 17.85, "y": 35.92, "target": "PA10" },
47 | "A9": { "x": 17.85, "y": 38.46, "target": "PA9" },
48 | "A8": { "x": 17.85, "y": 41, "target": "PA8" },
49 | "B15": { "x": 17.85, "y": 43.54, "target": "PB15" },
50 | "B14": { "x": 17.85, "y": 46.08, "target": "PB14" },
51 | "B13": { "x": 17.85, "y": 48.62, "target": "PB13" },
52 | "B12": { "x": 17.85, "y": 51.16, "target": "PB12" },
53 | "led": { "x": 15.3, "y": 10.9, "target": "PB12" }
54 | },
55 |
56 | "leds": [
57 | {
58 | "id": "C13",
59 | "x": 5.3,
60 | "y": 10.9,
61 | "type": "0603",
62 | "color": "blue",
63 | "pins": {
64 | "A": "3V3",
65 | "C": "C13"
66 | }
67 | },
68 | {
69 | "id": "PWR",
70 | "x": 15.32,
71 | "y": 10.9,
72 | "type": "0603",
73 | "color": "red",
74 | "pins": {
75 | "A": "3V3.1",
76 | "C": "GND"
77 | }
78 | }
79 | ]
80 | }
81 |
--------------------------------------------------------------------------------
/boards/stm32-bluepill/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STM32-Blue-Pill",
3 | "version": 1,
4 | "description": "STM32 Blue Pill is a high-performance, breadboard friendly development board with loads of features in a small form factor",
5 | "author": "Ariella Eliassaf",
6 | "width": 22.855,
7 | "height": 54.193,
8 | "mcu": "stm32f103c8",
9 | "fqbn": "STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8",
10 |
11 | "pins": {
12 | "B12": { "x": 3.5, "y": 2.9, "target": "PB12" },
13 | "B13": { "x": 3.5, "y": 5.44, "target": "PB13" },
14 | "B14": { "x": 3.5, "y": 7.98, "target": "PB14" },
15 | "B15": { "x": 3.5, "y": 10.52, "target": "PB15" },
16 | "A8": { "x": 3.5, "y": 13.06, "target": "PA8" },
17 | "A9": { "x": 3.5, "y": 15.6, "target": "PA9" },
18 | "A10": { "x": 3.5, "y": 18.14, "target": "PA10" },
19 | "A11": { "x": 3.5, "y": 20.68, "target": "PA11" },
20 | "A12": { "x": 3.5, "y": 23.22, "target": "PA12" },
21 | "A15": { "x": 3.5, "y": 25.76, "target": "PA15" },
22 | "B3": { "x": 3.5, "y": 28.3, "target": "PB3" },
23 | "B4": { "x": 3.5, "y": 30.84, "target": "PB4" },
24 | "B5": { "x": 3.5, "y": 33.38, "target": "PB5" },
25 | "B6": { "x": 3.5, "y": 35.92, "target": "PB6" },
26 | "B7": { "x": 3.5, "y": 38.46, "target": "PB7" },
27 | "B8": { "x": 3.5, "y": 41, "target": "PB8" },
28 | "B9": { "x": 3.5, "y": 43.54, "target": "PB9" },
29 | "5V.1": { "x": 3.5, "y": 46.08, "target": "power(5)" },
30 | "GND.1": { "x": 3.5, "y": 48.62, "target": "GND" },
31 | "3V3.1": { "x": 3.5, "y": 51.16, "target": "power(3)" },
32 |
33 | "GND.2": { "x": 19.25, "y": 2.9, "target": "GND" },
34 | "GND.3": { "x": 19.25, "y": 5.44, "target": "GND" },
35 | "3V3.2": { "x": 19.25, "y": 7.98, "target": "power(3)" },
36 | "R": { "x": 19.25, "y": 10.52, "target": "NRST" },
37 | "B11": { "x": 19.25, "y": 13.06, "target": "PB11" },
38 | "B10": { "x": 19.25, "y": 15.6, "target": "PB10" },
39 | "B1": { "x": 19.25, "y": 18.14, "target": "PB1" },
40 | "B0": { "x": 19.25, "y": 20.68, "target": "PB0" },
41 | "A7": { "x": 19.25, "y": 23.22, "target": "PA7" },
42 | "A6": { "x": 19.25, "y": 25.76, "target": "PA6" },
43 | "A5": { "x": 19.25, "y": 28.3, "target": "PA5" },
44 | "A4": { "x": 19.25, "y": 30.84, "target": "PA4" },
45 | "A3": { "x": 19.25, "y": 33.38, "target": "PA3" },
46 | "A2": { "x": 19.25, "y": 35.92, "target": "PA2" },
47 | "A1": { "x": 19.25, "y": 38.46, "target": "PA1" },
48 | "A0": { "x": 19.25, "y": 41, "target": "PA0" },
49 | "C15": { "x": 19.25, "y": 43.54, "target": "PC15" },
50 | "C14": { "x": 19.25, "y": 46.08, "target": "PC14" },
51 | "C13": { "x": 19.25, "y": 48.62, "target": "PC13" },
52 | "VBAT": { "x": 19.25, "y": 51.16, "target": "" }
53 | },
54 |
55 | "leds": [
56 | {
57 | "id": "PC13",
58 | "x": 7.4,
59 | "y": 45.5,
60 | "type": "0603",
61 | "color": "red",
62 | "pins": {
63 | "A": "3V3.1",
64 | "C": "C13"
65 | }
66 | },
67 | {
68 | "id": "PWR",
69 | "x": 14.85,
70 | "y": 45.4,
71 | "type": "0603",
72 | "color": "red",
73 | "pins": {
74 | "A": "3V3.1",
75 | "C": "GND.1"
76 | }
77 | }
78 | ]
79 | }
80 |
--------------------------------------------------------------------------------
/boards/tt-block-bidirectional-io/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Tiny Tapeout Bidirectional I/O Block",
3 | "version": 1,
4 | "description": "See https://TinyTapeout.com for details",
5 | "author": "Uri Shaked",
6 | "width": 28,
7 | "height": 9,
8 |
9 | "pins": {
10 | "IN": { "y": 2.27, "x": 1.27, "target": "ttio:IN" },
11 | "OUT": { "y": 4.81, "x": 1.27, "target": "ttio:OUT" },
12 | "OE": { "y": 7.35, "x": 1.27, "target": "ttio:OE" },
13 | "UIO": { "y": 4.81, "x": 26.67, "target": "ttio:UIO" }
14 | },
15 |
16 | "chips": [{ "id": "ttio", "type": "tinytapeout-bidirectional-io" }],
17 |
18 | "_tinyTapeoutLabel": "D{verilogBit}"
19 | }
20 |
--------------------------------------------------------------------------------
/boards/tt-block-bidirectional-io/board.svg:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/boards/tt-block-input-8/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Tiny Tapeout Input Block",
3 | "version": 1,
4 | "description": "See https://TinyTapeout.com for details",
5 | "author": "Uri Shaked",
6 | "width": 28,
7 | "height": 31.2,
8 |
9 | "pins": {
10 | "EXTIN0": { "y": 12.1, "x": 1.27, "target": "ttin:EXTIN0" },
11 | "EXTIN1": { "y": 14.64, "x": 1.27, "target": "ttin:EXTIN1" },
12 | "EXTIN2": { "y": 17.18, "x": 1.27, "target": "ttin:EXTIN2" },
13 | "EXTIN3": { "y": 19.72, "x": 1.27, "target": "ttin:EXTIN3" },
14 | "EXTIN4": { "y": 22.26, "x": 1.27, "target": "ttin:EXTIN4" },
15 | "EXTIN5": { "y": 24.8, "x": 1.27, "target": "ttin:EXTIN5" },
16 | "EXTIN6": { "y": 27.34, "x": 1.27, "target": "ttin:EXTIN6" },
17 | "EXTIN7": { "y": 29.88, "x": 1.27, "target": "ttin:EXTIN7" },
18 | "IN0": { "y": 12.1, "x": 26.67, "target": "ttin:IN0" },
19 | "IN1": { "y": 14.64, "x": 26.67, "target": "ttin:IN1" },
20 | "IN2": { "y": 17.18, "x": 26.67, "target": "ttin:IN2" },
21 | "IN3": { "y": 19.72, "x": 26.67, "target": "ttin:IN3" },
22 | "IN4": { "y": 22.26, "x": 26.67, "target": "ttin:IN4" },
23 | "IN5": { "y": 24.8, "x": 26.67, "target": "ttin:IN5" },
24 | "IN6": { "y": 27.34, "x": 26.67, "target": "ttin:IN6" },
25 | "IN7": { "y": 29.88, "x": 26.67, "target": "ttin:IN7" }
26 | },
27 |
28 | "chips": [{ "id": "ttin", "type": "tinytapeout-input" }]
29 | }
30 |
--------------------------------------------------------------------------------
/boards/tt-block-input-8/board.svg:
--------------------------------------------------------------------------------
1 |
92 |
--------------------------------------------------------------------------------
/boards/tt-block-input/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Tiny Tapeout Input Block",
3 | "version": 1,
4 | "description": "See https://TinyTapeout.com for details",
5 | "author": "Uri Shaked",
6 | "width": 28,
7 | "height": 31.2,
8 |
9 | "pins": {
10 | "EXTCLK": { "y": 7.02, "x": 1.27, "target": "ttin:EXTCLK" },
11 | "EXTRST_N": { "y": 9.56, "x": 1.27, "target": "ttin:EXTRST_N" },
12 | "EXTIN0": { "y": 12.1, "x": 1.27, "target": "ttin:EXTIN0" },
13 | "EXTIN1": { "y": 14.64, "x": 1.27, "target": "ttin:EXTIN1" },
14 | "EXTIN2": { "y": 17.18, "x": 1.27, "target": "ttin:EXTIN2" },
15 | "EXTIN3": { "y": 19.72, "x": 1.27, "target": "ttin:EXTIN3" },
16 | "EXTIN4": { "y": 22.26, "x": 1.27, "target": "ttin:EXTIN4" },
17 | "EXTIN5": { "y": 24.8, "x": 1.27, "target": "ttin:EXTIN5" },
18 | "EXTIN6": { "y": 27.34, "x": 1.27, "target": "ttin:EXTIN6" },
19 | "EXTIN7": { "y": 29.88, "x": 1.27, "target": "ttin:EXTIN7" },
20 | "CLK": { "y": 7.02, "x": 26.67, "target": "ttin:CLK" },
21 | "RST_N": { "y": 9.56, "x": 26.67, "target": "ttin:RST_N" },
22 | "IN0": { "y": 12.1, "x": 26.67, "target": "ttin:IN0" },
23 | "IN1": { "y": 14.64, "x": 26.67, "target": "ttin:IN1" },
24 | "IN2": { "y": 17.18, "x": 26.67, "target": "ttin:IN2" },
25 | "IN3": { "y": 19.72, "x": 26.67, "target": "ttin:IN3" },
26 | "IN4": { "y": 22.26, "x": 26.67, "target": "ttin:IN4" },
27 | "IN5": { "y": 24.8, "x": 26.67, "target": "ttin:IN5" },
28 | "IN6": { "y": 27.34, "x": 26.67, "target": "ttin:IN6" },
29 | "IN7": { "y": 29.88, "x": 26.67, "target": "ttin:IN7" }
30 | },
31 |
32 | "chips": [{ "id": "ttin", "type": "tinytapeout-input" }]
33 | }
34 |
--------------------------------------------------------------------------------
/boards/tt-block-input/board.svg:
--------------------------------------------------------------------------------
1 |
111 |
--------------------------------------------------------------------------------
/boards/tt-block-output/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Tiny Tapeout Output Block",
3 | "version": 1,
4 | "description": "See https://TinyTapeout.com for details",
5 | "author": "Uri Shaked",
6 | "width": 28,
7 | "height": 26.2,
8 |
9 | "pins": {
10 | "OUT0": { "y": 7.02, "x": 1.27, "target": "ttout:OUT0" },
11 | "OUT1": { "y": 9.56, "x": 1.27, "target": "ttout:OUT1" },
12 | "OUT2": { "y": 12.1, "x": 1.27, "target": "ttout:OUT2" },
13 | "OUT3": { "y": 14.64, "x": 1.27, "target": "ttout:OUT3" },
14 | "OUT4": { "y": 17.18, "x": 1.27, "target": "ttout:OUT4" },
15 | "OUT5": { "y": 19.72, "x": 1.27, "target": "ttout:OUT5" },
16 | "OUT6": { "y": 22.26, "x": 1.27, "target": "ttout:OUT6" },
17 | "OUT7": { "y": 24.8, "x": 1.27, "target": "ttout:OUT7" },
18 | "EXTOUT0": { "y": 7.02, "x": 26.67, "target": "ttout:EXTOUT0" },
19 | "EXTOUT1": { "y": 9.56, "x": 26.67, "target": "ttout:EXTOUT1" },
20 | "EXTOUT2": { "y": 12.1, "x": 26.67, "target": "ttout:EXTOUT2" },
21 | "EXTOUT3": { "y": 14.64, "x": 26.67, "target": "ttout:EXTOUT3" },
22 | "EXTOUT4": { "y": 17.18, "x": 26.67, "target": "ttout:EXTOUT4" },
23 | "EXTOUT5": { "y": 19.72, "x": 26.67, "target": "ttout:EXTOUT5" },
24 | "EXTOUT6": { "y": 22.26, "x": 26.67, "target": "ttout:EXTOUT6" },
25 | "EXTOUT7": { "y": 24.8, "x": 26.67, "target": "ttout:EXTOUT7" }
26 | },
27 |
28 | "chips": [{ "id": "ttout", "type": "tinytapeout-output" }]
29 | }
30 |
--------------------------------------------------------------------------------
/boards/tt-block-output/board.svg:
--------------------------------------------------------------------------------
1 |
76 |
--------------------------------------------------------------------------------
/boards/wemos-s2-mini/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Wemos S2 Mini",
3 | "version": "1",
4 | "description": "A mini wifi board based on ESP32-S2FN4R2.",
5 | "author": "Mirac Gulgonul",
6 | "mcu": "esp32-s2",
7 | "fqbn": "esp32:esp32:lolin_s2_mini",
8 | "width": 26.41,
9 | "height": 34.32,
10 | "environments": {
11 | "micropython": {
12 | "firmware": "https://wokwi.github.io/firmware-assets/micropython/GENERIC_S2-$VERSION.bin",
13 | "defaultVersion": "20220117-v1.18",
14 | "fs": {
15 | "type": "lfs",
16 | "flashOffset": 2097152,
17 | "blockSize": 4096,
18 | "numBlocks": 512
19 | }
20 | }
21 | },
22 | "pins": {
23 | "EN": {
24 | "x": 1.27,
25 | "y": 7.90,
26 | "target": "CHIP_VU"
27 | },
28 | "1": {
29 | "x": 3.81,
30 | "y": 7.90,
31 | "target": "GPIO1"
32 | },
33 | "3": {
34 | "x": 1.27,
35 | "y": 10.44,
36 | "target": "GPIO3"
37 | },
38 | "2": {
39 | "x": 3.81,
40 | "y": 10.44,
41 | "target": "GPIO2"
42 | },
43 | "5": {
44 | "x": 1.27,
45 | "y": 12.98,
46 | "target": "GPIO5"
47 | },
48 | "4": {
49 | "x": 3.81,
50 | "y": 12.98,
51 | "target": "GPIO4"
52 | },
53 | "7(SCK)": {
54 | "x": 1.27,
55 | "y": 15.52,
56 | "target": "GPIO7"
57 | },
58 | "6": {
59 | "x": 3.81,
60 | "y": 15.52,
61 | "target": "GPIO6"
62 | },
63 | "9(MISO)": {
64 | "x": 1.27,
65 | "y": 18.06,
66 | "target": "GPIO9"
67 | },
68 | "8": {
69 | "x": 3.81,
70 | "y": 18.06,
71 | "target": "GPIO8"
72 | },
73 | "11(MOSI)": {
74 | "x": 1.27,
75 | "y": 20.60,
76 | "target": "GPIO11"
77 | },
78 | "10": {
79 | "x": 3.81,
80 | "y": 20.60,
81 | "target": "GPIO10"
82 | },
83 | "13": {
84 | "x": 1.27,
85 | "y": 23.14,
86 | "target": "GPIO13"
87 | },
88 | "12": {
89 | "x": 3.81,
90 | "y": 23.14,
91 | "target": "GPIO12"
92 | },
93 | "3V3": {
94 | "x": 1.27,
95 | "y": 25.68,
96 | "target": "power(3.3)"
97 | },
98 | "14": {
99 | "x": 3.81,
100 | "y": 25.68,
101 | "target": "GPIO14"
102 | },
103 | "40": {
104 | "x": 21.63,
105 | "y": 7.90,
106 | "target": "GPIO40"
107 | },
108 | "39": {
109 | "x": 24.17,
110 | "y": 7.90,
111 | "target": "GPIO39"
112 | },
113 | "38": {
114 | "x": 21.63,
115 | "y": 10.44,
116 | "target": "GPIO38"
117 | },
118 | "37": {
119 | "x": 24.17,
120 | "y": 10.44,
121 | "target": "GPIO37"
122 | },
123 | "36": {
124 | "x": 21.63,
125 | "y": 12.98,
126 | "target": "GPIO36"
127 | },
128 | "35(SCL)": {
129 | "x": 24.17,
130 | "y": 12.98,
131 | "target": "GPIO35"
132 | },
133 | "34": {
134 | "x": 21.63,
135 | "y": 15.52,
136 | "target": "GPIO34"
137 | },
138 | "33(SDA)": {
139 | "x": 24.17,
140 | "y": 15.52,
141 | "target": "GPIO33"
142 | },
143 | "21": {
144 | "x": 21.63,
145 | "y": 18.06,
146 | "target": "GPIO21"
147 | },
148 | "18": {
149 | "x": 24.17,
150 | "y": 18.06,
151 | "target": "GPIO18"
152 | },
153 | "17": {
154 | "x": 21.63,
155 | "y": 20.60,
156 | "target": "GPIO17"
157 | },
158 | "16": {
159 | "x": 24.17,
160 | "y": 20.60,
161 | "target": "GPIO16"
162 | },
163 | "GND.1": {
164 | "x": 21.63,
165 | "y": 23.14,
166 | "target": "GND"
167 | },
168 | "GND.2": {
169 | "x": 24.17,
170 | "y": 23.14,
171 | "target": "GND"
172 | },
173 | "15": {
174 | "x": 21.63,
175 | "y": 25.68,
176 | "target": "GPIO15"
177 | },
178 | "VBUS": {
179 | "x": 24.17,
180 | "y": 25.68,
181 | "target": "power(5)"
182 | }
183 | },
184 | "leds": [
185 | {
186 | "id": "builtin",
187 | "x": 20.1,
188 | "y": 32.4,
189 | "type": "0603",
190 | "color": "blue",
191 | "pins": {
192 | "A": "15",
193 | "C": "GND.1"
194 | }
195 | }
196 | ]
197 | }
--------------------------------------------------------------------------------
/boards/xiao-esp32-c3/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Seeed Studio XIAO ESP32-C3",
3 | "version": "1",
4 | "description": "An IoT mini development board based on the Espressif ESP32-C3 WiFi/Bluetooth dual-mode chip",
5 | "author": "Uri Shaked",
6 | "mcu": "esp32-c3",
7 | "fqbn": "esp32:esp32:XIAO_ESP32C3",
8 | "width": 18.1,
9 | "height": 23.4,
10 | "mcuAttrs": {
11 | "flashSize": "4",
12 | "serialInterface": "USB_SERIAL_JTAG"
13 | },
14 |
15 | "pins": {
16 | "D0": { "x": 1.4335, "y": 4.9305, "target": "GPIO2" },
17 | "D1": { "x": 1.4335, "y": 7.4705, "target": "GPIO3" },
18 | "D2": { "x": 1.4335, "y": 10.0105, "target": "GPIO4" },
19 | "D3": { "x": 1.4335, "y": 12.5505, "target": "GPIO5" },
20 | "D4": { "x": 1.4335, "y": 15.0905, "target": "GPIO6" },
21 | "D5": { "x": 1.4335, "y": 17.6305, "target": "GPIO7" },
22 | "D6": { "x": 1.4335, "y": 20.1705, "target": "GPIO21" },
23 |
24 | "D7": { "x": 16.51, "y": 20.1705, "target": "GPIO20" },
25 | "D8": { "x": 16.51, "y": 17.6305, "target": "GPIO8" },
26 | "D9": { "x": 16.51, "y": 15.0905, "target": "GPIO9" },
27 | "D10": { "x": 16.51, "y": 12.5505, "target": "GPIO10" },
28 | "3V3": { "x": 16.51, "y": 10.0105, "target": "power(3.3)" },
29 | "GND": { "x": 16.51, "y": 7.4705, "target": "GND" },
30 | "5V": { "x": 16.51, "y": 4.9305, "target": "power(5)" }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/boards/xiao-esp32-c6/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Seeed Studio XIAO ESP32-C6",
3 | "version": "1",
4 | "description": "An IoT mini development board based on the Espressif ESP32-C6 WiFi/Bluetooth dual-mode chip",
5 | "author": "Uri Shaked",
6 | "mcu": "esp32-c6",
7 | "fqbn": "esp32:esp32:XIAO_ESP32C6",
8 | "width": 18.1,
9 | "height": 23.4,
10 | "mcuAttrs": {
11 | "flashSize": "4",
12 | "serialInterface": "USB_SERIAL_JTAG"
13 | },
14 |
15 | "pins": {
16 | "D0": { "x": 1.4335, "y": 4.9305, "target": "GPIO0" },
17 | "D1": { "x": 1.4335, "y": 7.4705, "target": "GPIO1" },
18 | "D2": { "x": 1.4335, "y": 10.0105, "target": "GPIO2" },
19 | "D3": { "x": 1.4335, "y": 12.5505, "target": "GPIO21" },
20 | "D4": { "x": 1.4335, "y": 15.0905, "target": "GPIO22" },
21 | "D5": { "x": 1.4335, "y": 17.6305, "target": "GPIO23" },
22 | "D6": { "x": 1.4335, "y": 20.1705, "target": "GPIO16" },
23 |
24 | "D7": { "x": 16.51, "y": 20.1705, "target": "GPIO17" },
25 | "D8": { "x": 16.51, "y": 17.6305, "target": "GPIO19" },
26 | "D9": { "x": 16.51, "y": 15.0905, "target": "GPIO20" },
27 | "D10": { "x": 16.51, "y": 12.5505, "target": "GPIO18" },
28 | "3V3": { "x": 16.51, "y": 10.0105, "target": "power(3.3)" },
29 | "GND": { "x": 16.51, "y": 7.4705, "target": "GND" },
30 | "5V": { "x": 16.51, "y": 4.9305, "target": "power(5)" },
31 |
32 | /* Virtual pins */
33 | "$gpio15": { "target": "GPIO15" }
34 | },
35 |
36 | "leds": [
37 | {
38 | "id": "led1",
39 | "x": 14.641,
40 | "y": 6.7305,
41 | "type": "0603",
42 | "color": "yellow",
43 | "pins": {
44 | "A": "3V3",
45 | "C": "$gpio15"
46 | }
47 | }
48 | ]
49 | }
50 |
--------------------------------------------------------------------------------
/boards/xiao-esp32-s3/board.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Seeed Studio XIAO ESP32-S3",
3 | "version": "1",
4 | "description": "An IoT mini development board based on the Espressif ESP32-S3 WiFi/Bluetooth dual-mode chip",
5 | "author": "Uri Shaked",
6 | "mcu": "esp32-s3",
7 | "fqbn": "esp32:esp32:XIAO_ESP32S3",
8 | "width": 18.1,
9 | "height": 23.4,
10 | "mcuAttrs": {
11 | "flashSize": "8",
12 | "psramSize": "8",
13 | "serialInterface": "USB_SERIAL_JTAG"
14 | },
15 |
16 | "pins": {
17 | "D0": { "x": 1.4335, "y": 4.9305, "target": "GPIO1" },
18 | "D1": { "x": 1.4335, "y": 7.4705, "target": "GPIO2" },
19 | "D2": { "x": 1.4335, "y": 10.0105, "target": "GPIO3" },
20 | "D3": { "x": 1.4335, "y": 12.5505, "target": "GPIO4" },
21 | "D4": { "x": 1.4335, "y": 15.0905, "target": "GPIO5" },
22 | "D5": { "x": 1.4335, "y": 17.6305, "target": "GPIO6" },
23 | "D6": { "x": 1.4335, "y": 20.1705, "target": "GPIO43" },
24 |
25 | "D7": { "x": 16.51, "y": 20.1705, "target": "GPIO44" },
26 | "D8": { "x": 16.51, "y": 17.6305, "target": "GPIO7" },
27 | "D9": { "x": 16.51, "y": 15.0905, "target": "GPIO8" },
28 | "D10": { "x": 16.51, "y": 12.5505, "target": "GPIO9" },
29 | "3V3": { "x": 16.51, "y": 10.0105, "target": "power(3.3)" },
30 | "GND": { "x": 16.51, "y": 7.4705, "target": "GND" },
31 | "5V": { "x": 16.51, "y": 4.9305, "target": "power(5)" },
32 |
33 | /* Virtual pins */
34 | "$gpio21": { "target": "GPIO21" }
35 | },
36 |
37 | "leds": [
38 | {
39 | "id": "led1",
40 | "x": 14.6275,
41 | "y": 5.847,
42 | "type": "0603",
43 | "color": "yellow",
44 | "pins": {
45 | "A": "3V3",
46 | "C": "$gpio21"
47 | }
48 | }
49 | ]
50 | }
51 |
--------------------------------------------------------------------------------
/tools/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/tools/make-bundle.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 | const jsonc = require('jsonc-parser');
4 | const { execSync } = require('child_process');
5 |
6 | const boardsRoot = path.join(__dirname, '..', 'boards');
7 | const bundleFile = path.join(boardsRoot, 'bundle.json');
8 |
9 | const bundle = {};
10 | for (const boardId of fs.readdirSync(boardsRoot)) {
11 | try {
12 | const boardPath = path.join(boardsRoot, boardId);
13 | const boardJson = jsonc.parse(fs.readFileSync(path.join(boardPath, 'board.json'), 'utf-8'));
14 | const rev = execSync(`git log -1 --pretty=format:"%h" ${boardPath}`).toString().trim();
15 |
16 | bundle[boardId] = { rev, def: boardJson, svg: fs.readFileSync(path.join(boardPath, 'board.svg'), 'utf-8') };
17 | } catch (err) {
18 | console.error(`Error reading ${boardId}: ${err}`);
19 | }
20 | }
21 | fs.writeFileSync(bundleFile, JSON.stringify(bundle));
22 |
--------------------------------------------------------------------------------
/tools/make-index.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 | const jsonc = require('jsonc-parser');
4 | const { execSync } = require('child_process');
5 |
6 | const boardsRoot = path.join(__dirname, '..', 'boards');
7 | const indexFile = path.join(boardsRoot, 'index.json');
8 |
9 | const index = {};
10 | for (const boardId of fs.readdirSync(boardsRoot)) {
11 | try {
12 | const boardPath = path.join(boardsRoot, boardId);
13 | const boardJson = jsonc.parse(fs.readFileSync(path.join(boardPath, 'board.json'), 'utf-8'));
14 | const rev = execSync(`git log -1 --pretty=format:"%h" ${boardPath}`).toString().trim();
15 |
16 | index[boardId] = { rev, h: boardJson.height, w: boardJson.width, mcu: boardJson.mcu };
17 | } catch (err) {
18 | console.error(`Error reading ${boardId}: ${err}`);
19 | }
20 | }
21 | fs.writeFileSync(indexFile, JSON.stringify(index, null, 2));
22 |
--------------------------------------------------------------------------------
/tools/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tools",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "tools",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "jsonc-parser": "^3.2.0"
13 | }
14 | },
15 | "node_modules/jsonc-parser": {
16 | "version": "3.2.0",
17 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
18 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
19 | }
20 | },
21 | "dependencies": {
22 | "jsonc-parser": {
23 | "version": "3.2.0",
24 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
25 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/tools/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tools",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "make-index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "jsonc-parser": "^3.2.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------