Home PWMs EFIEs PWM Install EFIE Install Types of 02 Sensors

HHO Professor

Technical Resources

LCD Controller Instructions

This document covers the operation of the PWM once it has been installed, and connections have been made. If you have not done that yet, then please go to the PWM Installation Instructions and complete them first. Once all the wiring is connected, you may turn on the switch on the PWM. If your installation was successful you will see the display light up and start telling you information about the electrical environment and the operation of your cell.

The controller for the system is built into the display module. It is the controller that actually adjusts the current and monitors the activity of the PWM. While the system is running, it provides information to the user as to volts, current, frequency, duty cycle and if any errors are present, will display them.

Normal Display
Normal Display
Display Showing Error
Display Showing An Error

The first display is in normal operating mode. While operating normally, the display will show Amps and Duty Cycle (sometimes called Duty Percent) on the top line, and Volts and Frequency on the bottom line. However, when an error is being displayed, the error takes up the bottom line of the display, until it is cleared. In this mode, the top line shows Amps, Volts and Duty Cycle in a condensed format.

Starting with version 2.5, there is one more aspect to the display. When the PWM is turned off, it will show that it is off. Instead of displaying a Duty Cycle of 0% it will say "Off" preceded by a letter indicating why it is off. These are the possible letters:

Note that the Trigger function and temperature sensing of the circuit board are not available with the Legacy PWM (the PWM body is in a black plastic case).

Programming Instructions

To program the PWM, we use the knob below the Liquid Crystal Display. Press the knob once to enter setup. Now you can turn the knob to cycle through the different functions. When you get to the function you want to make changes to, press the knob again, and you'll enter that setup screen.

To make the changes, you will use the knob and button. Use the knob to navigate through any options available, and then press the knob once to select the new setting. Some screens have multiple settings, and you turn the knob to make any needed changes, and press the knob to accept each setting. Finally, turn the knob to the final screen that is labeled, "Exit". You must press the knob at this screen to ensure that your changes are recorded in memory.

The following series of videos will show you how to use the PWM. Note: As advancements and refinements are made, there may be slight differences between the following videos and your controller.

Here's the full listing of the Menu Items, not all of which are shown in the video:

1. On/Off. Use this menu option to turn the PWM on or off in software. There is no switch on the LCD Controller to turn off the PWM. But you can do it in software, and the PWM will remember this state after you turn off your engine. The next time you start your car, the display will show "M Off", meaning the PWM was shut down by menu command. When you are ready to produce HHO again, you must turn the system back on at this menu item.

2. Constant Amps. Use this screen to set the amps that the PWM will provide to the cell.

3. Volt Sensing. This item has several settings. The first is "Y" or "N", and sets whether volt sensing is activated. If not activated, the system will not shut down automatically on low voltages. If "Y" is selected then the next 2 screens will allow you to adjust the "On" and "Off" voltages. The On Voltage is the voltage that must be available in order for the PWM to turn on. Then, if the voltage drops below the Off Voltage, the PWM will shut down. In that case, the voltage must come back up to the On Voltage again in order for it to start back up. We recommend beginning with 13.0 volts for your On Voltage and 12 volts for your Off Voltage. See a further discussion of this function below.

4. Reservoir Level Alarm (Float Switch). This function causes the display to sound and show an alarm when the level in your reservoir gets too low. It requires that you have a float switch for your reservoir installed. There are 2 wires on the float switch. One gets extended and attached to the Float Switch Terminal on the PWM. The other wire gets connected to ground. The ground terminal on the PWM can be used for this purpose. Or, if easier, you may connect the other wire to any available ground. In the LCD's menu, you would change the setting from "N" to "Y". You would also select the type of switch that you have; normally open or normally closed. This just means that the switch is either making contact when the reservoir is low on water, or it's making contact when it's NOT low on water. Most float switches work either way just by turning them upside down. Don't worry if you get the logic reversed. If it alarms when the reservoir is full, then just change the Normally Open/Closed setting. Finally, by default, the reservoir alarm doesn't shut down the PWM, but you can change this behavior. See "Enter Codes" below for how to do this.

5. Calibrate. Press this button to calibrate the amps display to your PWM. You only need to do this once, and even then the calibration will not be off by more than a .1 amp or so.

6. Enter Codes. This is used to enter codes that affect the operation of the PWM. To enter a code, turn the knob to cycle through the available numbers and characters available. The available numbers are 0-9 and A-F. When you get to the number you want, press the button, and you'll be advanced to the next character position. Again, turn the knob to select the 2nd character, and so on. When you have entered the last character, press the knob one more time on the blank space to complete your entry. If you have entered a valid code, the word "Saved" will flash onto the screen for a moment. If you enter an unrecognizable code, then "Invalid" will be displayed shortly. Entering an invalid code has no effect. So, if you are entering a code and accidentally enter a wrong character, then just press the button twice and start over. Please note that not all codes work on all versions of PWM.

The following codes are recognized. Some of these refer to functions covered later in this document.

111 - Display Lifetime Timer

25350 - No Load check off
25351 - No Load check on

2EE040 - Runaway Amps Check off
2EE041 - Runaway Amps Check on

232250 - Fan Check off
232251 - Fan Check on

232252 - Circuit Board Temperature Check Off
232253 - Circuit Board Temperature Check On

232254 - Change LCD to work with Truck PWM (aluminum case - green)
232255 - Change LCD to work with Car PWM (aluminum case - natural color)
232258 - Change LCD to work with 20A PWM (aluminum case - natural color - no fan)
23225C - Change LCD to work with Legacy PWM (black plastic case).

143AC0 - Turn Passwords off (Added in Version 1.29)
143AC1 - Turn Passwords on
143AC2 - Change Password
143AC2 - Reset Password to "1"

F4D735 - Turn Off Beeps (Version 1.29 after 5 Apr 18)
F4D734 - Turn Beeps On

F1DE21xx - Set Maximum Amps (See Below)

1414x - Voltage Tuning - see below for instructions(Added in Version 1.29)

Trigger Function: (See Below)

2340 - Trigger function to be turned off
2341 - Trigger function to be turned on - with normal voltage - Hi voltage = PWM is turned on
2342 - Trigger function to be turned on - with reverse voltage - Low or no voltage = PWM is turned on.

Float Switch Error Function:

F4D732 = float switch error does not stop PWM
F4D733 = float switch error stops PWM

3AC2F0 - Instant Amps Check off (Deleted after v1.29)
3AC2F1 - Instant Amps Check on

C187A0 - Total Amps Check off (Deleted after v1.29)
C187A1 - Total Amps Check on

Frequency functions:

14CB0F0 - turn frequency menu item off
14CB0F1 - turn frequency menu item on
14CB0F2 - turn frequency menu item on once, then hide it again after next power cycle

