kair.us/ projects/ temp_controller/

Weller WMRP and WMRT compatible soldering station

WMRP and WMRT compatible soldering station

This driver can be used with Weller tips which have integrated heater element and temperature sensor. More precisely, tips from WMRP (soldering pen) and WMRT (soldering tweezers) series can be used. Hardware is kept as simple and cheap as possible while still trying to give special attention to usability and accuracy. Main inspiration for this project was the usability (or lack of) the original Weller WD1M and WD2M solder stations. Hardware-wise they are true to Weller quality and engineering, but the UI experience could be better. Factory default setting to cut power from tip immediately when placed in stand - and impossible to change the behavior without manual! Well, someone else might think the same from UI in my Weller driver, but at least I'm happy to use it.

For a demonstration video of the station in action and overview of the various functions click here.



The hardware is based on PIC16F1788, fairly cheap PIC with good analog peripherals. The circuit is kept as simple as possible, while trying to provide optimum performance. The schematic is available in PDF below.


Weller driver version 1.1 eagleUp
The layout is designed with Cadsoft EAGLE 5.12.0. Two-sided board, designed to fit in cheap but nice-looking aluminum enclosure from eBay. Eagle files available below:
weller_driver_hw_v1.zip    (Version 1, Dec 22, 2015)
weller_driver_hw_v11.zip    (Version 1.1, Feb 4, 2018) Added PICkit2/3 pin header to make more DIY-friendly
Assembly drawing including bill of materials:
weller_driver_v11_assy_dwg.pdf (Version 1.1. Nov 3, 2018) Includes shared cart links for Mouser, TME and Digi-Key.
IDF exported from Eagle and STEP converted with Solid Works. May be helpful if you are designing an enclosure:
I have produced these boards at DirtyPCBs. You can order 10 pcs of these boards for $25 using this link. Be sure to select board thickness to 1.6 mm and board size limit to 10 x 10 cm. Dirty PCB pages have been updated and are not so clear anymore. Alternatively you can also grab the Gerber files package from here and order the boards from you favorite board house. 


Currently the FW consumes about one third of total available in PIC16F1788. It means that it also fits to a PIC16F1786. Packages below contain source code and compiled .hex file. From version v0.910 onwards, there are also compiled .hex files for PIC16F1786 and common cathode type displays.
weller_driver_fw_v05.zip (Version 0.5, Dec 27, 2015. Compiled with CCS compiler v5.048)
weller_driver_fw_v08.zip (Version 0.8, Feb 5, 2017. Compiled with CCS compiler v5.054) This includes mains frequency filtering and reduced WMRT buzz.
weller_driver_fw_v901.zip (Version 0.901, Jul 28, 2017. Compiled with CCS compiler v5.054) This includes fix for parameters being out of range after programming the PIC.
weller_driver_fw_v910.zip (Version 0.91, Nov 1, 2018. Compiled with CCS v5.081) Calibrated temperature lookup table for better accuracy. Adds duty cycle limiting and setback/standby based on duty cycle.

The build

I've built the soldering station in a full aluminum enclosure from eBay (search for '0905 aluminum enclosure' or click here, should cost around 14 € including shipping).
The photo below shows inside of the station. I am using a 10 amp power supply, since I originally planned to put two controllers in one station. 120 W would be enough to operate one WMRP and one WMRT simultaneously. I recommend to get a smaller PSU since this 10 A supply is very tight fit in the enclosure. 7 amps should be enough, or 4 amps if you are only going to use WMRP. You can (and should!) of course use an external power supply to avoid mains connections in the enclosure. It will reduce the risk of an electric shock significantly.

The photo below still has connector piece from a Weller WDH10T stand connected to the driver PCB (the black plastic thing behind the case).

WMRP WMRT soldering station inside

The front panel of the enclosure is 6 mm thick aluminum, so some machining was required to accommodate the rotary encoder and display. If you use smaller PSU and encoder with longer shaft, the build is a tad easier. For the encoder, I really recommend using an Alps brand encoder! Models from Bourns and TT Electronics are also available which are directly compatible, but the quality of Alps is superior. You can use e.g. Alps EC12E2424407 part number 1520813 from Farnell or part number STEC12E08 from Reichelt. The photo below also shows the display lens I used, a piece of smoke tinted Lexan. The BOM specifies a Lite-On LTC-4627JR display, but you can also use Youngsun ATA3492BR-1 display which you can get from Sparkfun and also from Hobbytronics. A third alternative is Vishay TDCR1050M, available from TME.

WMRP WMRT soldering station front panel machined

