Skip to content

Commit 5ab9ca8

Browse files
committed
Initial commit - add esp32-devkit-v1 example
0 parents  commit 5ab9ca8

File tree

4 files changed

+258
-0
lines changed

4 files changed

+258
-0
lines changed

.vscode/settings.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"*.json": "jsonc"
4+
}
5+
}

README.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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+
## Testing a custom board
8+
9+
1. Create a [new project on wokwi](https://wokwi.com/arduino/new)
10+
2. Click inside the code editor, press "F1" and choose "Load custom board file..."
11+
3. Select the directory that contains the board definition files (board.json and board.svg)
12+
4. The board should load into Wokwi. Check the browser JavaScript console for any error messages.
13+
5. Paste the following code into the diagram.json file:
14+
15+
```json
16+
{
17+
"version": 1,
18+
"author": "Ambitious maker",
19+
"editor": "wokwi",
20+
"parts": [{ "type": "wokwi-custom-board", "id": "board" }],
21+
"connections": []
22+
}
23+
```
24+
25+
Your custom board should appear in the diagram editor. You can test the pin out, connect external
26+
components to it, and even start the simulation.

boards/esp32-devkit-v1/board.json

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
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+
}

boards/esp32-devkit-v1/board.svg

+121
Loading

0 commit comments

Comments
 (0)