Differenze tra Arduino UNO R3 e R4 WIFI

Salve a tutti, ho collegato alternativamente alle mie schedine R3 e R4 WIFI dei servomotori e dei joystick. Ho provato a compilare sulla R4 un vecchio codice che andava per la R3, ma non c'è modo di farlo funzionare anche se cambio solo i jumper sulla scheda. In pratica lo stesso codice con la R3 funziona e con la R4 non legge più i joystick e, ovviamente, i servomotori. Tuttavia, riscrivendo un codice simile direttamente sulla R4, i joystick per magia funzionano (per escludere problemi di librerie e di mal funzionamenti). Diversamente il codice scritto sulla R4, viene letto anche dalla R3, ma non perfettamente. Quindi sono riuscito a far funzionare il mio progetto, ma mi chiedo come sia possibile questa cosa. Per caso qualcuno saprebbe spiegarmi le effettive differenze e i principi di funzionamento tra le due schedine?

Arduino UNO R3 ed Arduino UNO R4 in comune hanno ... SOLO il nome e la piedinatura, per il resto sono due cose totalmente differenti, che usano due MCU di due generazioni differenti, una a 8 bit ed una a 32 bit e che hanno funzionalità TOTALMENTE differenti.

La compatibilità del codice c'è (al 99%) SOLO se si usano le funzioni del "framework" Arduino, ma appena si cerca di accedere a registri o a funzionalità a basso livello ... bisogna metterci le mani perché è tutto diverso.

Non mi meraviglia quindi che applicazioni che usano librerie o accesso alle porte/pin diretto non funzionino più o funzionino male ... :roll_eyes:

Guglielmo