Можно ли использовать второй MCU на UNO R3 для эмуляции клавиатуры?


9

Исходя из того, для чего 2-й заголовок ICSP в Arduino Uno R3? Мне было интересно, как это можно взломать в наших интересах.

Например, можно ли переписать эту прошивку, чтобы UNO распознавался как ввод с клавиатуры или мыши? Можно ли это сделать после процесса загрузки и оставить процесс загрузки в такте?

Учитывая ограниченный ввод-вывод, кажется, что его функции могут быть ограничены. Плюс я понятия не имею, сколько кода места доступно.


В качестве дополнения к этому вопросу, не стесняйтесь добавлять другие идеи, которые могут быть использованы, пока (насколько это возможно), оставляя среду Arduino в такте. То есть, что еще можно взломать, чтобы увеличить его функциональность?
Мадивад

Его флеш-память слишком мала, чтобы вместить несколько хаков, но на сайте LUFA (ссылка на мой вопрос) есть много разных хаков, которые совместимы с 16u2
TheDoctor

Слишком маленький? 16 КБ это много вспышки. Я удивлен, что они не придерживались 8U2 как в оригинале (хотя могут быть проблемы с доступностью).
Игнасио Васкес-Абрамс

Я только что проверил Digi-Key, и разница в цене между 8U2 и 16U2 составляет около 0,01 доллара. По этой цене это легко, даже если вам не нужна дополнительная вспышка.
Игнасио Васкес-Абрамс

Этот вопрос возник из проекта, который я видел на прошлогоднем хакадее, и с тех пор мы с другом обсуждали его и выключали. Я только что нашел это (всего две недели): hackaday.com/2014/03/16/…
Мадивад

Ответы:


7

Да, это возможно. используя LUFA, вы можете записать новую прошивку в последовательный конвертер. Единственная проблема заключается в том, что вам нужно повторно записать USB-Serial Converter для загрузки другой программы.

Информация: http://www.fourwalledcubicle.com/LUFA.php

Конкретная страница: http://mitchtech.net/arduino-usb-hid-keyboard/


Есть ли дополнительная информация о прошивке, которая существует во 2-ом микроконтроллере? Я не смог ничего найти на нем. Я уверен, что кто-то где-то специально его взломал. Лично я хотел бы увидеть код. Акцент (для меня) был бы в значительной степени оставить окружающую среду в такте, чтобы учесть перепрошивку в будущем. Что я не думаю, что было бы слишком сложно включить после того, как ничего не из IDE после сброса.
Мадивад

@Madivad - это простой файл сборки, который преобразует сигналы USB в последовательный порт. Вы должны использовать голый AvrDude, чтобы прошить его.
TheDoctor

по одной из этих ссылок, которые я нашел: arduino.cc/en/Hacking/DFUProgramming8U2 Я искал такую ​​информацию, очевидно, неправильные условия поиска :) Спасибо за ваши ссылки Док.
Мадивад

3

Второй MCU аналогичен тому, который используется в Leonardo, но он меньше и обладает меньшими возможностями ( ATmega16U2 против ATmega32U4 ). Конечно, можно перепрограммировать его так, чтобы он делал то, что вам нравится, но его ограничения означают, что вы можете иметь меньше USB-устройств одновременно.

Я не смотрел на существующую прошивку, но, безусловно, должна быть возможность добавить в нее свой собственный код, чтобы сосуществовать как обычное последовательное соединение с основным MCU, так и дополнительный код.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.