Skip to the content
4 layers112 × 72 mmDk spot welder, the printed circuit board in 3D

Dk spot welder

sini6a/spotwelder3

An easy-to-assemble, through-hole spot welder capable of switching high currents for welding nickel strip to lithium-ion cells. Controlled by an ATtiny13 microcontroller.

Size
112 × 72 mm
Copper layers
4
Thickness
1.6 mm
Parts
51
Nets
25
Pads
143
Tracks, vias
122, 458
Pours
4
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Jun 2026
Updated
29 Jul 2026

Overview

Dk spot welder is an open-source printed circuit board by sini6a, from the sini6a/spotwelder repository on GitHub. It is a 4-layer board of 112 × 72 mm with 51 parts on 25 nets, routed with 122 tracks and 458 vias.

It is built around the ATTINY13-20PU, MCP1407-E/P and L7805, with the IRF1404 and 5.0SMDJ14A among its other parts. Its parts include 16 resistors, 8 capacitors, 8 transistors, 6 diodes and 4 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

5

README

README.md

Open Source Spot Welder

An easy-to-assemble, through-hole spot welder capable of switching high currents for welding nickel strip to lithium-ion cells. Controlled by an ATtiny13 microcontroller.

The welder is powered by a 12 V car battery or another suitable high-current battery source. The PCB, schematic, firmware, enclosure, and fabrication files are included in this repository.

Board Assembly Board render

[!WARNING] This project switches extremely high current from a battery. Incorrect wiring, insufficient conductors, short circuits, or excessive pulse duration can cause fire, burns, damaged cells, destroyed MOSFETs, or battery failure.

Sponsor

PCB fabrication for this project was sponsored by PCBWay.

PCBWay PCBs

Features

  • Eight-MOSFET switching bank Eight IRF1404 N-channel MOSFETs are connected in parallel to switch the welding current. Each MOSFET has an individual 10 Ω gate resistor to help control switching and reduce gate ringing.

  • Dedicated MOSFET gate driver An MCP1407 drives all eight MOSFET gates simultaneously. A hardware pull-down resistor on the driver input keeps the MOSFET bank off while the microcontroller is starting, resetting, or unpowered.

  • Automatic touch-to-weld triggering A PC817 optocoupler-based sensing circuit detects when both welding probes are in contact with a conductive workpiece. The isolated output signals the ATtiny13 to begin the welding sequence.

  • Adjustable 1–10 ms main pulse A pushbutton connected to TP4 cycles the main weld-pulse duration from 1 to 10 ms.

  • EEPROM setting storage The selected weld duration is saved in the ATtiny13 EEPROM and restored after the welder is disconnected from power.

  • LED and buzzer feedback The onboard LED and passive piezo buzzer provide startup, welding, and setting-change feedback. When the duration is changed, the LED flashes and the buzzer beeps once for each selected millisecond.

  • Optional double-pulse welding The firmware can produce a short pre-pulse followed by the adjustable main pulse. The pre-pulse can help settle the probe contact before the main weld.

  • Separated control and power grounds The high-current welding ground (GND) and logic ground (CTRL_GND) are routed separately and joined at a single net-tie point to reduce switching noise at the microcontroller.

  • Reverse-polarity protection A 1N5819 Schottky diode protects the 5 V control supply if the battery input is accidentally connected with reversed polarity.

  • Transient suppression Four 5.0SMDJ14A TVS diodes help clamp voltage transients generated by the welding cables and other parasitic inductance when the MOSFET bank switches off.

  • Large high-current connection pads The battery and welding connections use large exposed copper pads intended for soldered or mechanically secured high-current conductors.

  • Four-layer PCB Copper zones on F.Cu, In1.Cu, In2.Cu, and B.Cu help distribute the short welding-current pulses through the MOSFET bank.

[!IMPORTANT] PCB copper alone should not be treated as a complete high-current busbar. Thick copper cable, copper braid, copper strip, or another suitable reinforcement is recommended for the main battery and electrode current paths.

