{"id":36729,"date":"2026-01-07T16:25:28","date_gmt":"2026-01-07T08:25:28","guid":{"rendered":"https:\/\/pcbcool.com\/?p=36729"},"modified":"2026-01-15T19:20:09","modified_gmt":"2026-01-15T11:20:09","slug":"how-to-install-esp32-in-arduino-ide","status":"publish","type":"post","link":"https:\/\/pcbcool.com\/it\/technical-guides\/how-to-install-esp32-in-arduino-ide\/","title":{"rendered":"Come installare ESP32 nell'IDE Arduino"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"36729\" class=\"elementor elementor-36729\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-6bff3ff e-flex e-con-boxed e-con e-parent\" data-id=\"6bff3ff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6abee4e e-con-full e-flex e-con e-child\" data-id=\"6abee4e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-de789ba color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"de789ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ogni anno, revisiono circa 200 log di deployment di ESP32 provenienti da startup, universit\u00e0 e team industriali. Solo nel 2024, <strong>68% dei \u201cguasti hardware\u201d segnalati sono stati ricondotti a una configurazione errata dell\u2019IDE<\/strong>\u2014non schede difettose, non codice errato, ma lacune nella toolchain: core obsoleti, tabelle di partizione non corrispondenti, problemi di negoziazione della porta USB-C o conflitti silenti tra Python 2\/3.<\/p><p>La maggior parte delle guide \u201cCome installare ESP32\u201d si ferma a Strumenti \u2192 Scheda \u2192 ESP32 Arduino\u2014e ti lascia in balia degli eventi quando i caricamenti si bloccano, il Monitor Seriale stampa dati spazzatura o un aggiornamento OTA manda in tilt il dispositivo.<\/p><p>Questa guida si concentra su ci\u00f2 che funziona effettivamente in produzione:<\/p><ul><li>Installazione senza congetture per Windows, macOS e Linux<\/li><li>USB-C vs. USB-A triage (s\u00ec, il tipo C conta davvero)<\/li><li>Controllo di versione di base: perch\u00e9 v2.0.14 \u2260 v3.0.0<\/li><li>Accensione automatica per implementazioni sul campo<\/li><li>Debug di flussi di lavoro per saltare il ciclo infinito di scorrimento dei forum<\/li><\/ul><p>Nessuna teoria. Solo ci\u00f2 che sopravvive alla polvere di Nairobi, alle camere EMC europee e al caos dei laboratori studenteschi.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b02fa4e wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"b02fa4e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Tre killer silenziosi di installazione - Perch\u00e9 \u201cha funzionato ieri\u201d fallisce<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c64385b wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"c64385b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">1. \u201cESP32 di Espressif Systems\u201d \u2260 Un solo Core \u2014 \u00c8 un Ecosistema Frammentato<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f6a300 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"4f6a300\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Il Gestore Schede di Arduino mostra una singola voce, ma dietro di essa si celano molteplici core divergenti:<\/p><ul><li><em>ESP32 Arduino Core (v1.x\u2013v2.x)<\/em><\/li><\/ul><p>Legacy, ampiamente diffuso, stranezze note della PSRAM<\/p><ul><li><em>ESP32 Arduino Core (IDF v5+) (v3.0+)<\/em><\/li><\/ul><p>ESP-IDF 5.x base con modifiche che rompono la compatibilit\u00e0 (es. WiFi.h \u2192 WiFiClass.h)<\/p><ul><li><em>Fork della community (ad es. loboris, Hristo Gochkov)<\/em><\/li><\/ul><p>Stack USB pi\u00f9 veloci, ma OTA e supporto a lungo termine limitati<\/p><p><strong>Vero Fallimento:<\/strong><\/p><p>Un team \u00e8 passato da core <strong>2.0.13 \u2192 3.0.2<\/strong>. Le loro chiamate analogWrite() sono state compilate, ma hanno prodotto un <strong>Ciclo di lavoro 0%<\/strong>. L'API PWM \u00e8 passata da un wrapper implicito ledcWrite() a una mappatura rigorosa dei canali. Le unit\u00e0 di campo si sono spente.<\/p><p><strong>Pro Fix:<\/strong><\/p><p>Fissa la versione principale in boards.txt o negli script CI:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-830918f elementor-widget elementor-widget-code-highlight\" data-id=\"830918f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Installazione di una versione specifica tramite CLI (bypassa la cache di Board Manager)\r\narduino-cli core install esp32:esp32@2.0.17\r\narduino-cli board attach esp32:esp32:esp32 --port \/dev\/ttyUSB0\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-469e4cd color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"469e4cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Matrice di confronto delle funzionalit\u00e0 Core (v2.0.17 vs. v3.0.2)<\/strong><\/p><table><thead><tr><th>Funzionalit\u00e0<\/th><th>ESP32 Arduino Core v2.0.17 (IDF 4.4)<\/th><th>ESP32 Arduino Core v3.0.2 (IDF 5.1+)<\/th><th>Impatto sul campo<\/th><\/tr><\/thead><tbody><tr><td>Comportamento ADC<\/td><td>analogRead() utilizza driver legacy; ADC1\/ADC2 condividono la calibrazione<\/td><td>ADC1\/ADC2 utilizzano unit\u00e0 SAR ADC indipendenti; calibrazione separata<\/td><td>\u2757 analogRead(36) restituisce 0 su v3.x se Wi-Fi\/BT \u00e8 abilitato (ADC2 bloccato da RF). \u00c8 necessario chiamare esplicitamente adc1_config_width().<\/td><\/tr><tr><td>Inizializzazione PSRAM<\/td><td>Auto-inizializzazione rilevata; psramFound() affidabile<\/td><td>Richiede un heap_caps_add_region() esplicito nelle partizioni personalizzate<\/td><td>\u2757 Le schede con PSRAM potrebbero mostrare crash casuali o \"malloc failed\" nella v3.x se la partizione non riserva heap.<\/td><\/tr><tr><td>API PWM (ledc)<\/td><td>analogWrite(pin, value) esegue il wrapping di ledcWrite() con configurazione automatica del canale<\/td><td>analogWrite() deprecato; ledcSetup()\/ledcWrite() richiesti<\/td><td>\u2757 Il vecchio codice `analogWrite(5, 128)` viene compilato correttamente, ma genera un rapporto di ciclo 0% \u2014 nessun canale configurato.<\/td><\/tr><tr><td>Schema di partizione predefinito<\/td><td>default_4MB.csv (1.3 MB app, 3 MB SPIFFS)<\/td><td>default_4MB.csv \u2192 1.9 MB app, 0.2 MB SPIFFS (OTA prioritaria)<\/td><td>\u2757 Asset SPIFFS di grandi dimensioni (ad es. HTML, certificati) overflow \u2192 boot loop. \u00c8 necessario passare a huge_app o custom.<\/td><\/tr><tr><td>Coesistenza WiFi\/BT<\/td><td>Disabilitato per impostazione predefinita (CONFIG_BT_ENABLED=n)<\/td><td>Abilitato per impostazione predefinita (CONFIG_BT_ENABLED=y)<\/td><td>\u2757 Rumore ADC \u2191 4\u20136 volte su VP\/VN (GPIO36\/39); glitch I\u00b2C vicino a GPIO2\/15.<\/td><\/tr><tr><td>Resistori di pull per GPIO 34\u201339<\/td><td>pinMode(34, INPUT_PULLUP) ignorato silenziosamente<\/td><td>Avviso del compilatore (da v2.0.14); nessun effetto in fase di esecuzione<\/td><td>\u2705 Pi\u00f9 sicuro \u2014 previene la falsa sicurezza nei pin di sola immissione.<\/td><\/tr><tr><td>Ritenzione del sonno profondo<\/td><td>Memoria RTC auto-salvata<\/td><td>Richiede rtc_user_mem_write() + esp_sleep_pd_config()<\/td><td>\u2757 Calibrazione sensori persa dopo la sospensione su v3.x, a meno che non venga esplicitamente preservata.<\/td><\/tr><tr><td>USB CDC (Solo ESP32-S3)<\/td><td>Non supportato nel core di Arduino<\/td><td>Seriale nativo su USB (non \u00e8 necessaria alcuna UART)<\/td><td>\u2705 Enorme vittoria per lo sviluppo di S3 \u2014 ma richiede USB_CDC_ENABLED=y in menuconfig.<\/td><\/tr><\/tbody><\/table><p>\u2705 = Miglioramento | \u2757 = Modifica che interrompe \/ rischio di fallimento | \u26a0\ufe0f = Cambiamento di comportamento che richiede un aggiornamento del codice<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-551a6d2 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"551a6d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">2. Negoziazione della porta USB-C e inferno dei driver<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16063b1 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"16063b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Non tutte le porte USB-C trasportano sia alimentazione che dati USB 2.0. Molti laptop (Dell XPS, MacBook Pro serie M) espongono porte di tipo C che privilegiano la ricarica o le modalit\u00e0 alternative, con i pin D+\/D\u2212 non instradati come previsto.<\/p><p><strong>Oscilloscopio prova:<\/strong><\/p><p>Le linee USB D+\/D\u2212 sono rimaste piatte su una porta di sola ricarica. L'IDE \u00e8 andato in timeout in attesa del pacchetto di sincronizzazione.<\/p><p><strong>Pro Fix:<\/strong><\/p><ul><li><em>Windows:<\/em> Rilegare CP210x \/ CH340 a WinUSB usando Zadig (non usbser)<\/li><li><em>macOS:<\/em> Disabilita la modalit\u00e0 USB ristretta (Sicurezza \u2192 Strumenti per sviluppatori)<\/li><li><em>Linux:<\/em> Aggiungi una regola udev:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef7df1d elementor-widget elementor-widget-code-highlight\" data-id=\"ef7df1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# \/etc\/udev\/rules.d\/99-esp32.rules\r\nSUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;10c4&quot;, MODE=&quot;0666&quot;, GROUP=&quot;dialout&quot;  # CP210x\r\nSUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1a86&quot;, MODE=&quot;0666&quot;, GROUP=&quot;dialout&quot;  # CH340\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e09a12b color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"e09a12b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Quindi ricarica le regole:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ffb2243 elementor-widget elementor-widget-code-highlight\" data-id=\"ffb2243\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\tsudo udevadm control --reload &amp;&amp; sudo udevadm trigger\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb2920d elementor-widget elementor-widget-image\" data-id=\"fb2920d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"676\" height=\"456\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-36757\" alt=\"Guida all&#039;identificazione del tipo di porta USB C (con test con multimetro)\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test.jpg 676w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test-150x101.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test-600x405.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/USB-C-Port-Type-Identification-Guide-With-Multimeter-Test-400x270.jpg 400w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figura 1: Guida all'identificazione del tipo di porta USB C (con test con multimetro)<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58ecf9c wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"58ecf9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">3. Discrepanze nella tabella di partizione<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4616917 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"4616917\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Le partizioni predefinite in partitions.csv assumono <strong>4 MB flash<\/strong>. Molte schede economiche vengono fornite con <strong>2 MB<\/strong> (Moduli ESP-01S, alcune varianti AliExpress WROOM). L'aggiornamento riesce, ma poi ESP.restart() innesca un boot loop perch\u00e9 la partizione OTA si sovrappone all'app.<\/p><p><strong>Traccia del registro:<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d75b49 elementor-widget elementor-widget-code-highlight\" data-id=\"8d75b49\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\tE (1245) esp_image: la lunghezza dell&#x27;immagine (1245184) non rientra nella lunghezza della partizione (1048576)\nE (1245) boot: la partizione delle app di fabbrica non \u00e8 avviabile\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9eee446 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"9eee446\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Pro Fix:<\/strong><\/p><p>Convalida la dimensione della partizione prima di caricarla.<\/p><ul><li>IDE: Strumenti \u2192 Schema di partizione \u2192 \u201cMinimo (2MB senza OTA)\u201d<\/li><li>Oppure definire un file partitions.csv personalizzato:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f5758aa elementor-widget elementor-widget-code-highlight\" data-id=\"f5758aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Nome,   Tipo, Sottotipo, Offset, Dimensione, Flag\r\nnvs,      dati, nvs,     0x9000,  0x5000,\r\notadata,  dati, ota,     0xe000,  0x2000,\r\napp0,     app,  ota_0,   0x10000, 0xF0000,\nspiffs,   data, spiffs,  0x100000,0x100000,\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6bd37cb color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"6bd37cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Mettilo nella cartella degli sketch, l'IDE lo rilever\u00e0 automaticamente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-143dd7d wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"143dd7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Passo dopo passo: l'installazione collaudata (Windows \/ macOS \/ Linux)<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63b60d5 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"63b60d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Fase 1: Prerequisiti \u2014 Non saltarli<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e2ec34 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"2e2ec34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table><thead><tr><th>Sistema operativo<\/th><th>Controlla<\/th><th>Strumento \/ Comando<\/th><\/tr><\/thead><tbody><tr><td>Tutto<\/td><td>Python 3.8\u20133.11 (\u26a0\ufe0f no 3.12)<\/td><td><code>python --version<\/code><\/td><\/tr><tr><td>Vinci<\/td><td>Strumenti di compilazione di Visual Studio (2019+)<\/td><td><a href=\"https:\/\/visualstudio.microsoft.com\/visual-cpp-build-tools\/\" target=\"_blank\" rel=\"nofollow noopener\">Scarica<\/a><\/td><\/tr><tr><td>macOS<\/td><td>Strumenti da Riga di Comando<\/td><td><code>xcode-select --install<\/code><\/td><\/tr><tr><td>Linux<\/td><td>git, make, gcc, python3-venv<\/td><td><code>sudo apt install build-essential<\/code><\/td><\/tr><\/tbody><\/table><p>Critico: Rimuovere tutti i vecchi core ESP32 prima di procedere.<\/p><ul><li><em>Windows<\/em><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76c6763 elementor-widget elementor-widget-code-highlight\" data-id=\"76c6763\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t%USERPROFILE%\\Documents\\Arduino\\hardware\\espressif\r\n%LOCALAPPDATA%\\Arduino15\\packages\\esp32\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e20473 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"4e20473\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul><li><em>macOS \/ Linux<\/em><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2b47ee elementor-widget elementor-widget-code-highlight\" data-id=\"c2b47ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\trm -rf ~\/Arduino\/hardware\/espressif\r\nrm -rf ~\/.arduino15\/packages\/esp32\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbe4222 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"bbe4222\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Fase 2: Installazione tramite Arduino IDE (GUI) - Il modo pi\u00f9 sicuro<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50e7b94 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"50e7b94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol><li>Aprire <strong>File<\/strong> \u2192 <strong>Preferenze<\/strong><\/li><li>All'interno <strong>URL aggiuntivi per il Gestore Schede<\/strong>, aggiungi:<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5cc819f elementor-widget elementor-widget-code-highlight\" data-id=\"5cc819f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\thttps:\/\/raw.githubusercontent.com\/espressif\/arduino-esp32\/gh-pages\/package_esp32_index.json\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d781941 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"d781941\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol start=\"3\"><li>Andare <strong>Strumenti \u2192 Scheda \u2192 Gestore Schede<\/strong><\/li><li>Ricerca \u201c<strong>ESP32 di Espressif Systems<\/strong>\u201d<\/li><li>Installa <strong>v2.0.17<\/strong> (consigliato per la stabilit\u00e0 \u2014 non l'ultimo)<\/li><li>Riavvia l'IDE<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ed7c06 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"7ed7c06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Fase 3: Installazione CLI (per CI\/CD e team)<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bec02b color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"1bec02b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Per build riproducibili (ad esempio, GitHub Actions), usa arduino-cli:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-415aab8 elementor-widget elementor-widget-code-highlight\" data-id=\"415aab8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Installa arduino-cli\r\ncurl -fsSL https:\/\/raw.githubusercontent.com\/arduino\/arduino-cli\/master\/install.sh | sh\r\n\r\n# Inizializza la configurazione\r\narduino-cli config init\r\n\r\n# Aggiungi il core ESP32\r\narduino-cli core update-index\r\narduino-cli core install esp32:esp32@2.0.17\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6598d6a color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"6598d6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Esempio di compilazione e caricamento (le opzioni della scheda possono variare in base al target):<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81215d5 elementor-widget elementor-widget-code-highlight\" data-id=\"81215d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\tarduino-cli compile --fqbn esp32:esp32:esp32\narduino-cli upload -p \/dev\/ttyUSB0 --fqbn esp32:esp32:esp32\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afc36d1 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"afc36d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u2192 Flusso di lavoro completo: <a href=\"https:\/\/gist.github.com\/george-engineer\/esp32-arduino-cli-2025\" target=\"_blank\" rel=\"nofollow noopener\">GitHub Gist<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3ffcdd wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"b3ffcdd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">I 5 principali errori di caricamento e come risolverli (verificati sul campo)<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33f7a67 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"33f7a67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table><thead><tr><th>Sintomo<\/th><th>Causa probabile<\/th><th>Soluzione Definitiva<\/th><\/tr><\/thead><tbody><tr><td><strong>Si \u00e8 verificato un errore irreversibile: impossibile connettersi a ESP32<\/strong><\/td><td>Circuito di auto-reset mancante o marginale<\/td><td>Tieni <strong>BOOT + RESET<\/strong>, rilascia RESET, quindi BOOT \u2014 o aggiungi un condensatore da ~10 \u00b5F da <strong>IT \u2192 INATTIVO<\/strong><\/td><\/tr><tr><td><strong>Porta seriale non trovata<\/strong><\/td><td>Driver non associato o porta gi\u00e0 in uso<\/td><td>Usare <strong>USBDeview<\/strong> (Windows) o <code>lsof \/dev\/ttyUSB0<\/code> (Linux\/macOS) per identificare e terminare i processi zombie<\/td><\/tr><tr><td><strong>\u00c8 stato attivato il rilevatore di sottotensione<\/strong><\/td><td>Cavo USB debole o porta sottodimensionata<\/td><td>Utilizza un cavo USB-A corto e spesso; evita hub; verifica <strong>VUSB &gt; 4,75 V<\/strong> alla scheda (specialmente durante la TX Wi-Fi)<\/td><\/tr><tr><td><strong>Avviso di mancata corrispondenza del checksum SHA256<\/strong><\/td><td>Sfasamento temporale\/modalit\u00e0 flash (comune nei moduli a basso costo)<\/td><td>Imposta <strong>Strumenti \u2192 Modalit\u00e0 Flash \u2192 DIO<\/strong> (non QIO); riduci <strong>Velocit\u00e0 di caricamento<\/strong> a <strong>115200<\/strong><\/td><\/tr><tr><td><strong>Errore di Guru Meditation: Core 1 \u00e8 andato in panico<\/strong><\/td><td>Stack overflow o accesso non valido alla memoria<\/td><td>Se si conferma lo stack overflow, aumentare la dimensione dello stack del task (ad esempio, regolare i flag del compilatore o rifattorizzare i grandi buffer locali)<\/td><\/tr><\/tbody><\/table><p><strong>Pro-Consiglio:<\/strong><\/p><p>Abilita <strong>Output prolisso<\/strong> (File \u2192 Preferenze), quindi ispeziona i log di esptool.py per individuare esattamente quale fase di caricamento non riesce (sincronizzazione, cancellazione, scrittura o verifica).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82111c7 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"82111c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Avanzato \u2014 Ottimizzazione per implementazioni sul campo<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71ac8c3 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"71ac8c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Aggiornamenti OTA che non mandano in brick le unit\u00e0<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef914f5 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"ef914f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>L'OTA Arduino predefinito trasferisce l'intera immagine del firmware, il che pu\u00f2 essere rischioso su collegamenti Wi-Fi instabili. Per migliorare l'affidabilit\u00e0, utilizzare l'OTA a blocchi con verifica e gestione esplicita degli errori:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-574d9e9 elementor-widget elementor-widget-code-highlight\" data-id=\"574d9e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\t#include \r\n#include \r\n\r\nvoid setupOTA() {\r\n  ArduinoOTA.onStart([]() {\r\n    if (!Update.begin(UPDATE_SIZE_UNKNOWN, U_FLASH)) {\r\n      Serial.println(&quot;Errore all&#x27;avvio dell&#x27;aggiornamento!&quot;);\r\n    }\r\n  });\r\n\r\n  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {\r\n    \/\/ Opzionale: far lampeggiare il LED ogni 10%\r\n  });\n\n  ArduinoOTA.onError([](ota_error_t error) {\n    ESP.restart(); \/\/ Riavvio di sicurezza\n  });\n\n  ArduinoOTA.begin();\n}\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61f796a color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"61f796a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Pro-Consiglio:<\/strong><\/p><p>Memorizzare un hash del firmware in NVS e verificarlo prima di riavviare nella nuova immagine.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-317bb6a wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"317bb6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Lampeggiamento automatizzato per la produzione in lotti<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c72a179 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"c72a179\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Per lotti di oltre 100 unit\u00e0, utilizzare esptool.py con un jig di flashing:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-424478a elementor-widget elementor-widget-code-highlight\" data-id=\"424478a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-markup line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-markup\">\n\t\t\t\t\t# Cancellazione e scrittura in un unico comando (il pi\u00f9 veloce)\r\nesptool.py --port \/dev\/ttyUSB0 --baud 921600 \\\r\n  erase_flash \\\r\n  write_flash 0x1000  bootloader.bin \\\r\n              0x8000  partitions.bin \\\r\n              0x10000 firmware.bin\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2ccca6 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"f2ccca6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Requisito del Jig:<\/strong><\/p><p>EN e IO0 devono essere auto-controllati (basati su rel\u00e8 o transistor) per il lampeggio automatico (Fig. 2).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b00e045 elementor-widget elementor-widget-image\" data-id=\"b00e045\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1714\" height=\"739\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-36767\" alt=\"Schema del dispositivo per il flash automatico di ESP32 (Reset\/Boot controllato da rel\u00e8)\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot.jpg 1714w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-150x65.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-600x259.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-400x172.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-1300x561.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-768x331.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/ESP32-Auto-Flashing-Jig-Schematic-Relay-Controlled-ResetBoot-1536x662.jpg 1536w\" sizes=\"auto, (max-width: 1714px) 100vw, 1714px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Figura 2: Schema del jig per lampeggiamento automatico dell'ESP32 (Reset\/Boot controllato da rel\u00e8)<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea66cfb wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"ea66cfb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Chip da USB a Seriale: Quale Funziona Meglio sul Campo?<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-597b1d6 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"597b1d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table><thead><tr><th>Chip<\/th><th>VID:PID<\/th><th>Windows<\/th><th>macOS<\/th><th>Linux<\/th><th>Affidabilit\u00e0 sul campo<\/th><\/tr><\/thead><tbody><tr><td>CP2102N<\/td><td>10C4:EA60<\/td><td>\u2705 (Silabs)<\/td><td>\u2705 nativo<\/td><td>\u2705<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><\/tr><tr><td>CH340G<\/td><td>1A86:7523<\/td><td>\u2705 (WCH)<\/td><td>\u26a0\ufe0f macOS pi\u00f9 vecchi necessitano di kext<\/td><td>\u2705<\/td><td>\u2605\u2605\u2605\u2606\u2606 (sensibile ai rumori)<\/td><\/tr><tr><td>FT232RL<\/td><td>0403:6015<\/td><td>\u2705 (FTDI)<\/td><td>\u2705<\/td><td>\u2705<\/td><td>\u2605\u2605\u2605\u2605\u2606 (costoso)<\/td><\/tr><tr><td>ESP32-S3 USB CDC<\/td><td>varia<\/td><td>\u2705 (Win11+)<\/td><td>\u2705 (13.3+)<\/td><td>\u2705 (6.2+)<\/td><td>\u2605\u2605\u2605\u2605\u2606 (nessuna UART necessaria)<\/td><\/tr><\/tbody><\/table><p><strong>Attenzione:<\/strong><\/p><p>Le schede di sviluppo a basso costo utilizzano spesso chip USB-UART marginali o flash SPI di bassa qualit\u00e0. I problemi compaiono frequentemente sopra <strong>115200 baud<\/strong>. Verifica l'identit\u00e0 del flash con:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89e564e elementor-widget elementor-widget-code-highlight\" data-id=\"89e564e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\tesptool.py --port \/dev\/ttyUSB0 flash_id\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15b3d51 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"15b3d51\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Checklist Finale Prima del Primo Caricamento<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cbf2e08 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"cbf2e08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol><li><em>Versione Core:<\/em> Corretto in v2.0.17 (o documentato esplicitamente se si usa la v3.x)<\/li><li><em>Porta USB:<\/em> Verificato, abilitato ai dati (non solo ricarica)<\/li><li><em>Autisti:<\/em> WinUSB\/Zadig su Windows; regole udev corrette su Linux<\/li><li><em>Schema di partizionamento:<\/em> Corrisponde alla dimensione effettiva del flash (2 MB contro 4 MB)<\/li><li><em>Cavo:<\/em> Corto, schermato, AWG 24 o pi\u00f9 spesso<\/li><li><em>Potenza<\/em> \u2265500 mA a 5 V; misurare su VCC di ESP32<\/li><li><em>Circuito di ripristino:<\/em> Condensatore da ~10 \u00b5F da EN \u2192 GND per un ripristino automatico affidabile<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e5baa3 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"5e5baa3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Considerazioni finali<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7bbfb84 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"7bbfb84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Installare l'ESP32 non significa fare clic su \u201cInstalla\u201d.\u201d<\/p><p>Si tratta di controllare l\u2019intero stack dello strumento, dal silicio USB alle tabelle delle partizioni.<\/p><p>Le distribuzioni pi\u00f9 robuste non trattano l'IDE come una scatola nera. Lo trattano come un <strong>pipeline configurabile<\/strong>: blocca le tue versioni, valida il tuo hardware e automatizza il processo di flashing.<\/p><p>Perch\u00e9 sul campo, non esiste un pulsante \u201cReinstalla Arduino\u201d \u2014 solo un tecnico con un multimetro, un'unit\u00e0 difettosa e una scadenza.<\/p><p>Ecco perch\u00e9 i team che lavorano su larga scala prestano molta attenzione all'hardware a monte.<\/p><p>Dimensioni flash coerenti, chip USB-seriale affidabili e un design di alimentazione stabile sono importanti quanto il codice pulito. A <a href=\"https:\/\/pcbcool.com\/it\/\">PCBCool<\/a>, ...vediamo questo quotidianamente mentre supportiamo gli ingegneri con PCB prototipo e di produzione realizzati per l'implementazione nel mondo reale, non per banchi di prova.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-1620e06 e-flex e-con-boxed e-con e-parent\" data-id=\"1620e06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-002415e e-con-full e-flex e-con e-child\" data-id=\"002415e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-d03ca06 e-con-full e-flex e-con e-child\" data-id=\"d03ca06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c373aa wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"9c373aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Domande Frequenti (FAQ)<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8ce272 elementor-widget elementor-widget-wd_accordion\" data-id=\"a8ce272\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"wd-accordion wd-style-default wd-titles-left wd-opener-pos-left wd-opener-style-arrow\" data-state=\"first\">\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn wd-active\" data-accordion-index=\"0\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t1. Quale core Arduino per ESP32 dovrei usare, v2 o v3?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content wd-active\" data-accordion-index=\"0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Utilizza la v2 per stabilit\u00e0 e compatibilit\u00e0; v3 presenta modifiche che potrebbero interrompere il funzionamento, quindi fissa sempre la versione.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"1\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t2. Il mio aggiornamento OTA ESP32 \u00e8 fallito. Come posso recuperare?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"1\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Ricaricare il firmware completo con esptool.py, o entrare in modalit\u00e0 flash tenendo premuto IO0 durante il reset.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"2\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t3. Il mio ESP32 non viene riconosciuto tramite USB. Cosa devo fare?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Verifica che la porta supporti i dati, non solo la ricarica; riassegna i driver su Windows, installa i kext su macOS o aggiungi le regole udev su Linux.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"3\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t4. Come posso flashare molti ESP32 in modo affidabile?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"3\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Usa esptool.py con uno strumento di flashing, verifica la versione principale e la dimensione della flash e assicurati di un'alimentazione stabile.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"4\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t5. Quali sono le principali differenze tra i moduli ESP32 che incidono sulla distribuzione?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"4\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>S3 supporta USB nativo, WROVER ha PSRAM che richiede un'attenta configurazione dell'heap, e WROOM \u00e8 basilare e stabile con il Core v2.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"5\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t6. Oltre ai fallimenti di caricamento, quali altri problemi dell'IDE dovrei tenere d'occhio?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"5\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Errori nel partizionamento, conflitti Python, occupazione della porta seriale e differenze nelle API del Core possono causare malfunzionamenti.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"6\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t7. Come posso garantire che ESP32 funzioni in modo affidabile sul campo?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"6\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>Blocca le versioni, automatizza il flashing, verifica gli aggiornamenti OTA, usa cavi e alimentatori di qualit\u00e0 e progetta circuiti EN\/reset robusti. PCBCool pu\u00f2 aiutare a fornire schede stabili per il deployment.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6c6ce4 elementor-widget elementor-widget-shortcode\" data-id=\"c6c6ce4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t<link rel=\"stylesheet\" id=\"elementor-post-35582-css\" href=\"https:\/\/pcbcool.com\/wp-content\/uploads\/elementor\/css\/post-35582.css?ver=1785141096\" type=\"text\/css\" media=\"all\">\n\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"35582\" class=\"elementor elementor-35582\" data-elementor-post-type=\"cms_block\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-f6159f8 e-flex e-con-boxed e-con e-parent\" data-id=\"f6159f8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a03266c e-con-full e-flex e-con e-child\" data-id=\"a03266c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-09accce e-con-full e-flex e-con e-child\" data-id=\"09accce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-773405d elementor-widget elementor-widget-image\" data-id=\"773405d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"250\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2025\/12\/George.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-35271\" alt=\"Giorgio\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2025\/12\/George.jpg 250w, https:\/\/pcbcool.com\/wp-content\/uploads\/2025\/12\/George-150x150.jpg 150w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-39912a8 e-con-full e-flex e-con e-child\" data-id=\"39912a8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b1b555d wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"b1b555d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<div class=\"woodmart-title-container title wd-fontsize-l\">George | Ingegnere Elettrico e Specialista di Sistemi Embedded<\/div> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0a641fa e-con-full e-flex e-con e-child\" data-id=\"0a641fa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d15406f color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"d15406f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>George \u00e8 un ingegnere elettrico certificato con esperienza nella progettazione di PCB, sistemi embedded e sviluppo di hardware IoT. Lavora con PCBCool per trasformare l'esperienza ingegneristica reale in guide pratiche per sviluppatori e ingegneri.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b70a6bd elementor-widget elementor-widget-html\" data-id=\"b70a6bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"custom-btn-wrapper\">\r\n  <a href=\"https:\/\/pcbcool.com\/it\/author\/george\/\" class=\"custom-btn\">Leggi altri articoli di George \u2192<\/a>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Impara a installare ESP32 nell'IDE Arduino nel modo corretto per l'uso sul campo. Risolvi i problemi di caricamento, controlla le versioni dei core, evita insidie USB e di partizionamento e distribuisci ESP32 in modo affidabile oltre il laboratorio.<\/p>","protected":false},"author":8,"featured_media":36776,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Come installare ESP32 in Arduino IDE: una guida di configurazione pronta per l'uso | PCBCool","description":"Impara a installare ESP32 nell'IDE Arduino nel modo corretto per l'uso sul campo. Risolvi i problemi di caricamento, controlla le versioni dei core, evita insidie USB e di partizionamento e distribuisci ESP32 in modo affidabile oltre il laboratorio."},"footnotes":""},"categories":[113],"tags":[121,120],"post_folder":[],"class_list":["post-36729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-guides","tag-arduino","tag-esp32"],"_links":{"self":[{"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/posts\/36729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/comments?post=36729"}],"version-history":[{"count":0,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/posts\/36729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/media\/36776"}],"wp:attachment":[{"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/media?parent=36729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/categories?post=36729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/tags?post=36729"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/pcbcool.com\/it\/wp-json\/wp\/v2\/post_folder?post=36729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}