Från $1-mikrokontroller till webserver – djupdyk i embedded hosting
Webbserver på en 8-bitars mikrokontroller: För att det går – varför inte?
Vissa projekt är så galna att de knappt är praktiska. Men just de lär dig hur nätverket verkligen funkar. En utvecklare tog sig an utmaningen att köra en riktig hemsida på en mikrokontroller billigare än en chokladbit.
Hårdvaran: Enkel men kapabel
Huvudrollen är AVR64DD32. En 8-bitars mikrokontroller för runt en dollar. Specifikationerna:
- CPU: 8-bitars AVR-kärna upp till 24 MHz
- RAM: 8 kB
- Flash: 64 kB
- Ström: 1,8–5,5 volt
- Pris: En dollar. Punkt slut.
Det här är rymligt för en 8-bitare idag. Billigare och bättre än klassiska Arduino-chippet. Med fler funktioner och enklare kodning. Problemet? Den behöver nå internet.
Nätverksutmaningen: Ethernet funkar inte
Ethernet känns självklart. Stabilt och välanvänt. Men fysiken sätter stopp. 10BASE-T kör 10 Mbit/s. Med Manchester-kodning blir det 20 Mbit/s. AVR:s pinnar klarar max 12 MHz. För långsamt.
Du kan köpa en Ethernet-chip. Men det kostar tid och pengar. Inte poängen med ett sånt här experiment.
Smart lösning: SLIP-protokollet
SLIP – Serial Line Internet Protocol – räddar dagen. Från modem-eran (RFC 1055). Enkelt ramverk för paket:
0xC0som ramgränser0xC0i paketet blir0xDB 0xDC0xDBblir0xDB 0xDD
Ingen specialhårdvara. Bara USB-till-seriell-adapter på 115 200 baud. Linux ser det som nätverksgränssnitt:
stty -F /dev/ttyUSB0 115200 raw cs8
slattach -m -F -L -p slip /dev/ttyUSB0
Samma teknik som på 90-talet. Mikrokontrollern dras med ström från adaptern. En kabel. Klar.
Protokollstacken: Bygg från grunden
Nu kommer det roliga. Fullt nätverk på 8 kB RAM.
IP: Enkelt spel
IP-huvud är 40 byte standard. Adresser och metadata. Fragmentering är borta i moderna system. Lösningen: Byt avsändare/mottagare, nollställ TTL, skicka tillbaka. Speglar trafiken. Inget mer behövs.
TCP: Helvetet
TCP kräver:
- Tillståndshantering
- Återutsändning av förlorade paket
- Tusen kantfall
- Timeout-logik
Flera dagar debuggande. Fungerar för enkel sida, men med buggar.
HTTP: Snabb väg
Hardkoda svaret. Alltid samma statiska sida. En URL räcker. Tvingar fram smarta begränsningar.
Anslutningen: Ut på nätet
Mikrokontrollern hänger via seriell kabel till en dev-maskin. Den kopplar till VPS i Helsingfors med publik IPv4.
Problem: Ingen egen IP. IPv4 är dyrt och sällsynt. Seriell över internet? Nej tack.
VPN-fix: WireGuard
WireGuard löser det. Skapar tunnel genom NAT.
Steg:
- Dev-maskin till VPS via WireGuard
- VPS proxyar
/mcu/*till mikrokontrollern lokalt - Besökare når VPS:ens IP
- Trafik vidare till chippet
Samma trick som Twitch använder. Mikrokontrollern göms från webben. Rent och snyggt.
Vad vi lär oss
Projektet är poänglöst i praktiken. Därför så värdefullt. Tar bort lager och tvingar grunderna.
- Modulärt nätverk. Byt seriell mot Ethernet eller TCP mot UDP. Kärnan samma.
- Begränsningar skapar genialitet. 8 kB RAM gav rena koder som funkar.
- Gamla protokoll lever. SLIP från 1988. Linux älskar det.
- Internet är simpelt. Bara byte mellan adresser utan onödiga lager.
Slutsatsen
På NameOcean bryr vi oss om att förklara webbens grund. Oavsett cloud eller mikrokontroller. DNS, TCP-handskak, HTTP-förfrågningar – kunskap som gör dig vassare.
Det här ersätter inte din hosting. Men visar varför cloud är guld. Återskapa från scratch på en dollar-chip. Bästa sättet att uppskatta abstraktioner.
Ursäkta, vi måste stoppa nån som vill köra bloggen på en smartklocka.
Vill du dyka djupare i nätverk? Kolla guider om DNS, TCP/IP-grunder och varför din domain väger tyngre än hårdvaran. För riktig hosting (tipsas), testa våra AI-drivna lösningar. Inget lödning behövs.