← Takaisin blogiin

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.