I want to wake up a PC via a USB-connected Arduino. When using a Pro Micro (Leonardo) I can do it, as its HID interface can wake up a PC. That is, in the Device Manager, under "Keyboards", the relevant HID device under "Power Management" has an "Allow this device to wake-up the PC" checkbox.

enter image description here

However, I need to use an Uno for this project. There's a hack (see link below) which flashes the ATMega16U2 on an Uno to act as a HID keyboard. It works fine, but this HID keyboard on a flashed Uno does NOT have the "Allow this device to wake up the PC" checkbox, i.e. I can't wake up my PC. I tried, the PC doesn't wake up. I know I can use an Ethernet shield on an Arduino to send a Wake up on LAN packet, but I don't want to add any shields, if I don't have to. Any advice how to do this?

EDIT: I was pointed to 2 libraries, NicoHood and LUFA (links below) to code a HID keyboard for the ATMega16U2 on an Arduino Uno. The problem is that acquainting myself with the subject and (either) library, would take several days, which is why I'd prefer to find an already-compiled simple HID device that does what I want. If I can't find one, I have a "dumb" solution: since the Leonardo can wake up a PC, I can hook it up to the PC, power the Uno (with my code) off the Leonardo, link one digital pin between the Uno and the Leonardo, so that the Uno can trigger a USB keystroke on the Leonardo. This is kludgy, since it uses the Leonardo just to send one USB keystroke to wake up the PC, but it would work.

LUFA

NicoHook Keyboard API

HoodLoader

Relevant links:

Arduino Uno as a USB HID Interface

Wake a touchscreen using a Pro Micro

  • I don't think it's that simple. I think the device driver has to have the wake-up ability coded in, i.e. be able to send out the relevant message – MrSparkly Aug 7 at 20:56
  • 2
    The HID library by NicoHood uses a special bootloader in the 16U2, github.com/NicoHood/HID It can send media keys and the power key. – Jot Aug 7 at 22:14
  • Thanks. I'll try to get in touch with the author, as I'm not sure what the minimal required setup would be. – MrSparkly Aug 7 at 23:30
  • Try a different USB port. – Gerben Aug 8 at 9:42
  • Can you explain the reason why you need to use UNO? – MichaelT Aug 8 at 22:35

Got it working: my Uno can now wake up a PC. I followed the HoodLoader wiki and I used the HID-Bridge sketches (below). It took about 2-3 hrs.

HoodLoader

HID-Bridge

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.