Hallo,
ich versuche mal einen Teil zu beantworten:
Ja, Leonardo und Micro sind von der Software her identisch, ich habe schon mehrmals in der Arduino IDE das falsche Board eingestellt, geht trotzdem, der erzeugte Code dürfte aufs Byte identisch sein. Das dürfte auch schon die Frage nach der Programmiersoftware beantworten, soweit es sich um Arduino IDE, Visual Micro, Platformio oder ähnliches handelt.
Es gibt einen wichtigen Unterschied zwischen den 32U4 und 328 basierten Arduinos. Während bei Uno und Co ein zusätzlicher Controller oder ein USB-UART Wandler für die PC-Verbindung sorgt, macht der 32U4 die USB-Verbindung selber. Der Bootlader darauf dürfte also deutlich komplexer sein. Die USB-Verbindung verbraucht übrigens auch gleich wieder den RAM, den der 32U4 gegenüber dem 328 mehr hat.
Dadurch, dass der der Controller die USB-Verbindung selber händelt, kann er auch zusätzlich als andere USB-Geräte arbeiten (ich glaube maximal 4), z.B. Tastatur, Maus oder Joystick. Nicht so schön finde ich das Verhalten der seriellen Schnittstelle beim Programmieren. Anders als Arduinos mit Schnittstellen IC verschwindet der 32U4 nach der Programmierung kurz vom USB-Bus und taucht dann wieder auf. Meist als andere serielle Schnittstelle, meist springt er beim Arbeiten zwischen zwei oder drei Schnittstellennamen. Man muss also in der Arduino IDE dauernd umstellen. Das geht bei anderen Boards, wie dem Teensy deutlich besser. Auch kann man den Leonardo/Micro durch Programmieren dazu bringen, dass er nicht mehr am USB erscheint. Ihn dann wieder zum Leben zu erwecken ist ziemlich umständlich (Reset Taste genau im richtigen Moment loslassen), das ist beim Teensy deutlich besser gelöst (der Bootlader ist auf einem externen IC, den kann man am Controller nicht kaputtprogrammieren).
Im Prinzip sollten Sketches übertragbar sein, der 32U4 weicht aber bei den Timern und diversen IO-Registern vom 328 ab. Je nachdem wie systemnah die Sketches sind, können da Änderungen nötig sein.
Ich hoffe da hilft schon mal etwas
Lesezeichen