When using higher frequencies on large cells (above 10") or with an extreme number of plates (more than 25 plates), the cell develops a large capacitive kickback onto the PWM. Open bath cells are often similar. I've seen voltage spikes of over 150 volts come back out of a cell, and even higher on 24 volt systems. Our commercial PWMs employ a capacitor to absorb these spikes. But running high frequencies on cells with a large plate area, causes the amount of energy coming from these spikes to increase. Each pulse causes a spike, so if you double the frequency, you double the number of spikes. This can cause the capacitor to overheat and fail, and if that happens, the spikes will kill the PWM. For this reason OEMs usually turn off the frequency function for commercial PWMs. If you increase the frequency, please monitor the temperature of the biggest capacitor on the circuit board. As long as it stays cool, you're OK. If you have an oscilloscope, you can monitor the spikes on the scope. That's the best test. Measure between HHO+ and HHO-. You will see spikes. As long as they are lower than 100 volts, then the PWM will not be harmed. If you see higher spikes, you should attach a large electrolytic capacitor between the 2 terminals. The capacitor should be rated for 100V or more and be 1,000 uF or more.

7. Frequency: If this menu item has been activated, it will show up here. Just set the frequency to the desired number and press enter.

Set Maximum Amps

It is now possible for OEMs to reduce the maximum amps that the PWM will allow. For instance, the car PWM comes from the factory with a maximum amps setting of 50 amps. If the user tries to set it higher than 50 Amps, it won't do it. However, you may want to set the maximum for 25 amps because you don't want them driving your cell higher than 25 amps. You would use this code to change the maximum amps allowable. You may set it for any value less than or equal to the normal maximum amps. The normal max amps values are 100A for a Commercial PWM, and 50A for the standard car PWMs. Enter the code F1DE21xx, where "xx" is the hexidecimal value of the maximum amps you want. If you're not familiar with hexadecimal, then use this converter. For instance hexadecimal for 28 = 1C. So, to set 28 as the max amps you would enter the code F1DE211C. Note, if the max amps you want to set is only a single hex digit, then you must put a "0" in front. The code requires 2 digits for the amps setting. So, if you wanted to set it for 9 amps, then you would enter F1DE2109 (note, 9 is the same for decimal and hexadecimal).

Voltage Sensing

During your initial set up of your HHO system, we recommend you keep this set to "Off". We don't want your PWM shutting off for unknown reasons while we are trying to get everything working for the first time. However, you will want to use this function as it provides another layer of safety on top of the control wire discussed above. This function relies on the fact that the alternator causes the voltage to be higher when the engine is running than when it is on battery only. Usually there is a difference of over a volt. By turning this function on, and getting the voltages set correctly, the PWM will shut off when the engine stops running due to low voltage.

The voltage of your vehicle's electrical system is actually only nominally (in name only) 12 volts. When the engine is shut off, the battery will usually provide about 12 volts. If any kind of current demand is being made on it, such as would be the case with an HHO system running, it will drop to below 12 volts. However, when the engine is running, the alternator produces well over 12 volts to the electrical system so that the battery will charge. If you measure the voltage at your battery when the engine is running, you will usually see about 13.5 volts or a bit more. We are using this voltage difference to sense when the engine is not running, and to use it as an additional layer of safety.

In the general instructions above, we gave you some voltages to use for this function. You should actually make a few measurements on your system to make sure these voltages are the best to use for your vehicle. For instance, we want the On Voltage to be low enough that it will always come on when it should, but not so low that it will come on when it shouldn't. To test for a good On Voltage, let your car run at idle, then turn on all the devices you will likely ever use. Run your HHO generator at the amperage you plan to use. Turn on your head lights and your stereo, and run you're A/C with the fan on high. Now measure the voltage. You'll want your On Voltage to be below this voltage.

Now turn off all of the accessories, and turn off the car. Measure the voltage. You will find that it quickly drops down to 12 volts or a little below. You'll want your Off Voltage to be above the voltage you see now.

After activating this function, if the voltage drops below your off voltage threshold, the PWM will set it's duty cycle to 0, effectively turning the system off.

Getting these voltages correct is easy to do, and will give you an extra layer of safety with your HHO system. Between this function, and the control wire, we are making very certain that HHO is not being produced unknowingly, nor when the engine is off. This is an important safety consideration. You never want your system making HHO while the engine is not running and therefore instantly consuming it.

Password Function

A password function has been added at the request of some of my OEMs. This allows an OEM to lock out the menu after he gets everything set up correctly for his customers. To get to the menu, one must enter a password. This feature can be turned on and off via the Enter Codes menu command as described above. Once you correctly enter the password, you will be "logged on" until the next time the PWM is powered off. This is by design so that you don't have to keep entering the password when you need to go in and out of the menus during setup

To change the password, go to "6. Enter Codes" on the menu. Enter 143AC2. Then exit the menu. Now, push the button to go back into the menu. Instead of the menu appearing, "Password?" will appear on the screen. Enter the new password followed by a blank space. Note passwords are a maximum of 8 hexadecimal digits. If you enter a longer password, only the first 8 digits will be recorded. Password default is "1", so if you activate this feature you will want to put in your own password. Be careful to write it down. If you lock yourself out of the menu, you will have to send your controller in for re-programming before you can access the menus again.

Trigger Function

This is a feature on Commercial PWMs only. Further, Commercial PWMs sold prior to 10 March 15 do not support this feature.

When wiring up the PWM, you make the following change for use of the Trigger function. At the "12/24 volts In" port, connect to any switched circuit. We no longer want a circuit that is only on when the engine is running. We want a circuit that comes on any time the ACC key is turned on. That way you can set your menu, even if the engine isn't running. As long as the trigger port isn't activated, the PWM will not allow current to flow to your HHO Cell. Then connect the Trigger port to a circuit that is only on when the engine is running - or conversely, you connect it to a circuit that is off when the engine is running, but goes high when the engine is off (such as an oil pressure lamp). Whatever you use, be sure to test it carefully to make sure it behaves like you think.

You turn the Trigger function on and off using the "Enter Codes" menu option. It is turned on by default for models that support it. See the specific codes above to activate and de-activate the feature. When the trigger function is used, the PWM will not operate unless the voltage is correct on the trigger port. Use the Standard trigger function for connecting to a circuit that provides voltage when the engine is running. Select the Reverse trigger voltage for a circuit that provides voltage only when the engine is NOT running, such as with an oil pressure indicator. The threshold voltage is about 2.5 volts or so. Below that is considered Low, and higher than 2.5 volts is considered High. The trigger port can accept 50 volts of plus or minus polarity.

Voltage Tuning

This function was added to increase the accuracy of the voltage display. In some cases the display can be off by as much as 0.2 volts. This has to do with the accuracy of the the electronic components where the voltage is measured. To increase the accuracy of the voltage display, you must use an accurate meter. Connect the red probe to the Batt+ on the PWM. Attach the black probe to the Batt-. For best results connect your probes directly to these 2 terminals, and not to other "equivalent" locations. It's best to do this test while the engine isn't running so that the voltage is very stable.

Compare the voltage on your meter to the voltage that the PWM shows you on the display. If the voltage on the display is lower, you need to add voltage, and if the display shows a higher voltage, you need to subtract. Voltage is changed using the Enter Codes menu step. The code to enter is 1414x, where the "x" is replaced with a number that will cause the voltage to add or subtract. Replace "x" with 0-5 to add voltage. The higher the number, the larger the amount added. Entering "0" will add a voltage so tiny, you won't see the display change. Entering "3" is 8 times as much as entering "1". Replace "x" with 6-9 to reduce voltage. Using "6" reduces the voltage by a tiny amount. Entering 7-9 reduces it by the same amounts that 1-3 adds voltage. Further, replacing "x" with "A" or "B" will reduce the voltage by even larger amounts. By adding or subtracting as needed, it's possible to get the display to match exactly to an accurate meter.

Error messages and their meanings:

Software Revision History

Version 1.0: Changed default frequency to 65 Hz.

Version 1.1: Various cosmetic changes were made to the display.

Version 1.2: Rewrote all code for handling the encoder (control knob). Smoother operation of the knob resulted.

Version 1.21: Changed the main display layout so that errors could be reported.

Version 1.22: Added ability to change the frequency. Added error reporting for multiple errors.

Version 1.24: Added 'No Load' check to errors. Checks to be sure the system is drawing current and reports an error if less than 3 amps are being drawn at 50% duty cycle or more.

Version 1.25: Added 1) check for high instant amps - instant amps is defined as average amps (as displayed on the controller) divided by duty cycle. If that amperage is too high, the PWM will shut down to protect itself. 2) Checks for amps out of control. If a mosfet fries, it will pass current without any control by the PWM. This error alerts the user to disconnect the PWM - insistently. 3) Also checks for high amps condition in general and shuts down if found. 4) Brought all advancements made on the truck PWMs to the car PWMs Only difference is max allowed amps. 50A systems will have a "-1" after the software version, and 100A versions will have a "-2". 5) Auto calibrate menu item was replaced with a procedure that calibrates the unit at each startup. 6) Added a "Code Entry" step. This is for making changes to the programming after the display/controller has left the factory.

