I want my Arduino to wake up my PC. When I put my PC the the S3 sleep mode, moving my mouse or pressing a key wakes it up. Is it possible that my Arduino wakes up my PC?
(Of cource I can demolish an old mouse and connect it to by Arduino, but this is not a suitable solution for me)
If the PC has PS/2 ports, you could switch to using a USB keyboard or mouse, and use the vacated PS/2 port for the Arduino to send the wakeup signal: there are PS/2 emulator projects on the web, and possibly in the Playground.
Just sending serial information is not enough to wake up the PC. The PS/2 option is interresting, but I hope there is a solution without additional hardware.
Just sending serial information is not enough to wake up the PC. The PS/2 option is interresting, but I hope there is a solution without additional hardware.
Well that wouldn't require more hardware than a couple of wires to plug into a PS2 socket (or a hacked PS2 plug)
Can you get a access to the insides of the computer?
Normally you can wake up your PC using the power button, if you create an extra circuit in parallel with your power button then you could use a transistor to 'press' the power. You could also turn on and off your PC with that. You may even be able to send a 5v high to the power pin but I am not sure about that...
In the computer BIOS, you can turn on "wake on LAN". Perhaps this option will wake the computer if you send info thru the COM port the Arduino is hooked up to? I doubt it will work, but it may be worth a try.
Also, if you're using Windows, if you goto Device Managers, then to the USB device you want, you're able to "Allow device to bring computer out of sleep mode"
I haven't experimented with it, so not sure how it will work with Arduino, but it does work for other USB devices. (such as mice as such)
Also, if you're using Windows, if you goto Device Managers, then to the USB device you want, you're able to "Allow device to bring computer out of sleep mode"
That's a good point. It comes up as a serial port so perhaps you can do that for when it sends serial data?
I absolutely know this can be done with an Arduino NG because I've done it. I'm not sure on other boards, it's going to depend on the pin connections to the FTDI chip.
There's an empty 4-position solder pad very near the FTDI chip. Test each pad with a meter to find if it's connected to pin 6 on the FTDI chip. Pin 1 of the FTDI is at the dimple, go down the same side of the chip to find pin 6. This pin is "RI", or ring indicator. On an NG board pad spot 4 is connected to FTDI pin 6. Get a connection somehow into that pad. I did it with a single header, not too hard. All you have to do to wake up your PC is pull that pin low for 20ms (per FTDI data sheet). So simply connect that pad 4 to one of your digital outs that you can control. Set it high in your sketch setup(). Then to wake up the PC from S3, digitalWrite it low, delay for at least 20ms (I used 50), and then set it back high so it's ready for next time. Let me know if you get it working. It works on mine np.
What I'm about to suggest is a lot Rube Goldberg... but may appeal to anyone not confident of something more invasive or permanent.
At the ned, I have a second, more sensible, suggestion.
The Arduino could be programmed to turn on a "mouse shaker" or "button presser".
The user of the Arduino+sleepy PC system would have to remember to put the mouse on or in the shaker/ presser when going away and wanting the "wake up" system active.
As I said... yes, "Rube Goldberg"...
... but, from reading many forum posts, I know it will appeal to some!
If it is an optical mouse, and you are sure that the mouse doesn't go to sleep until a button is pressed, a simple "fan" mounted inside a clear box, with a place on top for the mouse to sit where the fan blades are "in sight of" the optical sensor, should do the job. The moving blades will "look" like a surface moving by under the mouse?
For a "wiggler", just set up a small motor with a badly balanced weight attached to the shaft.
More sensible "answer"?....
For what mice cost, I'd be inclined to open one up, attach two wires to one of the button's switches. Those wires would then be taped along the mouse's original wire, and taken thus to some place out of the way of the mouse's normal use, and the Arduino can be programmed to "connect" those wires, thus imitating a mouse click with minimal invasion of hardware, complexity of construction, or inconvenience in everyday use of computer either for general purposes or for whatever you want to wake it for.