# Schema elettrico dettagliato EL-01

EL-01: proposta dettagliata di riferimento, non montata e non validata con ERC/SPICE o prove hardware. Ipotesi: ESP32 classica WROOM, RGB analogica 12V a comune positivo; ventola con ingresso PWM e tach open collector da confermare. Non applicabile automaticamente alla SUNON A99 della simulazione.

La proposta completa i blocchi del CAD, senza trasformare le schede indicative in PCB sbrogliati. Le scelte di riferimento qui sotto sono proposte, non acquisti approvati.

[PDF vettoriale](elettrico/schema-elettrico.pdf) · [Tavole navigabili](schema-elettrico.html) · [Netlist](elettrico/netlist.json).

## GPIO

| GPIO | Rete | Direzione | Funzione |
|---|---|---|---|
| 16 | PWM_R | OUT | RGB rosso |
| 17 | PWM_G | OUT | RGB verde |
| 18 | PWM_B | OUT | RGB blu |
| 19 | FAN_CTL | OUT | Ventola: PWM invertito sul transistor |
| 23 | BUZZ_CTL | OUT | Toni del trasduttore magnetico |
| 21 | SDA_3V3 | IO | I2C SDA |
| 22 | SCL_3V3 | IO | I2C SCL |
| 35 | GOAL_A | IN | Barriera porta A |
| 39 | GOAL_B | IN | Barriera porta B |
| 34 | FAN_TACH_IN | IN | Tachimetria opzionale |
| 36 | AIR_ADC | IN | Potenziometro ADC1_CH0 |
| 13 | KEY_A_PLUS | IN | Punteggio A + |
| 14 | KEY_A_MINUS | IN | Punteggio A - |
| 25 | KEY_B_PLUS | IN | Punteggio B + |
| 26 | KEY_B_MINUS | IN | Punteggio B - |
| 27 | KEY_START | IN | Avvio partita |
| 32 | KEY_MUTE | IN | Suoni on/off |

## Collegamenti esatti dei componenti

Le reti con lo stesso nome sono collegate elettricamente fra loro. NC significa non collegato. I numeri dei connettori sono quelli del nostro cablaggio; non sostituiscono il pinout del produttore.

### U1 — ESP32-DevKitC V4 / WROOM-32, 1 MCU

**5V** → `+5V`; **3V3** → `+3V3`; **GND** → `GND`; **GPIO16** → `PWM_R`; **GPIO17** → `PWM_G`; **GPIO18** → `PWM_B`; **GPIO19** → `FAN_CTL`; **GPIO23** → `BUZZ_CTL`; **GPIO21** → `SDA_3V3`; **GPIO22** → `SCL_3V3`; **GPIO35** → `GOAL_A`; **GPIO39** → `GOAL_B`; **GPIO34** → `FAN_TACH_IN`; **GPIO36** → `AIR_ADC`; **GPIO13** → `KEY_A_PLUS`; **GPIO14** → `KEY_A_MINUS`; **GPIO25** → `KEY_B_PLUS`; **GPIO26** → `KEY_B_MINUS`; **GPIO27** → `KEY_START`; **GPIO32** → `KEY_MUTE`.

Pin per etichetta GPIO, non numero di posizione del connettore. Non compatibile automaticamente con S3/C3/WROVER.

### JDC — presa DC da pannello, 12V; >=5A da verificare

**CENTRO** → `+12_IN`; **ESTERNO** → `GND`.

Contatto commutato eventuale: NC. Polarita da verificare sul pezzo.

### F1 — fusibile, T5A*

**1** → `+12_IN`; **2** → `+12_BUS`.

*Valore preliminare per lo scenario della tavola 1; verificare spunto, curve e cavi.

### F2 — fusibile, T2.5A*

**1** → `+12_BUS`; **2** → `+12_FAN`.

*Valore preliminare per lo scenario della tavola 1; verificare spunto, curve e cavi.

### F3 — fusibile, T2.5A*

**1** → `+12_BUS`; **2** → `+12_RGB`.

