Problema comunicazione con Arduino: avrdude: stk500v2_ReceiveMessage(): timeout

Recentemente mi è capitato di non riuscire più a caricare sketch su un Arduino UNO da USB, ricevendo questa serie di errori:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

A nulla sono valsi tentativi di reset e varie guide trovate in rete, fino a quando sono riuscito a ripristinarlo seguendo la procedura basato sull’utilizzo di Arduino come ISP, ecco come:

innanzitutto bisogna disporre di 2 schede ARDUINO UNO, collegate come in figura:

Immagine originale: Arduino.cc

Dopodichè carichiamo l’IDE di Arduino (nel mio caso la versione per MacOS), selezioniamo dagli “ESEMPI” lo schema “ARDUINO ISP“:

Compiliamo e lo carichiamo sulla board.

Ora selezioniamo dal menu “STRUMENTI” -> “PROGRAMMATORE” -> “ARDUINO as ISP“:

Poi procediamo con “STRUMENTI” -> “SCRIVI IL BOOTLOADER

Se tutto è andato per il verso giusto, scollegate il tutto e provate a caricare uno sketch sulla vostra Arduino UNO (è sufficiente il semplice e classico “Blink”).

Per ulteriori approfondimenti fate riferimento a questo tutorial: https://www.arduino.cc/en/Tutorial/ArduinoISP