Skip to content

Commit e1a0f6b

Browse files
committed
feat: add esp32-devkit-v1
1 parent 744b34c commit e1a0f6b

File tree

4 files changed

+266
-0
lines changed

4 files changed

+266
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { html } from 'lit-html';
2+
import './esp32-devkit-v1-element';
3+
4+
export default {
5+
title: 'ESP32 Devkit V1',
6+
component: 'wokwi-esp32-devkit-v1',
7+
argTypes: {
8+
led1: { control: { type: 'boolean' } },
9+
ledPower: { control: { type: 'boolean' } },
10+
},
11+
args: {
12+
led1: false,
13+
ledPower: false,
14+
},
15+
};
16+
17+
const Template = ({ led1, ledPower }) => html`<wokwi-esp32-devkit-v1
18+
.led1=${led1}
19+
.ledPower=${ledPower}
20+
></wokwi-esp32-devkit-v1>`;
21+
22+
export const Default = Template.bind({});
23+
24+
export const LEDsOn = Template.bind({});
25+
LEDsOn.storyName = 'LEDs On';
26+
LEDsOn.args = { led1: true, ledPower: true };

src/esp32-devkit-v1-element.ts

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
import { customElement, html, LitElement, property, svg } from 'lit-element';
2+
import { ElementPin } from '.';
3+
import { i2c, spi, usart } from './pin';
4+
5+
@customElement('wokwi-esp32-devkit-v1')
6+
export class ESP32DevkitV1Element extends LitElement {
7+
@property() led1 = false;
8+
@property() ledPower = false;
9+
10+
readonly pinInfo: ElementPin[] = [
11+
{ name: 'VIN', x: 5, y: 158.5, signals: [{ type: 'power', signal: 'VCC' }] },
12+
{ name: 'GND.2', x: 5, y: 149, signals: [{ type: 'power', signal: 'GND' }] },
13+
{ name: 'D13', x: 5, y: 139.5, signals: [spi('MOSI', 0), { type: 'pwm' }] },
14+
{ name: 'D12', x: 5, y: 130.4, signals: [spi('MISO', 0), { type: 'pwm' }] },
15+
{ name: 'D14', x: 5, y: 120, signals: [spi('SCK', 0), { type: 'pwm' }] },
16+
{ name: 'D27', x: 5, y: 110.8, signals: [{ type: 'pwm' }] },
17+
{ name: 'D26', x: 5, y: 101, signals: [{ type: 'pwm' }] },
18+
{ name: 'D25', x: 5, y: 91.3, signals: [{ type: 'pwm' }] },
19+
{ name: 'D33', x: 5, y: 81.7, signals: [{ type: 'pwm' }] },
20+
{ name: 'D32', x: 5, y: 72.2, signals: [{ type: 'pwm' }] },
21+
{ name: 'D35', x: 5, y: 62.9, signals: [] },
22+
{ name: 'D34', x: 5, y: 53.1, signals: [] },
23+
{ name: 'VN', x: 5, y: 44, signals: [] },
24+
{ name: 'VP', x: 5, y: 34, signals: [] },
25+
{ name: 'EN', x: 5, y: 24, signals: [] },
26+
27+
{ name: '3.3V', x: 101.3, y: 158.5, signals: [{ type: 'power', signal: 'VCC', voltage: 3.3 }] },
28+
{ name: 'GND.1', x: 101.3, y: 149, signals: [{ type: 'power', signal: 'GND' }] },
29+
{ name: 'D15', x: 101.3, y: 139.5, signals: [spi('SS', 0), { type: 'pwm' }] },
30+
{ name: 'D2', x: 101.3, y: 130.4, signals: [{ type: 'pwm' }] },
31+
{ name: 'D4', x: 101.3, y: 120, signals: [{ type: 'pwm' }] },
32+
{ name: 'RX2', x: 101.3, y: 110.8, signals: [usart('RX', 2), { type: 'pwm' }] },
33+
{ name: 'TX2', x: 101.3, y: 101, signals: [usart('TX', 2), { type: 'pwm' }] },
34+
{ name: 'D5', x: 101.3, y: 91.3, signals: [spi('SS', 1), { type: 'pwm' }] },
35+
{ name: 'D18', x: 101.3, y: 81.7, signals: [spi('SCK', 1), { type: 'pwm' }] },
36+
{ name: 'D19', x: 101.3, y: 72.2, signals: [spi('MISO', 1), { type: 'pwm' }] },
37+
{ name: 'D21', x: 101.3, y: 62.9, signals: [i2c('SDA'), { type: 'pwm' }] },
38+
{ name: 'RX0', x: 101.3, y: 53.1, signals: [usart('RX', 0), { type: 'pwm' }] },
39+
{ name: 'TX0', x: 101.3, y: 44, signals: [usart('TX', 0), { type: 'pwm' }] },
40+
{ name: 'D22', x: 101.3, y: 34, signals: [i2c('SCL'), { type: 'pwm' }] },
41+
{ name: 'D23', x: 101.3, y: 24, signals: [spi('MOSI', 1), { type: 'pwm' }] },
42+
];
43+
44+
render() {
45+
const { ledPower, led1 } = this;
46+
return html`
47+
<svg
48+
width="28.2mm"
49+
height="54.053mm"
50+
version="1.1"
51+
viewBox="0 0 107 201"
52+
xmlns="http://www.w3.org/2000/svg"
53+
>
54+
<defs>
55+
<pattern id="pin-pattern" height="4.6" width="5" patternUnits="userSpaceOnUse">
56+
<path
57+
d="m3.5 2.85c0.268 1.82e-4 0.525-0.106 0.716-0.296 0.187-0.19 0.296-0.445 0.297-0.713l5.7e-4 -0.836c1.82e-4 -0.268-0.109-0.525-0.296-0.716-0.19-0.19-0.447-0.296-0.715-0.297l-3.5-0.0024-0.0019 2.85z"
58+
fill="#d1c479"
59+
stroke-width="3.11"
60+
/>
61+
</pattern>
62+
<pattern id="small-pin-pattern" height="4.6" width="2.5" patternUnits="userSpaceOnUse">
63+
<path
64+
d="m1.4 1.32c0-0.138-0.0547-0.271-0.153-0.37-0.098-0.0965-0.23-0.153-0.368-0.153h-0.432c-0.138 0-0.271 0.0563-0.37 0.153-0.098 0.098-0.153 0.231-0.153 0.37v1.81h1.47z"
65+
fill="#f5f9f0"
66+
stroke-width="1.61"
67+
/>
68+
</pattern>
69+
<filter id="ledFilter" x="-0.8" y="-0.8" height="5.2" width="5.8">
70+
<feGaussianBlur stdDeviation="2" />
71+
</filter>
72+
</defs>
73+
74+
<!-- Board -->
75+
<path
76+
d="m7.56 0c-4.19 0-7.56 3.37-7.56 7.56v181c0 4.19 3.37 7.56 7.56 7.56h91.5c4.19 0 7.56-3.37 7.56-7.56v-181c0-4.19-3.37-7.56-7.56-7.56zm1.11 2.5a6.24 6.24 0 0 1 6.24 6.24 6.24 6.24 0 0 1-6.24 6.24 6.24 6.24 0 0 1-6.24-6.24 6.24 6.24 0 0 1 6.24-6.24zm88.9 0.217a6.24 6.24 0 0 1 6.24 6.24 6.24 6.24 0 0 1-6.24 6.24 6.24 6.24 0 0 1-6.24-6.24 6.24 6.24 0 0 1 6.24-6.24zm3.75 15.8a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.5 0.438a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.6 9.15a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.8 0.344a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.8 9.7a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.6 0.27a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.6 9.24a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.6 0.0391a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm0.0762 9.58a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.6 0.0371a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm0 9.58a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.6 0.422a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm0 9.51a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.5 0.115a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.4 9.54a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.5 0.0391a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.5 9.7a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.5 0.346a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.7 9.35a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.7 0.154a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.6 9.43a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.7 0.23a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm0 9.58a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.7 0.23a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.7 9.35a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.7 0.152a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.8 9.51a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.7 0.154a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm96.7 9.43a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm-96.7 0.152a3.4 3.4 0 0 1 3.4 3.4 3.4 3.4 0 0 1-3.4 3.4 3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4zm3.79 24.7a6.24 6.24 0 0 1 6.24 6.24 6.24 6.24 0 0 1-6.24 6.24 6.24 6.24 0 0 1-6.24-6.24 6.24 6.24 0 0 1 6.24-6.24zm88.7 0.217a6.24 6.24 0 0 1 6.24 6.24 6.24 6.24 0 0 1-6.24 6.24 6.24 6.24 0 0 1-6.24-6.24 6.24 6.24 0 0 1 6.24-6.24z"
77+
fill="#1a1a1a"
78+
fill-rule="evenodd"
79+
/>
80+
81+
<!-- ESP32 Chip -->
82+
<rect transform="translate(85,34)" width="4.8" height="55" fill="url(#pin-pattern)"></rect>
83+
<rect
84+
transform="translate(20.5,87) rotate(180)"
85+
width="4.8"
86+
height="55"
87+
fill="url(#pin-pattern)"
88+
></rect>
89+
<rect
90+
transform="translate(80,98) rotate(90)"
91+
width="4.8"
92+
height="55"
93+
fill="url(#pin-pattern)"
94+
></rect>
95+
<rect x="20" y="24.8" width="65.6" height="73.3" fill="#808080" fill-rule="evenodd" />
96+
97+
<!-- Swich -->
98+
<g fill="#ececec" fill-rule="evenodd">
99+
<rect x="19.3" y="143" width="7.21" height="11.5" />
100+
<rect x="39.8" y="139" width="6.59" height="3.07" />
101+
<rect x="40" y="147" width="6.59" height="3.07" />
102+
<rect x="40.2" y="156" width="6.59" height="3.07" />
103+
</g>
104+
<rect x="26.3" y="137" width="14" height="24.7" fill="#4d4d4d" fill-rule="evenodd" />
105+
106+
<!-- Buttons -->
107+
<g stroke-width="1.24">
108+
<rect x="77.6" y="177" width="11.1" height="9.96" fill="#cecccb" />
109+
<circle cx="83.2" cy="182" r="3.48" fill="#ffdc8e" />
110+
<g fill="#cecccb">
111+
<path d="m80.7 190h-1.34v1.64c0 0.734 0.595 1.33 1.33 1.33h0.0099z" />
112+
<path d="m80.7 175h-1.34v-1.64c0-0.734 0.595-1.33 1.33-1.33h0.0099z" />
113+
<rect x="81" y="190" width="5.23" height="2.59" />
114+
<rect x="81" y="173" width="5.23" height="2.59" />
115+
<path
116+
d="m84.5 175c0.062 0 0.122 0.0248 0.166 0.0682 0.0434 0.0446 0.0682 0.104 0.0682 0.167 0 0.134 0.0533 0.263 0.149 0.358 0.0955 0.0942 0.224 0.148 0.358 0.148h0.0236c0.141 0 0.277-0.0558 0.376-0.155s0.155-0.234 0.155-0.374v-0.564h2.16v3.09h-1.69v0.744h-2.16v-0.392h-1.87v0.392h-2.16v-0.744h-1.69v-3.09h2.16v0.564c0 0.14 0.0558 0.275 0.155 0.374s0.234 0.155 0.376 0.155h0.0236c0.135 0 0.263-0.0533 0.358-0.148 0.0955-0.0955 0.149-0.224 0.149-0.358 0-0.0632 0.0248-0.123 0.0682-0.167 0.0446-0.0434 0.104-0.0682 0.167-0.0682z"
117+
/>
118+
<path
119+
d="m81.8 190c-0.0632 0-0.123-0.0248-0.167-0.0694-0.0434-0.0434-0.0682-0.103-0.0682-0.166 0-0.134-0.0533-0.263-0.149-0.358-0.0955-0.0955-0.223-0.149-0.358-0.149h-0.0236c-0.141 0-0.277 0.0558-0.376 0.156-0.0992 0.0992-0.155 0.234-0.155 0.374v0.564h-2.16v-3.09h1.69v-0.745h2.16v0.393h1.87v-0.393h2.16v0.745h1.69v3.09h-2.16v-0.564c0-0.14-0.0558-0.275-0.155-0.374-0.0992-0.1-0.234-0.156-0.376-0.156h-0.0236c-0.134 0-0.263 0.0533-0.358 0.149s-0.149 0.224-0.149 0.358c0 0.0632-0.0248 0.123-0.0682 0.166-0.0446 0.0446-0.104 0.0694-0.166 0.0694z"
120+
/>
121+
</g>
122+
</g>
123+
<g stroke-width="1.24">
124+
<rect x="17.7" y="177" width="11.1" height="9.96" fill="#cecccb" />
125+
<circle cx="23.3" cy="182" r="3.48" fill="#ffdc8e" />
126+
<g fill="#cecccb">
127+
<path d="m20.8 189h-1.34v1.64c0 0.734 0.595 1.33 1.33 1.33h0.0099z" />
128+
<path d="m20.8 175h-1.34v-1.64c0-0.734 0.595-1.33 1.33-1.33h0.0099z" />
129+
<rect x="21" y="189" width="5.23" height="2.59" />
130+
<rect x="21" y="172" width="5.23" height="2.59" />
131+
<path
132+
d="m24.5 175c0.062 0 0.122 0.0248 0.166 0.0682 0.0434 0.0446 0.0682 0.104 0.0682 0.167 0 0.134 0.0533 0.263 0.149 0.358 0.0955 0.0942 0.224 0.148 0.358 0.148h0.0236c0.141 0 0.277-0.0558 0.376-0.155s0.155-0.234 0.155-0.374v-0.564h2.16v3.09h-1.69v0.744h-2.16v-0.392h-1.87v0.392h-2.16v-0.744h-1.69v-3.09h2.16v0.564c0 0.14 0.0558 0.275 0.155 0.374s0.234 0.155 0.376 0.155h0.0236c0.135 0 0.263-0.0533 0.358-0.148 0.0955-0.0955 0.149-0.224 0.149-0.358 0-0.0632 0.0248-0.123 0.0682-0.167 0.0446-0.0434 0.104-0.0682 0.167-0.0682z"
133+
/>
134+
<path
135+
d="m21.9 189c-0.0632 0-0.123-0.0248-0.167-0.0694-0.0434-0.0434-0.0682-0.103-0.0682-0.166 0-0.134-0.0533-0.263-0.149-0.358-0.0955-0.0955-0.223-0.149-0.358-0.149h-0.0236c-0.141 0-0.277 0.0558-0.376 0.156-0.0992 0.0992-0.155 0.234-0.155 0.374v0.564h-2.16v-3.09h1.69v-0.745h2.16v0.393h1.87v-0.393h2.16v0.745h1.69v3.09h-2.16v-0.564c0-0.14-0.0558-0.275-0.155-0.374-0.0992-0.1-0.234-0.156-0.376-0.156h-0.0236c-0.134 0-0.263 0.0533-0.358 0.149s-0.149 0.224-0.149 0.358c0 0.0632-0.0248 0.123-0.0682 0.166-0.0446 0.0446-0.104 0.0694-0.166 0.0694z"
136+
/>
137+
</g>
138+
</g>
139+
140+
<!-- USB Connection -->
141+
<path
142+
d="m66.4 197 1.06 2.24c0.0651 0.142 0.0731 0.302 0.0207 0.448-0.0525 0.147-0.16 0.266-0.301 0.332-0.14 0.0665-0.302 0.0744-0.448 0.022-0.146-0.0525-0.266-0.16-0.332-0.301l-0.724-1.54-3e-3 0.207c-6e-3 0.488-0.206 0.955-0.556 1.3-0.35 0.342-0.821 0.529-1.31 0.522l-22.2-0.29c-0.489-6e-3 -0.955-0.206-1.3-0.556-0.341-0.35-0.529-0.821-0.522-1.31l3e-3 -0.207-0.764 1.52c-0.0701 0.14-0.192 0.244-0.34 0.292-0.147 0.0486-0.307 0.0365-0.446-0.0336l-1e-3 -1e-5c-0.138-0.0701-0.244-0.192-0.292-0.34-0.0486-0.147-0.0365-0.307 0.0336-0.447l1.11-2.21-0.602-8e-3 0.269-20.6 28.2 0.369-0.269 20.6z"
143+
fill="#cecccb"
144+
stroke-width="1.26"
145+
/>
146+
<path
147+
d="m60.7 177-0.0236 1.8c-7.9e-4 0.0607 0.0301 0.116 0.0802 0.148 0.522 0.329 3.38 2.12 3.38 2.12l-0.0217 1.66-1.74-0.0227-0.0156 1.19-2.63-0.0344 0.0156-1.19-1.66-0.0217 0.0413-3.16c2e-3 -0.136-0.0496-0.265-0.143-0.361-0.0948-0.096-0.223-0.151-0.357-0.152l-1.58-0.0207-0.0172 1.31-6.46-0.0845 0.0172-1.31-1.58-0.0207c-0.134-2e-3 -0.264 0.0496-0.36 0.143-0.0973 0.0936-0.152 0.221-0.154 0.357l-0.0413 3.16-1.66-0.0217-0.0156 1.19-2.63-0.0344 0.0156-1.19-1.74-0.0228 0.0217-1.66s2.91-1.73 3.43-2.03c0.0522-0.0309 0.0833-0.0848 0.0841-0.146l0.0236-1.8z"
148+
fill="#989898"
149+
stroke-width="1.26"
150+
/>
151+
152+
<!-- LEDs -->
153+
<g stroke-width="1.44">
154+
<rect x="35" y="108" width="3.83" height="9.3" fill="#e5e5e5" />
155+
<rect x="35" y="111" width="3.83" height="5.31" fill="#f5ecde" />
156+
${ledPower &&
157+
svg`<circle cx="37" cy="112.5" r="4" fill="red" filter="url(#ledFilter)" />`}
158+
159+
<rect x="69.5" y="108" width="3.83" height="9.3" fill="#e5e5e5" />
160+
<rect x="69.5" y="110" width="3.83" height="5.31" fill="#f5ecde" />
161+
${led1 && svg`<circle cx="71.5" cy="112.5" r="4" fill="blue" filter="url(#ledFilter)" />`}
162+
</g>
163+
164+
<!-- Small Chip-->
165+
<rect
166+
transform="translate(69,137)"
167+
width="13.9"
168+
height="3"
169+
fill="url(#small-pin-pattern)"
170+
></rect>
171+
<rect
172+
transform="translate(82.8,160.5) rotate(180)"
173+
width="13.9"
174+
height="3"
175+
fill="url(#small-pin-pattern)"
176+
></rect>
177+
<rect
178+
transform="translate(87.2,142) rotate(90)"
179+
width="13.9"
180+
height="3"
181+
fill="url(#small-pin-pattern)"
182+
></rect>
183+
<rect
184+
transform="translate(64,155.8) rotate(270)"
185+
width="13.9"
186+
height="3"
187+
fill="url(#small-pin-pattern)"
188+
></rect>
189+
<rect x="66.9" y="140" width="17.4" height="17.4" fill="#333" stroke-width="1.61" />
190+
191+
<!-- Texts -->
192+
<text fill="#ffffff" font-family="sans-serif" font-size="3.72px" transform="rotate(270)">
193+
<tspan x="-162.21" y="12.285">VIN</tspan>
194+
<tspan x="-153.37" y="12.317">GND</tspan>
195+
<tspan x="-143.03" y="12.269">D13</tspan>
196+
<tspan x="-132.81" y="12.130">D12</tspan>
197+
<tspan x="-123.10" y="12.514">D14</tspan>
198+
<tspan x="-113.82" y="12.481">D27</tspan>
199+
<tspan x="-103.55" y="12.580">D26</tspan>
200+
<tspan x="-94.204" y="12.509">D25</tspan>
201+
<tspan x="-84.482" y="12.632">D33</tspan>
202+
<tspan x="-74.139" y="12.294">D32</tspan>
203+
<tspan x="-64.263" y="12.750">D35</tspan>
204+
<tspan x="-54.385" y="12.631">D34</tspan>
205+
<tspan x="-44.529" y="12.468">VN</tspan>
206+
<tspan x="-35.205" y="12.546">VP</tspan>
207+
<tspan x="-25.439" y="12.846">EN</tspan>
208+
<tspan x="-163.01" y="95.712">3V3</tspan>
209+
<tspan x="-153.64" y="95.392">GND</tspan>
210+
<tspan x="-142.86" y="95.431">D15</tspan>
211+
<tspan x="-131.36" y="95.296">D2</tspan>
212+
<tspan x="-122.53" y="95.505">D4</tspan>
213+
<tspan x="-114.75" y="95.613">RX2</tspan>
214+
<tspan x="-104.84" y="95.442">TX2</tspan>
215+
<tspan x="-93.899" y="95.430">D5</tspan>
216+
<tspan x="-85.460" y="95.585">D18</tspan>
217+
<tspan x="-75.415" y="95.747">D19</tspan>
218+
<tspan x="-65.796" y="95.687">D21</tspan>
219+
<tspan x="-55.802" y="95.818">RX0</tspan>
220+
<tspan x="-45.850" y="95.613">TX0</tspan>
221+
<tspan x="-36.582" y="96.012">D22</tspan>
222+
<tspan x="-26.250" y="95.903">D23</tspan>
223+
</text>
224+
<text x="30" y="59" fill="#cecccb" font-family="sans-serif" font-size="15px">ESP32</text>
225+
226+
<!-- Antenna -->
227+
<path
228+
d="m24.3 22.1v-18.8h8v11.5h10.2v-11h8.5v10.5h10v-10.5h17.8v20.2"
229+
fill="none"
230+
stroke="#4f4c48"
231+
stroke-width="1px"
232+
/>
233+
<path d="m69.7 4.16v19.5" fill="none" stroke="#4f4c48" stroke-width="1px" />
234+
</svg>
235+
`;
236+
}
237+
}

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@ export { NanoRP2040ConnectElement } from './nano-rp2040-connect-element';
3939
export { SmallSoundSensorElement } from './small-sound-sensor-element';
4040
export { BigSoundSensorElement } from './big-sound-sensor-element';
4141
export { MPU6050Element } from './mpu6050-element';
42+
export { ESP32DevkitV1Element } from './esp32-devkit-v1-element';

src/react-types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import { NanoRP2040ConnectElement } from './nano-rp2040-connect-element';
3838
import { SmallSoundSensorElement } from './small-sound-sensor-element';
3939
import { BigSoundSensorElement } from './big-sound-sensor-element';
4040
import { MPU6050Element } from './mpu6050-element';
41+
import { ESP32DevkitV1Element } from './esp32-devkit-v1-element';
4142

4243
type WokwiElement<T> = Partial<T> & React.ClassAttributes<T>;
4344

@@ -81,6 +82,7 @@ declare global {
8182
'wokwi-small-sound-sensor': WokwiElement<SmallSoundSensorElement>;
8283
'wokwi-big-sound-sensor': WokwiElement<BigSoundSensorElement>;
8384
'wokwi-mpu6050': WokwiElement<MPU6050Element>;
85+
'wokwi-esp32-devkit-v1': WokwiElement<ESP32DevkitV1Element>;
8486
}
8587
}
8688
}

0 commit comments

Comments
 (0)