Controller FAQs Uncategorized

How do I determine if I have a BAC or BAC V controller?

While our latest software is compatible with all revisions of the Bad Ass Controller product line, there are some new features that are only available on the BAC V that affect wiring and accessory compatibility:

  • New output driver chip with expanded protections and high-side drive support
  • Opto-isolator for inputs 0-3
  • Expanded storage capacity
  • Expansion port for FX45 breakout board

There are several ways you can tell which revision of the controller you have:


The label on the top of your case will help you distinguish your revision easily. (There may be small differences from these pictures, but you are looking for the controller name in the center and whether a V is present.)

BAC V – Rev 6 (Serial Number 4000 or later)
BAC V – Rev 5 or Rev 6 (Serial Number 3999 or earlier; note V numeral in background)
Original Bad Ass Controller (Rev 1 through Rev 4)

Part Number on Main Circuit Board

You can determine your revision by the part number on the main circuit board. If you have an FX451 circuit board, you have a BAC V. If you have an FX450 circuit board, it is the original Bad Ass Controller.

You can tell the exact revision of your controller from this board as well – it will be molded into the circuit board in faint green text, typically in the upper right side.

Expansion Port

If you have a 26-socket expansion port on the right side of your controller, you have a BAC V. The original BAC did not contain this port.

Controller FAQs Uncategorized

How do I change my BAC V’s outputs between High Side or Low Side?

The BAC supports two different modes for its outputs.

In Low Side switching, the BAC will connect the output to GND (0V) when the output is on, and will disconnect the output entirely to interrupt the circuit when te output is off. This is similar to how many PLCs and industrial controllers work, and can sometimes have benefits for reducing interference when a device switches on or off or for some special scenarios. You connect your device’s positive wire to the BAC’s +12V pin, and you connect its negative wire to the output.

In High Side switching, the BAC will connect the output to +12V when the output is on and Ground (0V) when the output is off. This is how most intuitively expect the outputs to work and matches the behavior of other microcontrollers, like an Arduino output pin. You connect the output to the positive wire of your device, and connect its negative wire to the BAC’s GND.

Does my BAC support this feature? If so, what is selected by default?

Versions of the BAC prior to the BAC V shipped with Low Side switching as the only option. The newer BAC V allows you to switch between both modes.

By default, for BAC V controllers with serial number 4000 or higher, High Side switching will be enabled at the factory; earlier serial numbers may be set to either high or low side switching. Performing a full factory reset may switch your controller back to Low Side switching.

If you’re not sure which version you have, please refer to this article that doucments the differences between the two controllers.

How do I switch modes?

You can easily check how each input is configured and switch the mode using BAM. Each output can be configured independently, so you can even mix and match if necessary.

  1. Download and install Escape Room Techs BAM
  2. Locate your controller in the list and press the Configure button.

3. Select the Hardware tab.

4. Scroll to the bottom of the page and locate the Inputs/Outputs panel. Find and click the “Configure IO” button.

5. In the new page that opens, scroll down to the Outputs in the list. For each output, there is a drop-down selection on the right; use this box to select the desired mode.

The configuration shown above is the factory default. You can also select Low Side, along with two Half Bridge options that are specialized and only used for certain motor control scenarios:

6. When you’ve finished making changes, scroll to the bottom of the page and click Save.

7. Power your BAC off and back on for the new settings to take effect.

Controller FAQs

How do I connect a MedeaWiz Sprite to my BAC V controller?

The Sprite is a versatile audio and video player that makes a great companion for your BAC! There are two ways you can connect the Sprite:

Recommended Solution: Serial Control

With the help of an FX45 Expander and one of our I2C cables, slightly modified, you can gain full control over your Sprite through the BAC’s event system (and even via the network from a server package like M3)

Disconnect power to your BAC. Then, connect your FX45 expander to your BAC V. The FX45 plugs into the port on the right side of the BAC.

Make sure to install the expander with the connectors facing up, and pay careful attention to make sure all of the pins are aligned correctly in both rows of the connector as you plug it into the BAC. Some revisions of the BAC have a connector that is smaller than the one on the FX45, and you may need to double-check your alignment when installing it to ensure every pin is connected correctly.

