Just a set of notes for anyone who is trying to build his own unisolder controller. It is intented to be a personal recap of the original topic on dangerousprototypes.com forum.
If you are reading this after i finished my project (so you are in the future, WOAH!), probably i'm not updating this document anymore. If it was useful to you, please help to keep it updated, by modifying the document and making a Pull Request. The community will thank you. Please see the Contributing section of this document.
I'm currently building this project, and this page is a work in progress, so the info may be unaccurate and untested. No warranty is given. Please refer to LICENSE.md file for all the conditions.
Original sources from Sparkybg are available as a submodule in this repository. Check out the sources on GitHub: sparkybg/UniSolder-5.2
No hot air or reflow oven is required, the board can be mounted with a regular soldering iron.
Sparkybg recommends BGA no-clean flux. I personally use a felt tip regular flux and it works well for me.
ATTENTION: there are some resistor pairs that can be mounted in the wrong direction. All the mentioned couples have to be mounted with the long side according to the long side of the front board. Those are the couples that require special attention during the mounting:
- R27 and R28
- R63 and R65, double and triple check this pair, it's very common to have these wrong. If you do probably you will get error 13.
- R30 and R31
- R35 and R39
- R25 and R26
- C60 and R46
Please check the image provided by the author if you have any doubt about mounting or component orientation.
I'm currently hosting on my GitHub pages this very useful interactive pcb map by Bug82: unisolder-chips
Original post here, I'm hosting it with the author's permission after his hosting went down.
There are some configuration resistors, please make sure to pick the correct values for your application. Those are listed in the Equivalent parts in BOM section of this document.
The controller can be powered anywhere from 9V to 26V, AC or DC. However, since the iron current is limited to 6A RMS, more voltage means more power delivered to the iron. A toroidal transformer is recommended: 24V 120VA. Although this is not fully recommended (because of grounding difficulties in switching PSUs) you can use a 24V DC supply. There are two power input ports on the "back" pcb. One is for AC, the other is for DC.
The controller should not be earthed in any way, except for the iron tip. In many cases the earth of the tip differs from the ground of the controller. For this reason, is not possible to use the tip earth connection to send the sleep/stand signal (see Sleep sensor section of this document). SLEEP pin should never be connected directly to the iron tip. Also, proceed with caution with the ground clip lead if troubleshooting the board with an oscilloscope. Disconnect the system from main's earth before attaching the clip to board ground.
At an early stage of the project the author was planning to implement both the 7 segment display and the OLED display. The 7 segment option was never implemented, and the compatibility was removed. There are some components that you'll have to remove from the BOM and some pads to short.
- Ensure to get a SSD1306 128x64 oled. It is mainly available in a 0.96" size. I've used this part with success: DD-12864WE-4A. However, user SZ64 from the forum was able to get a 1.3" display (UG-2864KSWLG01) and confirmed that it is pin to pin compatible, and needs 12V. Users NECHTO and afedorov patched the firmware to work with SH1106 displays, patches can be found in this forum post and recompiled firmware in this other post.
- Q15, Q17 and U9 (UL2003N) are not needed.
- Ra to Rg are shorted
- Ja to Jg are shorted
- Short, on the back side of the front pcb, the pins that have some soldermask free pads around, with the pads.
- See the U19 FAN5331 section in this document, for picking the correct boost feedback resistor.
Author added Rotary Encoder functionality, that duplicated the functionality of the buttons, to adjust temperature/settings. He posted in this forum post the details.
To add the Rotary Encoder functionality, you will need to wire up your rotary encoder as pictured, depending on which version of Unisolder you have.
You will also need to change settings in a hidden menu that is not immediately obvious.
- Go to the main settings menu (Hold down center button or rotary encoder switch)
- When in the settings menu, Hold down center button or rotary encoder switch for 5 seconds.
- Press and release center button to select the control options
- Leave it alone for 5 seconds, and it will exit the menu saving the settings.
Meaning of control options
- KEYS: The normal 3 button control
- ENC-A-1PPD: Encoder with Channel A event, 1 pulse per detent
- ENC-AB-2PPD: Encoder with Channel A and Channel B event, 2 pulses per detent (One for A, One for B)
- ENC-A-2PPD: Encoder with Channel A event, 2 pulses per detent
- ENC-AB-4PPD: Encoder with Channel A and Channel B event, 4 pulses per detent (Two for A, Two for B)
Just select what works best for you. The goal is to select a variant which leads to change of temperature/option with one up or one down per detent.
Using a generic EC11 encoder, I used the ENC-A-2PPD option which worked great. If the direction is not what you prefer, change the Buttons: +/- orientation in the normal settings menu.
Q20 and D17 are needed only if a DC active buzzer (internal oscillator) is used. The one specified in BOM, however, does not need them. Unfortunately for now the DC buzzers are not supported by the firmware.
The author of the project has provided also a sensor module, based on an IR system, to detect whether the iron is in its holder.
You can use whatever system you want: a mechanical switch, a reed switch, an hall sensor... You can use any switch or any other device that shorts SLEEP to GND when the tool is in the holder. SLEEP is connected to a 3.3v pullup resistor.
You'll need to calibrate the controller by connecting a very precise 10 ohm resistor (0.1% is recommended) between SENSEA and Vout1-.
Go to the Calibration submenu and turn the trimmer until R shows as close as possible to 100 times the resistor. If the trimmer doesn't get you to the value, try replacing R57 and R59 (one by one) with next higher and next lower value (1.8k, 1.3k).
The station can automatically recognize the instrument you attach to it. To do this, you will need a resistor pair in the iron connector, so that the system can read it when a new instrument is plugged. If you don't want to switch between instruments, you can simply connect the resistor to the station connector instead of the iron connector. ID resistors must be not less than 1% tolerance. We will call Rid1 the resistor that goes between ID and Vout1-, and Rid2 the resistor that goes between ID and Vout2-
Soldering iron model | Rid1 | Rid2 |
---|---|---|
HAKKO T12/T15 | 1k | 5.6k |
HAKKO FX8801, HAKKO 907 | 1k | 820 |
JBC C245 | 150 | 5.6k |
JBC C210 | 3k | 5.6k |
JBC C105/C115 | 3k | 1k |
JBC Microtweezers | 1k | // |
JBC Nanotweezers | 1.5k | // |
WELLER WSP80 | 120 | 5.6k |
WELLER WMRT | 680 | // |
ERSA RT80 | 300 | 110 |
PACE TD100 Black | 680 | 560 |
PACE TD200 Blue | 680 | 470 |
There are two alternatives for the PIC32 firmware:
- Using the firmware without bootloader, loading it directly with a PicKit
- Using the firmware with bootloader, loading the bootloader with the PicKit and the firmware via usb and UniSolder's PC software.
To me it's unclear what are the advantages of picking one choice over the other, I have to ask the author to clarify.
If you don't have a pickit and don't want to get one, you can use an Arduino as here. I've not tried this solution personally, so i don't know if it works. Let me know if you try this.
You can also use pic32prog from sergev, if you have a pickit 2 and want to program the microcontroller.
To load the firmware with a PicKit you will have to use MPLAB X, Microchip's software.
As zed65 stated in the forum: "You can NOT program the PIC via the PicKit2/3 standalone programming software. You have to put the programmer into MPLab mode in the standalone software then program it via MPLab."
To attach the PicKit3 to the unisolder board check on the PicKit for the little arrow pointing to pin 1. Connect that pin to the square pad on the unisolder board, and the rest of the pins in order. Pin 6 of the PicKit stays disconnected.
If you want to modify the software you'll have to compile it with XC32 v1.33 compiler (paid), adding the "s" option to the optimization.
To test if the bootloader loading went ok, hold down keys "+" and "-" during power up. If some moving squares appear on the screen, the bootloader is working.
Some parts are not really easy to find. Some of them can be easily substituted with equivalent parts.
0.003 or 0.004 ohm resistor can be used as a shunt. WSL3637 from Vishay is used. I wasn't able to find an equivalent part that would have a similar package.
If you use 0.003 ohm shunt, R37 and R42 have to be both 1.5k 0.1%.
If you use 0.004 ohm shunt, R37 and R42 have to be both 2.0k 0.1%.
Those resistors are not needed. You will need to short their pads with solder or use zero ohm resistors.
Despite the different name in the BOM, the same part can be used for both.
This resistor is in a 2512 format, 10M, it is there to prevent huge electrical potentials between the computer's ground when it's connected and the station's ground.
You can use any value between 1M and 10M, or leave it disconnected if you feel safe, anyway this isn't recommended.
In BOM it's indicated as Bourns 3362, this part is a THT trimmer from a previous version, correct part number is Bourns 3364X-1-202E.
I'm using a Bourns 3314J-1-202E which also fits well.
For the ceramic capacitors insulator type, C0G is the best, X7R is also good. X5R is not as good as X7R. If it's possible avoid Y5V. Where voltage is not specified you can pick any voltage. 50V rating is better than higher. A contributed list of which capacitors need higher voltages than the logic 3.3V would be appreciated.
Please note that many times with diodes there is the same part from a different manufacturer listed with the first two letters.
SR580 means "Schottky rectifier, 5A, 80V". There's nothing special about these diodes. Just use 5A 80V Schottky in a DO-201 package.
This part can be substituted with SB5100 or other Schottky Rectifiers with at least 5A current capability and at least 80V forward voltage. However the 80V part is still preferable, because it will have less forward drop.
Alternative parts:
- BAT46WH
SS310A means 3A, 100V schottky. Any Schottky with the same ratings will do. For example:
- SK310SMA
Alternative parts:
- GF1M
If replacing this part, beware that the reverse leakage current is very important and should be as low as possible.
SS34A means 3A, 40V schottky. Any Schottky with the same ratings will do. For example:
- SK34SMA
- SS34FA
This part is common with a suffix, such as "BAV199,215". It is the same part.
60V TVS is just a 60V TVS. Any 60V TVS or close to this will do. For example:
- 1.5KE62A
#ICs
Either the LM2675M-3.3 and the LM2675M-ADJ version can be used.
If LM2675M-3.3 is used, R3 has to be 0 (shorted) and R4 has to be 1.5k.
If LM2675M-ADJ is used, R3 has to be 3k and R4 has to be 1.8k.
LM2674 can be used too.
You don't need this IC, this was only for the 7-seg version.
This part seems hard to find. You can replace it with the MCP4651-104 (100k) version. You can NOT use the 103 (10k) version.
Beware that this part is different from U15 below, they have a similar code but with the 5 and the 6 switched.
This part (as before) seems hard to find. You can replace it with the MCP4561-104 (100k) version. You can NOT use the 103 (10k) version.
Beware that this part is different from U10 above, they have a similar code but with the 5 and the 6 switched.
This part seems harder to find than the others. These are some of the possible alternatives:
- REF3130AIDBZT
- MAX6010AEUR
- MAX6063AEUR
- ISL21010CFH330Z
- MAX6035AAUR30 may work, not personally tested.
- LM4120AIM5-3.0 may work, not personally tested.
Can be substituted with LM4051AEM3-1.2
This part can be substituted with:
- MCP6V02
- MCP6V07
- AD8629
Can be substituted with MAX394EUP+
This part can be substituted with:
- MCP6V01
- MCP6V06
- MCP6V08
- MCP6V26
- MCP6V28
- AD8628
This part can be substituted with LM2731, FAN5333A or FAN5333B. Please note that either version of FAN5333 have a different feedback voltage from each other and from the FAN5331. LM2731 has the same feedback voltage, so can be used as a direct replacment. This part is the boost converter for the OLED display. Different OLED displays need different voltages. Usually they can be either 9V or 12V. Check the voltage of your OLED and select R68 accordingly. R68 should be at least 1%.
Follows a table with values that should suit. These values are not tested (FAN5333B with 9V display is tested by me and working), proceed with caution and check the voltage prior to soldering the OLED.
IC | R68 for 9V display | R68 for 12V display |
---|---|---|
LM2731 (1.230V) | 4.7k | 3k |
FAN5331 (1.230V) | 4.7k | 3k |
FAN5333A (0.110V) | 340 | 249 |
FAN5333B (0.315V) | 1k | 732 |
Can be substituted with SQD50P08
AUIRFR3607 or IPD12CN10NGATMA1 can do the job.
To substitute this part the important parameters are:
- Vds(max) should be at least 75V.
- Rds(on) should be no more than 0.01ohm.
This part can be substituted with VISHAY SI2315BDS-T1-E3 (@Tony, pg 113 unisolder forum)
This part should not be installed when using the OLED display.
This part should not be installed when using the OLED display.
SOD123 diodes can be used also in miniMELF packages. Check in the document to see which parameters are important, to find a substitute.
If you can't find the part you are looking for, ask in the thread and please open an issue/pull request to update the document.
Footprints for the SOT223 components are also compatible with DPAK packages.
These are the part numbers for the connectors I've used. I was able to crimp all of them with a single tool: NEWBRAND NB-8160-04
Cable connector: MOLEX 039013022 555702R1
Crimp pin: MOLEX 39-00-0039
PCB connector: MOLEX 5566-02A-210
Cable connector: MOLEX 5557-04R
Crimp pin: MOLEX 39-00-0039
PCB connector: MOLEX 039288040 5566-04A-210
Cable connector: 3M 89110-0101HA
PCB connector: 3M N2510-6002RB
Cable connector: MOLEX 022013037 2695-03RP
Crimp pin: MOLEX 008550102 2759-(555)L
PCB connector: MOLEX 022292031 AE-6410-03A(241)
This is just an RJ11 vertical connector. I found that Molex 95522-2667 fits perfectly.
If you don't want to keep the original connector from your iron, I've used and I suggest:
Socket: LUMBERG KFV 81
Plug: LUMBERG 0332 08-1
The matching socket for this iron, if you want to keep the original plug, is the Hirose RPC1-12RB-6P(71)
Contributing to this repo is very welcome, feel free to add any information.
The information on this repo are gathered all around the internet, especially from the Dangerous Proto forum, and not only by first-hand experience. Please specify if what you're adding is tested by you personally or mention the source.
Please pay attention to not add copyright-protected material to the repo. Photos you're not the author have to be considered under full copyright by the author, unless otherwise explicitly stated.
Many thanks to the contributors @rsre and @lauer2356/EricLau
Currently I'm on page 100 of the topic. This is just a reminder for myself, ignore it