DIY Spot Welder – Max Weld


The previous version of the spot welder was limited to work only on 230vac. This could be modified to be used with 120 as well by an experienced person but maybe not that easy for the novice users.


Max Weld now incorporates a jumper to select 115/230vac with the following new features

  1. 120/240 voltage selector
  2. Micro Weld resistors or fuses for 18650 packs
  3. LED indicators for PULSE, READY and POWER
  4. Dual SCR design
  5. Input and output are fused
  6. TVS diodes protection D10, D11 and D13
  7. AC/DC Optical isolation
  8. Optional RC grade servo connector
  9. Wide range weld time from 10ms-500ms
  10. Infinite Weld cycle
  11. On-board serial programming port
  12. 2 (line) x 16 (character) I2C LCD
  13. Precision controlled servo Trim pots
  14. Audible feedback
  15. 4 modes of configuration
  16. All values are saved to the EEPROM except for the Weld Time


Features in brief

Dual Thyristor design

Unlike the previous version that uses a TRIAC which is designed to conduct in both directions in a AC circuit which makes them ideal for any AC load control. Max weld has two SCRs rated 16A each. The two scrs in a back to back configuration makes the overall design more robust and reliable which is controlled by just one optocoupler making them ideal when driving inductive loads such as Motors and transformers.

Here our load, a transformer, is highly inductive hence we need the load to switch OFF at the opposite cycle when it was switched ON, also In-rush current that needs to be reduced. In other words if the LOAD was switched ON at the positive half cycle then the LOAD has to be switched OFF at the Negative half cycle. An SCR will only conduct for one cycle at anytime on the other hand a TRIAC will conduct for the next half cycle also there by making them less suitable for this application for an inductive load but maybe achieved by other methods. Read more about In-rush current.

 RC grade servo to lower/raise weld head (optional)
For those with a creative mind, Max weld has an optional connection for a RC grade Servo which can be used to lower and raise the arm of the spot welder making it ideal and a low cost alternative to the pneumatic spot welder where a compressor is used. A servo has enough torque to raise a 3kg load or more. All it needs is constant current supplied by a uBEC or anything similar that can provide a constant current. The code within the Atmgea328P precise control of the servo making it the best of its kind for precision spot welding.

Wide range weld time from 0ms – 1000ms
Max weld spot welder has a wider range to control the weld time from 0ms up to 1000ms (when using welding time above 300ms, monitor temperature of the SCR and if required add suitable heat sink or a fan within the enclosure) with increments of 10ms there by making it ideal to control the current for higher rated MOT’s. On an inductive load, the last turn-off polarity influences the next turn-on, hence switching on the MOT at increments of 20 helps with this phenomenon. More about ‘Reverse polarity ‘ follow the link to page 4 & 5.

Spot welding fuses or resistors on 18650 packs ?

No problem Max Weld can be used as micro welder too. Just dial down the W2 pulse and set the desire W1 pulse in config mode and begin. 5ms would be something to begin with and 10ms can blow the leads of the devices.

Infinite weld cycle – auto welding
This feature helps in building battery packs for e-bikes and other battery powered gadgets. Once the weld button is held down for more than 2seconds and released welding begins and continues to weld with a 800ms delay between each weld cycle.

On-board Serial programming port
Max Weld can be programmed as needed with the on-board serial port making it more versatile and customisable with any standard USB-Seral connector or with the Arduino. There should not be any IC on the Arduino board itself and the mains power to this PCB needs to disconnected when using this port with a 5v supply from the PCB or ignore the Vcc when powering the board. A FTDI interface such as this can be used with the appropriate driver installed thereby omitting the need for an Arduino board. When serial connector the CTS pin should be  grounded.

Arduino compatible 16×2 I2C LCD
The previous version of the spot welder had 8 LED’s to indicate the weld time from 100 to 450ms. This limited the option to set weld times less that 100ms. The LCD now shows

  • The current mode of operation
  • Pre-weld time (W1), pause time (P) and the Weld pulse set (W2)
  • Weld arm (servo) position

Audible feedback
An audible feedback using a buzzer indicates when an operation is completed and when the weld time is incremented or decremented for W2.


The working of this PCB is no different from the previous version. There are three terminals namely

  • Mains – to power the PCB.
  • uBEC pwr is an 12v 8A rated ac to dc converter which powers the uBEC (DO NOT CONNECT THE uBEC DIRECTLY TO THIS TERMINAL).
  • LOAD to which the MOT is connected to.

Setting up for first time use

a. Setup W1 and W2 pulse time


Assuming that you’ve already setup a weld table on a plane surface and the welding machine is upright and leveled to the table we can go ahead and setup the welding process.

A good weld is achieved by adjusting the weld time and adjusting electrode pressure (which i will be explaining latter). The Pre-weld, otherwise know here as W1, is the important weld in a dual pulse spot welder. To get a near accurate pre-weld, in the normal mode or the manual mode turn the knob to reduce W2 time to 0ms now the second weld (W2) is disabled. Now enter the configuration mode and go to option W1.