Locate the special adapter cable we enclosed in your MedeaWiz Sprite box. If you did not receive a cable or purchased your Sprite separately, see below for instructions on creating your own cable – or contact us for information about obtaining a premade one. The technical name for this cable is “JST-PH to TRRS Minijack”, and it can be fashioned out of the adapter that comes with your Sprite and one of our I2C cables if needed.

Plug the completed adapter into the Sprite’s I/O port. (You may need to rotate the plug 90 degrees to avoid conflicting with the HDMI cable.)

Load your audio or video files on an SD card, then insert it into the Sprite. Name your files with a three digit number; 000 is the file that will always loop in the background when no other file is being played (and can be a black screen or silent sound file), while 001 and above are files to be triggered via the BAC. Keep the original file extension intact.

Power on your BAC and the Sprite.

Configuring the Sprite

Connect your Sprite to a monitor temporarily for this step if you are planning on using it for audio only.

Press the Setup button on the remote to enter the setup menu.

Change the settings as shown below:

Play Mode: Video Control Mode or Audio Control Mode (choose based on whether you are trying to control video or audio; this selection needs to correctly reflect the types of files you wish to play back.)

Control Mode: Serial Control

Baud Rate: 9600 bps

Address Mode: Do Not Use Addressing

Configuring your BAC

Ensure your BAC is running at least software version 1.10 before continuing. (Version 1.10 includes an important fix to looping file control for the Sprite.)

Click Configure in BAM to open the settings window.

Click the Hardware tab. Scroll down to the Sprite Player section. Check the enabled box, then click Save. Then return to the Sprite Player section, and ensure Hardware Serial is selected.

Now, you can control your Sprite from the BAC! Click the Events tab to add a new Sprite control command. Locate an event you would like to use to trigger a video. Select “Play Sprite Video” or “Set Sprite Loop”, depending on whether you want to play your file once or repeatedly. For settings, type the number of the file you’d like to play. Click Save, then click Trigger to test your newly modified event.

You can also perform these functions over the network by sending a message with the number of the file you’d like to play to BACNAME/set/playSprite or BACNAME/set/loopSprite .


Verify the FX45 is installed and aligned correctly with the BAC connector.

Make sure the Sprite is receiving power correctly.

Try playing your files using the provided remote and ensure they play correctly. If the Sprite can’t play the files via the remote, the BAC won’t be able to either.

Ensure your cable’s pin connections matches the section below.

Addendum: Creating a Sprite Cable

Obtain a JST-PH 2.0″ pitch, 4 conductor cable from our store or another vendor.

I2C Jumper Cable (JST Connector)

Plug one end of the connector into the Serial connector of the BAC. Then, cut the other end off of the cable and strip about 1/4″ of insulation from each of the four wires.

Find and identify the screw terminal connector that comes with your Sprite. (If you have misplaced it, you can purchase a replacement from Amazon.)

It contains four screw terminals- L, R, a third labeled blank or V, and Ground; these correspond to the tip (1), ring (2), ring (3), and base (4) pins of the connector.

Identify the wires coming out of the FX45 by the silkscreened indicator on the board. On newer revisions of the FX45, each pin is labeled. On older revisions, look for the numeral 1, identifying the side that is Pin 1, and then count the other pins in sequence going from left to right.

Make the connections as shown below:

BAC Serial Pin 1 (RX) <> Sprite IO Ring (“V”/blank, 3)
BAC Serial Pin 2 (TX) <> Sprite IO Ring (“R”, 2)
BAC Serial Pin 3 (V+) <> Do not connect
BAC Serial Pin 4 (GND) <> Sprite IO Base (Ground)

You will not connect any wires to the L (1) port of the Sprite connector.

Plug the completed adapter into the Sprite’s I/O port. (You may need to rotate the plug 90 degrees to avoid conflicting with the HDMI cable.)

Additional Resources

Sprite DV-S1 Manual 4.0

BAM FAQs Frequently Asked Questions

I tried to launch BAM, but I received a “listen EACCES: permission denied” error. What’s going on?

BAM is implemented as a local web server; the UI is then accessible over the local network through a web browser so people can interact with their devices while in their escape rooms from a tablet or other portable device.  This requires BAM to listen on a “port” for incoming connections, and the default is port 8080.

Occasionally, you may be running another application on your computer that uses the same port number. If you have another web server or engineering tool that runs on port 8080, please consider closing or reconfiguring it to a different port number before launching BAM.

Controller FAQs Frequently Asked Questions Uncategorized