*Valore preliminare per lo scenario della tavola 1; verificare spunto, curve e cavi.

### F4 — fusibile, T1A*

**1** → `+12_BUS`; **2** → `+12_BUCK`.

*Valore preliminare per lo scenario della tavola 1; verificare spunto, curve e cavi.

### U2 — modulo buck 12V -> 5V, 5V >=2A nominali

**VIN** → `+12_BUCK`; **GND** → `GND`; **VOUT** → `+5V`.

Modulo completo; verificare corrente continua e stabilita con i condensatori previsti. Nessun collegamento 12V al pin 5V ESP32.

### C1 — condensatore, 470uF / 25V

**1** → `+12_BUS`; **2** → `GND`.



### C2 — condensatore, 100nF / 50V

**1** → `+12_BUS`; **2** → `GND`.



### C3 — condensatore, 470uF / 10V

**1** → `+5V`; **2** → `GND`.



### C4 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



### Q1 — AO3400A, N-MOS 30V

**1** → `GATE_R`; **2** → `GND`; **3** → `RGB_R`.



### RG1 — resistenza, 100R

**1** → `PWM_R`; **2** → `GATE_R`.



### RPD1 — resistenza, 100k

**1** → `GATE_R`; **2** → `GND`.



### Q2 — AO3400A, N-MOS 30V

**1** → `GATE_G`; **2** → `GND`; **3** → `RGB_G`.



### RG2 — resistenza, 100R

**1** → `PWM_G`; **2** → `GATE_G`.



### RPD2 — resistenza, 100k

**1** → `GATE_G`; **2** → `GND`.



### Q3 — AO3400A, N-MOS 30V

**1** → `GATE_B`; **2** → `GND`; **3** → `RGB_B`.



### RG3 — resistenza, 100R

**1** → `PWM_B`; **2** → `GATE_B`.



### RPD3 — resistenza, 100k

**1** → `GATE_B`; **2** → `GND`.



### JRGB1 — connettore RGB 4 poli, 1 per striscia

**1** → `+12_RGB`; **2** → `RGB_R`; **3** → `RGB_G`; **4** → `RGB_B`.

Numerazione del cablaggio di progetto; verificare serigrafia della propria striscia. Solo analogica a comune positivo 12V.

### JRGB2 — connettore RGB 4 poli, 1 per striscia

**1** → `+12_RGB`; **2** → `RGB_R`; **3** → `RGB_G`; **4** → `RGB_B`.

Numerazione del cablaggio di progetto; verificare serigrafia della propria striscia. Solo analogica a comune positivo 12V.

### Q5 — 2N3904 onsemi TO-92, NPN

**1** → `GND`; **2** → `FAN_BASE`; **3** → `FAN_PWM`.



### R20 — resistenza, 2.2k

**1** → `FAN_CTL`; **2** → `FAN_BASE`.



### R21 — resistenza, 100k

**1** → `FAN_BASE`; **2** → `GND`.



### R22 — resistenza, 10k

**1** → `+3V3`; **2** → `FAN_TACH`.



### R23 — resistenza, 1k

**1** → `FAN_TACH`; **2** → `FAN_TACH_IN`.



### C22 — condensatore, 10nF

**1** → `FAN_TACH_IN`; **2** → `GND`.



### JFAN — connettore cablaggio 4 poli, condizionato

**1** → `GND`; **2** → `+12_FAN`; **3** → `FAN_TACH`; **4** → `FAN_PWM`.

Questo e il nostro ordine logico. Non assegna i pin della soffiante commerciale. Usare solo se PWM e tach sono compatibili con lo schema.

### JIRA_TX — connettore 2 poli, emettitore IR

**1** → `+5V`; **2** → `GND`.

Sensore completo con limitazione LED integrata; un LED IR nudo richiede un circuito diverso.

### JIRA_RX — connettore 3 poli, ricevitore IR open collector

**1** → `+5V`; **2** → `GND`; **3** → `IR_A_RAW`.



### R30 — resistenza, 10k

**1** → `+3V3`; **2** → `IR_A_RAW`.



