Leonardo Board is preventing Windows 7 from shutting down

I'm using an Arduino Leonardo connected to a computer running Windows 7 and am experiencing a problem when shutting down Windows.

Arduino software/drivers are version 1.8.3 Windows is freshly installed and is fully up to date The computer is Skylake based -- Core i3 6100 CPU on an Asus H170-Pro Motherboard

I have scanned the computer with Malwarebytes and Norton AntiVirus both of which find no malware.

So here's the problem: Whenever I have the Leonardo plugged into the computer and try to shutdown Windows, the shutdown process hangs. If I leave the computer to sit (after initiating a shutdown), after about 5 minutes, the computer will stop the shutdown process and reboot.

If I unplug the Leonardo before shutting down, the same problem occurs: the shutdown process hangs.

If I boot the computer without the Leonardo connected and don't connect it during the Windows session, I can shutdown the computer with no problems.

The sketch on the Leonardo is not contributing to this problem-- I have uploaded the factory blink sketch and the problems outlined above persist.

I have enabled and disabled XHCI hand-off in the motherboard usb settings in bios, but this does not resolve the problem.

Does anyone have any ideas or suggestions that might solve this problem?

Try deleting the software and everything relating to the Arduino software. Then, if it shuts down, re-download it

Are you using USB 2.0 or 3.0 ports ?
May have better luck with USB 2.0

Do you have any other software that could interrogate the COM ports and cause such issues ? (phone sync software or other terminal software)

Mayber a power saving issue with either windows or in the BIOS ?

Crispy_cat and ballscrewbob, thanks for the suggestions!

I uninstalled the Arduino software and then reinstalled and my computer seems to be able to shutdown successfully. I will be doing quite a bit of work with the Leonardo in the coming days, so I will let you know if the fix continues to hold.

Thanks again.

The problem has returned...

After I reinstalled the Arduino software, it appears that the Arduino was not actually recognized in the Device Manager (this allowed the computer to shutdown successfully). I discovered this earlier today when I started a little serial program I've written in Visual Basic .Net and it couldn't locate the Arduino (even though it was plugged in). As an aside, this program is not causing the shutdown error--if don't start the program during a windows session, the shutdown problem still occurs. There are no other programs installed that use the COM ports.

The info provided by Device Manager indicated that the drivers for the Leonardo were not installed. I reinstalled the drivers by right clicking the Leonardo and selecting the option to update the driver from a location on my hard drive (the drivers folder of the Arduino installation). Upon installing the drivers, the shutdown problem returned.

As suggested by ballscrewbob, I've tried using USB 2 ports rather than USB 3, but this has not resolved the issue.

I've checked all USB power settings and made sure that the USB ports never enter power saving mode.

The only way I can shutdown my computer successfully is to disable the Leonardo in the Device Manager before shutting down -- although its inconvenient, at least it works.

At this point, I'm going to download an older version of the Arduino software. Perhaps this will solve the problem.

In the meantime, if anyone has any ideas on how to resolve this, I'd sure be grateful if you could post some suggestions.

Did you use the drivers from the ZIP file inside the arduino directory ?

"C:\Program Files (x86)\Arduino\drivers\Old_Arduino_Drivers.zip"

Those should be the ones you use.

I have win 7 here and no issues with my LEO so it may be something specific to your computer or the drivers being used.

The problem persists after installing Arduino 1.0.0 software and drivers. Even installing drivers from the Old Drivers zip file as suggested by ballscrewbob doesn't solve the problem.

It's starting to look like the problem may have more to do with this being a Skylake based system than the Arduino software and drivers.

Ballscrewbob, I assume your system is not Skylake-based?

No my systems ( a few ) are not skylake.

Not heard of intel specific issues with Arduinos (not to say there are non)

If device manager is reporting no drivers then nothing else will see it either. Is it a clone LEO ? (in which case will need more info) Do you have "driver signing" enabled ? (disable if you have)

Where did you see a reference to skylake issues and Arduino ? (add link please)

What security do you have installed ?

Ballscrewbob,

I apologize for not responding sooner; I've had no time for my Arduino hobby these past few weeks.

The Device Manager initially indicated that the drivers were not installed, however after right clicking and selecting Update Driver Software, the Device Manager now always reports that the drivers are installed and the Arduino is recognized.

The Leonardo is not a clone.

I disabled driver signing as you suggested, but unfortunately this did not correct the problem.

I've not actually seen a reference to Skylake systems having problems with Arduino boards, but there are some well known issues regarding USB drivers with Skylake. This mostly revolves around the fact that Skylake does not natively support USB 2.0, which means extra steps have to be taken during installation of Windows 7. Once Windows 7 is installed, I install a USB 2.0 driver provided by Asus.

What makes me suspect Skylake may be at the root of this issue is that I never had this problem on an older system (which wasn't Skylake-based) running the same Arduino software and same Leonardo.

As far as security goes, I'm using Norton Internet Security and a trial version of Malwarebytes.

It's a bit of an annoyance to have to disable the Leonardo in order to shut down the computer, so until I can resolve this, I think the easiest stopgap will be to write a script that can automatically disable the Leonardo before shut down starts.

I just dug into this a little deeper and you may well be right.

It seems there are known bugs with the skylake CPU.
Did notice a few different fixes offered but as my systems are not based on that CPU there is little I can do for testing.

Seems there may have been some hyper threading issues affecting USB.