What is a relay? How is it different from a digital output?

One of the most common goals of an event on the BAC is to cause an action to occur elsewhere. This typically is accomplished by completing a circuit to supply power to some other electrical component, like a magnetic lock or a light.

The BAC offers two ways to control external devices – a relay and a digital output. Since both can be used in similar scenarios, the differences can be pretty confusing at first glance!

Digital Outputs

Think of digital outputs as a computer-controlled power supply.

The digital outputs (on the top row of the BAC, numbered 0 through 5) directly supply power to external devices using the same source power supply as the controller itself.

Depending on the revision of the BAC you have and the configuration in BAM, these may be “high side” (each output replaces the + terminal, and the other wire connects to GND) or “low side” drivers (each output replaces the – terminal, and the other wire connects to +12V). Refer to the BAC manual for details on how to wire them up… but in both cases, the key takeaway is that they share the power supply with the BAC itself.

Unlike Arduino devices, where digital outputs can only safely supply a tiny amount of power at a low voltage, the BAC’s outputs are higher power. They operate at the supply voltage (typically 12V) and can be directly connected to many external devices! Just make sure your current draw needs to stay below the limit indicated in the BAC documentation (typically 500mA at 12V per channel), and your total current consumption has to stay within the maximum capacity of your power supply.

The advantage of these digital outputs is that they are easy to understand and use – just wire a device directly to the output and it gets power when the output is on, and has no power when it’s off. They are also completely silent during operation.

The disadvantage is that you are limited to the same output voltage your controller is operating at (typically 12V), and that you cannot draw more than 500mA (fine for small cabinet mag locks, but potentially an issue for larger door-sized locks or other high current props).

The key takeaway is that these digital outputs are electrically connected with the BAC’s control electronics. That means that electrical interference from devices connected to them could potentially affect the BAC (although we include lots of protections against this happening), and it also means it isn’t always appropriate to use these outputs to control other props that have their own power supply.


Think of relays as a computer-controlled switch.

What is a relay?

The term ‘relay’ dates back to the very beginning of electrical communication, where early engineers needed to solve the problem of how to send telegraph signals across the country. Wires have resistance and signals degrade over long distances (a problem we even have to contend with in escape rooms!), so there needed to be a way to connect different circuits together to resupply new power every so often into the telegraph network, “relaying” a signal from one circuit to another.

The solution that was developed is very similar to what we still use today! Relays are switches controlled by electricity; when they are turned off, the Common terminal is connected to Normally Closed, and when they are turned on, the Common terminal is connected to Normally Open.

The aspect that makes relays most useful today is that the circuit being controlled is completely electrically isolated from the circuit doing the controlling. The switching happens by turning on a small electromagnet: this attracts and pulls a piece of metal from one contact to another, physically changing the switch’s state. It’s exactly like a physical switch, except with a magnet operating it rather than your hands.

How do relays work?
You can think of a relay conceptually as a flappy piece of metal, switching between two contacts called “normally closed” and “normally open”. When the relay is unpowered, a spring causes this metal to rest against the normally closed terminal:

When you power the relay up, the coil acts as an electromagnet, pulling the flappy metal towards the Normally Open terminal and switching the circuit:

As you can see, there is electrical isolation between the controls and the terminals. A fault in the circuit the relay controls wouldn’t affect the control electronics, because they are separated by air and magnetism inside the relay module.

When would I need a relay instead of a digital output?

There are several situations where a digital output won’t be sufficient and you’ll need to use a relay:

  • You need more output current than the digital output can provide.
    This typically happens when controlling a large door magnetic lock, which often draw between 650 mA and 1A.
  • You need a separate power supply or you need a different voltage.
    The relay is entirely isolated from the main circuit, so you can use any power supply you prefer. The contacts are rated to handle a large amount of current (the relays themselves are rated to 10A and 125V, but we recommend you not exceed 2A and 24V in escape room applications).
  • You are controlling a pre-existing prop or signaling an external system.
    If you have a prop from another vendor, it’s safe to switch its power supply using the relay without causing any unintended effects caused by sharing power supplies between the prop and the BAC. The relay can also be used to simulate button presses or other switch closures for other controllers; this could be used to safely signal a 5V input pin on an Arduino, for example.
  • You are out of inputs.
    Even if a digital output would be sufficient, you can wire up a relay to achieve the same goals and get two extra outputs without resorting to an FX60 or other expander. In this situation, you would use the + and – terminals from the BAC’s connectors to access the same 12V power supply being used to power the BAC. You lose the electrical isolation benefits, but in many applications the convenience is worth that tradeoff.