### R32 — resistenza, 1k

**1** → `IR_A_RAW`; **2** → `GOAL_A`.



### C30 — condensatore, 10nF

**1** → `GOAL_A`; **2** → `GND`.



### C34 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



### C36 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



### JIRB_TX — connettore 2 poli, emettitore IR

**1** → `+5V`; **2** → `GND`.

Sensore completo con limitazione LED integrata; un LED IR nudo richiede un circuito diverso.

### JIRB_RX — connettore 3 poli, ricevitore IR open collector

**1** → `+5V`; **2** → `GND`; **3** → `IR_B_RAW`.



### R31 — resistenza, 10k

**1** → `+3V3`; **2** → `IR_B_RAW`.



### R33 — resistenza, 1k

**1** → `IR_B_RAW`; **2** → `GOAL_B`.



### C31 — condensatore, 10nF

**1** → `GOAL_B`; **2** → `GND`.



### C35 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



### C37 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



### R40 — resistenza, 10k

**1** → `+3V3`; **2** → `BTN_A_PLUS`.



### R46 — resistenza, 1k

**1** → `BTN_A_PLUS`; **2** → `KEY_A_PLUS`.



### C40 — condensatore, 100nF

**1** → `BTN_A_PLUS`; **2** → `GND`.



### SW1 — pulsante NO, momentaneo

**1** → `BTN_A_PLUS`; **2** → `GND`.



### R41 — resistenza, 10k

**1** → `+3V3`; **2** → `BTN_A_MINUS`.



### R47 — resistenza, 1k

**1** → `BTN_A_MINUS`; **2** → `KEY_A_MINUS`.



### C41 — condensatore, 100nF

**1** → `BTN_A_MINUS`; **2** → `GND`.



### SW2 — pulsante NO, momentaneo

**1** → `BTN_A_MINUS`; **2** → `GND`.



### R42 — resistenza, 10k

**1** → `+3V3`; **2** → `BTN_B_PLUS`.



### R48 — resistenza, 1k

**1** → `BTN_B_PLUS`; **2** → `KEY_B_PLUS`.



### C42 — condensatore, 100nF

**1** → `BTN_B_PLUS`; **2** → `GND`.



### SW3 — pulsante NO, momentaneo

**1** → `BTN_B_PLUS`; **2** → `GND`.



### R43 — resistenza, 10k

**1** → `+3V3`; **2** → `BTN_B_MINUS`.



### R49 — resistenza, 1k

**1** → `BTN_B_MINUS`; **2** → `KEY_B_MINUS`.



### C43 — condensatore, 100nF

**1** → `BTN_B_MINUS`; **2** → `GND`.



### SW4 — pulsante NO, momentaneo

**1** → `BTN_B_MINUS`; **2** → `GND`.



### R44 — resistenza, 10k

**1** → `+3V3`; **2** → `BTN_START`.



### R50 — resistenza, 1k

**1** → `BTN_START`; **2** → `KEY_START`.



### C44 — condensatore, 100nF

**1** → `BTN_START`; **2** → `GND`.



### SW5 — pulsante NO, momentaneo

**1** → `BTN_START`; **2** → `GND`.



### R45 — resistenza, 10k

**1** → `+3V3`; **2** → `BTN_MUTE`.



### R51 — resistenza, 1k

**1** → `BTN_MUTE`; **2** → `KEY_MUTE`.



### C45 — condensatore, 100nF

**1** → `BTN_MUTE`; **2** → `GND`.



### SW6 — pulsante NO, momentaneo

**1** → `BTN_MUTE`; **2** → `GND`.



### JKEY — connettore 7 poli, sei pulsanti + massa

**1** → `GND`; **2** → `BTN_A_PLUS`; **3** → `BTN_A_MINUS`; **4** → `BTN_B_PLUS`; **5** → `BTN_B_MINUS`; **6** → `BTN_START`; **7** → `BTN_MUTE`.



### RV1 — potenziometro lineare, 10k

**ALTO** → `+3V3`; **CURSORE** → `AIR_WIPER`; **BASSO** → `GND`.



