Programma's worden gebouwd in de standaard ontwikkel omgeving van de Arduino of zoals ik doe met behulp van Microsoft Visual Studio en vMicro extensie. In deze omgevingen wordt voor veel functie gebruik gemaakt van een schat aan bibliotheken en core software. Aan het eind van het proces wordt het vertaalde programma (een binair bestand, z.g. HEX file) via een USB kabel in de target Arduino geladen. Als je vaker een Arduino van software wil voorzien of je wilt het programma aan iemand anders geven, moet de ontwikkelomgeving met alle specifieke bibliotheken aanwezig zijn: de sources moeten elke keer weer gecompileerd en gelinkt worden.
Het gebouwde HEX file kan je ook exporteren en met een losse tool laden. Dan kan je zonder ontwikkelomgeving de Arduino van software voorzien. Ik gebruik een kleine applicatie Xloader. Deze kan je o.a.vinden op GitHub: https://github.com/xinabox/xLoader