What are the pros and cons of a relay?

Pros: The relay is isolated from the main circuit, so it’s safe to use the relay to control external devices with different power supplies or power requirements. The relay can also handle much more current than the normal digital outputs.

Cons: Relays make a soft telltale clicking noise when they switch, which can occasionally be problematic in some escape room applications by telegraphing to players that something has changed in the room. They also are mechanical devices, so they can eventually wear out if switched repeatedly (although we use high quality Panasonic relays in our products to minimize the chance of this occurring). They are also large, so only two relays fit in the BAC case.

How do I wire up a relay as a switch?

Simply insert the relay in series into your circuit as if it were a regular switch. Wherever you would normally connect a switch, connecting COM to one terminal and either NC or NO to the other.

If you want the relay to connect (close) the circuit when it’s on and disconnect (open) the circuit when it’s off, connect to normally open. (Usually used for activating special effects or solenoids.)

If you want the relay to disconnect (close) the circuit when it’s on and connect (close) the circuit when it’s off, connect to normally closed. (Usually used for magnetic locks which should be locked by default until the player solves a puzzle.)

It’s okay to switch either the high or low side for most escape room applications – we recommend whichever side your BAC is configured to switch for its digital outputs for consistency.

How do I wire up a relay as a spare digital output?

If you just want to use the relay as an extra digital output, you can source power from the + and – terminals as shown in this diagram:


12V 130LB Cabinet Magnetic Lock

This small-sized magnetic lock is ideal for keeping drawers, cabinets and other props closed until players have solved a puzzle.  Powered by 12V, the lock retains the armature plate as long as power is applied, and the lock is released when power is removed.

Our high-quality locks are manufactured by a trusted partner to our exacting standards, and feature an internal MOV protection component that helps protect other circuits from electromagnetic interference caused by the lock switching on and off. 

We include detailed installation instructions, all necessary mounting hardware, and a helpful template for drilling holes in your prop.

This lock’s electrical connection consists of a ~4″ pigtail with bare wires.  Uniquely among vendors of magnetic locks, we can optionally include a no-solder lever splice connector that can be concealed in a player-inaccessible area and used to extend the wire to connect to your BAC, getting you up and running quickly!

If there is not enough space in your prop to conceal a lever-based connector, contact us to request a customized wiring harness professionally constructed with solder splices reinforced by heat-shrink tubing.


Lock body:  80mm x 37mm x 24mm
Armature plate:  70mm x 33mm x 10mm
Holding force:  60kg / 130lbs
Current consumption:  110mA typical, 400mA peak
Weight:  0.6kgs
Certification:  CE

Controller FAQs Frequently Asked Questions

How do I monitor messages sent over an MQTT connection (for example, to M3)?

One of the most powerful features of the BAC is the ability to send messages over a network connection to game control software. One of the most popular protocols for this connection is MQTT, which is a simple industry standard designed for sending short messages between two points. Because the BAC is built on MQTT, you have the option of using off the shelf packages like M3 or creating your own control solution using a tool like Node-RED.

Because MQTT is an open standard, you can also connect to the server and monitor the ongoing communications using desktop tools. This can be a great option if you’re having trouble getting a link established and are not sure where the problem is in the system.

We recommend the MQTT Explorer project for most users; it’s a convenient graphical browser for MQTT messages and is available for most major platforms. If you prefer the command line, we recommend the mosquitto_sub tool available as part of the Eclipse Mosquitto project.

While you can run MQTT Explorer from the same computer as your MQTT server (also known as a broker), the best test results will come if you can use a second computer on the network, as this will validate that your firewall and network are configured correctly.

To set up MQTT Explorer to monitor your BAC, install it from the link above, then open the application. You’ll see a server connection window:

In this window, set the “Host” field to the network address of your MQTT broker. (For most people with M3, this is the address of the computer running M3.). Then, click Save and Connect.

MQTT Explorer will connect to your server and display a tree view of topics and messages that updates live as messages are sent:

If MQTT Explorer gets stuck on the connection page and never connects, eventually showing a “Disconnected from server” bar in the bottom corner, it’s likely that your MQTT broker is misconfigured. One common possibility is that the server computer is running a firewall that’s blocking access from other computers (to disable Windows Firewall, follow these instructions). Another possibility is that you are using Eclipse Mosquitto 2.0 as your server; the new 2.0 version has default security settings that disable access from remote computers. The Eclipse project has instructions for enabling remote access here.

Controller FAQs

How do I set up a BAC if I can’t plug it into my router?

The best way to set up a BAC’s network connection is to plug it into your main router, or to a connected Ethernet switch. This allows the BAC to get an IP address from your router’s built in “DHCP Server”, which is a piece of software that controls your network and hands out IP addresses. It ensures that any other computer on your network will be able to access the BAC, making it easy to integrate with M3 and other software packages.

Sometimes, you might need to configure your BAC without access to your router, though. If you’re using a phone hotspot for connectivity and don’t have an office network, or if you’re setting up a BAC in a new location before a network is available, you might need an alternate approach.

In these situations, you can connect your BAC directly to your computer via an Ethernet cable. In some cases, this will just magically work – so we recommend you start by simply connecting the cable and opening Bad Ass Manager. If you see your controller there, you can skip the rest of this article.

Unfortunately, sometimes just making the connection isn’t enough – both your computer and the BAC will make up random ‘local’ IP addresses, and they won’t be able to find and talk to each other.

The solution is to “share” your Wi-Fi connection temporarily to your Ethernet port. This causes Windows to set up its own local server to hand out addresses, and enables BAM and your BAC to find each other and communicate. We don’t recommend this arrangement for more than temporary setup – you’ll want to invest in a router, perhaps a small travel router like this one that can connect an Ethernet device to a Wi-Fi network – but in a pinch this can get you up and running.

Before getting started, make sure to download BAM from our Downloads page; it’s possible that in some situations this process will cause your computer to not connect to the Internet properly until you’re done configuring your BAC and disable the sharing feature.

  1. Find the Ethernet port on your Windows 10 computer and plug in your BAC using a standard cable. If your computer is a laptop without an Ethernet port, you can buy an affordable USB adapter like this one from TP-Link.
  2. Open your Start Menu. Search for “Network Connections”, and when “View network connections” appears, select it.

3. In the window that appears, examine the network connections. You may have several, but you’re looking for two connections: your standard Wi-Fi connection that connects you to the Internet, and the second Ethernet adapter that is connected to the BAC.

The Wi-Fi adapter should be easy to find; the Ethernet adapter might be a little harder, but it probably will have “Ethernet” in the name, potentially followed by a number. If you see other items in the list with words like “Virtual” or “VPN”, you can ignore them.

4. Right-click your Wi-Fi network and choose Properties. (It’s very important for this step that you select your upstream Internet connection and not the wired connection linked to your BAC.)

5. Click the Sharing tab.

6. Check “Allow other users to connect through this computer’s connection”. Then, in the dropdown box, choose your Ethernet connection that is plugged into your BAC. Uncheck “Allow other users to control or disable the shared Internet connection.” When you’re done, the dialog should look like this:

7. Click OK.

8. Launch BAM. When it opens, you may be asked about firewall access; make sure to permit it to communicate on all network types:

9. BAM should open. If it does not open, follow the tips in How do I access Bad Ass Manager? When I open it, all I see is a black screen.

10. If all goes well, you should see your BAC in BAM. If not, try clicking Discover; if it still doesn’t appear, unplug and replug the power to your BAC and wait two minutes, then click Discover again.

Still no luck? Contact our support team and we’re happy to help.

11. Important: when you’re done configuring your BAC, reverse the process by right-clicking your Wi-Fi adapter and unchecking the options on the Sharing tab. If you forget this step, your Ethernet adapter will no longer work for other network connections, and you may even cause problems if you attempt to plug your computer into another network (because your computer will be competing with the network’s router to hand out IP addresses).


How do I access Bad Ass Manager? When I open it, all I see is a black screen.

Not to fear, this happens sometimes depending on the configuration of your computer. There’s an easy workaround that will get you up and running quickly.

This window is the core of Bad Ass Manager. As long as it is open, you can rest assured the background code that communicates with your controller is up and running.

In the window that appears, look for an IP address labeled BAM URL. This is the web site you will visit to access BAM:

Once you’ve found this highlighted address, simply enter it into the address bar to load Bad Ass Manager:

Now you’re ready to go! Don’t forget to keep the black command prompt window open while you’re using BAM; the web page will stop working if you close it.


Electrical Safety and Your Escape Room (Part 2 of 2)

An incomplete, helpful guide to not burning down your business.

Low Voltage Wiring

(Part 1 should be read first)

This is what you should be using.  Low voltage wiring by definition is less than 49V.  For our purposes, we’ll be dealing mostly with 24V, 12V, or 5V.  Using a lower voltage has several advantages, but the most important here is that it’s safer.  A simple touch of an AC circuit is enough to burn you, make you jump, or kill you.  Low voltage is much more forgiving.  You can touch 24V with dry fingers all day and not notice it. DC circuits are usually isolated too, so no path to Earth to shock you either.  There is much less ‘force’ behind the electricity (analogy works for this case).  Therefore, when someone takes apart your prop, breaks the glass, etc., you are not exposing them to a lethal situation.  That is not to say you can’t die from DC, you can.  Anything that reduces resistance like a cut or moisture can make DC deadly quickly.  Which is another reason to keep current limited in your circuits. 

What we are officially trying to do here is fall under Class 2 wiring in the NEC (National Electric Code).  If you can do all your work in Class 2, that greatly reduces the fire initiation capability and shocking hazard.  This level of protection is provided by the power supply you are using to drop your AC voltage to DC.  If it’s a Class 2 supply, then it is limiting the power for you and making your circuits safer.  Electrically, Class 2 for us means 100VA (or 100 Watts to keep it simple) at 24V and 60W or 5A Max for 12V and 4.1A max for 24V.  Look at the chart below for wire size guidelines and limits.

VoltageCurrentPower Limit<=2 Feet AWG10 Feet
12V5A (max)60W24 AWG (2.1%)14 AWG (2.1%)
12V1A24 AWG (.8%)20 AWG (1.7%)
24V4.1A (max)100W24 AWG (1.8%)16 AWG (1.4%)
24V1A24 AWG (.4%)22 AWG (1.3%)

How to use this chart:  Once you have determined your system voltage, the first line shows the maximum current and power that circuit can provide.  Then choose the wire gauge (AWG) according to how long your run is.  The number in parenthesis is the percent voltage loss, for a 12V system, each 1% is .12V.  For a 24V system, each 1% is .24V loss. 

Most cabinet wiring can be done with 24 AWG because of the short runs, but I personally am a fan of 24VDC and will do my wiring with 22 AWG all around because most items in an escape room don’t exceed 1A.  If I have a long run (10ft), I will either run 20 AWG or double up the 4 conductor wire into 2 conductors (yes, that works).  If you are a 12V fan, I’d run everything in 20AWG.  If you are exceeding 1A, then increase gauge accordingly.

You can calculate your own wire gauge requirements here: or play with more details here:  Try to keep your losses below 2%.  Read the directions carefully as the conductor length is twice your cable length (there and back). 

So which voltage should you use?  12V or 24V are the most common industrial voltages.  24V is the most versatile and it does have the ability to supply more power when required and losses are less.  Also, wire gauges can be smaller (read cheaper, less copper) when using 24V.  12V is fine for smaller rooms or if you have some props that only work on 12V (like LED strips).  If you know what you are doing, you can mix as required.  5V should NOT be used outside of a circuit board.  It is not an industrial control voltage.  It is a common power supply for electronics, but best practice is to keep all 5V signals inside the electronics board (or immediate wiring area) and use 12V or 24V for external, longer wires, like power and switches.

This means don’t run your 5V Arduino/Raspberry Pi/other hobby board I/O pins to the outside world.  They are too fragile and too sensitive.  More on this later.

Basic wiring