### JPOT — connettore 3 poli, potenziometro

**1** → `+3V3`; **2** → `AIR_WIPER`; **3** → `GND`.



### R60 — resistenza, 1k

**1** → `AIR_WIPER`; **2** → `AIR_ADC`.



### R61 — resistenza, 1M

**1** → `AIR_ADC`; **2** → `GND`.



### C60 — condensatore, 100nF

**1** → `AIR_ADC`; **2** → `GND`.



### Q6 — BSS138, level shifter I2C

**1** → `+3V3`; **2** → `SDA_3V3`; **3** → `SDA_5V`.



### Q7 — BSS138, level shifter I2C

**1** → `+3V3`; **2** → `SCL_3V3`; **3** → `SCL_5V`.



### R70 — resistenza, 4.7k

**1** → `+3V3`; **2** → `SDA_3V3`.



### R71 — resistenza, 4.7k

**1** → `+3V3`; **2** → `SCL_3V3`.



### R72 — resistenza, 4.7k

**1** → `+5V`; **2** → `SDA_5V`.



### R73 — resistenza, 4.7k

**1** → `+5V`; **2** → `SCL_5V`.



### JDISP — connettore 4 poli, I2C lato 5V

**1** → `+5V`; **2** → `GND`; **3** → `SDA_5V`; **4** → `SCL_5V`.



### U3 — HT16K33 breakout Adafruit 1427 o equivalente documentato, I2C 0x70

**VDD** → `+5V`; **VSS** → `GND`; **SDA** → `SDA_5V`; **SCL** → `SCL_5V`; **ROW0** → `ROW0`; **ROW1** → `ROW1`; **ROW2** → `ROW2`; **ROW3** → `ROW3`; **ROW4** → `ROW4`; **ROW5** → `ROW5`; **ROW6** → `ROW6`; **COM0** → `COM0`; **COM1** → `COM1`.

ROW7..15 e COM2..7 non connessi. Ponti indirizzo lasciati aperti. Il breakout contiene il driver, non cifre gia montate.

### R80 — resistenza, 220R

**1** → `ROW0`; **2** → `SEG_a`.



### R81 — resistenza, 220R

**1** → `ROW1`; **2** → `SEG_b`.



### R82 — resistenza, 220R

**1** → `ROW2`; **2** → `SEG_c`.



### R83 — resistenza, 220R

**1** → `ROW3`; **2** → `SEG_d`.



### R84 — resistenza, 220R

**1** → `ROW4`; **2** → `SEG_e`.



### R85 — resistenza, 220R

**1** → `ROW5`; **2** → `SEG_f`.



### R86 — resistenza, 220R

**1** → `ROW6`; **2** → `SEG_g`.



### DS1 — Kingbright SC56-11EWA, rosso, catodo comune

**7** → `SEG_a`; **6** → `SEG_b`; **4** → `SEG_c`; **2** → `SEG_d`; **1** → `SEG_e`; **9** → `SEG_f`; **10** → `SEG_g`; **3** → `COM0`; **8** → `COM0`; **5** → `NC`.

Due cifre fisiche; rosso e riferimento elettrico proposto, il ciano nel CAD resta illustrativo. Non usare display ad anodo comune con questo schema.

### DS2 — Kingbright SC56-11EWA, rosso, catodo comune

**7** → `SEG_a`; **6** → `SEG_b`; **4** → `SEG_c`; **2** → `SEG_d`; **1** → `SEG_e`; **9** → `SEG_f`; **10** → `SEG_g`; **3** → `COM1`; **8** → `COM1`; **5** → `NC`.

Due cifre fisiche; rosso e riferimento elettrico proposto, il ciano nel CAD resta illustrativo. Non usare display ad anodo comune con questo schema.

### C70 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



### C71 — condensatore, 47uF / 10V

**1** → `+5V`; **2** → `GND`.



### Q4 — AO3400A, N-MOS 30V

**1** → `GATE_BUZZ`; **2** → `GND`; **3** → `BUZZ_NEG`.



