Introduction
This is a third release of combined soldering iron controller for Hakko T12 tips and 858D rework station based on STM32 micro controller. This time the oled display was replaced by ili9341 TFT one with SPI interface. There are several display variants (2.2", 2.4", 2.8" or 3.2") in the market, so you can chose the one that satisfies your requirements, I used 2.2" display. The touch screen feature is not used in this project, but you can use display with touch screen panel.
The soldering controller supports using soldering iron and Hot Air Gun at the same time. In the main mode, you can activate any device or activate both devices simultaneously or turn them off. As soosn as the display resolution is higher than oled display, the information of both devices can be displayed on the main screen.
To simplify managing both devices simultaneously the controller implements two rotary encoders. The upper encoder manages the soldering iron and the lower one manages the hot air gun and activates main menu. The automatic mode switch that turn the Hot Air Gun off is still optional an can be plased on the back panel, like mine.
UPDATED 10/31/2021, version 1.01
- Fixed error unformatted flash detection
- Introduce the debug mode
UPDATED 11/04/2021, version 1.02
- Fixed black screen if the flash is not formatted
UPDATED 12/17/2021, version 1.03
- Fixed error the hot Air Gun calibration data rewrites current tip calibration
- Iron anf Hot Air Gun messages changed to icons to simplify project localization
UPDATED 12/21/2021, version 1.04
- Fixed Hot Air Gun setup temperature or fan speed issue in the main working mode
- Added Native Language Support using UTF-8 encoding. See the article for details.
- Added russian language messages (Cyryllic font + message file)
- Added Portugeese language messages (Western Europe font + message file). Thank to my friend Armindo for translation.
UPDATED 12/22/2021, version 1.05
- Extend diagnistic messages when uploading NLS data from SD-CARD
UPDATED 12/30/2021, version 1.06
- Minor bugs fixed
- Added polish language messages (impact_we.font + message file).
UPDATED Dec 31, 2021, v.1.07
- Fixed parameter menu incorrect value show issue
UPDATED Feb 12, 2020, v.1.08
- Fixed errors in NLS files, added new sentenses to russian ang portugeese languages
- Added support for display rotaion (0, 90, 180, 270 degrees). Landscape display rotation is the default.
- Display rotation menu item added to the parameters menu
Before updating the firmware, save the PID parameters if you have modified them. The landscape orientation is still the default. Some issues can be faced in the portrait display mode. Report them to be fixed.
UPDATED Mar 4, 2022, v1.09
- Improved rotary encoder stability
UPDATED Nov 13, 2022, v1.11
- Rebuilt the project with an updateg graphic library version.
- Revisited internal controller logic.
- Minor bugs fixed.
- Now the project source files are available. Please, do not ask how to bild it. :)
UPDATED Nov 26, 2022, v1.12
- Fixed issues in the parameters menu
- Updated the NLS message files
UPDATED Jan 01, 2023, 1.13
- Changed TIM1 value in the debug screen. Now this value shows the TIM1 period. See the debug chapter.
- Speed-up the power-up procedure. Not the temperature values are read from the hardware during startup
UPDATED Mar 29, 2024, v1.14
- Fixed issues about FLASH read and write operations
- Now if the FLASH is not initialized correctly, the controller falls into limited mode
- Updated the W25Qxx library
UPDATED Oct, 2024, v1.15
- Added support for IPS type display, ili9341v. The display type can be selected through the preference menu.
- New Hot Air Gun chilling method implemented. Can be activated through preference menu also.
- Added the encoder debug screen.
- Changed the controller behaviour in the 'about' screen. Rotary encoder can activate different debug screen right from the 'about' screen.
If you use native langualge, you have to update the NLS date on your flash. If you speak polish of portugeese, please rewiew your language file before updating the NLS configuration. New preference menu items could be translated incorrectly.
New firmware update requires you to review the controller parameters, please adjust the preferences again.
This is a final update of the controller. No more new feature will be implemented in this project, only bug fixing.
Let's get started
This project has several features:
- The controller allows managing Hot Air Gun and soldering iron independently. Two independednt rotary encoders simplifies this type of managing devices. The reed switch of the Hakko 858D Hot Air Gun handle used to activate rework capability.
- The soldering iron can be automatically switched off or keep working when you use Hot Air Gun depending on configuration parameters in the main menu.
- Optional automatic mode switch can be used when you do not want to use the Hot Air Gun so you can disconnect it from the controller entirely. The automatic mode switch simulates the reed switch inside the Hot Air Gun and deactivates the Hot Air Gun function for sure.
- Hot Air Gun is powered by a whole sine half-period voltage peaks and do not disturb your home AC outlet.
- When the soldering iron is not active, the controller checks the soldering tip is connected by testing a small amount of current through the tip. The allows to change the soldering tip. When soldering tip removed from handle, the controller detect no current through the tip state and the 'change tip' procedure would be activated.
- The controller checks the Hot Air Gun is connected and its fan is working properly before applying high voltage power to the Hot Air Gun heater. This increase the safety of the controller.
- The controller would keep the Hot Air Gun fan working until it become cold. Optional power switch can be used to automaticslly turn-off the controller completely after the Hot Air Gun become cold. This allows you to lieave your workplace immediately and guarantee the Hot Air Gun will be cooled safety.
- When the Hot Air gun switched off, the fan speed is managed automatically depending of selected chill type. If 'fast gun chill' option is activated, the fan speed set to maximum value to chill the gun as soon as possible. Othervise, the 'smart' way of chilling would be activated: the fan speed decreased to minimum at first, then while th Hpt Air Gun become colder, the fan speed would be increasing until the Gun becomes cold. This ensures the hot air does not harm your workplace environment.
- The controller uses ambient temperature sensor inside the FX9501 iron handle to correct the tip temperature measured by the soldering tip thermo couple.
- The controller supports individual calibration of each tip by four reference points, 200, 260, 330 and 400 degrees Celsius.
- The controller supports calibration of Hot Air Gun by four reference points, 200, 300 400 and 500 degrees Celsius.
- The dedicated calibration procedure is implemented in the controller to simplify the tip or Hot Air Gun calibration process.
- The controller uses 50 HZ PWM signal to control the supplied power to the soldering tip. This makes the controller silent.
- PID algorithm used to manage the supplied power to soldering iron or Hot Air Gun. This allows to keep the preset temperature very accurate.
- The temperature can be displayed in two degrees: Celsius or Fahrenheit.
- The standby (low power) mode of the soldering iron implemented using optional hardware tilt switch inside the soldering iron handle.
The controller PCBs
To decrease the controller price and increase its reusability, the complete schematics was split in 3 separate PCBs. The main PCB conntains the main low-voltage components: stm32 blackpill board, op-amps, voltage dc-dc converter and regulator, mosfets that manage the soldering iron and Hot Air Gun fan. The AC power PCB contains the high-voltage part of the project: the triac, optional high-voltage relay and opto-couplers that creates galvanic isolation from the main board. These two boards are connected via 5-wire interface cable. The display PCB contains the TFT display and two rotary encoders.
The main board
The main board schematics available in EasyEda site, where you can vew it and order the board if you wish. The schametics of the main board was separated to 2 pages.
The main board picture is shown below. As far as you can see, there are several connectors on the board that should be explained.
- JP1 is a screw-type iron connector, please ensure the iron tip polarity.
- JP2 is a low-voltage part of Hot Air Gun, reed switch, thermo sensor, fan.
- JP8 is a screw-type input connector from 24 volts power supply, please ensure the polarity.
- JP10 is an optional auto-switch connector.
- JP5 is a connnector for tilt switch and ambient temperature sensor inside the iron handle.
- JP3 is a IDC-type connector for the display board.
- JP11 is a optional DIP-type connector for SD-card reader on the TFT display. This connector is used to load external files to the SPI flash memory IC. Just solder the pin-header here.
- JP9 is an interface to the AC power PCB to manage the Hot Air Gun.
The debug switch is optional one. You can solder the wire instead. It is used to disconnect 24v power from the bluepill board when the firmware is loading from your PC or while debug the firmware. As soon as 24v AC-DC power supply is not isolated one and the PC has non-isolated power supply also, it is possible to destroy blackpill board when it receives the power from different sources.
The AC power PCB
The high-voltage pcb is also available in EasyEda site. The schematics contains the TRIAC and opto-coipler modules allowing to isolate the board from low-voltage part of the project.
The high-voltage board implements wide lines and should be ordered with 2oz depth to allow high current to the Hot Air Gun heater. It would be very expensive to order the complete board with 2 oz depth, so the high-voltage part was split to a separate PCB. Yet, the interface connector is completely isolated from AC power via two opto-couplers OK1 and OK2. The EasyEda page contains two versions of the pcb, both are correct. You can select the one you like.
There are 4 screw-type connectores on the left side of the board and one interface connector on the right side.
- JP3 is a AC power connector, connect here the AC 220 volts from outlet. Do not forget to install 5A fuse before. The fuse can be placed on the rear pannel of the case.
- JP6 is a optional main power switch connector. Connect the main switch here or short the pins.
- JP4 is a Hot Air Gun heater connector.
- JP7 is a connector to supply AC power to the AC-DC 24v power supply.
- JP8 is an interface connector th the main board. It supplies the isolated interface to the Hot Air Gun.
The interface connector has 5 wires that manages the AC power board:
- "+24" is +24 volt from AC-DC power supply to activate K1 relay. You can remove this wire if you do not install the relay
- "gnd" is obliously ground wire
- "E" is a power enable signal, used to activate the relay. Can be skipped.
- "P" is a Hot Air Gun heater signal, used to power the Hot Air Gun.
- "Z" is a AC zero cross signal.
You can remove optional 24v RTE24024 relay from TE Connnectivity if it is unavailable in your country or if you do not want to implement the safety feature in this controller. This relay completely disconnects AC power from Hot Air Gun GX16-8 aviation plug on the front panel when the Hot Air Gun is not used. If you install optional auto switch you can completely disconnect the Hot Air Gun from the controller and it would be safe to touch the GX16-8 connector.
To remove the RTE24024 relay completely, you should solder the relay pins as shown on the picture bellow by red lines. Also, if you do not want to implement the main power sitch of the controller, you should solder the pins of the main power switch as shown on the picture bellow by the purple line.
Also, you can remove R24, VT6 and D3 from the PCB together with the relay.
The display PCB
The display PCB allows to install the controller into the G767 case or similar. The board files and description available on EasyEda site.
The schematics of the board is very simple. It contains two rotary encoders and TFT display. Also, you can see the mosfet that manages the TFT display brightness.
The controller requires big size PCB to fit all the components so it is convenient to create the display separate board. Also, It is convenient to solder rotary encoders to the display board and use encoder neck to fix this board on the acrylic front panel.
This controller is working with ili9341 based TFT displays only. You can select the display size (2.2", 2.4", 2.8" or 3.2"). The display has sufficient resolution 320x240 to show required information. I used the 2.2" one to fit the case.
The touch screen feature is not used in this project, but you can use display with touch screen panel.
Hakko T12 Soldering TipsThe Hakko T12 soldering tips are very convenient tools: they are heating extremely fast and have a sensor inside that allows to keep the temperature very accurate. The tips require just three wires: plus, minus (ground) and earth ground. The heating element inside the tip is connected consequently with the thermo couple allowing to decrease the required wires. It makes the cable very flexible and light weight.
A dedicated handle is required to use the T12 tips. I would like to recommend some handles from KSGER supplier. You can order the variant you like. In any case, you can put the termistor and tilt switch inside the handle.
When connecting the handle to the GX12-5 plug you can use the following reference of the plug pin-out.
To turn the controller into rework station, you can order hakko 858D hot air gun handle as shown on the picture bellow. This handle is non-expensive and contains all required components: heating element, fan, temperature sensor and reed switch.
When connecting the Hot Air Gun handle to the controller via GX16-8 plug you can use the following reference of the plug pin-out. Unfortunately, I do not know the color of the wires because my handle was assembled. I have been told that there is a different kind of hakko 858D handles in the market and your handle can have different pinout. To check your handle pinout you can keep in mind the following criteria:
- The plug should have two wires for the heating element, two wires for the temperature sensor and two wires for the fan. The reed switch shares gnd with a temperature sensor.
- Earth Ground is connected to the metal body of the handle.
- The heating element has resistance about 60 Ohm.
- The thermo-couple (temperature sensor) resistance is about 1-3 ohms.
- The reed switch should be shorten to the ground pin when the handle is near magnet
- The fan should start working when you apply 24 volts to its terminals.
Automatic power off feature
This feature increases the safety of soldering iron. There are two automatic power-off features are implemented inside the controller, software driven and hardware driven. The hardware driven one requires optional TILT or REED switch installed in the iron handle. In the software mode, the controller turns on the Idle mode if the supplied power to the iron is stable for a while. In this case, the controller will power off the iron in specified timeout. When the time to automatic shutdown near, it will be displayed as a seconds remaining. When you use the iron, the supplied power changes and the controller resets the automatic power off timeout.
The automatic power off feature enabled as soon as you setup the auto off timeout in the setup menu. You can setup the minutes before the soldering iron will be switched off in case of inactivity.
The TILT switch is working as follows: when it turned downstairs, it is "open" (not conduct the electricity) when it turned upstairs, it is "closed" (start conduct electricity). The tilt switch is the part of the Chinese soldering kit. You can connect the TILT switch in any way, upside down or not, the controller is checking the TILT status change. When the TILT switch status would change, the controller would reset the low power mode timeout.
To use the hardware TILT switch, you must setup automatic power off timeout and standby temperature. If the standby temperature is "OFF" the hardware tilt switch will not be used and software solution described previously will be activated. Also, you can setup standby time (timeout to switch to low power mode). When the tilt switch enabled, the main working mode changes the following way. The iron is starting heating. When it reaches the preset temperature the "Ready" message will be displayed and the controller will keep the preset temperature. If the soldering IRON is not used (laying on the table) the controller will switch low power mode. If the iron keep laying for automatic off timeout, the controller will switch off the power completely. As soon as you start using the iron, the controller restores the preset temperature.
Also, you can use REED switch in the soldering handle. The controller would activate the low power mode when the REED switch would "closed". For example, you can place the magnet into soldering station base to activate this switch when you put the soldering handle on the base. Perhaps, you should use mode shorter timeout values when using REED switch.
To connect the IRON handle you can use the schematics shown bellow. As you can see, the TILT switch and the thermistor connected between dedicated line and ground. The iron tip is connected by three lines: Earth, ground and V+.
To clarify the sequence for starting the controller here is the list of operations should be performed consequently:
- Build the controller hardware, solder all the components as shown in the complete schematics below.
- Flash the firmware into the controller
- Connect the soldering iron handle with tip installed to the controller
- Connect the Hot Air Gun
- Power on the controller
- Initialize (format) the SPI FLASH using main memu, then power-cycle the controller
- Activate some tips you are going to use in near future using main menu
- Setup some common parameters through menu (temperature units at least)
- Tune the soldering iron potentiometer
- Tune the Hot Air Gun potentiometer
- Calibrate several soldering iron tips
Notes about components
The complete controller schematics is split into 3 pieses to create separate PCBs. These are available at the end of a project description.
The main component is the BlackPill board. You can use the pure STM32F401CCU6 micro controller if you wish to create compact variant of the soldering station.
To obtain pure 3.3v power source, it is advised to order DC-DC converter based on MP1584 chip like shown on the picture below.
Connect this DC-DC converter consequently with b0505 isolated cobverter: 24v -> MP1584 DC-DC converter -> b0505 -> ams1117 gnd you get isolated power supply for your stm32 micro controller. This king of power supply is isolated and low-noise power that ensure accurate ADC temperature readings.
Flash firmware to the controller
This project is based on the BlackPill board with STM32F401CCU6 micro controller. To flash prebuilt firmware to the controller the st link v2 programmer and ST link utility are required.
Download the STM32 ST-LINK utility from st site. Install the utility in your system. Launch the ST-LINK utility, connect the programmer to the 4pins SWD interface of BlackPill board, press "connect" button. The main window should display the memory content of the BlackPill board. Press flash button to write the firmaware to the BlackPill board.
Note: Do not connect power through non-isolated DC-DC converter to the controller while it is connected to the usb programmer. The micro controller can be damaged in this case.
Caution: Disconnect AC power from the controller while you connect or disconect soldering Iron handle or Hot Air Gun. Connecting this equipment while the controller is working can damage the controller ports.
Build all the blocks together
On the picture below you can see the block diagram that help you to connect all the parts together.
As you can see, the main AC power after fuse that can be installed on the pannel of the case, goes into JP3 socket on the high voltage board. You can connect main power switch to the JP6 socket or short it oins and completely remove main switch if do not like to use it. JP4 and JP2 sockets are used to connect to the GX16-8 connector of the Hot Air Gun. The power to the heater goes from JP4 socket and all other wires connected to the JP2. Earth ground should be connected to the Earth ground of AC power (not shown here). JP8 and JP9 connectors should be connected together. Soldering Iron GX12-5 connector should be connected to JP1 and JP5 sockets. JP10 used to connect optional automatic mode switch. Using this switch you can disconnect the Hot Air Gun completely from the controller when it is not needed. JP3 should be connected to the J1 connector on the TFT board. This is 14-wires connector to attach the display and rotary encoders.
Using JP11 you can connect the SD-CARD installed on TFT display to the controller when going to upload some files from SD-CARD to SPI FLASH. For instance, it can be used whel upload localization data files.
Initialize FLASH
The SPI FLASH of the controller should be initialized (formatted) first time. The controller cannot save any file on unfurmatted flash. If the FLASH is not formatted, the controller shows up a dialog menu asking to format the FLASH. After the SPI flash would be formatted, power-cycle the controller.
Tune the ControllerThe external thermocouple required during this procedure.
In the controller schematics you can see two 500k potentiometers R5 and R19 that tunes the operation amplifier U4.1 and U4.2 to get the expected temperature readings at controller pins PA4 and PA5 of BlackPill board. You can use different operating amplifier, so these potentiometers are increasing the controller flexibility.
Each potentiometer should be tuned at least once. The main idea is that the controller reads the voltage from the thermo-couple through the ADC and gets some integer data in the interval 0-4095 depending on the voltage on its pin. The near the voltage to 3.3v the near the readings to the 4095. The potentiometer should be tuned so when the temperature become 450 Centegrees (iron) or 500 Centegrees (Hot Air Gun), the ADC reading should be about 4000.
To simplify controller tuning procedure, the tune modes are implemented in the controller. This modes can be activated from the system menu item 'tune iron' or 'gun menu->tune gun'. When the tune mode is activated, the controller powers on the iron or Hot Air Gun and displays on the screen applied power (in percents) and the gauge of the current temperature readings. The gauge has a label '450' or '500' depending on what hardware you are tuning. When the gauge reaches this label, the temperature should be 450 or 500 degrees of Celsius.
Note: To perform tuning procedure more precisely, apply a solder drop to the contact between the thermo-couple and the soldering tip rod.
Connect external thermo-couple to the iron tip and enter the tune procedure. The iron should start heating. Rotate the lower encoder to change the supplied power to the iron. Pressing the encoder handle shortly you can toggle supplied power (on or off). Check you external thermo-couple and adjusting the power manually by encoder try to keep the iron temperature as near to 450 Celsius as possible. At the beginning you can supply a more power to the iron, but when the temperature will near to 450 degrees by external thermo-couple, you should decrease the supplied power. Any way, try to keep the iron temperature about 450 degrees.
As soon as you have stabilized the iron temperature near 450 degrees, rotate the 500k potentiometer trim to shift gauge bar on the display left or right. Adjust the potentiometer so the bar would be as near to the reference temperature as possible. Then long press the encoder handle (for about 2 seconds) to turn the iron off and finish the procedure. It is recommended to use the thick tip that produce the highest voltage when performing the tune procedure. For example, T12-K, T12-D52 or similar.
The Debug modeDebug mode implemented to allow fixing the problems in the controller hardware. In this mode the controller shows its internal parameters. To reach this mode, select 'About' item in the main menu, then long press the lower encoder.
As you can see from the picture above, the debug screen shows the following information:
- iron status (off or on). You can manage the power supplied to the soldering iron by rotating the upper encoder. As the encoder rotated, you adjust the power supplied to the iron (in internal units). The more power supplied to the iron the faster it heats. Supplied power value displayied in the right column ('irnP') in the internal units.
- The currunt through the iron tip. Checking the current through the iron tip the controller detects that the tip is connected. When you remove the iron tip from the handle, the current value should decrease.
- Iron temperature (internal units, 'irnT')
- Hot Air Gun status (off or on)
- The current through the Hot Air Gun fan. The controller checks the current through the fan to ensure the Hot Air Gun is connected. If the current would not detected, the controller never supply the power to the Hot Air Gun heater.
- Iron and Hot Air Gun detection flags ('i-g'). If the iron tip is connected, the 'i' flag would be shown. If the current through the fan detected, the 'g' flag would be shown.
- Tilt switch status (open or closed). The value should change when you rotate the iron handle. This status used to check the iron is in use.
- Fan power value (internal units, 'fanP'). Rotate the lower encoder to change this value. If the hot Air Gun activated, the fan should change its rotation speed.
- Hot Air Gun temperature (internal units, 'gunT'). As soon as the power suppplied to he Hot Air Gun it should heat and the value should increase.
- Timet TIM1 period value in miliseconds. The timer clocked by the AC zero signal. This value be about 1000 when the controller powered using AC line.
- The ambient temperature value (internal units, 'amb.'). This is a temperature of the sensor installed into the iron handle. In normal conditions, the value should be near 2048.
In the debufg mode you can manage the hardware by rotary encoders: upper encoder can manage the soldering iron, lower encoder can manage the Hot Air Gun fan. When you finish hardware checking, long press the lower encoder.
The flash debug mode
The flash debug mode allows to check the SPI FLASH IC is working. This mode is available from 'About' menu by long press the iron (upper) encoder.
If the SPI FLASH is formatted and working correctly, you should see the screen above. As you can see, it is the root directory list of SPI FLASH. In case of FLASH error, the error message would be displayed indicating the FLASH is not readable. If your SPI FLASH is unformatted, the corresponding message would be displayed and the controller asks you to confirm the FLASH should be formatted. When the FLASH will be formatted, you should see the empty file list.
User manualThe Working ModesThe controller supports several modes:
- The main working mode: the controller is ready to work. This mode is activated at controller startup.
- Tip activation mode
- Tip selecting mode
- Tip or Hot Air Gun calibration mode
- Tune mode: the initial setup procedure (see previous chapter)
- Setup menu
- PID tune mode
When the controller is just powered on, the main working mode is activated. In this mode the soldering iron can be switched off or running debending on settings in the main menu. You can use the soldering iron and (or) Hot Air Gun in any combination.
The main display shows the following information:
- The tip name.
- The iron and Hot Air Gun status
- The current temperatures of the iron and Hot Air Gun
- The preset temperature of the iron and Hot Air Gun
- The temperature of the handle (ambient temperature)
- Iron icon indicating the tilt switch activity
- Fan icon indicating the fan is blowing
In the main working mode, both encoder are active. To manage soldering Iron, you have to use upper rotary encoder, to manage the Hot Air Gun, use lower rotary encoder.
To turn the soldering Iron on, press the upper encoder. The controller start to heat the Iron to the preset temperature. To turn the Iron off, press he encoder lightly. When you are rotating the encoder, you are changing the Iron preset temperature.
Long press the upper encoder activates the boost mode. Boost mode can be configured via the main menu. You have to setup the temperature shift and the boost mode duration.
The lower encoder manages the Hot Air Gun. Rotating the encoder you changing the preset temperature or fan speed of the Hot Air Gun. Light-press the encoder to toggle the changing mode between temperature and fan speed. By default, you changing the temperature rotating the encoder. Changing fan speed mode is a temporary mode.
Long-press the lower encoder to activate the main menu. The menu list is looped for convenience. To navigate through the menu, use lower encoder.
Tip activation mode
To start using the tip, you have to activate it first. There are about 100 T12 tips available in the market at this time. The controller contains the complete list of these tips, but it is too long to select from when you like to change it. To add the tip to the selection list, you have to activate it. The tip activation mode started via 'activate tip' menu.
Here you can navigate through the complete tip list using rotary encoder. Selected tips are marked by square checkbox (see T12-D16, T12-D24 for instance).To select new tip, navigate to it and lightly press the encoder. If you wish to remove the tip from the selection list, press the encoder button once more.
The exclamation mark right to the tip name is indicating that the tip is not calibrated yet.
Note: You have to select some tips to start using the controller.
Tip selection mode
The tip selection mode allows you to change the tip you are using. You can change the tip to another one you have activated before, as soon as we limit the tip by the selection list. To activate the tip selection mode, you have to switch the soldering Iron off and disconnect the tip from the tip handle. The controller detects that the tip is not installed in the handle and activates the tip selection procedure.
Use the rotary encoder to navigate through the tip selection list and highlight the required tip. Then insert the required tip into the handle.
The Tip Calibration
Note: The external thermocouple required to calibrate the iron tip. To perform calibration procedure more precisely, apply a solder drop to the contact between the thermocouple and the soldering tip rod. To heat-up the tip and apply soldering rod, you can use tune procedure (see above).
The current tip can be calibrated using 'calibrate tip' menu item. If the tip is not calibrated yet, the "[!]" sign would be displayed near the tip name on the main screen. There are two calibration modes in the current version of the controller firmware: automatic and manual.
In the automatic calibration mode, controller split the temperature interval into 8 reference points. Then it goes through the reference points and tries to keep the temperature near calibration point as possible. As soon as the temperature stabilze, the controller asks you to enter real tip temperature.
First, turn the power on by pressing the encoder lightly to start calibration process from the first referense point. The iron start heating. When the reference temperature reached, the controller beeps and get ready to read the real temperature value. Check the iron temperature by the external thermo-couple and enter this temperature to the controller: rotate the encoder handle to select the real temperature then press the encoder lightly. Then the controller continues with the next reference point. This procedure finishes when you enter temperature of all 8 reference points or when the real temperature will be greater than 430 Celsius. During this procedure controller updates the tip calibration data.
After all reference points would be calibrated, the controller saves new tip calibration data to the FLASH. The controller would short beep if the calibration saved successfully.
The red temperature gauge at the bottom of the screen shows the tip temperature in the internal units. The right point of the gauge is the maximum tip temperature (about 450 degrees Celsius). The gause indicating as hot the tip is. If the tip temperature overheats the boundary, the calibration procedure would fail and the controller switches to the main mode. This happens if the controller was not tuned correctly.
Automatic calibration procedure build the tip calibration by least squares method and the calibration approximation parameters can be inaccurate. To improve the tip calibration data the manual calibration procedure can be used.
In manual tip calibration you must 'guess' the internal temperature readings that matches the calibration temperature. First, you should select one of the 4 calibration temperature and press the encoder lightly to start calibration process. This procedure is iterative: you start with the some preset temperature value in internal units (for example, calibrated by automatic procedure) the controller heats the tip to this preset temperature and gets ready. Then you measure the real temperature by the external thermo-couple. If the real temperature is not equal to the preset one, you should increase or decrease the internal preset temperature by rotating the encoder handle.
The progress bar in the lower part of the display shows the difference between preset and current temperature (in internal units) of the tip. The controller keeps the tip temperature near the preset value (vertical line on the progress bar) all the time. To increment the preset temperature, turn the encoder right, to decrease - turn it left.
As soon as you guess the preset temperature for the calibration temperature point, press the encoder lightly. You return to the preset point selection mode. Here you can select next or previous reference point. When you finish calibration, long press the encoder.
Low power mode
The controller supports low power (standby) mode. When the soldering iron is not used for predefined period of time the controller will switch it into low power mode. To enable low power mode, go to the parameters menu, then select 'standby temp' menu item. Press the encoder handle and setup the standby temperature value (or OFF if you do not want to use low power mode). Then select next item, 'standby time' and setup the period to enter low power mode.
Also, you can setup 'auto off' parameter that defines the time the unsused iron should be completely powered off.
When the low power (standby) mode activated, the controller shows the 'standby' icon in the upper-right corner of the display lie shown on the picture below.
As you can see, in this mode, the preset iron temperature will be changed to the snadby temperature. The controller would keep that temperature while the standby mode will be disturbed by using iron or automatic power off timeout.
If you use the iron, the controler would return to the main working mode, the tilt sensor icon shows that the controller detects the iron was used.
Tune PID parameters
Note: Perhaps, it is not necessary to tune the PID parameters of soldering iron or Hot Air Gun.
These parameters are responsible for how fast the iron heats and how accurate the temperature is kept by the controller. You can restore the default values by completely resetting the configuration. Or you can write down old parameter values on some piece of paper and restore them manually via PID tune menu.
The 'tune iron PID' and 'gun setup->tune gun PID' menu items in the main menu allowing tuning PID parameters of soldering iron and Hot Air Gun. When tune PID mode activated, you can see three values of PID parameters on the display, Kp - proportional, Ki - integral, Kd - differential. First, choose the parameter you are going to change and press the encoder button. You turn into tuning test mode. There are two graphs: the temperature difference and power math dispersion. Both graphs are auto magnifying ones and its maximum value is shown on the Y-axis by the corresponding color.
To power on/off the iron, long press the encoder button. To change the parameter, rotate the encoder. On the graph you will see how the temperature changes in time. To select another parameter to change, press encoder lightly. You will return to parameter selection screen. To finish procedure and save new values of PID parameters long press encoder in parameter selection screen. If you do not want to save new values, power off the controller completely.
The firmware
Prebuilt version of the controller software can be downloaded from the github repository. To upload this hex file into controller, you can use stm32 st-link utility.
Native Language Support
Starting from 1.04 firmware version, the controller supports messages in national languages. The language configuration files are located in the NLS directory in the repository. The main configuration file is cfg.json, where the localization configuration defined. For each language you can find three parameters: language name, message file name and binary font file name. For instance, to configure russian language the following line was added to the file:
{ "name": "russian", "messages": "ru_lang.json", "font": "ubuntu_cyr.font"}
The russian messages are defined in ru_lang.json file. You can investigate this file if you want. As you can see, standalone messages and menu item messages are defined in this file. The ubuntu_cyr.font is a binary unifont file in u8g2 library format. This font contains ASCII and cyryllic characters.
My firiend Armindo translated all messages to Portugeese, so the project hast two additional languages: Russian and Portugeese. The binary font ubuntu_we.font contains ASCII and Western Europe characters including Greek symbols. You can use this font for your language if you are speaking on one of the european language. To do this, you have to add new line to cfg.json file and create new message file.
When the controller initializes, it searches for cfg.json file on SPI FLASH. If the file exists, the controller reads the file and checks that it is consistent (for each language entry, the font and message file are exist on the FLASH also). Then the controller loads the configuration where the desired language defined. If the language defined in cfg.json file, it will be activated: binary font and messages will be read from the corresponding files.
Caution: 'language' menu item in the prefference menu can be also translated to the national language. To change the language back, you should be able to understatand the language you select.
When you select new language via menu, the controller checks the language data is correct.
Upload NLS file to the SPI FLASH
In order to use your native language, the NLS data should be uploaded into SPI FLASH. To do so, you have to:
- Connect your SD-CARD reader (the TFT display board has one) to the JP11 connector via 4 wires: SD_CS (Chip Select), MOSI, MISO, SCK. If you have not implemet the JP11 socket, remember following: SD_CS (Chip Select) - PB12, MOSI - PB15, MISO - PB14, SCK - PB10.
- Write the files from NLS directory on the repository to root directory of SD-CARD (hope you have one). SDSC and SDHC should work fine. I have formatted my card in FAT32, but other FAT variants should work fine.
- Put the SD-CARD into card reader and turn the controller on.
- Access about menu item and press the lower (GUN) encoder shortly.
- In the about screen long-press the lower encoder
- The debug mode screen appears. Long-press the upper encoder button.
- The flash debug mode screen appears. Here you can see the files available in your SPI FLASH.
- Long-press the upper encoder again to copy files from SD-CARD to SPI FLASH.
When the controller copies files from SD-CARD to SPI FLASH, it reads the cfg.json file and loads the language data accordingly with this file. For each language in the list, it checks the language consistency and copies data files when the language is consistent (have both message and font file). Yet, the controller copies only files that is newer that existed on SPI FLASH one. Font data file can be used for several languages. For instance, you can use ubuntu_we.font for several Wester Europe languages.
Encoder debug screen
The encoder debug screen is available from 'About' menu by short-pressing the upper (iron) encoder. This mode allowing to monitor how the rorary encoders are working. The big numbers are the encoder current velue, its can be decreased or increased by rotating the encoders. The small numbers indicating the number of interrupts received from encoder in 1 second.
The controller uses interrupts to manage rotary encoders, not very reliable approach, unfortunately to change it the new hardware design is required. The encoder debug screen allows to monitor the way the encoders work. Perhaps, too many interrupts can affect the encoder accuracy,
Comments