├── .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 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | DS18B20 12 | 13 | 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 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 2.9inch e-Paper Module 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /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 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Al-Cloud inside 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ESP32-C3-MINI-1 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | GPIO8 31 | 32 | 33 | RST 34 | 35 | 36 | BOOT 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | CP2102 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | GND 186 | GND 187 | GND 188 | GND 189 | GND 190 | GND 191 | RX 192 | TX 193 | 9 194 | 8 195 | 7 196 | 6 197 | 5 198 | 4 199 | 18 200 | 19 201 | GND 202 | 2 203 | 3V3 204 | 3V3 205 | 3 206 | GND 207 | 5V 208 | 5V 209 | 10 210 | 1 211 | 0 212 | 213 | 214 | RST 215 | GND 216 | GND 217 | 218 | 219 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | VIN 86 | GND 87 | D13 88 | D12 89 | D14 90 | D27 91 | D26 92 | D25 93 | D33 94 | D32 95 | D35 96 | D34 97 | VN 98 | VP 99 | EN 100 | 3V3 101 | GND 102 | D15 103 | D2 104 | D4 105 | RX2 106 | TX2 107 | D5 108 | D18 109 | D19 110 | D21 111 | RX0 112 | TX0 113 | D22 114 | D23 115 | 116 | ESP32 117 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 1 28 | ILI9341 Cap Touch 29 | 30 | -------------------------------------------------------------------------------- /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 | 16 | 18 | 38 | 41 | 48 | 51 | 57 | 63 | 69 | 70 | DS18B20 89 | 90 | 97 | LM35 108 | 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 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 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 | 3 | 4 | D9 5 | D8 6 | D7 7 | D5 8 | D6 9 | D4 10 | D3 11 | D2 12 | GND 13 | RST 14 | D0/RX 15 | D1/TX 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | LD2 66 | LD1 67 | VIN 68 | GND 69 | RST 70 | 5V 71 | LD3 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | A7 93 | A6 94 | A5 95 | A4 96 | A3 97 | A2 98 | A1 99 | 100 | A0 101 | REF 102 | 3V3 103 | D13 104 | D12 105 | D11 106 | D10 107 | 108 | L031K6 109 | 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 | 3 | 4 | 5 | D9 6 | D8 7 | D7 8 | D5 9 | D6 10 | D4 11 | D3 12 | D2 13 | GND 14 | RST 15 | D0/RX 16 | D1/TX 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | LD2 69 | LD1 70 | VIN 71 | GND 72 | RST 73 | 5V 74 | LD3 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | A7 98 | A6 99 | A5 100 | A4 101 | A3 102 | A2 103 | A1 104 | 105 | A0 106 | REF 107 | 3V3 108 | D13 109 | 110 | D12 111 | D11 112 | D10 113 | 114 | L432KC 115 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | IN 22 | OUT 23 | OE 24 | 25 | 26 | 27 | 28 | 29 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | INPUT 11 | 12 | IN0 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | IN1 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | IN2 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | IN3 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | IN4 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | IN5 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | IN6 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | IN7 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | CLK 11 | 12 | 13 | CLK 14 | 15 | 16 | 17 | 18 | 19 | INPUT 20 | 21 | RST_N 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | IN0 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | IN1 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | IN2 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | IN3 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | IN4 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | IN5 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | IN6 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | IN7 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | OUTPUT 11 | OUT0 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | OUT1 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | OUT2 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | OUT3 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | OUT4 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | OUT5 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | OUT6 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | OUT7 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 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 | --------------------------------------------------------------------------------