20. maaliskuuta 2026
VS Code, AI-agentti ja Serial MCP server sulautetun laitteen debuggaamisessa
Sulautettujen järjestelmien debuggaus tapahtuu usein edelleen samalla tavalla kuin vuosia sitten: laite tulostaa diagnostiikkatietoa UARTiin ja kehittäjä seuraa sitä serial-terminaalissa.
Sulautettujen järjestelmien debuggaus tapahtuu usein edelleen samalla kaavalla kuin vuosia sitten: laite tulostaa diagnostiikkatietoa UARTiin ja kehittäjä seuraa sitä serial-terminalissa.
Tähän workflow’hon voi kuitenkin lisätä uuden kerroksen automaatiota käyttämällä AI-agenttia ja MCP serveriä.
Perusidea
Projektissa rakensin Serial MCP serverin, joka toimii välikerroksena laitteen ja kehitysympäristön välillä.
Embedded device (UART debug)
↓
Serial MCP server
↓
VS Code + AI agent
Serial MCP server avaa sarjaportin ja välittää debug-tulosteen:
- AI-agentille
- kehittäjälle selaimen Web UI:n kautta
Käytännössä sama sarjaliikenne näkyy sekä ihmiselle että AI-agentille.
Mitä AI-agentti voi tehdä?
Kun agentti näkee laitteen debug-printit, se voi esimerkiksi:
- avata ja sulkea serial-portin
- seurata debug-tulostetta reaaliajassa
- odottaa tiettyjä tapahtumia
- analysoida laitteen tilaa
Tämä mahdollistaa testiskenaarioiden ajamisen ilman, että kehittäjän täytyy seurata kaikkea käsin.
Esimerkki debug-session kulusta
AI-agentti avasi laitteen UART-portin MCP serverin kautta:
Open serial port COM50
Laite alkoi tulostaa verkon diagnostiikkatietoa:
lwIP diag: up=1 link=1 udp_ok=357 udp_err=0
Kun Ethernet-kaapeli irrotettiin, laite raportoi tilan muutoksen:
UDP: blocked (netif_up=1 link_up=0)
lwIP diag: up=1 link=0 udp_ok=0 udp_err=0
Agentti pystyi varmistamaan että logiikka toimii oikein:
- link down → UDP estetään
- link up → UDP liikenne alkaa
Kun linkki palautui, paketit alkoivat kulkea jälleen:
lwIP diag: up=1 link=1 udp_ok=1357 udp_err=0
Kun vika ei ole siellä missä luulet
Samaa debug-ketjua käytettiin myös laitteen Web UI:n ongelman selvittämiseen.
Yhdessä vaiheessa käyttöliittymän checkbox ei reagoinut oikein. Ensimmäinen epäilys oli JavaScriptissä tai selaimessa.
Todellinen syy löytyi kuitenkin sulautetun HTTP-serverin parserista.
Kun sivun koko kasvoi riittävän suureksi, HTTP-requestin käsittelyssä käytetty puskuri ei enää riittänyt ja parseri hajosi. Seurauksena checkboxin lähettämä data ei koskaan päätynyt sovelluskoodiin asti.
Serial-debugin kautta ongelma oli kuitenkin mahdollista paikantaa nopeasti.
Yhteinen näkymä ihmiselle ja agentille
Serial MCP serverissä on myös Web UI, josta kehittäjä näkee saman sarjaliikenteen kuin AI-agentti.
Tämä tekee debuggaamisesta yhteistyötä:
- kehittäjä näkee mitä laite tekee
- AI-agentti analysoi samaa dataa
- molemmat käyttävät samaa debug-kanavaa
Mitä tästä kannattaa ottaa mukaan?
AI-agentit eivät korvaa kehittäjää, mutta ne voivat auttaa seuraamaan järjestelmän tilaa ja analysoimaan debug-dataa.
Erityisesti sulautetuissa, joissa diagnostiikka kulkee UARTin kautta, tämä voi olla yllättävän tehokas työkalu.