Here set the minimum W1 time (1ms) to start with. Save the configuration. Leaving W2 at ‘0’ do a test weld and see if it welds but can be removed easily. If it is a weak weld then you increase W1 time to get a weld that is easily removable with your hand.

The W1 should not weld the nickel tabs strong, it is just to clean the weld tabs for the second weld W2. Once you have the appropriate W1 time then you can go ahead and set your W2 time as well. Increase it from 0 to a spot where your electrodes do not stick to the nickel tab after the weld and that you get a strong weld.

Do not over power W2 as increased weld current can make a hole on the cell causing chemicals to spill out, the cell may explode due to high current as well.

I’ve found that the below time gives a good and strong weld nugget.

W1: 8ms
W2:  20ms

b. Set the servo arm
The Servo should be mount separately that would hold both electrodes such that servo arm moves the weld electrodes up and down. The up travel, the ‘End point’ can be adjusted to any point from 0 to 130 where 0 is disabled. The same goes with down travel that is the ‘start point’. Here the start point should be adjusted carefully as that is when the electrodes make contact with the nickel tabs and the down pressure is very important for a weld nugget to be formed. Adjust the start point such that there is a little pressure when the electrodes are touching the nickel tabs.

Modes of Operation/Working

The default screen after initializing shows name of the product, Pre-weld (W1), Pause(P),Weld (W2) time and the status of the PCB.

Following are the modes of operation,

Mode 1 :- Manual Weld
Press and release the weld button to do single welds. During this operation a primary weld ‘W1’ is done to prepare the nickel strip for the next weld. After 450ms pause  ‘P’ a second weld ‘W2’ is done depending on the weld time set by the POT.

Mode 2 :- Automatic Weld
This weld has the same operation as the Manual Weld with an added feature to do multiple weld with a 2 second delay between each weld cycle (one manual weld is consider as one weld cycle). This is initiated by holding down the weld button for more than 2sec and not more than 5 seconds to activate. Holding down the weld button for more than 5 Seconds would activate the Servo Preset mode.Note that in this mode the transformer and the electrode may get hot. If noticed, wait till temperature subsides and then continue.

Mode 3 :- Configuration MODE


Hold down the weld button till 5 beeps are heard. This mode basically has three subcategories

  1. Set Start point:


This mode is activated by turning the knob to Start. This mode sets the down travel of the servo arm, in other words how much should the weld head move before the it makes contact with the Nickel tab. The adjustment of the start point is done through the potentiometer R15. Once the desired travel is set press the Weld button to save the value to the EEPROM. To exit without saving set the value as same as the stored which will exit to configuration mode.

  1. Set End point:


This mode is activated when knob reads 2 which is used to set the upward travel of the weld head. The End point or the return travel is adjusted via potentiometer R14. Pressing the weld buttons saves the current value.To exit without saving set the value as same as the stored which will exit to configuration mode.

  1. Testing the Start and end point:

This mode simply tests the above two configuration by activating the servo. Moves the servo arm down and returns after a second.

  1. Set W1 time:


This mode sets the pre-weld time w1. The first pulse removes surface inconsistencies and contaminants. The pre-weld setting is done by using the potentiometer on the PCB. Pre-weld time can be set from 0 to 50ms. Unlike other modes this setting is not saved instantly. To save the setting press the weld button and the setting is saved to the EEPROM of the ATmega328 and that is permanent even if the PCB is reset. Writing to the EEPROM is limited to a certain number of times hence use them wisely.

Serial – USB Programming port
Switch off power to the PCB always when programming, failing to do so would activate the SCRs to conduct continuously, if left un-noticed the SCRs and transformer would over heat.

The wiring from the PCB to the Arduino are straight forward as labeled
RST – To REST pin on Arduino
RX – To RX pin on Arduino
TX – To TX pin on the Arduino
Vcc – To 5v on the Arduino
GND – To GND on the Arduino

Test Weld results

Max Weld housing

“This blog or my self will not be held responsible for any mishap/accident caused during operation of the above PCB. The PCB handles Mains power hence avoid contact on the solder side of the PCB. If you are not confident on how to use this PCB, please seek advise from an expert.”

Assembled PCBs on sale




Arduino ICSP Bootloader Module

The Arduino ISP Boodloader Module (ABM)is based on the bread board version mentioned here. There are others PCBs that are available that are are not very easy to use compared to this, unlike others this booard does not require an external power supply. The ABM has female header pins that supply power and connects to an Arduino Uno board as well or anything similar with the advantage of avoiding wire clutter and components on a bread board.


The Working/use is made simple. Connect the ABM board to the Arduino Board with the jumper wires and follow the below instruction also mentioned in the previous link.

Burning the Bootloader

If you have a new ATmega328 (or ATmega168), you’ll need to burn the bootloader onto it. You can do this using an Arduino board as an in-system program (ISP).