### RG4 — resistenza, 100R

**1** → `BUZZ_CTL`; **2** → `GATE_BUZZ`.



### RPD4 — resistenza, 100k

**1** → `GATE_BUZZ`; **2** → `GND`.



### BZ1 — trasduttore magnetico passivo 5V, <=100mA; da selezionare

**POS** → `+5V`; **NEG** → `BUZZ_NEG`.

Richiede onda audio, non buzzer attivo. Non sostituire con piezo senza adattare il driver.

### D1 — SS14, diodo ricircolo

**A** → `BUZZ_NEG`; **K** → `+5V`.



### JBUZZ — connettore 2 poli, suono

**1** → `+5V`; **2** → `BUZZ_NEG`.



### C90 — condensatore, 100nF / 16V

**1** → `+5V`; **2** → `GND`.



## Ipotesi, dimensionamento e comportamento

- Compatibilita: ESP32 classica WROOM. La scheda effettivamente posseduta non e stata identificata. GPIO16/17 possono essere occupati sulla WROVER; C3/S3 richiedono una mappa diversa.
- Alimentazione di progetto condizionata: 12V, RGB <=2A totali, soffiante <=1.6A, ramo 5V <=1A. F1 T5A, F2/F3 T2.5A e F4 T1A sono valori di partenza, non approvati per un carico ancora sconosciuto. Presa e cablaggio principale devono reggere almeno la corrente nominale del sistema, con margine. Non inserire un jack generico non qualificato per la corrente.
- U2 e un modulo buck completo 5V con capacita nominale di almeno 2A, da verificare a 1A continuo nel vano; la sua piedinatura e per etichetta VIN/GND/VOUT. Regolarlo e misurarlo senza ESP32 collegata. Non si fornisce qui lo sbroglio del regolatore switching.
- Il +5V entra nel pin 5V della DevKit; il pin 3V3 e la sorgente della logica a 3.3V. Non collegare il +12V alla DevKit. Per USB, togliere l’alimentazione esterna alla DevKit prima di inserire una normale USB; usare altrimenti un’interfaccia con alimentazione isolata e verificata. Non assumere che un cavo USB con VBUS interrotto mantenga operativo il convertitore seriale della propria scheda.
- Fili di riferimento per tratte interne corte: 0.75 mm2 ingresso/massa comune, 0.5 mm2 rami fan/RGB, 0.14–0.22 mm2 segnali. Sono proposte per lo scenario indicato, da verificare con corrente reale, posa, fusibili e morsetti. Masse dei carichi ritornano alla distribuzione, non attraverso la DevKit; tutte le masse di segnale restano comuni.
- RGB: AO3400A ha Rds(on) specificata anche a Vgs 2.5V; a 3.3V e adatto come candidato, ma servono verifica termica del PCB e corrente per canale. A 1A e Rds 48mOhm, la sola perdita statica e circa 0.048W, esclusi riscaldamento e commutazione. La soglia Vgs(th) da sola non dimensiona un MOSFET. Applicare lo schema solo a strisce 12V a comune positivo.
- I2C: BSS138 gate=+3V3, source=lato 3.3V, drain=lato 5V. Una sola rete di pull-up effettiva per lato, obiettivo 4.7kOhm: verificare/rimuovere quelle duplicate dei moduli. Bus iniziale 100kHz, tenuto corto e misurato sul cablaggio definitivo. Il software deve inizializzare direttamente HT16K33: DS1 usa COM0, DS2 COM1, ROW0..6 sono a..g. Una libreria per un display commerciale a quattro cifre puo avere una mappatura diversa.
- Display: due SC56-11EWA rossi a catodo comune sono il riferimento elettrico proposto. Il CAD mostra ancora segmenti ciano illustrativi e ingombri generici: colore, zoccoli e mascherina vanno allineati prima di costruire. Le 7 resistenze condivise da 220Ohm sono in serie a ROW0..6. Con 5V e Vf rosso circa 2V, limitano la corrente di picco a meno di circa 14mA anche ignorando la caduta del driver; luminosita multiplexata da provare.
- Sensori: usare due coppie complete tipo Adafruit 2167, con uscita a collettore aperto. Alimentazione 5V, pull-up delle uscite solo a 3.3V. I ricevitori sono sui GPIO35/39: nessun pull-up interno disponibile. I condensatori da 10nF non sostituiscono la logica anti-doppio-gol: accettare un evento per attraversamento e riarmare dopo fascio libero stabile.
- Pulsanti: sei ingressi attivi bassi, pull-up esterne 10k, filtro 100nF, serie 1k. Debounce software iniziale 20ms. Un pulsante corregge il punteggio una volta per pressione. RV1 10k sul GPIO36 usa ADC1, con calibrazione e attenuazione adeguata; l’intervallo ADC reale non coincide necessariamente con 0–3.3V.
- Ventola: JFAN e un’interfaccia logica proposta, non il pinout di un modello acquistato. Q5 porta a massa il comando, non la potenza. Usare solo una soffiante con PWM dedicato compatibile e tach open collector privo di pull-up interni incompatibili. Frequenza/duty minimo/stop e impulsi per giro vanno dal suo datasheet. Il riferimento Noctua illustra il principio, non prova che una SUNON o una 9733 generica sia compatibile. La variante A99 usata nel calcolo non va pilotata tagliando l’alimentazione con PWM. Tach opzionale: se assente, lasciare il pin del connettore isolato e disabilitare la lettura.
- Il PWM della ventola e invertito: GPIO19 alto fa condurre Q5 e abbassa FAN_PWM. Con transistor spento, la ventola compatibile puo girare al massimo; verificare il comportamento di reset e di perdita del controllo. Nessuna promessa di arresto a duty zero senza il datasheet.
- Suono: qui si sceglie un trasduttore magnetico passivo 5V <=100mA, con Q4 e diodo SS14 di ricircolo (fascia/catodo al +5V). Non e il circuito di un piezo e non si deve sostituire il tipo senza rivederlo. I toni sono generati dalla ESP32; mute spegne questo canale.
- Primo collaudo proposto: controlli di continuita a spento; polarita della presa; buck a vuoto; collegamento sola ESP32; ingressi e display; poi RGB e ventola separati con alimentazione limitata. Misurare assorbimento massimo e spunto, caduta, temperatura MOSFET/buck e rumore sui sensori. Queste prove non sono state eseguite.
- Stato della verifica: controllata la coerenza della mappa GPIO, del conteggio degli ingressi, dei pin dei componenti di riferimento e dei collegamenti in netlist. Non e stato eseguito ERC di un progetto EDA, SPICE, sbroglio PCB o collaudo hardware. I disegni del CAD non si aggiornano automaticamente dalla netlist.

