kair.us/ projects/ temp_controller/
Weller 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
- Supports Weller WMRP and WMRT tips
- Very quick heat-up time and response
- Supports WMRP bare tips (with 3.5mm stereo plug)
- Supports the original Weller cables/handles, including readout
of PTC for cold junction compensation and reed switch for
- Accurate temperature readings with auto-zero opamp
- Mains frequency filtering for noisy environments
- Setback temperature, setback delay, standby, offset settings
as in original Weller stations
- Possible to change step size and temperature unit (°C or °F)
- Diagnostics functions to show thermocouple temperatures from
both tips of WMRT, cold junction PTC temperature, reed status
and recognized tip type
- Uses internal reference of microcontroller. Possible to
calibrate it with multimeter and diagnostic menu setting.
- All functions controlled with one knob
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
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
(Version 1, Dec 22, 2015)
(Version 1.1, Feb 4, 2018) Added PICkit2/3 pin header to make more
Assembly drawing including bill of materials:
(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
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.
(Version 0.5, Dec 27, 2015. Compiled with CCS compiler v5.048)
(Version 0.8, Feb 5, 2017. Compiled with CCS compiler v5.054) This
includes mains frequency filtering and reduced WMRT buzz.
(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.
(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.
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
The photo below still has connector piece from a Weller WDH10T stand
connected to the driver PCB (the black plastic thing behind the
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.
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
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.
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
Other similar projects
Here are some other similar projects or products
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.
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
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 3.11.2018 firstname.lastname@example.org