Zworki w IMZ ESP32-S3
IMZ ESP32-S3: do czego służą zworki USB-OTG, USB_JTAG i IN-OUT (krok po kroku)
ESP32-S3 to układ, który daje sporo możliwości już „na starcie”, ale wiele z nich zależy od drobnych decyzji sprzętowych na samej płytce. Jedną z takich decyzji są zworki konfiguracyjne – małe elementy, które w praktyce decydują o tym, jak zachowa się USB, czy korzystasz z wbudowanego JTAG-a, oraz w jakim kierunku pracują linie zasilania.
Na płytce IMZ ESP32-S3 zastosowano trzy kluczowe zworki: USB-OTG, USB_JTAG oraz IN-OUT. Każda z nich odpowiada za inny aspekt pracy układu i każda może oszczędzić (albo zabrać) sporo czasu podczas uruchamiania projektu, debugowania czy integracji z innymi modułami.
W tym wpisie pokazuję:
- do czego dokładnie służy każda zworka,
- w jakich scenariuszach warto ją przestawić, a kiedy lepiej zostawić domyślne ustawienie,
- jakie są typowe błędy (np. „ESP32 nie jest widoczne po USB” albo „JTAG nie działa, mimo że jest w układzie”).
Jeżeli używasz ESP32-S3 do programowania po USB, debugowania bez zewnętrznego konwertera albo budujesz urządzenie, które ma działać jako USB device lub host, te trzy zworki są absolutnie kluczowe.
Po co w ogóle są zworki na płytce IMZ ESP32-S3
Idea zworek jako elementu konfiguracyjnego
Zworki na płytce IMZ ESP32-S3 pełnią rolę sprzętowych przełączników konfiguracji. Zamiast narzucać jedno, „jedyne słuszne” zachowanie płytki, pozwalają zdecydować jak dany fragment układu ma pracować – jeszcze zanim uruchomi się firmware.
To podejście jest szczególnie sensowne w ESP32-S3, gdzie:
- te same piny mogą pełnić kilka funkcji,
- interfejs USB może pracować w różnych trybach,
- część funkcji (np. JTAG) wchodzi w konflikt z innymi.
Zworka daje wybór sprzętowy, niezależny od kodu i narzędzi programistycznych.
Od strony elektrycznej zworka to nic magicznego:
- zamknięta zworka → dwa pola lutownicze są zwarte, ścieżki są połączone,
- otwarta zworka → połączenia nie ma, sygnał „idzie inną drogą” albo wcale.
W praktyce może to oznaczać:
- podłączenie pinu ESP32-S3 do konkretnego sygnału,
- wybór źródła lub kierunku sygnału,
- przełączenie linii USB pomiędzy różnymi blokami wewnętrznymi układu,
- odłączenie jednej funkcji na rzecz innej.
To realna zmiana topologii połączeń na PCB, a nie tylko ustawienie w rejestrze.
Zworka USB-OTG – tryb urządzenia vs hosta
Czym jest USB-OTG w ESP32-S3
ESP32-S3 posiada sprzętowy kontroler USB OTG, który pozwala układowi pracować w dwóch rolach:
- USB device – ESP32-S3 jest urządzeniem widzianym przez komputer
- USB host – ESP32-S3 działa jako host dla innych urządzeń USB
Ważne jest to, że wybór roli USB w ESP32-S3 nie jest wyłącznie decyzją programową. USB wymaga poprawnej konfiguracji linii D+ / D− oraz zasilania VBUS, co w praktyce oznacza konkretne połączenia sprzętowe na płytce.
Co wybiera zworka USB-OTG na płytce IMZ ESP32-S3
Zworka USB-OTG na płytce IMZ ESP32-S3 decyduje o tym, w jakim trybie sprzętowo skonfigurowany jest interfejs USB:
- czy ESP32-S3 oczekuje zasilania VBUS z zewnątrz (tryb device),
- czy sam wystawia zasilanie VBUS na złącze USB (tryb host),
- do którego bloku wewnętrznego układu trafiają linie USB.
Zmiana położenia tej zworki fizycznie przełącza połączenia na PCB. Firmware może działać poprawnie tylko wtedy, gdy jest zgodny z aktualnym ustawieniem sprzętowym.
Typowe zastosowania
Programowanie i komunikacja po USB
Najczęstszy scenariusz:
- wgrywanie firmware,
- port szeregowy USB-CDC,
- logi i debug przez Serial Monitor.
W tym trybie ESP32-S3 działa jako USB device, a komputer jest hostem.
HID, CDC, MSC
Tryb device pozwala ESP32-S3 zachowywać się jak:
- HID – klawiatura, mysz, kontroler
- CDC – wirtualny port szeregowy
- MSC – pamięć masowa (pendrive)
To nadal jest tryb USB device, tylko z inną klasą urządzenia po stronie firmware.
Opis działania zworki USB-OTG na schemacie
Na załączonym schemacie widać fragment układu zasilania i interfejsu USB, w którym kluczowym elementem konfiguracyjnym jest zworka USB-OTG.

