
Arduino 2.3.9 - cache error. Megoldás: downgrade : Arduino 2.3.9
Frissítés: Megoldva! Kijött az Arduino IDE 2.3.10.
Az Arduino IDE 2.3.9 megjelenésekor az egyik fontos újítás a fordítás gyorsítása volt. Ez a gyakorlatban azt jelenti, hogy az IDE igyekszik minél több, korábban már elkészített fordítási állományt újra felhasználni. Ez alapvetően jó irány. Nagyobb programoknál, sok könyvtár használatakor érezhetően rövidebb lehet a fordítási idő.
Az első tesztek alapján viszont úgy tűnik, az Arduino IDE 2.3.9-ben ezzel kapcsolatban egy kritikus hiba megmaradt. Több fórumbejegyzés és Arduino-github hibajegy szerint előfordulhat, hogy a program módosítása után az IDE nem fordít újra minden állományt, amit kellene. A fordítás és a feltöltés lefut, hibaüzenet nincs, a panelen így azonban a régi program fut tovább.
Ez különösen alattomos hiba, mert amúgy minden rendben lévőnek látszik. A feltöltés sikeres. A port jó. A panel válaszol. Ám mégis a korábbi kód dolgozik alapon.
Tipikus árulkodó jelek – tipikus módosításkor:
- átírt verziószám nem változik meg,
- soros monitoron a régi szöveg jelenik meg,
- módosított villogási idő nem látszik,
- debug-kiírás nem kerül bele a futó programba,
- ugyanaz a sketch a 2.3.8-cal még rendben működött.
Fontos, hogy az Arduino IDE 2.x felületén jelenleg nincs külön „Tiszta Fordítás” / „Clean&Compile” gomb. Nincs olyan egyszerű funkcionális beállítás sem, amellyel minden fordítás előtt biztosan töröltetni lehetne a fordítási gyorsítótárat.
Fontos: ez nem csak a beépített UNO, Mega és egyéb alapértelmezett áramköri lapok esetén vag így, hanem az Espressif ESP32/ESP8266 és a STM32 esetén is! Ezek kerültek eddig tesztelésre. A működésből fakadóan, – nem áramköri lap/board függő a jelenség, hanem általános fordítási anomália!
És a megoldás… Ez a megoldás?
Ha valaki mégis az Arduino IDE 2.3.9-et használja, akkor gyanús esetben az IDE bezárása után törölhető a sketch-fordítási gyorsítótár.
- Windows alatt jellemzően itt található:
C:\Users\<felhasználó>\AppData\Local\arduino\sketches
- macOS alatt:
~/Library/Caches/arduino/sketches
- Linux alatt rendszerfüggő, gyakran:
~/.cache/arduino/sketches
Ez nem a saját sketch-eket törli, hanem az Arduino IDE ideiglenes fordítási állományait. A következő fordítás emiatt újra lassabb lesz, de nem kerülnek bele korábbi fordítási „maradékok”.
Parancssoros használatnál az Arduino CLI ad egy tisztább megoldást:
arduino-cli compile --clean -b <FQBN> <sketch_mappa>
Feltöltéssel együtt például:
arduino-cli compile --clean --upload -b arduino:avr:uno -p COM3 Blink
A --clean kapcsoló kényszeríti az átmeneti állományok törlését.
Megoldás – vagy inkább mégsem
A gyakorlati tanács jelenleg egyszerű: aki tanfolyamon, oktatásban, ügyfélnél vagy éles munkában használja az Arduino IDE-t, annak most nem érdemes az Arduino IDE 2.3.9-cel kísérletezni. A jelenlegi stabil és biztos megoldás: a visszaállítás az Arduino IDE 2.3.8-as verzióra, amíg az Arduino 2.3.9 gyorsítótár-kezelési hibájára nem érkezik javított kiadás.
Ha a program módosítása után mégis a régi kód fut, akkor nem feltétlenül a panellel van baj. Lehet, hogy az IDE a régi fordítási eredményt használja. Ilyenkor gyorsítótár-törlés vagy visszaállás Arduino IDE 2.3.8-ra.
FRISSÍTÉS (2026.06.10):
Arduino IDE 2.3.10 – a hiba javítva, de a megoldás csak részleges
Bővebben: →Arduino IDE 2.3.10 – végre javították a 2.3.9 veszélyes cache-hibáját
Az Arduino IDE 2.3.9-ben megjelent fordítási gyorsítótár-kezelési hiba időközben javításra került. Az Arduino IDE 2.3.10 kiadás egyik legfontosabb változása éppen az, hogy a módosított sketch-ek fordításánál már nem szabadna előfordulnia annak, hogy az IDE a régi, gyorsítótárban maradt fordítási eredményt használja fel.
Ez jó hír, mert a 2.3.9 hibája kifejezetten alattomos volt: a fordítás lefutott, a feltöltés sikeresnek látszott, a panel működött, mégis előfordulhatott, hogy nem az aktuális program futott rajta. A 2.3.10-es verzió ezért erősen ajánlott frissítés mindenkinek, aki korábban 2.3.9-et használt.
Fontos azonban, hogy a javítás nem jelent teljes értékű, felületen is jól látható megoldást. Az Arduino IDE-ben továbbra sincs külön, menüből elérhető „Tiszta fordítás”, „Clean Build” vagy „Clean & Compile” parancs. A teljes újrafordítás kényszerítése csak billentyűkombinációval, illetve módosított gombhasználattal érhető el.
A 2.3.10-ben a tiszta fordítás használata:
- Shift + Verify gomb
- Ctrl + Shift + R Windows/Linux alatt
- Command + Shift + R macOS alatt
Ez azt jelenti, hogy a probléma ugyan javításra került, de a felhasználói oldalról ez inkább gyorsjavításnak tekinthető. A funkció létezik, de nincs külön menüpontja, nincs jól látható gombja, és egy kezdő felhasználó nagy eséllyel nem fogja magától megtalálni.
A gyakorlati tanács ezért módosul:
- Arduino IDE 2.3.9 használata továbbra sem ajánlott.
- Arduino IDE 2.3.10-re frissíteni érdemes.
- Gyanús fordítási viselkedésnél érdemes kézzel tiszta fordítást indítani.
- Oktatási, tanfolyami vagy ügyfélkörnyezetben különösen fontos elmondani, hogy a teljes újrafordítás nem külön menüpontban, hanem billentyűkombinációval érhető el.
A javasolt megoldás 2026.06.08 óta ma már nem a 2.3.8-ra való visszaállás, hanem az Arduino IDE 2.3.10-re frissítés.
Források
- Arduino fórum – Arduino IDE 2.3.9 [Arduino forum]
- Megjelent az Arduino IDE 2.3.10 [Arduino forum]
- Hordozható Arduino: telepítési útmutató és az előnyök, hátrányok [TavIR]
- Arduino IDE 2.3.9 – gyorsabb fordítás, de figyelj a cache-re [TavIR]
Kapcsolódó cikkek:
– Arduino IDE 2.3.10 – végre javították a 2.3.9 veszélyes cache-hibáját
– Arduino IDE 2.3.9 – gyorsabb fordítás, de figyelj a cache-re
– Arduino VENTUNO Q: merre tart az Arduino az UNO után?
– Arduino IDE 2.3.8: nem látványos kiadás, de végre javítja az idegesítő hibákat
– Infravörös vevőmodul tesztelése Arduino UNO-val – hogyan olvassunk távirányítót digitálisan (KY-022)?