Many of the same rules that applied to AC wiring apply to DC wiring.  They are just good practice all around. 

  • Restrict, tether, mount, strap, etc. your wiring. Keeping wiring from getting yanked out of their termination point increases safety a lot.
  • Use proper boxes. Don’t leave a connection in midair with wire nuts on it.
  • In a box with mixed voltages (AC and DC), keep the AC as far from the DC as possible. You should be able to draw a virtual line down the path where they are kept separate.  Generally, components that handle both AC and DC have an isolation rating of 1000V.  If it doesn’t, don’t use it. 

    The key thing to ensure is that there is not any conductive or electrical connection between the primary (high voltage) and secondary (low, safer voltage).  Even if a person is connected to ground, because of the lack of connection between the primary and secondary, they won’t get shocked by the high voltage.  The 1000V rating basically means the lack of connection is guaranteed up to 1000V, which is a large safety number for 110/220V.
  • Use approved, high quality power supplies. UL/ETL labels on power supplies are a good indication you are using a quality product. We also recommend using only name brand power supplies, like CUI or Mean Well, as the extra cost is well worth the investment to avoid flaky behavior or failures during a game.
  • Keep wiring gauge consistent.  If your power supply is limited to 1A, ensure your wire is rated for 1A all around.  (This is pretty easy for 1A, but higher currents are more significant.)  We don’t recommend you use anything less than 24AWG ever unless you are trying to hide wire.

Power Distribution

Beyond wiring, the main way escape rooms (and most fixed devices) get power is through an AC adapter.  These come in a variety of forms from plug in modules (wall-warts) to open frame power supplies and everything in between.  The placement and size of your power supply can cause many issues so this needs to be carefully assessed.  Be sure to use the type of power supply suitable for your environment. 

Plug in modules can be used most anywhere you have a proper outlet.  Pretty straight forward as they are the simplest and consumer friendly. 

Alternatively, you have open frame or enclosed.  These typically do not have any wires already attached to them.  We do not suggest anyone use open frame power supplies in escape room applications.  There is not any physical protection around them and they must be used by professionals.  Enclosed come close but are friendlier.  They do have a protective metal case around them but need to be wired up appropriately.

Enclosed power supplies are friendlier.  Make sure you ground them properly.  Grounds are not optional.

Here is where things can get problematic.  These supplies can be much larger than the plug-in modules and the enchantment of DC leads people to believe whatever they do after the AC lines is safe.   This is a poor assumption.  A common implementation model is to get a 10A, 12V supply.  You can run most rooms from that amount of power easily.  Controllers, maglocks, a linear actuator maybe, lights, LEDs, etc.  Since most of your circuits only draw maybe an amp, it would be common to run maybe 20 or 24AWG wire to all your individual props.  And that is the big problem!  Your 10A supply can put 10A down each line.  If any of them short or create an excessive load, the wire you planned on carrying only 1A will now carry 10 Amps!  You now have smoke. 

Your 10A supply can put 10A down each line.  If any of them short or create an excessive load, the wire you planned on carrying only 1A will now carry 10 Amps!  You now have smoke. 

The solution is to individually fuse each leg for the current you expect to be in each leg and appropriately rated the wire for.  There are two common methods.  A slow-blow fuse is handy as it won’t open under small surges but will under a short before the wire can heat up and melt.  Another option is a PTC.  It is basically a special resistor that when it heats up, it opens.  And will stay open until power is removed and the over current is resolved.  These are nice since they auto reset. 

Here is a handy box for DIY escape room builders.  There are better options for sure like DIN circuit breaker blocks and more specialized PTC power distribution blocks, but this is a reasonable suggestion to reduce fire potential.  An alternative:




We’ve all walked across a rug, touched something metal and received a shock.  That is ESD, electrical spark discharge.  Besides being annoying to us, it’s deadly to electronics.   That walk across the rug or pulling scotch tape off can generate 15,000 Volts, no problem.  Most small boards from Spark Fun and Adafruit contain chips which are very sensitive to ESD.  Any chip is sensitive to ESD.  If you are in a dry environment, you can easily blow up your Arduino boards during development.  Worse, if any of the signals are accessible to your customers, they will likely zap your electronics as well.

Two things.  One, keep board signals away from your customers so they can’t zap your electronics.  Two, protect your circuits with a TVS.

A TVS, short for transient voltage suppressor,  is simple a two-legged electrical device which will clamp voltage spikes and protect your circuit board.  Here is a sample of one:  Wire this between ground and your signal and it will take the hit instead of your microcontroller.  More details on this part here:  These devices have the added benefit here of adding capacitance (about 1000pf) to your signal.  More on that below.

Voltage Drop

As covered above, using the correct wire gauge for your circuits, especially your long runs on high current parts, can be detrimental.  The classic example is something like a large 12V maglock that draws 1A.  You want to have an emergency release for this maglock in the control room by using a disconnect switch.  The control room is 50 feet away.  If you run 24 AWG, only 9.4V will get to the maglock.  It will probably work, but it won’t be as strong.  Spend the extra few dollars on the 16 AWG and get 11.6V to your maglock.   Also note, that if your maglock was running 24V, you could run 18 AWG.

