Waltech LadderMaker Ladder Logic Software


WLM screeshot


Click for a video, v. 107a video-icon.png

Click for an earlier video video-icon.png

Version 105 video video-icon.png


  • Easy to learn and use Graphical Programming.
  • Written in Python
  • Integrated USB uploading to hardware

Compatible hardware:

  • Waltech PLC V2.
  • Arduino Uno.
  • Arduino Mega
  • Arduino Nano


5/12/2015 version 110b

Fixed upload to new Mega bootloader.

More than one ADC can be used now.  Multiple parallel circuits warning. 

↓ LadderMaker Python Source v.110b

11/08/2014 version 1.07a

Added Arduino Nano support. PWM, ADC elements available on Arduio Uno and Nano. Note: There are fewer input and output pins now to make room for PWM and ADC. 

Some bugfixes. Thanks to Adam J. and Mark W.

↓ LadderMaker Python Source v.107a 

Windows v.110c package. Unzip, run main.exe in program folder.

↓ LadderMaker110cWinpkg


Windows 10: A user provided this link to get PyQt4: https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.3/

Arduino Nano bootloader issues:

1) Burn bootloader using Arduino IDE version 1.6.9, and a USBASP programmer.
2) Use hardware Uno, instead of Nano in laddermaker. This uses the "-c arduino" in the avrdude command instead of "-c wiring"

If one could find the older bootloader that nano's use to ship with, and burn that onto the Nana, LadderMaker should work with the correct hardware chosen.

Saving a ladder:  Add the extension .wlm to the file name when saving, On some systems the ladder will be blank when it is re-loaded if the .wlm extension is not used.  

Running Python Source: Browse to Program folder, open a terminal, and run main.py. Requires Python 2.7 and pyQt4. Must be run in a terminal for USB testing and upload to work. 

Windows 7:  you may be able to run the python source. Install Python, Qt, and PyQt:  XP Links here:     Python 2.7   QT      PyQT  

Mac: Use a virtual machine such as VirtualBox, run Linux.

Introduction to Ladder Logic: On Slideshare- LINK

C code from LadderMaker

Posted by admin on February 15, 2016

The C code that LadderMaker generates can be used in The Arduino environment with some modification.

  1. From the terminal that Laddermaker is running in copy everything between "Making C" and "saving C and Compiling"copy_code.jpg
  2.  Paste into a totally blank Arduino IDE project. No setup, no loop.
  3. Delete two instances of "inline"delinline.jpg
  4. Change "operator" to "Operator" in five instances.changeOperator.jpg
  5. Choose Arduino board and compile. 

Adding USB Arduino access in Linux

Posted by admin on May 09, 2015

LadderMaker access to an Arduono via USB on Linux. 

This is a step-by-step cut-and-paste guide to adding a rules file so that non-root users can have access to an Arduino via USB.  This applies to Ubuntu, but should work for other Debian based Linuxes, such as Mint.

Cut and paste the following commands into a Terminal:  (LXterminal is recommended, as it allows mouse right click pasting)

cd /etc/udev/rules.d

sudo nano arduino.rules

This will open an editor, editing the file arduino.rules.  Paste the followint into the file: 

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="00[0-a][0-f]", MODE="666", SYMLINK+="arduino arduino_$attr{serial}", GROUP="dialout"

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", MODE="666", SYMLINK+="arduino arduino_nano_$attr{serial}", GROUP="dialout" 

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idProduct}=="7523", ATTRS{idVendor}=="1a86", MODE="666", SYMLINK+="arduino arduino_nano_$attr{serial}", GROUP="dialout" 

Type ctrl X.  When prompted: type Y, enter.  This will save the file.

Now disconnect and reconnect the Arduino.

Some Notes on LadderMaker

Posted by admin on April 07, 2015


Many people have commented that the inputs are inverted.  This was done intentionally so that pull-down is active, and optical isolation or pushbuttons will work as expected. The internal pull-ups are activated in the Arduino on all inputs. 




There is a new version of LadderMaker almost ready to publish.  It will be version 108.  The bug that prevents more than one ADC input from working is fixed.  There is also more entries in arduino.rules so that more versions of the Nano will work under Linux.  


There remains an issue with two or more parallel (OR) rungs.  OR rungs that are shorter than the one above, that are not left justified do not work properly:

no_work.png  (Does not work.) 


This does work:

OK.png (Works.)


I am trying to get this bug fixed, but for now a workaround using internal outputs will be the only option for multiple parallel rungs. 


Arduino Mega and new functions for Ladder Maker

Posted by admin on July 05, 2014

Ladder Maker verson 104 now has the following new features:

  • Arduio Mega2560 support
  • Pulse Width Modulated outputs (for the Mega2560 only)
  • Analog inputs (for the Mega2560 only)
  • + - ÷ x
  • < > + ≤ ≥
Some notes: multiple PWM elements can be connected to a single output.  The first active PWM element will apply.  This way several speeds can be used on a single output.
Timer and Counter can now be used with math.  A 16 bit register stores their value. and is available by charing the name.