How it works

  1. Power input A 12 V car battery or another suitable high-current battery source is connected to the IN/OUT+ and IN- pads.

  2. Probe contact detection When both welding probes contact the conductive workpiece, the PC817 sensing circuit produces an isolated trigger signal for the ATtiny13.

  3. Trigger validation The firmware verifies that the contact signal remains active for the configured debounce period.

  4. Pre-pulse When double-pulse mode is enabled, the ATtiny13 briefly activates the MCP1407 and MOSFET bank for the configured pre-pulse duration.

  5. Pulse gap The MOSFETs switch off for a short interval before the main pulse.

  6. Main weld pulse The MOSFET bank switches on for the selected duration between 1 and 10 ms, passing a short burst of high current through the nickel strip and cell connection.

  7. Feedback and cooldown The buzzer and LED confirm that the weld sequence completed. The firmware then enforces a cooldown period and waits for the probes to be lifted before another weld can begin.

Weld-time adjustment

TP4 is used to change the main weld-pulse duration.

Each complete button press advances the setting by 1 ms:

text
1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 1 ms

After the value changes:

  • The setting is saved to EEPROM.
  • The LED flashes once per selected millisecond.
  • The buzzer beeps at the same time as each flash.

For example, a 6 ms setting produces six LED flashes and six beeps.

The displayed value represents the main pulse only. When double-pulse mode is enabled, the fixed pre-pulse is added separately.

Firmware

The firmware is located at:

text
Firmware/main.c

It directly controls:

  • The MCP1407 gate-driver input
  • The PC817 automatic weld trigger
  • The TP4 settings button
  • The status LED
  • The passive piezo buzzer
  • EEPROM storage for the selected duration

The firmware forces the MOSFET-driver control pin low during startup. This works together with the hardware pull-down resistor on the MCP1407 input to reduce the risk of an unintended weld pulse during reset or power-up.

Default configuration

DefinitionDefaultDescription
WELD_PULSE_MIN_MS1 msLowest selectable main-pulse duration
WELD_PULSE_MAX_MS10 msHighest selectable main-pulse duration
WELD_PULSE_DEFAULT_MS6 msUsed when EEPROM does not contain a valid setting
USE_DOUBLE_PULSE1Enables the pre-pulse and main-pulse sequence
PRE_PULSE_MS3 msFixed pre-pulse duration
PULSE_GAP_MS80 msDelay between the pre-pulse and main pulse
WELD_COOLDOWN_MS800 msMinimum delay after a weld before re-arming
TRIGGER_DEBOUNCE_MS15 msProbe-contact validation time
REQUIRE_TRIGGER_RELEASE1Requires the probes to be lifted before another weld
BEEP_ON_WELD_MS60 msWeld-confirmation tone duration
BUZZER_ACTIVE_TYPE0Configures BZ1 as an externally driven passive piezo
BUZZER_TONE_HZ4000 HzNormal feedback-tone frequency

Review the values in Firmware/main.c before flashing, as development versions may use different pre-pulse and timing defaults.

Building and flashing

The firmware is built with AVR-GCC and optimized for the ATtiny13's limited 1 KB program memory.

bash
cd Firmware

make
make flash
make fuses

The default Makefile targets are:

CommandAction
makeBuild the firmware and generate the HEX file
make flashFlash the firmware over ISP
make fusesConfigure the 9.6 MHz internal oscillator with the divide-by-8 fuse, resulting in a 1.2 MHz CPU clock

The default programmer configuration may need to be changed in the Makefile when using an Arduino as ISP instead of a USBasp.

Enclosure

A two-piece enclosure is included and was designed in FreeCAD. 3xM4 Nuts should be installed while printing the enclosure.

AssembledTop and bottom
Enclosure renderExploded enclosure render

The enclosure includes:

  • Four mounting bosses
  • Screw-together top and bottom sections
  • Side openings for the battery and electrode cables
  • Source files for modification and 3D printing

Included files:

text
Enclosure/SpotWelder.FCStd
Enclosure/Top Body.step
Enclosure/Bottom Body.step

Project status

The Rev A hardware has been assembled, powered, and successfully used for spot welding.

Battery weld

The following core functions have been tested:

  • ATtiny13 startup
  • MOSFET gate-driver control
  • Automatic probe-contact triggering
  • Timed welding pulses
  • LED feedback
  • Passive buzzer feedback
  • Welding from a 12 V car battery

License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

See LICENCE.md for the complete terms.

