Programátor si můžeme vyrobit sami nebo jej zakoupit již hotový, jehož cena se pohybuje ve stovkách až jednotkách tisíc českých korun. Pro naše potřeby nám vystačí některý z levnějších programátorů, jako například BiProg, AVRProg, USBasp aj. doporučuji „ISP“ programátor, což znamená „In System Programming“, tedy možnost připojit programátor přímo do aplikace, ve které se mikrokontrolér nachází. Většina programátorů funguje jako převodník USB/UART, tj. se v systému hlásí jako sériový port („COMx“).
Rozhraní používané přímo k připojení do mikrokontroléru je „SPI“- „Serial Peripheral Interface“, které se rovněž hojně využívá ze strany nejrůznějších periferních obvodů připojovaných k mikrokontrolérům, jako jsou paměti, digitální potenciometry, čidla apod. Rozhraní SPI je synchronní, tzn, že nechybí vodič pro přenos informace o čase- tzv. „taktování“, který se označuje „SCK“- „Serial clock“. Následují dva vodiče pro přenos dat. „MOSI“- „Master Out Slave In“ a „MISO“- „Master In Slave Out“, které, jak již text napovídá, slouží k obousměrnému přenosu dat mezi obvodem „MASTER“, který generuje taktovací signál sběrnice SPI, a „SLAVE“. Nesmím zapomenout na vodič „!SS“, který na programátorech zpravidla nenaleznete, nicméně při zmiňovaném připojování periferních obvodů se využívá k volbě jednoho z více zařízení SLAVE, se kterým bude zařízení „MASTER“ komunikovat. Zařízení zvolíme logickou 0 na jeho vstupu „!SS“ (aktivní v log.0). Další vodiče již s SPI přímo nesouvisejí; jedná se o „!RESET“, který je také aktivní v logické 0 a jak již název napovídá, slouží k nastavení počátečních podmínek mikrokontroléru. Zbylé dva vodiče jsou napájení (+) a (-) 5V. Toto napětí nesmíme překročit o více jak 10% a při taktovacím kmitočtu mikrokontroléru do 8MHz toto napětí můžeme za účelem snížení spotřeby snížit až na 2,7V (v případě použití ATmega8L), či spíše na typické napětí 3,3V.