Web server su una sigaretta elettronica usa e getta

web server

Negli ultimi anni, i dispositivi elettronici di consumo hanno visto un’evoluzione rapidissima, anche in settori apparentemente lontani dall’informatica come quello delle sigarette elettroniche usa e getta. Se inizialmente questi dispositivi erano composti da una batteria, un serbatoio e poco più, oggi possono contenere veri e propri microcontrollori ARM in grado di eseguire codice complesso. L’ingegnere Bogdan Ionescu ha deciso di sfruttare proprio questi microcontrollori integrati nelle e-cigarette usa e getta per un progetto insolito: ospitare un server web. L’idea nasce dal riuso creativo di componenti elettronici destinati a diventare rifiuti, dimostrando che anche hardware apparentemente povero può rivelarsi una piattaforma interessante per la sperimentazione.

Il microcontrollore nascosto nelle e-cigarette

Smontando alcune sigarette elettroniche di fascia alta, Ionescu ha individuato un chip con la sigla PUYA. Non si trattava di un ASIC personalizzato, come accade spesso nei dispositivi di basso costo, ma di un microcontrollore PY32C642, molto simile al modello PY32F002B.

Le caratteristiche tecniche principali:

  • CPU ARM Cortex-M0+ a 24 MHz

  • 24 KiB di memoria Flash

  • 3 KiB di RAM statica

  • Alcuni periferici integrati (non utilizzati nel progetto)

Numeri che possono sembrare ridicoli rispetto a qualsiasi smartphone moderno, ma che si prestano bene per applicazioni sperimentali a basso consumo di risorse.

Dal semihosting al web server

L’idea non è nata subito. Inizialmente, Ionescu ha sperimentato con il semihosting, una tecnica che consente a un microcontrollore ARM di comunicare con un debugger esterno inviando e ricevendo dati attraverso delle syscall.

Questa caratteristica, spesso usata solo per stampare log di debug, è stata reinterpretata in maniera creativa: trasformare il canale di comunicazione in un “modem virtuale” capace di veicolare pacchetti IP.

Attraverso strumenti come pyOCD e socat, i dati del semihosting sono stati reindirizzati su una porta telnet e poi associati a un dispositivo seriale virtuale. A questo punto è stato possibile utilizzare SLIP (Serial Line Internet Protocol) per instaurare una connessione IP punto-punto.

Implementazione dello stack TCP/IP

Per gestire la rete, Ionescu ha scelto uIP, uno stack TCP/IP minimalista pensato per microcontrollori con pochissima memoria e senza RTOS. La libreria fornisce anche un esempio di server HTTP minimale, che è stato adattato per funzionare sul microcontrollore estratto dalla sigaretta elettronica.

Le prime prove non sono state brillanti: ping con tempi superiori a un secondo, perdite di pacchetti e caricamenti di pagine estremamente lenti. Il problema era dovuto alla gestione byte per byte dei dati, con un overhead enorme.

La soluzione è stata l’introduzione di un ring buffer per ottimizzare la serializzazione dei pacchetti. Dopo questa modifica, le prestazioni sono cambiate radicalmente:

  • Ping intorno ai 20 ms

  • Nessuna perdita di pacchetti

  • Caricamento di una pagina HTML semplice in circa 160 ms

Limiti e potenzialità

Con 3 KiB di RAM e meno di 20 KiB di spazio disponibile, non ci si può aspettare di ospitare framework complessi come React o applicazioni web dinamiche moderne. Tuttavia, il microcontrollore riesce a servire tranquillamente pagine statiche e perfino fornire semplici API JSON, come un endpoint che restituisce il numero di richieste ricevute e l’ID univoco del microcontrollore.

In altre parole, si tratta di un web server completo in grado di gestire richieste TCP/IP reali, pur su un hardware nato per tutt’altro scopo.

Un esperimento di riuso tecnologico

Il progetto non è solo una dimostrazione tecnica, ma anche una riflessione sull’e-waste. Dispositivi etichettati come “usa e getta” contengono componenti elettronici sorprendentemente potenti. Recuperarli e dargli una nuova vita non è soltanto un esercizio di creatività ingegneristica, ma anche un modo per ridurre lo spreco di risorse.

Chi volesse approfondire può consultare direttamente il progetto di Bogdan Ionescu o esplorare il codice sorgente su GitHub. Inoltre, il web server reale è stato reso accessibile online all’indirizzo ewaste.fka.wtf, sebbene la disponibilità non sia sempre garantita.

Conclusione

Ospitare un web server su una sigaretta elettronica usa e getta può sembrare una provocazione, ma dimostra una verità fondamentale: la potenza di calcolo è ormai ovunque. Anche in dispositivi economici e destinati al consumo rapido, si celano risorse che, se sfruttate in modo creativo, aprono scenari imprevisti.

Il lavoro di Ionescu è un perfetto esempio di come curiosità, ingegno e riciclo tecnologico possano trasformare un oggetto di scarto in una piattaforma di sperimentazione avanzata.

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.