Version 1.26: Added ability to cancel the fan error which sometimes causes nuisance errors in cold weather when the fan is not needed.

Version 1.27: Added on/off switch in software. Amps calibration was added to the menu.

Version 1.28/9: Changed the fan error to display once every 45 seconds or so, but then go back to normal display. Added a password function so that a password can be required to use the menu. Deleted the following errors: No Load, Instant Amps, High Current. Many code optimizations.

Version 1.30-1.32: Minor bug fixes for new functionality.

Note: 100A Commercial PWM Software version is currently 2.28.

Version 2.3: No changes to software. This was just a consolidation of the various forms of the controller for different hardware platforms. From this point forward, the versions will have a suffix to indicate the PWM hardware it is designed for, as follows:
2.3t: 100A Commercial PWM, also known as the Truck PWM. Large green anodized aluminum heat sink case.
2.3s: Older version of the Constant Current PWM that comes in a black plastic case. Replaced in Jan 2015.
2.3c: Constant Current PWM for cars. Comes in an aluminum heat sink case.
2.3a 20 Amp Constant Current PWM, available for a limited time. Same as CCPWM for cars, but 20 amps max capacity.

Future versions will be listed by number only. The suffix letter will remain the same as listed above.

Version 2.4: Minor bug fixes.

Version 2.5: Added Trigger function for new models of the Commercial PWM. Menu now shows "Off" in place of the duty% if the pwm is turned off by menu, trigger or voltage sensing. Added a timeout function so that if the PWM is put into the menu mode and forgotten, the menu will timeout and go back into run mode.

Version 2.6: Added support for high temperature error for car pwms. New codes for turning board temp error on/off, and for changing the controller for use with truck, car and the older black plastic PWMs.

Version 2.7: Added ability to turn off "Test Rig" function. Added ability to change hardware types by holding down the knob/button at power up.

Version 2.8: Minor bug fixes. Slight change to the version string.

Version 2.9: Added ability to shut the PWM down on float switch error. This can be turned on and off. User can set the Maximum amps the PWM will allow to a lower amount so users can't set the PWM higher than a desired maximum. Added a way to view the Lifetime hours counter (shows how many hours the PWM has been running). Added ability to shut off the beeper (after 5 Apr 18).

Resources for those seeking fuel economy

Contact Us EFIE Example PWM