O arduino tem uma área chamada "boot loader", que contem um programa, como se fosse o sistema operacional de um computador. Desta forma, quando ligamos o Arduíno, ele aguarda por alguns segundos se há requisição de programação vinda do computador. Quando expira este tempo, o programa contido no bootloader aponta a a execução do programa para a área de programa do usuário, caso exista programa lá. O bootloader não é sobreescrito quando um programa é enviado pela IDE do Arduíno. Se porém o chip do arduino for gravado num gravador externo, existe a possibilidade de apagar o bootloader. Se um chip Atmega328, por exemplo ( Arduino Uno ) é comprado, ele não necessariamente vem com o bootloader gravado.