We have our students using the Sparkfun Inventor’s Kit as part of one of our classes, and have started seeing a lot of instances of the board being detected by Windows 7 as a “Microsoft Serial Mouse” if the sketch installed was writing to serial immediately after the board powered up. This causes users to lose control of their mouse, since the serial mouse driver is trying to interpret the incoming strings as pointer positions and clicks. This seems to be a fairly widespread problem for Windows Arduino users, as well as anyone using USB->Serial adapters which immediately output serial data, like GPS units, so I figured someone else might appreciate knowing how to fix it. We found two methods:
If you are an Administrator on your machine, you can open the Device Manager (devmgmt.msc in the quick-run bar), right click on the “Microsoft Serial Mouse” entry under “Mice and other pointing devices”, then click “Disable”. Uninstalling doesn’t seem to work, but disable does. This relies on you having enough control over your mouse while the Arduino is plugged in to actually navigate and click on things, which isn’t always the case.
As an alternative, you can use group policy to disallow the drivers that the serial mouse uses. This is the route we took, since we’re on an Active Directory domain and needed to apply the fix to around 100 machines.
Open the group policy editor (gpedit.msc in the quick launch bar), then navigate to:
“Computer Configuration\Administrative Templates\System\Device Installation\Device Installation Restrictions”
Open “Prevent installation of devices that match any of these device IDs”, enable it, and add all of the following in the menu opened by the “Show” button.
ACPI\PNP0F01
ACPI\PNP0F08
ACPI\PNP0F09
ACPI\PNP0F0A
ACPI\PNP0F0C
ACPI\PNP0F1E
SERIAL_MOUSE
*pnp0f01
*pnp0f08
*pnp0f09
*pnp0f0a
*pnp0f0c
*pnp0f1e
This worked 100% of the time for us. Even if the Arduino was detected as a serial mouse, the driver wasn’t installed and so we retained control of our mouse. It doesn’t interfere with USB mice, since they use a different device ID, though it might interfere with PS/2 mice. So far we haven’t had any trouble with the Arduinos themselves after applying the fix.