# The Fog Machine Remote Hack



## mroct31

*Fog Machine Wireless to Wired Tutorial*

I know someone somewhere once posted a how to on how to take The Fog Machine 400W fogger that most department stores carry nowadays with only a wireless remote and change it to a wired connection so you can connect to an external device to control the fog. 
Can't find those instructions anymore and since you can usually find these at really good prices after Halloween some of you may have interest so I thought I'd do a how to as I use these litter foggers for props and hook them into whatever prop controller I'm using, Picoboo, Arduino ect. but they need to be wired for that so here you go.

Tools and stuff needed:
Wire strippers
Couple of small torx bits
Phillips screwdriver
Crimp sleeve or screw on connectors
PC power cord ends removed
Plug for cord (optional)

First off here's the unit I'm talking about:
http://postimg.org/image/kz46llf63/

Take the cover off to get to the inside:
http://postimg.org/image/pma8nd2iz/

Clip the zip tie off this bundle:
http://postimg.org/image/tjxicrpcb/

Remove the screws on this on the back of the unit:
http://postimg.org/image/npdiisbuz/

Push the circut board up enough to remove the wire plug:
http://postimg.org/image/5nudkzhu3/

Remove the 2 screws so you can get the receiver out of the top of the fogger:
http://postimg.org/image/mlte6tr7v/

Remove these 2 screws and pull out the whole wired unit:
http://postimg.org/image/thi83ob2j/
http://postimg.org/image/u8ay9gdfv/

I printed a hole plug on a 3D printer to fit the hole and push a PC power cord through:
http://postimg.org/image/w1duxrymj/

Screwed into housing:
http://postimg.org/image/nx5qt1c7f/
http://postimg.org/image/fsxmoapsb/

Power cord pushed in:
http://postimg.org/image/7by4ddl3f/

Inside the unit you'll be working with these 2 wire bundles:
http://postimg.org/image/t8g2008wb/
http://postimg.org/image/ltqq7mn0r/

Leave the one with only 2 wires (red and white) alone:
http://postimg.org/image/jqgazyn7v/

Clip off one of the wire connectors as close to the top as you can. In this image I'm working with the white, white, red wire one:
http://postimg.org/image/yb1z8j7kb/

Connect the black wire from the power cord to the White, White, Red bundle and the white wire from the power cord to the White, White, B/W wire bundle:
http://postimg.org/image/xa1qjeqkr/

Ground the green wire from the power cord to the ground nut on bottom of unit:
http://postimg.org/image/k764050cr/

Zip tie all the bundles back together if you want, I did:
http://postimg.org/image/d5crrom4r/

I also added a zip tie at the base of the entrance hole to avoid pulling the PC power cord out:
http://postimg.org/image/ctvbex5or/

Now you have a wired fogger that you can hook up to whatever trigger you want and get rid of the awful wireless remote!
http://postimg.org/image/dko1kp823/

I use a light switch to test it out:
http://postimg.org/image/ixcvytvyj/

And that's it! Not sure if anyone can use this but just in case it's a really simple solution to, IMO, make these little readily available cheap foggers much more user friendly! I connect them mostly to Picoboo's and they run great that way!


----------



## Kmac

Hi there, just wondering if you could send the pictures to me or if there is an updated version of this conversion? Thanks


----------



## deerelk4x4

Kmac said:


> Hi there, just wondering if you could send the pictures to me or if there is an updated version of this conversion? Thanks



I second this request. I have one such fogger and the remote no longer works, regardless of having new batteries.


----------



## Batbuddy

Super old thread guys. Maybe post a picture of your fogger and control and someone could help you "hack" or uh fix it.


----------



## DEMON DEAN

mroct31 said:


