Az eszköz firmware-e szigorú matematikai szűrést és transzformációt végez a nyers analóg és digitális jeleken, hogy kiküszöbölje az elektronikai zajokat és pontos fizikai indexeket képezzen:
1. Napsugárzás számítás (White LED Voc) Median + EMA szűréssel
A modul a fotonok által gerjesztett üresjárati feszültséget (Voc) monitorozza a GPIO34-es porton (12 bites ADC felbontás, 11dB csillapítás mellett). A mérési zajok és hálózati tüskék kiszűrésére egy 17 elemű beszúrásos rendezésű (Insertion Sort) mediánszűrőt alkalmaz, aminek a középső elemét egy Exponential Moving Average (EMA) szűrő követ ($\alpha = 0.50$). A rendszer folyamatos önkalibrációs (Self-cal) algoritmust futtat: dinamikusan menti a valaha látott legkisebb és legnagyobb feszültségeket (calMin/calMax), amiből a pillanatnyi százalékos besugárzást képezi. A Flash memória védelmére a kalibrációt csak throttled módon (minimum 5 perc elteltével és legalább 20 mV-os változás esetén) rögzíti a fájlrendszerbe.
2. Nem-lineáris UV-Index Lookup és Interpoláció
A GUVA-S12SD UV szenzor (GPIO35) karakterisztikája a sötétáram (dark current) és a fizikai tulajdonságok miatt a kezdeti szakaszon (UV 0-1 között) rendkívül nem-lineáris. A szoftver ezt egy 12 lépcsős, standard Adafruit/ESP32learning dokumentációkon alapuló lineáris interpolációs lookup-táblázattal oldja meg. A modul szoftveres jelerősítése (gain) az adminisztrációs felületről finomhangolható (500 mV - 50000 mV között), így a helyi állomás kalibrálható a hivatalos országos (pl. met.hu) bázisadatokhoz.
3. Harmatpont számítás Magnus-formulával
A BME280 precíziós szenzorról beolvasott környezeti hőmérséklet ($T$) és relatív páratartalom ($RH$) adatokból a mikrokontroller valós időben számítja a harmatponti hőmérsékletet ($T_{dew}$) az alábbi logaritmikus egyenlet alapján ($\pm0.4^\circ\text{C}$ pontossággal):
γ = ln(RH / 100.0) + (17.625 * T) / (243.04 + T)
T_dew = (243.04 * γ) / (17.625 - γ)
4. Infravörös Felhőindex és "Nap a házon" detektálás
Az MLX90614 érintésmentes infravörös pirométer segítségével az eszköz méri a tiszta űr/égbolt abszolút sugárzási hőmérsékletét ($T_{sky}$) és a szenzor környezeti hőmérsékletét ($T_{amb}$). A felhőzöttségi index alapja a hőkülönbség ($\Delta = T_{amb} - T_{sky}$): ha $\Delta \ge 30^\circ\text{C}$, akkor az égbolt teljesen tiszta (0% felhőzet), ha $\Delta \le 3^\circ\text{C}$, akkor teljes a borultság vagy sűrű köd áll fent (100% felhőzet). Ezen felül, ha az MLX belső környezeti hőmérséklete több mint $5^\circ\text{C}$-kal meghaladja a jól szellőztetett BME280 tok hőmérsékletét, a szoftver azonnal azonosítja, hogy közvetlen, erős napsugárzás éri a mérőállomás fizikai burkolatát, ami kritikus adat a hőtágulási kompenzációhoz.