## Fonti primarie

- [Espressif: GPIO ESP32](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/gpio.html).
- [Espressif: DevKitC V4, alimentazione e varianti](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/user_guide.html).
- [AOS: AO3400A e conduzione a basso Vgs](https://www.aosmd.com/products/mosfets/low-voltage-mosfets-12v-30v/ao3400a).
- [Holtek: HT16K33 datasheet](https://cdn-shop.adafruit.com/datasheets/ht16K33v110.pdf).
- [Adafruit: breakout HT16K33 1427](https://www.adafruit.com/product/1427).
- [Kingbright: SC56-11EWA, pinout pagina 1](https://www.kingbrightusa.com/images/catalog/spec/sc56-11ewa.pdf).
- [Philips/NXP: traslazione I2C con MOSFET](https://cdn-shop.adafruit.com/datasheets/an97055.pdf).
- [Adafruit: sensori IR open collector](https://learn.adafruit.com/ir-breakbeam-sensors/arduino).
- [onsemi: 2N3904, E1 B2 C3](https://www.onsemi.com/pdf/datasheet/2n3904-d.pdf).
- [Noctua: esempio specifiche PWM e tach, non datasheet della nostra soffiante](https://noctua.at/pub/media/wysiwyg/Noctua_PWM_specifications_white_paper.pdf).