You may build, modify, and share the design for personal and non-commercial use, provided that attribution is retained and derivative works use the same license.

Commercial production or resale of boards based on this design requires permission from Datakonsulten Sverige AB.

Parts

51
QtyValueFootprintReferences
810RResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR2, R9, R10, R11, R12, R13, R14, R15
8IRF1404SpotWelderFootprints:TO-220-2_Horizontal_TabDownQ1, Q2, Q3, Q4, Q5, Q6, Q7, Q8
4100nCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC3, C4, C6, C7
410kResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR6, R7, R8, R16
45.0SMDJ14ASpotWelderFootprints:D_SMC_HandsolderingD1, D2, D3, D6
310uCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC2, C5, C8
22kResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR1, R5
2470RResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR3, R4
2LOGOLOGOG***, G***
11N5819Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD4
1470uCapacitor_THT:CP_Radial_D10.0mm_P5.00mmC1
1ATtiny13-20PPackage_DIP:DIP-8_W7.62mmU3
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1IN-MountingHole:MountingHole_4mm_Pad_ViaTP1
1IN/OUT+MountingHole:MountingHole_4mm_Pad_ViaTP3
1L7805Package_TO_SOT_THT:TO-220-3_Horizontal_TabDownU2
1LED_SmallLED_THT:LED_D3.0mmD5
1MCP1407Package_DIP:DIP-8_W7.62mmU1
1NetTie_2NetTie:NetTie-2_THT_Pad1.0mmNT1
1OUT-MountingHole:MountingHole_4mm_Pad_ViaTP2
1PC817Package_DIP:DIP-4_W7.62mmU4
1WELD_BTNTestPoint:TestPoint_2Pads_Pitch5.08mm_Drill1.3mmTP5
1WELD_DURATIONTestPoint:TestPoint_2Pads_Pitch5.08mm_Drill1.3mmTP4

Similar boards

  • 2 layers99.1 × 62 mmNebulizer, the printed circuit board in 3D

    Nebulizer

    OfficeChromatography/Nebulizer20x10

    Stand-alone device for derivatizations and bioassays in planar chromatography

    32 parts
  • 2 layers86 × 60 mmMotor Controller 2020, the printed circuit board in 3D

    Motor Controller 2020

    camhan22/Motor-Controller

    12-48VDC 65A Continuous 150A Peak brushed DC motor driver

    51 parts3GPL-3.0
  • 2 layers100 × 50 mmDemo Board Kicad, the printed circuit board in 3D

    Demo Board Kicad

    fox918/PowerSwitch

    A i2c Switch for medium loads

    54 partsMIT
  • 2 layers110 × 60 mmArduino Spot Welder, the printed circuit board in 3D

    Arduino Spot Welder

    KaeptnBalu/Arduino_Spot_Welder_V3

    This is the Kicad project for V3.1 The Arduino Board was not changed, only the Mosfet Board got a updgrade.

    74 parts207GPL-3.0
  • 2 layers115 × 77 mmArduino Spot Welder, the printed circuit board in 3D

    Arduino Spot Welder

    KaeptnBalu/Arduino_Spot_Welder_V4

    This is V4 of the Arduino Spot Welder. An Arduino based Spot Welder for battery welding

    67 parts108GPL-3.0
  • 2 layers110 × 60 mmArduino Spot Welder, the printed circuit board in 3D

    Arduino Spot Welder

    KaeptnBalu/Arduino_Spot_Welder_V2

    Arduino controlled Spot Welder for battery welding

    57 parts78GPL-3.0
  • 2 layersPogo object, the printed circuit board in 3D

    Pogo object

    nekonaute/pogobot

    Pogobot is an open-source open-hardware robotic platform for swarm robotics

    36 parts21

Questions

How big is the Dk spot welder PCB?

It measures 112 × 72 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Dk spot welder use?

51 parts, built around the ATTINY13-20PU, MCP1407-E/P, L7805 and IRF1404. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Dk spot welder KiCad files?

From the sini6a/spotwelder repository on GitHub, at the commit this page was made from: the board is KiCad/dk-spot-welder.kicad_pcb and its schematic KiCad/dk-spot-welder.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dk spot welder design in my own project?

Its repository states no licence, so its author keeps all rights: ask sini6a before reusing the design.