Below is rear view photo of the station. The mains connector comes with the enclosure, but hole for iron connector must of course be made. The connector is a modified Amphenol T 3437 000 connector, see this link for instructions in German (thanks for this tip from FlyGlas Solder Station build page!). It is available e.g. from Farnell, part number 1123523.

WMRP WMRT soldering station rear


You can also build the WMRP handle yourself. Rens PA3AXA has designed a 3D-printable handle and PCB for it. You can buy the PCB from DirtyPCBs using this link. The board needs to be ordered as 0.8 mm thick. Design files available for download below:

Handle.skp.zip Handle mechanical model, designed with SketchUp.
Handle_Eagle.zip Circuit diagram, assembly drawing and CAD files, designed with Eagle 6.
handle_bom.txt Part list

Below are pictures from Rens and his build. He has also modeled the front panel so you can print it if you don't have access to milling machine. Get it here.
UPDATE: A new version of the 3D printable front panel, get it here. It includes now standoffs to get the PCB to correct height. It also has room to fit a 2 mm thick display filter. You can get suitable display filters from conrad.nl / conrad.de. Part number is 185230 for red filter and 175264 for green filter. Photo below is version 1 without filter.

Weller station and WMRP handle made by
      Rens Dijkshoorn

WMRP handle PCB with KTY82 sensor and reed

A tip from Rens how to get flexible cable:

"I prepared the cable my self using 4x  1 mm PTFE stranded copper wire into a
number a 8 tube [ 5 mm outer, inside 3 mm, wall 1 ] from


Stand / holder

Remco has designed a holder for the WMRP. The two holes shown in image below are for two big magnets to snap the holder to a metal case. On the other side is alse one hole for a smaller magnet to activate the reed switch.

Weller WMRP stand by Remco
Image below shows bottom view of the holder. You can put 4 big nuts to add weight.
Weller WMRP stand by Remco bottom view

You can download the holder .stl file from here.

Other similar projects

Here are some other similar projects or products
DIY-WMRP Solder Station by FlyGlas Code developed in Arduino environment. LCD display. Versatile HW and a lot of functions. For video see here.

Frequently asked questions

Q: How to connect WMRP tip with 3,5 mm stereo jack?
A: See WMRP pinout from here. Connect sleeve to 'GND'. Connect ring to 'TC1'. Connect tip to 'HT1'. Use FW v0.6 or newer, enable 'poor' mode from diag menu.

Q: The WMRT tip makes noise! Is this normal?
A: It seems that the heating elements of WMRT make noise when power is switched on or off rapidly. Earlier firmware versions used to periodically pulse current to heating element 2 to recognize tip type. This caused constant buzz with WMRT even when in standby. FW 0.6 and newer recognizes tip type from resistor in parallel with reed switch so the noise is reduced. Original Weller stations drive heating elements using AC and zero point switching. So the current to tip rises and falls slowly, that's why they don't make noise.

Q: The temperature reading is not stable like in the Youtube video, it flickers like there's noise in temperature readout. Why's that?
A: Most likely some external disturbance is coupled to the iron cable. The output of the thermocouple is only some millivolts so it is quite sensitive. WMRT is more sensitive because it has 2k resistor in series with thermocouple while WMRP has 1k. Especially mains frequency seems to couple to the thermocouple line. Starting from firmware v0.6 there is special filtering against mains frequency noise. Temperature measurements are done at double the mains frequency interval, and two consecutive measurements are averaged. This effectively cancels any mains frequency noise. The diagnostics menu has a setting to select between 50 Hz and 60 Hz mains frequency, be sure to set it correctly. Another thing which may help is to connect the ground of the soldering station to mains ground.

Q: How can I program the PIC? There is nothing on the PCB to connect the programmer!
A: See this page for more information on how to program the PIC in my projects.

Q: I have read and understood the PIC programming instructions but I still can't program it. The programmer doesn't find the PIC!
A: The ICSP lines on this board are shared with the rotary encoder. On some encoders, the encoder can keep the one of the programming lines pulled down even when it is at detent position, where both switches should be open. Try to rotate the encoder to such position that neither PGD nor PGC are pulled to GND.

Q: I can only adjust the reference to one direction! Some of the parameters show '-1' or other erroneous or garbage values!
A: These kind of issues seem to happen if the PIC is programmed with MPLAB IPE. By default, the MPLAB IPE doesn't seem to erase or program the data EEPROM. These kind of problems are fixed in firmware v0.9 and newer. All the parameters are checked at startup and if any of those are outside of valid range, all parameters are set to default values.

kair.us/ projects/ temp_controller/

page created 23.12.2015
last updated 17.1.2019 webmaster@kair.us