To burn the bootloader, follow these steps:

  1. Upload the ArduinoISP sketch onto your Arduino board. (You’ll need to select the board and serial port from the Tools menu that correspond to your board.)
  2. Wire up the Arduino board and ABM as shown in the diagram to the right (yet to be uploaded).
  3. Select “Arduino Duemilanove or Nano w/ ATmega328” from the Tools > Board menu.
  4. Run Tools > Burn Bootloader > w/ Arduino as ISP.
  5. Once the bootloader is burned to the new ATmega328 on the ABM the Rx and Tx would blink once.

You should only need to burn the bootloader once.

DIY Arduino Spot Welder

The ATmega328 based Spot Welder Microcontroller

Earlier when i did mini projects it was hard to solder the 18650 batteries that i had salvaged from old laptops. Not recommended by the manufacturers either. not all the cells in a laptop battery pack were bad, so why not take them out and make use of them to power some DIY stuffs like a power bank for example. They cost a lot when purchasing new ones from online stores. So the best way electrically connect them was to spot weld them using nickel strips.

One way to get it done is to salvage an old Microwave Oven Transformer (MOT) and  modify it to get approximately 400 to 600amps (the turns ratio is something you’ll have to figure out). Here the current has to be kept low. Generally reducing the voltage will also reduce the current here. I’ve used 3 turns at secondary with 10mm width flexible cable. That would give enough amps to weld. I’ve set the weld time from the pot to 60ms.


  • More turns with thicker cable would give more current
  • Less turns would decrease current.

The components used here are cheapest those that are readily available at any local store.Then comes a Microcontroller built on the ATMEL ATmega328 chip. This controls how long the weld is done. The weld time are measured in milliseconds. When spot welding it is common as well as important that there be two welds, Why ? because the first weld clears the strip of all impurities that maybe stuck to it after production. The Second weld is when the strips melt and gets welded to the cell. The chip is powered by a regulated 5v supply from an on-board PCB transformer.


  1. Surge Protection
  2. Inbuilt Power Supply
  3. Dual Pulse Welding
  4. Dual Surge protection
  5. Thermal fuse at the secondary
  6. Zero Cross Peak detection
  7. Variable timed pulse (indicated by LED from 100ms to 450ms)
  8. Dual function weld
    1. Manual Weld
    2. Continuous Weld (upon holding  weld button for more than 800ms)
  9. TVS protection diode at the dc side
  10. Snubber Circuit
  11. TRIAC to control AC load
  12. Audible Weld alert


PCB with soldered components

The Spot Welder Microcontroller is powered by a PCB transformer rated 2 x 9v 177mA. The PCB is protected by a TVS diode D13. This protects all the underlying components from surge without which would burn the components during a surge such as lightning. here the TVS diode suppress the spike in voltage when the threshold voltage is reached.

PCB powered on

Once switched on all the timing LEDs blinks once. The READY led indicates that it is ready for welding. The ATmega gets its clean power from the regulator IC LM7805 filtered by capacitors C9, C7 and C5. The ATmega continuously monitors the AC zero crossing signal from the Optoisolator H11AA1. The optoisolator sends out a pulse for every zero crossing of the AC signal and when the weld button is press, the ATmega sends out dual pulse to another optocoupler triggering the gate of the TRIAC BTA26.

The first Pulse duration is 500ms which prepares the tab for welding, the second pulse is when the actual weld happens. The TRIAC by nature switch’s off at every zero cross. Here a little late after zero crossing but that would not make a difference as it a few micro seconds. Since the load will be an MOT and thus highly inductive, it is very important that load is switched ON at the peak of the sine wave and not at zero. When the Weld button is pressed and held down for a period of 800ms, this helps when you have to weld several cells at a time to built a battery pack. The TRIAC conducts 6 times with a two second delay between each weld. The LEDs 50ms to 120ms reflects the value set by the potentiometer.

Working video can be viewed here.

Scope View

scope view

The above scope shows the following, respective to the numbers

  1. AC reference voltage (YELLOW)
  2. Zero Crossing ( LIGHT BLUE)
  3. Second pulse send from the Arduino to trigger the TRIAC ( PURPLE)
  4. Secondary wave from the MOT (BLUE)

With a little modification or as a complete replacement, this pcb can used for the cheap Chinese Models like the SUNKO 788H



I have the PCB’s on sale here. 

Sunko 708A Replacement:

One of the readers Giordano Cantori had been very nice to send me the pictures of his finished Sunko 708A Spot Welder after the stock board had failed. He had replaced it with the PCB described here with his own idea and design.




Giordano Cantori’s successful manual welds

Here is the built in action


To upload the firmware you would need

  • Download Xloader. The Website to Xloader is here.
  • Download the required firmware here. Choose the 10 to 80ms timing firmware or the 100 to 450ms.

To upload, its very simple and straight forward. From xloader browse to the new firmware



Next make sure you have arduino installed and the correct port number is selected in Xloader. Then click Upload. That is it.