The Arduino website suggests that only three boards are supported for the Mouse and Keyboard library page:

  • Leonardo
  • Micro
  • Due

What is special about those boards, that the other boards in the Arduino family don't have? I thought they might have the same proceesing chip on them but only two of them do. The CPUs are correspondingly:

  • ATmega32u4
  • ATmega32u4
  • Atmel SAM3X8E ARM Cortex-M3

I have Nanos, Unos and Duemilanoves. I am out of luck aren't I?

So my question is: what do those three boards have that lets them support those libraries?

2 Answers 2


Those chips have hardware support built into them to handle the rather strict timing requirements for interpreting (and responding to) USB sequences. You will notice, for example, that on the Arduino Uno there is a second chip (the Atmega16U2) which also can handle USB. In fact the chips with a "U" in the name generally can do this.

I have Nanos, Unos and Duemilanoves. I am out of luck aren't I?

You have a couple of options. Some people reflash the USB chip on their Uno (for example), although personally I think that is a bit fiddly.

Alternatively, there is a library called VUSB (virtual USB) which lets you do some USB on the non USB chips. Google vusb arduino.

You need three resistors and two zener diodes to make up the hardware that lets this library do its stuff.


Another option is to use the PS2Keyboard library, a PS2 connector and a PS2-to-USB converter.

You will need only two digital pin of your Arduino and have keyboard solution.

  • i was actually more interested in simulating a mouse, but this is good to know.
    – Octopus
    Commented Aug 2, 2015 at 2:21
  • There is also a library called PS2Mouse that enables the possibility to act as a ps2 mouse device (with ps2dev) or receive values from a existing PS2 mouse. Commented Aug 2, 2015 at 13:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.