Zworka USB-OTG rozłączona (ustawienie domyślne)
Gdy zworka USB-OTG nie jest zwarta, linia VBUS z gniazda USB-C zasila płytkę deweloperską jednokierunkowo – prąd płynie z portu USB (np. komputera) przez diodę do reszty układu.
Dioda pełni tutaj rolę zabezpieczenia:
- blokuje przepływ prądu wstecznego,
- chroni port USB komputera,
- zabezpiecza przed sytuacją, w której do płytki podłączone byłoby dodatkowe źródło zasilania (np. VIN lub inny port USB).
W tym trybie:
- ESP32-S3 działa jako USB device,
- port USB służy do programowania i komunikacji,
- płytka nie zasila urządzeń podłączonych do złącza USB.
Zworka USB-OTG zwarta (tryb host)
Jeżeli celem jest zasilanie urządzenia podłączonego do portu USB (np. pendrive’a, klawiatury lub innego peryferium USB), należy zlutować zworkę USB-OTG.
Zwarcie zworki powoduje obejście diody, dzięki czemu:
- linia VBUS staje się dwukierunkowa,
- prąd może płynąć od strony płytki do złącza USB.
W takim układzie:
- cała płytka musi być zasilana z innego źródła (np. drugi port USB lub pin VIN),
- port USB objęty zworką służy wyłącznie do zasilania urządzeń zewnętrznych,
- ESP32-S3 może pracować jako USB host.
Uwaga praktyczna
Zwarcie zworki USB-OTG bez zapewnienia alternatywnego źródła zasilania może prowadzić do niestabilnej pracy układu lub przeciążenia portu. W trybie hosta należy zawsze świadomie zaplanować sposób zasilania całego systemu.
Kiedy nie ruszać zworki USB-OTG
Nieprawidłowe ustawienie zworki USB-OTG może prowadzić do problemów sprzętowych:
- zwarcie dwóch źródeł zasilania VBUS (komputer ↔ płytka),
- niestabilną pracę USB,
- brak wykrywania urządzenia przez system,
- problemy trudne do zdiagnozowania programowo.
Jeżeli:
- programujesz ESP32-S3 z komputera,
- używasz USB-CDC lub USB-JTAG,
- nie korzystasz z funkcji hosta,
zworka USB-OTG powinna pozostać w ustawieniu domyślnym (tryb device).
Tryb hosta ma sens tylko wtedy, gdy faktycznie podłączasz do ESP32-S3 inne urządzenia USB i wiesz, że to on ma być hostem.
Zworka USB_JTAG – konfiguracja GPIO3 na poziomie schematu
Opis działania zworki USB_JTAG na schemacie
Na schemacie widać prosty, ale bardzo istotny fragment układu związany z pinem GPIO3 oraz zworką USB_JTAG.
Linia GPIO3jest sprzętowo podciągnięta do VDD33 przez rezystor R11 (10 kΩ) oraz zworkę USB_JTAG.
Co się dzieje podczas startu ESP32-S3 (GPIO3)
GPIO3 jest strap pinem (czyli pinem konfiguracyjnym) którego stan logiczny jest sprawdzany przez bootloader wyłącznie w momencie startu układu. W zależności od jego stanu (0 czy 1) bootloader wie jak się zachować.
GPIO3 = 3.3 V przy starcie (logiczna „1”)
- bootloader wybiera standardowy tryb startu,
- USB może pracować w trybie device,
- możliwe jest standardowe programowanie przez USB,
- zachowanie układu jest przewidywalne i stabilne.
To jest ustawienie domyślne i zalecane.
GPIO3 = 0 V przy starcie (logiczne „0”)
- bootloader wybiera alternatywny tryb startowy,
- standardowy tryb programowania przez USB zostaje wyłączony,
- ESP32-S3 nie zgłasza się poprawnie jako urządzenie USB,
- automatyczne wgrywanie firmware przestaje działać.
- GPIO3 może być używane jako zwykłe GPIO.
- tworzysz urządzenie końcowe.
Ten stan jest przeznaczony wyłącznie do specjalnych, niestandardowych zastosowań i nie powinien występować przypadkowo.
Zworka IN-OUT – włączenie wyjścia 5V na pinie VIN
Zworka IN-OUT odpowiada za połączenie linii 5V z pinem VIN złącza goldpin.
Jej jedyną rolą jest świadome włączenie możliwości podawania 5V na zewnątrz płytki.

