user304: Following on from What's the 2nd ICSP header for in Arduino Uno R3? I was wondering how this could be hacked to our advantage. 
For example, could that firmware be rewritten to have the UNO recognised as a mouse/keyboard input? Could this be done after the boot loader process and leave the uploading process in tact?
Given the limited IO, it seems it's functions might be limited. Plus I have no idea how much code is space is available. 

user368: The second MCU is similar to that used in the Leonardo, but is smaller and less capable (ATmega16U2 vs. ATmega32U4). It is certainly possible to reprogram it to do what you like, but its limits means that you can have fewer USB "devices" at the same time.
I have not looked at the existing firmware, but it should certainly be possible to add your own custom code into it such that both the normal serial connection to the main MCU as well as your additional code can coexist.

user8: Yes, it is possible. using LUFA, you can burn new firmware to the Serial converter. The only problem is that you need to re-burn the USB-Serial converter to upload another program.
Info: http://www.fourwalledcubicle.com/LUFA.php
Specific page: http://mitchtech.net/arduino-usb-hid-keyboard/

304: <p>Following on from <a href="https://arduino.stackexchange.com/questions/986/whats-the-2nd-icsp-header-for-in-arduino-uno-r3">What&#39;s the 2nd ICSP header for in Arduino Uno R3?</a> I was wondering how this could be hacked to our advantage. </p>

<p>For example, could that firmware be rewritten to have the UNO recognised as a mouse/keyboard input? Could this be done after the boot loader process and leave the uploading process in tact?</p>

<p>Given the limited IO, it seems it's functions might be limited. Plus I have no idea how much code is space is available. </p>
 368: <p>The second MCU is similar to that used in the Leonardo, but is smaller and less capable (<a href="http://www.atmel.com/devices/atmega16u2.aspx" rel="nofollow">ATmega16U2</a> vs. <a href="http://www.atmel.com/devices/atmega32u4.aspx" rel="nofollow">ATmega32U4</a>). It is certainly possible to reprogram it to do what you like, but its limits means that you can have fewer USB "devices" at the same time.</p>

<p>I have not looked at the existing firmware, but it should certainly be possible to add your own custom code into it such that both the normal serial connection to the main MCU as well as your additional code can coexist.</p>
 8: <p>Yes, it is possible. using LUFA, you can burn new firmware to the Serial converter. The only problem is that you need to re-burn the USB-Serial converter to upload another program.</p>

<p>Info: <a href="http://www.fourwalledcubicle.com/LUFA.php">http://www.fourwalledcubicle.com/LUFA.php</a></p>

<p>Specific page: <a href="http://mitchtech.net/arduino-usb-hid-keyboard/">http://mitchtech.net/arduino-usb-hid-keyboard/</a></p>