> *Fog Machine Wireless to Wired Tutorial*
> 
> I know someone somewhere once posted a how to on how to take The Fog Machine 400W fogger that most department stores carry nowadays with only a wireless remote and change it to a wired connection so you can connect to an external device to control the fog.
> Can't find those instructions anymore and since you can usually find these at really good prices after Halloween some of you may have interest so I thought I'd do a how to as I use these litter foggers for props and hook them into whatever prop controller I'm using, Picoboo, Arduino ect. but they need to be wired for that so here you go.
> 
> Tools and stuff needed:
> Wire strippers
> Couple of small torx bits
> Phillips screwdriver
> Crimp sleeve or screw on connectors
> PC power cord ends removed
> Plug for cord (optional)
> 
> First off here's the unit I'm talking about:
> http://postimg.org/image/kz46llf63/
> 
> Take the cover off to get to the inside:
> http://postimg.org/image/pma8nd2iz/
> 
> Clip the zip tie off this bundle:
> http://postimg.org/image/tjxicrpcb/
> 
> Remove the screws on this on the back of the unit:
> http://postimg.org/image/npdiisbuz/
> 
> Push the circut board up enough to remove the wire plug:
> http://postimg.org/image/5nudkzhu3/
> 
> Remove the 2 screws so you can get the receiver out of the top of the fogger:
> http://postimg.org/image/mlte6tr7v/
> 
> Remove these 2 screws and pull out the whole wired unit:
> http://postimg.org/image/thi83ob2j/
> http://postimg.org/image/u8ay9gdfv/
> 
> I printed a hole plug on a 3D printer to fit the hole and push a PC power cord through:
> http://postimg.org/image/w1duxrymj/
> 
> Screwed into housing:
> http://postimg.org/image/nx5qt1c7f/
> http://postimg.org/image/fsxmoapsb/
> 
> Power cord pushed in:
> http://postimg.org/image/7by4ddl3f/
> 
> Inside the unit you'll be working with these 2 wire bundles:
> http://postimg.org/image/t8g2008wb/
> http://postimg.org/image/ltqq7mn0r/
> 
> Leave the one with only 2 wires (red and white) alone:
> http://postimg.org/image/jqgazyn7v/
> 
> Clip off one of the wire connectors as close to the top as you can. In this image I'm working with the white, white, red wire one:
> http://postimg.org/image/yb1z8j7kb/
> 
> Connect the black wire from the power cord to the White, White, Red bundle and the white wire from the power cord to the White, White, B/W wire bundle:
> http://postimg.org/image/xa1qjeqkr/
> 
> Ground the green wire from the power cord to the ground nut on bottom of unit:
> http://postimg.org/image/k764050cr/
> 
> Zip tie all the bundles back together if you want, I did:
> http://postimg.org/image/d5crrom4r/
> 
> I also added a zip tie at the base of the entrance hole to avoid pulling the PC power cord out:
> http://postimg.org/image/ctvbex5or/
> 
> Now you have a wired fogger that you can hook up to whatever trigger you want and get rid of the awful wireless remote!
> http://postimg.org/image/dko1kp823/
> 
> I use a light switch to test it out:
> http://postimg.org/image/ixcvytvyj/
> 
> And that's it! Not sure if anyone can use this but just in case it's a really simple solution to, IMO, make these little readily available cheap foggers much more user friendly! I connect them mostly to Picoboo's and they run great that way!


I don't know if its my tablet but it says on all the sight can't be reached?


----------



## Hallowed31

DEMON DEAN said:


> I don't know if its my tablet but it says on all the sight can't be reached?


They didn't open for me, either. What I do is, use the wired remote that comes with the fogger and hack into that. Mine are one single rocker switch, and I wire that into an electromechanical relay, the little blue ones used in Arduino relay boards (in single, four, eight relay variants). Then use whatever sensor you want to (attached pic is ultrasound) to activate fog when machine is warm enough. Either it will be or it won't: the Arduino may call for the relay to close but if the machine is cold, nothing you can do. So vary the length of time relay is closed although that may not work as some machines will always output a burst of x length regardless. 9v battery lasts to power the relay board/Arduino for a few nights of use. Little robot base for fun.


----------



## Hallowed31

That MOSFET looking thing isn't a MOSFET. It's a 5 volt linear voltage regulator: L7805


----------



## Hallowed31

// Lastly, the code.



Code:


/*  Digital pin 5 out relay. LED on pin 13

    Works well, just expect each active mode to fire twice. No biggie, right?

*/



#include <NewPing.h>



#define TRIGGER_PIN  12

#define ECHO_PIN     11

#define MAX_DISTANCE 500 // Max we want to ping for (cm). Max sensor distance is rated at 400-500cm.



NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

const int fogPin = 5;

unsigned int pingSpeed = 50;

unsigned long pingTimer;

class Flasher

{

    int ledPin;

    long OnTime;     // milliseconds of on-time

    long OffTime;    // milliseconds of off-time



    int ledState;

    unsigned long previousMillis;



  public:

    Flasher(int pin, long on, long off)

    {

      ledPin = pin;

      pinMode(ledPin, OUTPUT);



      OnTime = on;

      OffTime = off;



      ledState = LOW;

      previousMillis = 0;

    }



    void Update()

    {

      unsigned long currentMillis = millis();



      if ((ledState == HIGH) && (currentMillis - previousMillis >= OnTime))

      {

        ledState = LOW;  // Turn it off

        previousMillis = currentMillis;  // Remember the time

        digitalWrite(ledPin, ledState);  // Update the actual LED

      }

      else if ((ledState == LOW) && (currentMillis - previousMillis >= OffTime))

      {

        ledState = HIGH;  // turn it on

        previousMillis = currentMillis;   // Remember the time

        digitalWrite(ledPin, ledState);   // Update the actual LED

      }

    }

};



Flasher led1(13, 100, 200); // deploy smoke state

void setup() {

  Serial.begin(115200);

  for (int j = 0; j < 15; j++) {

    Serial.println("");

  }

  Serial.println(F("halloweenSonicFogger"));

  Serial.println("");

  delay(2000);

  pingTimer = millis();

  pinMode(fogPin, OUTPUT);

  digitalWrite(fogPin, LOW);

}



void loop() {

  if (millis() >= pingTimer) {   // pingSpeed milliseconds since last ping, do another ping.

    pingTimer += pingSpeed;      // Set the next ping time.

    sonar.ping_timer(echoCheck); // Send out the ping, calls "echoCheck" function every 24uS where you can check the ping status.



    //range less than 1/2 foot, is ON ("manual" activation or testing)

    //note: tends to capture two readings, hence does this twice before exiting

    if (sonar.ping_result / US_ROUNDTRIP_CM >= 1 && sonar.ping_result / US_ROUNDTRIP_CM <= 15) {

      Serial.print(sonar.ping_result / US_ROUNDTRIP_CM); // Ping returned, uS result in ping_result, convert to cm with US_ROUNDTRIP_CM.

      Serial.println("cm");

      Serial.println("Testing");

      testMode();

      delay(10);

      testMessage();

    }



    //range between 8 feet and 14 feet, is ON (someone here, deploy smoke)

    //note: tends to capture two readings, hence does this twice before exiting

    else  if (sonar.ping_result / US_ROUNDTRIP_CM >= 250 && sonar.ping_result / US_ROUNDTRIP_CM <= 449)

    {

      Serial.print(sonar.ping_result / US_ROUNDTRIP_CM);

      Serial.println("cm");

      Serial.println("deploying smoke");

      deploySmoke();

      delay(10);

      smokeMessage();

    }

    else {}

  }

}



void echoCheck() { // Timer2 interrupt calls this function every 24uS where you can check the ping status.

  // Don't do anything here!

  if (sonar.check_timer()) { // This is how you check to see if the ping was received.

    /* uncomment out next two lines for calibrating, testing etc. Otherwise, only print if it's in firing ranges */

    //  Serial.print(sonar.ping_result / US_ROUNDTRIP_CM); // Ping returned, uS result in ping_result, convert to cm with US_ROUNDTRIP_CM.

    //  Serial.println("cm");

  }

  // Don't do anything here!

}





void deploySmoke() {

  for (int i = 0; i < 2000; i++) {

    led1.Update();

    digitalWrite(fogPin, HIGH);

    delay(5);

  }

  digitalWrite(13, LOW);

  digitalWrite(fogPin, LOW);

}



void testMode() {

  for (int i = 0; i < 1000; i++) {

    led1.Update();

    digitalWrite(fogPin, HIGH);

    delay(5);

  }

  digitalWrite(13, LOW);

  digitalWrite(fogPin, LOW);



}



void testMessage() {

  Serial.println("Test Complete");

}



void smokeMessage() {

  Serial.println("Smoke Complete");

}


----------

