Arduino always connected to USB, on Windows 10 ,causing problems.

So, I upgraded to Windows 10.

I made a remote control for my pc using a Leonardo and an IR receiver.
On Windows 7, I could keep the Arduino plugged in 24/7, and I would work just fine, now on Windows 10, I need to disconnect and reconnect the Arduino from the PC every time I turn on my pc.

Any fix?

Thanks!

So I want a way to get Windows 10 to recognize the Leonardo even if it was plugged in before the computer started!

I have the same problem in Windows 10; with leonardo too.
I must unplug and plug the USB conector every time i power on my pc.

Any idea?

I have an Arduino Micro which is essentially a tiny Leonardo. It does the same mouse and keyboard emulation that the Leonardo does. I have the same problem since upgrading to Windows 10.

I opened the device manager and it seems that Windows is detecting the device as a USB com port if the device is plugged in during boot. I've not tried unplugging and replugging because of my disability. I will try that when I have someone handy to help me.

Anyway if you look at the device manager after reboot it says that it is a USB COM port. If I open the Arduino IDE and re-upload something like my IR mouse sketch that I'm trying to use, during the upload the identification in device manager changes to Arduino Micro Bootloader. When the upload is complete, the device manager then identifies the device as Arduino Micro and the device works properly.

So whoever is in charge of maintaining the Arduino USB driver, were going to need some sort of Windows 10 update.

Is there somewhere official where we need to report this or will it be seen by the right people in this forum?

I just wanted to update everyone reading this thread. The problem I was having with Arduino Leonardo and Arduino Micro not being recognized as an HID device has been solved if you download the nightly build Arduino IDE 1.6.6. You have to add

#include <Keyboard.h>
#include <Mouse.h>
#include <HID.h>

and recompile your sketch and upload it using the daily build IDE. You don't need to uninstall your original IDE. Just download it as a zip file, put it in some directory and unzip it, browse to it using the file explorer and find Arduino.exe and open it. Then do file open to your sketch.

It works for me on both Leonardo and Micro on two different machines that were 8.1 upgraded to Windows 10.

Is there any way to sleep/wakeup PC?

Unfortunately fix from this topic doesn`t work with last IDE:

http://forum.arduino.cc/index.php?topic=150157.0

Exxo:
Is there any way to sleep/wakeup PC?

My original code has been incorporated in the NicoHood Arduino HID Project.

Michael

Michael, thank you for info, i used HID Project, but found three strange issues with ported and recompiled sketch:

1 - Library can`t send 3 or more keys sequence

2 - Key repeat section in my sketch start working incorrectly (send text instead of special keys)

3 - Sleep/wakeup, which was binded to one key, throw PC to sleep and immediately wake it up, how to fix it?

I put here part of my sketch with comments:

#include <IRremote.h>
#include <HID-Project.h>

#define hold_cycles 17000

// =============================================== Repeat section
unsigned int nTurn;
unsigned long nPressedButton;

IRrecv irrecv( ir_dataPin );

void setup()
  {
  nTurn = 0;
  nPressedButton = 0;
  irrecv.enableIRIn();
  Keyboard.begin();
  Serial.begin( 9600 );
  }

void ReleaseKey()
  {
  nTurn = 0;
  nPressedButton = 0;
  Keyboard.releaseAll();
  }

decode_results ir_data;
void loop()
  {
  byte cNewKey = 0;
  if( irrecv.decode( &ir_data ))
    {
    if( ir_data.decode_type == 3 ) ir_data.value |= 0x800;
    else if( ir_data.decode_type == 4 ) ir_data.value |= 0x8000;
    
    Serial.print( "   type = " );
    Serial.print( ir_data.decode_type, DEC );
    Serial.print( "   code = " );
    Serial.print( ir_data.value, HEX );
    Serial.print( "   bits = " );
    Serial.println( ir_data.bits, DEC );

    if( ir_data.value == nPressedButton ) ir_data.value = REPEAT;

    //======================== Key section
	
    switch( ir_data.value )
      {
	  
  case 0xE2E4:               // USB sleep/wakeup (PC goes to sleep and immediately wake up)
        System.write(SYSTEM_WAKE_UP);
        System.write(SYSTEM_SLEEP);
        break;
  case 0xE224:               // Close window (works, because two keys were sent)
        Keyboard.press(KEY_LEFT_ALT);
        Keyboard.press(KEY_F4);
        delay(100);
        Keyboard.releaseAll();
        break;
  case 0xE204:                // Start app (doesn`t work, because three keys were sent)
        Keyboard.press(KEY_LEFT_SHIFT);
        Keyboard.press(KEY_LEFT_ALT);
        Keyboard.press('r');
        delay(100);
        Keyboard.releaseAll();
        break;
  case 0xE2B0:                 // Left (Special keys doesn`t work with repeat (send "P" instead of move cursor left), but it worked with default keyboard library)
        cNewKey = KEY_LEFT_ARROW;
        break;
  case 0xE288:                 // Works
        cNewKey = 'x';
        break;            
      default:
        nTurn = 0;
      }
    irrecv.resume();
    }

// =============================================== Repeat section

  if( cNewKey )
    {
    if( nPressedButton ) ReleaseKey();

    nPressedButton = ir_data.value;
    Keyboard.press(cNewKey);
    }
  else if( nPressedButton )
    {
    if( ++nTurn >= hold_cycles ) ReleaseKey();
    }
  }