Czy 2. emulatora MCU w UNO R3 można używać do emulacji klawiatury?

9

W następstwie czego jest 2. nagłówek ICSP w Arduino Uno R3? Zastanawiałem się, jak można to zhakować na naszą korzyść.

Na przykład, czy to oprogramowanie może zostać przepisane, aby UNO było rozpoznawane jako wejście myszy / klawiatury? Czy można to zrobić po zakończeniu procesu ładowania i pozostawić proces przesyłania taktowany?

Biorąc pod uwagę ograniczone IO, wydaje się, że jego funkcje mogą być ograniczone. Poza tym nie mam pojęcia, ile jest dostępnego kodu.

Madivad
źródło
Jako uzupełnienie tego pytania, możesz dodać inne pomysły, do których można by to wykorzystać, póki (w miarę możliwości), pozostawiając środowisko arduino w takcie. To znaczy, co jeszcze można by włamać, aby zwiększyć jego funkcjonalność?
Madivad
Flash jest zbyt mały, aby pomieścić wiele hacków, ale strona LUFA (link w moim pytaniu) ma wiele różnych hacków, które są kompatybilne z 16u2
TheDoctor
Za mały? 16kB to dużo flasha. Dziwi mnie, że nie trzymali się 8U2 tak jak w oryginale (chociaż mogą występować problemy z dostępnością).
Ignacio Vazquez-Abrams
Właśnie sprawdziłem Digi-Key, a różnica w cenie między 8U2 a 16U2 wynosi około 0,01 USD. W tej cenie jest to oczywiste, nawet jeśli nie potrzebujesz dodatkowej lampy błyskowej.
Ignacio Vazquez-Abrams
To pytanie powstało z projektu, który widziałem w hackaday w zeszłym roku, i od tego czasu wraz z przyjacielem dyskutujemy nad tym. Właśnie to znalazłem (tylko dwa tygodnie): hackaday.com/2014/03/16/…
Madivad

Odpowiedzi:

7

Tak to mozliwe. za pomocą LUFA możesz wypalić nowe oprogramowanie do konwertera szeregowego. Jedynym problemem jest to, że musisz ponownie nagrać konwerter USB-Serial, aby załadować inny program.

Informacje: http://www.fourwalledcubicle.com/LUFA.php

Konkretna strona: http://mitchtech.net/arduino-usb-hid-keyboard/

Doktor
źródło
Czy jest więcej informacji o oprogramowaniu wbudowanym w 2. MCU? Nie znalazłem nic na ten temat. Jestem pewien, że ktoś gdzieś specjalnie go zhakował. Osobiście chciałbym zobaczyć kod. Nacisk (dla mnie) w dużej mierze pozostawiłby środowisko taktyczne, aby umożliwić przyszłe zmiany. Nie sądzę, że byłoby to zbyt trudne do włączenia, gdy po resecie nie ma nic z IDE.
Madivad
@Madivad to prosty plik zestawu, który konwertuje sygnały USB na szeregowe. Musisz użyć nagiego AvrDude, aby go sflashować.
TheDoctor
z jednego z tych linków, które znalazłem: arduino.cc/en/Hacking/DFUProgramming8U2 Szukałem tego rodzaju informacji, oczywiście niepoprawne wyszukiwane hasła :) Dziękuję za twoje linki Doc.
Madivad
3

Drugi MCU jest podobny do tego zastosowanego w Leonardo, ale jest mniejszy i mniej zdolny ( ATmega16U2 vs. ATmega32U4 ). Z pewnością można go przeprogramować, aby robić to, co lubisz, ale jego ograniczenia oznaczają, że możesz mieć mniej „urządzeń” USB jednocześnie.

Nie przeglądałem istniejącego oprogramowania, ale z pewnością powinno być możliwe dodanie do niego własnego niestandardowego kodu, aby zarówno normalne połączenie szeregowe z głównym MCU, jak i dodatkowy kod mogły współistnieć.

Ignacio Vazquez-Abrams
źródło