Ustawienie domyślne – zworka IN-OUT rozłączona
Gdy zworka IN-OUT nie jest zwarta:
- pin VIN działa wyłącznie jako wejście zasilania,
- 5V z płytki nie jest wyprowadzane na złącze,
- nie ma możliwości przypadkowego podania napięcia 5V na inne układy.
To ustawienie:
- chroni płytkę przed zwarciami,
- zapobiega błędom podczas prototypowania,
- jest bezpieczne przy podłączaniu zewnętrznych modułów.
Zworka IN-OUT zwarta – aktywne wyjście 5V
Po zwarciu (zlutowaniu) zworki IN-OUT:
- linia 5V zostaje połączona z pinem VIN,
- pin VIN staje się wyjściem napięcia 5V,
- możliwe jest zasilanie zewnętrznych układów bezpośrednio z płytki.
W tym trybie:
- VIN przestaje być „tylko wejściem”,
- użytkownik bierze pełną odpowiedzialność za to, co jest podłączone do pinu.
Dlaczego domyślnie VIN nie jest wyjściem
W wielu płytkach developerskich VIN bywa na stałe połączony z 5V, co często prowadzi do problemów:
- zwarcie dwóch źródeł zasilania,
- uszkodzenie portu USB lub przetwornicy,
- trudne do zdiagnozowania awarie.
Zworka IN-OUT eliminuje te problemy, ponieważ:
- wyjście 5V trzeba świadomie włączyć,
- nie da się zrobić tego przypadkowo.
Pobieranie zasilania 5V z płytki
Aby umożliwić pobieranie prądu z płytki IMZ ESP32-S3 należy zlutować zworki IN-OUT oraz USB-OTG. Umożliwi to przepływ prądu pomiędzy złączem USB2 i pinem Vin omijając zastosowane tam diody.
Uwaga! Należy upewnić się, że wiemy co robimy. Również prądy pobierane z płytki IMZ ESP32-S3 muszą być niewielkie/ograniczone. W innym przypadku grozi to uszkodzeniem płytki lub podłączonych urządzeń.
⚠️ Uwaga techniczna Po obejściu diod zabezpieczających tor 5V nie jest ograniczany ani zabezpieczony przed przeciążeniem. Konfiguracja ta wymaga świadomego doboru obciążenia i kontroli napięcia. Wszelkie eksperymenty z poborem prądu wykonywane są na własną odpowiedzialność.
Wniosek praktyczny
- Nie potrzebujesz 5V na złączu? → zworka IN-OUT rozłączona
- Chcesz zasilać zewnętrzny moduł z płytki? → zworka IN-OUT zwarta, ale świadomie
Zworka IN-OUT to zabezpieczenie przed błędami, a nie ograniczenie funkcjonalności.
Zworka RGB – podłączenie diody RGB do GPIO48
Zworka RGB odpowiada za połączenie pinu GPIO48 z linią sterującą diody RGB zamontowanej na płytce.
Jest to typowa zworka „funkcja vs wolny pin”.

