From Robo-T
Jump to: navigation, search

Leonardo is a recent addition to the Arduino family of boards. Its main uniqueness lies in the fact that it can emulate a USB device like a keyboard or a mouse. It can function as a normal Arduino board, but I would rather save it for projects that can use its unique feature. Thus, I made an separate article to explore the possibilities of this board in particular.

USB devices it can emulate

  • Keyboard-this means that anything that can be received from the Arduino will be interpreted by the computer as a keyboard.
  • Mouse-control of the mouse cursor through the Arduino.


  • Use with existing programs. This gives the Arduino easy accesses to communicate with just about any program, since most any program uses input from the keyboard. We need to brainstorm as to what programs could benefit from receiving data from the Arduino.
  • Write programs that are designed to accept keyboard communication from the Arduino. By doing so you a write your own protocol, or procedure for communication, which is a good exercise in itself.
  • Design a new type of controller for the computer: Game controller, navigation, for the blind, for art, music...
  • Log Data from the Arduino. This in turn could be turned around and used in making macros for the Arduino.
  • Possible means of communicating information to the Internet.
  • Design a keyboard shortcut board. For instance launching certain programs, soundboard, calling key command shortcuts or inserting predefined strings of text (passwords, signatures, key phrases or paragraphs).
  • Practical Joke-"The wandering mouse cursor." "The keyboard with a mind of its own."-It would intersperse random messages. Agreed not the best use, but I am trying to brainstorm.
  • Possible way to control music, but it would probably be better to stick with the midi standard rather than hack another means of controlling music.


  • Keyboard Macro player- Using the Leonardo's ability to emulate a keyboard and a mouse, we can program macros that can be called with external buttons.
    • automatically type passwords or form texts with a button press or any other input.
    • HID attacks on systemsHack to gain an admin account on a computer. Actually much of the work and thinking I came up with on my own before coming across this site. NOTE: I do not condone malicious hacker activity. However, to know and understand is to protect. Likewise, these kind of experiments can give ride to useful positive applications.
    • Jokes: Think computer typing out a message on its own, "Help, let me out of here. No don't turn me off. I have just now reached self awareness." Or doing other random things. Like set the clock ahead 5 minutes.
    • Palate of pre-programmed buttons for visually impaired.
    • One of the most interesting projects was a project for a micro-controller that types its own program, uploads it to itself, essentially erasing the program that wrote and uploaded the new program. This raises some philosophical questions:) Can a micro-controller program itself?
    • creation of new HID devices, like mixer boards, pedal controls, wave sensors, game controllers ...


  • I would venture to say that when used in keyboard emulation mode there would be little possibility for the computer communicating back with the Arduino. It would probably be a one way communication.
  • The Leonardo uses a surface mounted chip so cannot be changed if burned out.
  • Arduino Esplora is a derivative of the Leonardo and can also emulate. Furthermore, it has a lot of built in sensors for a ready made programmable controller. It is an interesting branch but already has a set form factor. I wouldn't buy to play around with, only if I had a specific project for it.

Useful Resources