Loss of voltage in DC electronics is a very real problem which can cause headaches and other problems later.  Wires are not perfect.  They have small resistances that add up significantly over distance. 

Any large room or room with long runs should just run 24V to keep your life simpler.


Back EMF

EMF is short for electromotive force.  Big word, but all it means is back current.  When an inductor is powered, a EMF passes through it.  When it turns off, a back EMF passes through it.  You are probably thinking you don’t care about inductors, but all of the maglocks and relays used in escape rooms are inductors.  Common problems people describe are erratic behavior, system resets when I turn on or turn off something, or a lockup.  If you experience these issues, you likely have a Back EMF problem.

What is happening here is that current is flowing through an inductor, which could be a relay, motor, transformer, or maglock; anything with coils of wires (which form inductors).  When these devices are switched, they cause a current spike, which causes a voltage spike, and the combination cause energy to jump out of the wire and into other wires.  Or the spike overloads something directly connected.  Either way, it’s bad.  So, what you have to do is squash the spike.

For simple circuits, a diode or TVS (transient voltage suppression) can be inserted to prevent back EMF.

MOVs (metal oxide varistors) are also an option.  You see these inside a quality maglock, but sometimes they are not sufficient especially when you have long cable runs.

More info here:

Signal Integrity

There are a lot of factors that go into a reliable electronics control system.  Keeping your signal clean and accurate takes a bit of work.  Input signals like switches can be susceptible to interference because they are high impedance devices.  Output devices like your maglocks can cause a lot of interference.  So can things like motors and other high current devices.  These devices are referred to as ‘inductive’ and create current spikes when they turn on and turn off.  We need to take a two-path approach, protect inputs so they are less susceptible to interference and clamp outputs so that they make less interference.

Protecting Inputs

Input circuits to a microcontroller are high impedance.  This means it takes very little energy to change the voltage on the wire, and therefore, change a digital input from high to low or low to high.  A typical situation is running a switch to an input on an Arduino.

It seems so convenient as the Arduino has built in pull-ups and one just needs to pull the line low with a switch and you’re done!  No!  There are many things wrong with this.  One, the internal pull-up is only 20K on a good day and can be as high as 50K.  At 5V, that is 250uA to 100uA respectively.  When the switch is closed, there is a solid connection to ground.  When the switch is open, the input pin is very susceptible to noise (other electrical signals exerting unwanted energy onto your circuit).  It is important that the input pin is driven (loaded/controlled) in both states of the switch. 

Here are a few keys to keeping your system working as expected:

  1. Add capacitance. Adding a small capacitor on your input pins can increase the loading dynamically.  Capacitors are resistant to changes in voltage.  Therefore, it will take more energy to change the voltage on your input pin. 
  2. Load both sides. In the case of the switch, provide a much smaller pull-up, something to draw about 5mA.  For 5V, this is 1K. 
  3. Use a larger voltage swing. As explained above, 5V should only be used for short, in cabinet wiring (controller next to button).  So when running control signals longer distances, use a larger voltage swing to increase noise immunity.  Think of it like this, if you have a 5V signal and there is 1 volt of noise, then that’s 20% of your signal. If you have a 12V signal and get same 1 volt of noise, that is 8% of your signal.  Built in immunity.
  4. Use a proper input filter for an Arduino pin (or any 3V or 5V digital input) that uses an industrial control voltage.
  1. Even when the electrical world is cleaned up, electronics still respond much faster than humans can.  A very common practice is to write a de-bounce filter in your software.  It’s nothing more than making sure an input is there repeatedly over a period of time.  Reading an input as active once could be an anomaly, but reading it active 3 times over 30 milliseconds means it probably is really a person hitting that button.


Escape room operators tend to fall into two camps, people who want to build almost everything themselves and those who just want to write checks.  Here at Escape Room Techs, we want to enable both – we love building things, and we particularly love helping people build things right.  Keeping escape rooms safe is key to the growth of our industry.

Whether you’re a do-it-yourselfer or not, it’s your responsibility to keep the public, your employees and your investment safe from damage, and that requires a comprehensive understanding of the electrical safety issues that are intrinsic to building an immersive entertainment experience. We’re always available to help!