Un microcontrôleur à 1 $ transformé en serveur web : plongée dans l'hébergement embarqué
Héberger un serveur web sur un microcontrôleur 8 bits : et pourquoi pas ?
Dans le monde des projets techniques fous, il y en a qui défient le bon sens. Pourtant, ils révèlent les rouages profonds d'internet. Un développeur a relevé le défi : faire tourner un vrai site web sur un microcontrôleur à un dollar. L'équivalent d'un bonbon.
Le matos : des origines modestes
Au cœur du projet, l'AVR64DD32. Un microcontrôleur 8 bits ultra-moderne, à peine 1 $ pièce. Voici le topo :
- CPU : Cœur AVR 8 bits, jusqu'à 24 MHz
- RAM : 8 kB
- Flash : 64 kB
- Alim : 1,8-5,5 V
- Prix : 1 dollar. Point final.
Pour un 8 bits, c'est du luxe. Plus puissant et moins cher que l'Atmega328 des Arduino, avec des périphériques au top. Reste un hic : connecter ça à internet.
Le réseau : adieu Ethernet
Ethernet paraît logique. Stable, documenté. Mais physiquement impossible. Le 10BASE-T file à 10 Mbit/s, doublé par l'encodage Manchester : 20 Mbit/s. Les GPIO de l'AVR plafonnent à 12 MHz. Trop juste.
Ajouter une puce Ethernet dédiée ? Ça coûte, complique, et retarde. Pas le but quand on veut juste démontrer.
La parade maligne : SLIP
SLIP sauve la mise. Serial Line Internet Protocol, né à l'époque des modems (RFC 1055). Ultra-simple : il encadre les paquets réseau avec des octets spéciaux et échappe les caractères piégeux.
- Délimiteurs :
0xC0 0xC0dedans ? Remplacé par0xDB 0xDC0xDB? Par0xDB 0xDD
Pas de matos exotique. Un adaptateur USB-série à 115 200 bauds suffit. Linux le voit comme une interface réseau :
stty -F /dev/ttyUSB0 115200 raw cs8
slattach -m -F -L -p slip /dev/ttyUSB0
Protocole des années 90, toujours supporté. Bonus : le microcontrôleur s'alimente via le câble série. Un seul fil. Parfait.
La pile réseau : tout coder à la main
Le fun commence avec 8 kB de RAM. Implémenter le réseau de zéro.
IP : du gâteau
En-tête IP : 40 octets basiques (adresses source/destination, méta). Oubliez la fragmentation, obsolète. Solution basique : inverser source et destination, rafraîchir TTL, renvoyer. Le MCU fait miroir, sans décoder IP.
TCP : l'enfer
TCP, c'est autre chose. États de connexion, retransmissions, cas tordus, timeouts. Des jours de debug. Le code final a ses bugs, mais sert une page web sans broncher.
HTTP : le hack pragmatique
Réponse HTTP codée en dur. Contenu statique fixe, une seule URL. Contraintes créatives qui rappellent : pas besoin d'un framework monstre pour tout.
L'accès internet : le twist malin
Le MCU est câblé en série à une machine de dev, elle-même reliée à un VPS à Helsinki avec IP public IPv4.
Problème : pas d'IP publique pour le MCU. IPv4 rares et chers. Et un lien série sur internet ? Impensable.
WireGuard à la rescousse
WireGuard, VPN moderne de Linux. Tunnel virtuel, NAT-friendly.
Schéma :
- Machine de dev tunnelise vers VPS via WireGuard
- VPS proxy
/mcu/*vers MCU local - Visiteurs tapent l'IP publique du VPS
- Trafic redirigé en local
Technique de proxy comme chez Twitch, adaptée à un chip à 1 $ et un câble série. Le MCU reste isolé. Classe.
Les leçons tirées
Projet absurde, valeur immense. Il démonte les abstractions pour recoder les bases d'internet.
On retient :
- Modularité. Serial ou Ethernet, TCP ou UDP : les bases tiennent.
- Contraintes innovantes. 8 kB force du code léger, efficace.
- Anciens protocoles viables. SLIP de 1988, Linux l'adore encore.
- Internet simple. Sans couches, c'est juste des octets entre adresses.
Le vrai message
Chez NameOcean, on adore décortiquer le web. Cloud ou microcontrôleur, maîtriser DNS, TCP, HTTP vous rend meilleur. Ce bidule ne remplacera pas votre hosting (promis). Mais il explique pourquoi le cloud cartonne. Pour apprécier les abstractions, rien de tel que les rebâtir sur un dollar.
On va calmer les fans de smartwatch-server maintenant.
Curieux des bases réseau ? Plongez dans nos guides sur la résolution DNS, les fondations TCP/IP, et pourquoi votre domain pèse plus lourd que le hardware. Pour un vrai hosting web (conseillé), nos solutions IA n'exigent pas de fer à souder.