Ustawienie domyślne – zworka RGB zwarta
Gdy zworka RGB jest zwarta:
- pin GPIO48 jest połączony z wejściem sterującym diody RGB,
- możliwa jest bezpośrednia obsługa diody z poziomu firmware,
- dioda może być używana jako:
- sygnalizacja stanu,
- test poprawności działania programu,
- debug wizualny.
To ustawienie jest wygodne na etapie:
- nauki,
- testów,
- prototypowania.
Zworka RGB rozłączona – wolny GPIO48
Po rozłączeniu (rozlutowaniu) zworki RGB:
- dioda RGB zostaje całkowicie odłączona od GPIO48,
- pin GPIO48 zostaje zwolniony,
- GPIO48 może być używany jako zwykły pin wejścia/wyjścia.
W tym trybie:
- dioda nie wpływa na stan pinu,
- nie występuje dodatkowe obciążenie linii,
- pin nadaje się do innych funkcji aplikacyjnych.
Wniosek praktyczny
- Chcesz korzystać z diody RGB? → zworka RGB zwarta
- Potrzebujesz dodatkowego GPIO? → zworka RGB rozłączona
Zworka RGB pozwala wybrać między wygodą a maksymalną elastycznością sprzętową.
Zasilanie 5V na płytce IMZ ESP32-S3
Płytka deweloperska IMZ ESP32-S3 jest przystosowana do zasilania napięciem 5V, które może być podane na jedno z trzech wejść:
- USB1
- USB2
- VIN
Na płytce nie ma stabilizatora 5V. Wszystkie te wejścia trafiają na wspólną szynę 5V, z której następnie zasilany jest stabilizator 3.3V odpowiedzialny za zasilanie ESP32-S3 i pozostałych układów logicznych.
Dioda na linii 5V
Zasilanie z każdego wejścia przechodzi przez własną diodę zabezpieczającą, która:
- chroni port USB przed prądami wstecznymi,
- zapobiega zwarciu kilku źródeł zasilania.
Skutkiem zastosowania diody jest niewielki spadek napięcia – napięcie 5V z USB po przejściu przez diodę jest nieco niższe (rzędu 0.2–0.4 V).
Stabilizator 3.3V
Ze wspólnej szyny 5V zasilany jest stabilizator 3.3V (LDO), który:
- zasila ESP32-S3,
- zasila logikę i peryferia 3.3V.
Jest to jedyny stabilizator napięcia na płytce.
Uwagi praktyczne dotyczące napięcia wejściowego
Płytkę można zasilać napięciem nieco wyższym niż 5V, jednak:
- zwiększa to straty mocy na stabilizatorze 3.3V,
- powoduje jego nagrzewanie,
- może pogorszyć stabilność zasilania przy większym poborze prądu.
Dodatkowo interfejs USB w ESP32-S3 oczekuje napięcia VBUS zbliżonego do 5V, dlatego zasilanie znacząco wyższym napięciem nie jest zalecane.
Najlepszym i najbezpieczniejszym wyborem jest stabilne napięcie około 5V.
Tabela zbiorcza zworek
| Zworka | Domyślnie | Po co jest | Kiedy zmieniać |
|---|---|---|---|
| USB-OTG | OFF | Wybór kierunku zasilania USB | Gdy ESP32 ma zasilać urządzenia USB |
| USB_JTAG | ON | Poprawny start i programowanie USB | Tylko w specjalnych konfiguracjach |
| IN-OUT | OFF | Ochrona przed wyjściem 5V na VIN | Gdy chcesz zasilać coś z VIN |
| RGB | ON | Obsługa diody RGB na GPIO48 | Gdy potrzebujesz wolnego GPIO48 |
Wniosek praktyczny
Jeżeli:
- programujesz,
- debugujesz,
- uczysz się ESP32-S3,
nie musisz ruszać żadnej zworki poza USB_JTAG (zostaje zwarta).
Pozostałe zworki są po to, aby świadomie rozszerzyć funkcjonalność płytki, a nie po to, aby komplikować start.
Na koniec – kilka słów zdrowego rozsądku
Opisane w tym wpisie konfiguracje i kombinacje zworek pokazują możliwości płytki IMZ ESP32-S3, ale nie zastępują świadomego projektowania układu zasilania i połączeń.
Zmiana zworek wpływa bezpośrednio na połączenia sprzętowe, kierunek przepływu prądu i sposób pracy interfejsów. Dlatego każdą niestandardową konfigurację warto:
- przemyśleć,
- sprawdzić napięcia i prądy,
- oraz traktować jako eksperyment wykonywany na własną odpowiedzialność.
Wpis ma charakter technicznego przewodnika i dokumentacji, a nie gotowej recepty na każdy możliwy scenariusz.
