Evil mouse prank with Arduino Yun

I made a fun project with the Yun recently and thought folks here might be interested in it. Check out the video here: - YouTube

The basic idea is to use the Yun as a remotely controlled man-in-the-middle attack on a USB mouse. Some of the ways you can manipulate the mouse include flipping the axes, buttons, or even emulating a sticky mechanical ball mouse that randomly won't move on its axes. :slight_smile:

The prank works on the Linino side with a python script that reads mouse events from a mouse connected to its USB host port, and then sends them to the ATmega which acts like a mouse to the computer connected to its USB port (using the Arduino mouse library). Control of the prank is through a simple webpage that uses a python CGI script and FIFO for intraprocess communication with the main python script. Check out the code here if you're interested to see more: GitHub - tdicola/EvilMousePrank: Torture someone by intercepting their USB mouse communication and manipulating it in evil ways like inverting the axes or emulating an old sticky mechanical ball mouse!

The big issue I ran into is that the bridge library is too slow and unreliable at sending events between the two processors. I would get a totally unresponsive of extremely laggy mouse response (sometimes 3-4 seconds of lag) unfortunately when trying to use the Process class to read events. I ended up disabling the bridge and had great results with using Serial1 at 115200 baud. There's definitely some cool potential here for playing with other low speed USB HID devices like keyboards (yes, this could make a pretty scary wifi keyboard logger), joysticks, gamepads, etc.

Nasty boy, I like it! ]:smiley:

Ralf :wink:

And now a movie of a victim wondering what is going on :slight_smile:
Best regards