Arduino Bluetooth Computer Wake

Cut The Cord

Similar projects worth following

Cutting the cord means turning computers in to entertainment centers - but unlike simply pressing the power button on the remote - waking a dedicated entertainment PC from hibernation or shutdown requires more personalization.

When then mounting the ent-pc in a less accessible location - more-er personalization.


1. Most any one has experienced that bluetooth keyboards and mice are quite unreliable for waking computers. Wired keyboards and mice are no less certain and unwieldy shd the computer be less accessible - as well entirely dependent on brand. Wake-on-LAN also relies on unreliable resources and is brand fickle.

2. MIT App Inventor bluetooth auto-connect tutorial by Martyn Currey:

3. Download the "Wake" apk for Android and/or the MIT App Inventor Wake.aia file to modify to suit your needs.

4. Hardware push-button added for obvious reasons.

5. 5V regulator becomes quite hot (down from 18.5V) - will add a spare heat sink and dremel an opening to compensate.

6. This HP necessitates a 7.4x5.0 mm female plug - did not have + impatient - used what was on stock. Found need to fool the 'smart' HP adapter - wired a 150 ohm resistor between the ID pin and Vin. Works either way - but would suggest the accurate plugs.

7. Case proves aye care. (>_ლ)

8. BIOS > Boot Options > Power On When AC Detected .. or similar jargon.


Wake app for Android

package-archive - 3.34 MB - 09/12/2019 at 17:01



MIT App Inventor Build 0.1

aia - 190.33 kB - 09/12/2019 at 04:23


  • 1 × Arduino Nano
  • 1 × HC-06 Bluetooth Module
  • 1 × 5V Relay Module
  • 1 × 5V Regulator Transistor
  • 1 × 10uf Capacitor

View all 10 components

  • Desnooze

    Vije Miller09/12/2019 at 04:31 0 comments

    // Bluetooth Computer Wake
    // Vije Miller
    int red = 3;
    int blue = 5;
    int relay = 7;
    int button = 9;
    int state = 0;
    void setup() {
      pinMode(red, OUTPUT);
      pinMode(blue, OUTPUT);
      pinMode(relay, OUTPUT);
      pinMode(button, INPUT);
    void loop() {
      if (Serial.available())
        char data;
        data =;
        if (data == '1') {
      state = digitalRead(button);
      if (state == LOW) {
      digitalWrite(blue, HIGH);
      digitalWrite(red, LOW);
      digitalWrite(relay, LOW);
    void turn_on() {
      digitalWrite(blue, LOW);
      digitalWrite(red, HIGH);
      digitalWrite(relay, HIGH);
      digitalWrite(relay, LOW);

  • Butts. Stop it Gene!

    Vije Miller09/12/2019 at 01:15 0 comments

  • Sketchup Printdown

    Vije Miller09/11/2019 at 06:21 0 comments

View all 3 project logs

  • 1

View all instructions

Enjoy this project?



PropellerGraph wrote 09/12/2019 at 03:51 point

Speaking as someone who's fiddled around with Wake-on-LAN, and never seemed to get it to play nicely on my Linux box, I love the direct-hardware approach to powering on your PC!

  Are you sure? yes | no

Vije Miller wrote 09/12/2019 at 04:25 point

Read up on the Wake-on-LAN when seeking a solution to my original problem of powering on w/o exposing the PC and it just was not a flexible solution and also had a low reliability flaw - as you noted. Have been surprised waking a PC in this era comes with such frustrations.

  Are you sure? yes | no

Dan Maloney wrote 09/11/2019 at 14:56 point

Looking forward to the video. I think...

  Are you sure? yes | no

Vije Miller wrote 09/11/2019 at 16:43 point

Aye wasn't going to make a big deal of this one -but- now you went ahead and applied pressure - sigh - [downloads 'explosions + green screen']

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates