Guida Tecnica EasyEDA, PWA e Service Worker
Raccolta note tecniche β Febbraio 2026
1. EasyEDA – Footprint e Simboli
1.1 Come orientarsi nei footprint
Footprint Manager: si apre da Tools β Footprint Manager o cliccando sul campo “Footprint” di un componente.
- Mostra tutti i footprint associati ai simboli presenti nello schema
- Evidenzia errori di corrispondenza tra pin del simbolo e pad del footprint
1.2 Libreria online
- Integra la libreria di LCSC/JLCPCB
- Puoi cercare per nome del package (es. “SOIC-8”, “0603”, “TO-220”)
- Non Γ¨ un catalogo narrativo: devi sapere almeno il tipo di package
1.3 Creazione footprint personalizzati
- Da
File β New β Footprint - Serve il datasheet del componente per dimensioni, piazzole e spaziature
π Consiglio: Quando non sai il nome del footprint, cerca nel datasheet il package (es. “SOIC-8”), poi usa la ricerca in EasyEDA con quel nome.
2. Breakout – Tabella e Associare Footprint
2.1 Come associare un componente a un footprint
- Apri lo schematico dove hai inserito il simbolo
- Seleziona il componente β nella barra laterale (Properties) trovi Footprint
- Clicca sul campo Footprint (o sul pulsante “⦔)
- Si apre la finestra di ricerca footprint
- Cerca il footprint (es. “SOIC-8”, “0805”, “PinHeader 1×6 2.54mm”)
- Seleziona il footprint corretto e conferma
- Verifica con Footprint Manager (
Tools β Footprint Manager)
2.2 Tabella breakout/moduli comuni
- MPU6050 (GY-521): Cerca “MPU6050” o “GY-521” β PinHeader 1×8, 2.54mm
- HC-05 Bluetooth: Cerca “HC-05” β PinHeader 1×6, 2.54mm
- ESP32-WROOM: Cerca “ESP32-WROOM-32” β Package modulare 38 pin (2×19)
- OLED SSD1306: Cerca “SSD1306” o “OLED 128×64” β PinHeader 1×4, 2.54mm
- DHT11/DHT22: Cerca “DHT11″/”DHT22” β PinHeader 1×3, 2.54mm
- NRF24L01+: Cerca “NRF24L01” β PinHeader 2×4, 2.54mm
- Relay module: Cerca “Relay module” β PinHeader 1×3/1×4, 2.54mm
- Arduino Nano: Cerca “Arduino Nano” β Dual PinHeader 2×15, 2.54mm
βοΈ Regola d’oro: Usa sempre il datasheet del componente reale per verificare il footprint.
3. PWA – Guida all’Installazione
3.1 Requisiti per l’installabilitΓ
- HTTPS (obbligatorio per Chrome Android)
- Manifest.json valido con
idestart_urlassoluti - Service Worker registrato e attivo
- Icone 192×192 e 512×512 raggiungibili
- Il service worker deve controllare la pagina
3.2 Service Worker – Configurazione corretta
const CACHE_NAME = 'ruota-radioamatori-v1';
const ASSETS = [
'./',
'./index.html',
'./manifest.json',
'./icon-192.png',
'./icon-512.png'
];
self.addEventListener('install', event => {
self.skipWaiting();
event.waitUntil(
caches.open(CACHE_NAME).then(cache => cache.addAll(ASSETS))
);
});
self.addEventListener('activate', event => {
self.clients.claim();
event.waitUntil(
caches.keys().then(keys =>
Promise.all(
keys
.filter(k => k !== CACHE_NAME)
.map(k => caches.delete(k))
)
)
);
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request).then(resp => resp || fetch(event.request))
);
});
β οΈ skipWaiting() e clients.claim() sono obbligatori per prendere il controllo immediato della pagina.
4. Manifest.json – Configurazione
4.1 Manifest corretto per GitHub Pages / Netlify
{
"name": "Ruota Radioamatori",
"short_name": "Ruota",
"id": "/",
"start_url": "/",
"display": "standalone",
"background_color": "#f5f5f5",
"theme_color": "#1f4f7f",
"icons": [
{
"src": "icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icon-512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
β οΈ Attenzione: Se usi GitHub Pages con sottocartella, usa
"id": "/ruota-pwa/" e "start_url": "/ruota-pwa/".5. Service Worker – Registrazione
5.1 Registrazione corretta (senza event load)
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js')
.catch(err => console.log('SW registration failed', err));
}
</script>
5.2 Posizione del file
- service-worker.js deve essere nella root del sito
- Non deve essere in sottocartelle (es. /js/, /assets/)
- La registrazione deve usare percorso relativo:
'service-worker.js'
π Importante: Non usare
window.addEventListener('load', ...) per registrare il service worker. Registralo subito.6. GitHub Pages – Deploy
6.1 Procedura
- Crea repository pubblico (es.
ruota-pwa) - Carica i file:
index.html,manifest.json,service-worker.js,icon-*.png - Vai su Settings β Pages
- Scegli: Deploy from branch β main β / (root)
- Attendi 10-30 secondi
- URL:
https://USERNAME.github.io/REPOSITORY/
6.2 Problemi comuni
- 404: Il file principale deve chiamarsi
index.html - Repository sbagliato: GitHub Pages usa il nome del repository per l’URL
- Cache: Forza il rebuild con un commit vuoto (es. aggiungi un commento in index.html)
β οΈ GitHub Pages ha cache aggressiva su
manifest.json e service-worker.js. Forza il rebuild se necessario.7. Netlify – Deploy Alternativo
7.1 Procedura
- Vai su app.netlify.com
- Login (Google va bene)
- Clicca Add new site β Deploy manually
- Trascina la cartella con i file
- Netlify pubblica e assegna un URL tipo
https://nome-casuale.netlify.app/
7.2 Redirect per index.html
Se vuoi che /index.html reindirizzi a /, crea un file _netlify.toml nella root:
[[redirects]] from = "/index.html" to = "/" status = 301
βοΈ Netlify non ha cache aggressiva su manifest.json e service-worker.js, quindi Γ¨ ideale per test PWA.
8. Troubleshooting PWA
8.1 Problema: il service worker Γ¨ attivo ma la pagina non Γ¨ controllata
- skipWaiting() e clients.claim() mancano nel service worker
- Registrazione troppo tarda: usa
window.addEventListener('load', ...)solo se necessario - Percorso sbagliato: service-worker.js deve essere nella root
- Registrazione duplicata: controlla che non ci siano altre registrazioni in altri file
- Manifest con start_url e id sbagliati: deve corrispondere all’URL reale
8.2 Problema: il manifest non viene caricato
- Percorso sbagliato: verificare che
manifest.jsonsia nella root - id e start_url assoluti: se su sottocartella, usarli assoluti
- Cache: forzare il rebuild con commit vuoto
8.3 Problema: il pulsante “Installa app” non compare
- HTTPS: la PWA deve essere servita su HTTPS
- Service worker controlla la pagina: verificare in DevTools β Application β Service Workers
- Chiusura/riapertura pagina: dopo l’attivazione del SW, chiudere e riaprire la scheda
- DevTools aperto: il pulsante potrebbe non comparire con DevTools aperto
π Per verificare se il service worker controlla la pagina: Apri DevTools β Application β Service Workers. In italiano, la frase “Questa pagina Γ¨ controllata da un service worker” appare nella barra grigia in alto.