Jump to content
Sign in to follow this  

Sparky: A Little Stick Welder with Big Features

Recommended Posts

Like some of you, I'm a DiY maker. Some say I'm a serial hacker. I enjoy modifying ordinary gadgets to personalize their functions or to completely change their intended use. Sometimes I hack to expand my hardware and firmware knowledge. This project is a mix of all these things.

My new project is called Sparky. It's a $60 USD Chinese stick welder that's been DiY upgraded to enhance its features. This adventure involves color touch screens, Bluetooth low energy (BLE) control, DAC voice playback, high current measurements, 3D printing, dangerous voltages, and so much more.

Below is a photo of Sparky the welder after the makeover. The photo shows the boot screen. Don't let the black and white image fool you because it's a full color TFT display. With touch entry to control all the new features.



I'll post some details to the build. Of course source code and schematics will be provided too. In the meantime, here's a demonstration video that shows Sparky's features. So loosen your welding jacket, flip back the visor, and enjoy the show.


UPDATE: Project files are available on Github: https://github.com/thomastech/Sparky


Share this post

Link to post
Share on other sites

There's a backstory to my welder project. For many years I relied on buddies that owned welders when metal repairs were needed. All along I planned to buy my own and learn to do it myself. So twenty years ago I installed a dedicated 220V circuit in my workshop. Then I patiently waited for a good deal on a used Lincoln tombstone buzz box.



Occasionally I'd drive past a "yard sale" and see an old AC welder looking for a new home. But mostly abused and/or overpriced machines that I walked away from. So the 220V outlet has remained unused all these years. Until now.

The welder I purchased is the EZ-MINI-GB IGBT 200A ZX7-200 IGBT inverter welder. It was on sale for only $45 (normally $60), so not much to loose if it was a bad choice. It is indeed cheaply built; The 16A rated power switch failed on the third use, so I replaced it with a 30A switch. And its tiny form factor makes it look like a toy. But overall I would say that it is a decent machine for hobby and weekend warrior welding.


Thanks to its DC-DC inverter technology it is surprisingly small; About the size of a loaf of bread. But there are many different ZX7-200 labeled machines on the market and their packaging/internal circuitry vary.  And despite the advertised 200A welding current, some designs are limited to about 125 Amps. Fortunately that's sufficient current for the small welding projects that I have in mind.

I didn't prepare an unboxing video for the welder. But I found one on Youtube that includes a tear down and some interesting comments.


Some economy priced Chinese welders include welding cables with a ground clamp and stinger (electrode holder). But you'll find that these bundled accessories are the lowest possible quality. So it's no big loss that this welder doesn't include them. I built my own by purchasing twenty feet of 2AWG welding cable, a Lincoln Electric KH525 ground clamp, and a Lenco AF-2 stinger. These DiY cables weigh more than the welder. And they cost about as much.



The welder includes a short ungrounded mains AC cord that has undersized wire (15AWG). So I replaced it with a fifteen foot long 12AWG three conductor (12/3 SJTO) power cord. The ground wire was connected to the metal chassis and a upgraded rear panel strain relief was 3D printed (ABS plastic). The cord was equipped with a North American NEMA 14/30P 30A "clothes dryer" plug with earthed ground.




Share this post

Link to post
Share on other sites

So now I have a welder. Of course I'm a newbie and have a lot to learn. Welding school would be overkill so I've been relegated to binge watching Youtube how-to videos. There are many popular channels such as ChuckE2009, weldingtipsandtricks, weld.com, and others.

But learning means burning. I purchased a helmet, leather apron, and gloves. Plus 6011 and 7018 rods (3/32 and 1/8 inch) and a pile of metal remnants from the local metal shop. The metal is sold by the pound ($1.50 - $2.00 lb in my area) and a armful is surprisingly heavy. Here's a photo of the remnants I purchased for $30 USD:


Welding is a technical art that can take years to master. But my goals are less lofty; I'll be happy when I can reliably strike an arc and drag a rod without making a huge mess of things. I have a ways to go, but it's been a blast so far. Sparks, smoke, and hot flying bits - what's not to love about that?

It is important to use the correct current when welding. Fortunately the training videos taught me how to identify low current arcs. This is how I discovered that the current setting knob was severely uncalibrated. Too bad, since using it for reference is a nice crutch for a newbie like me. That is to say, relying on my inexperience to set the current totally by eye was not a good idea.

So out came the clamp-on ammeter. That's when things fell apart. My ammeter can only handle AC current and this is a DC welder. Measuring AC mains current and using it to estimate welding amps is possible. Or I could have bought a DC ammeter. But I decided on a different strategy. Remember, I'm a hacker.

So it was during my welding practice that Sparky was born. It began with a simple idea; I'd make my own 200A DC ammeter and use it to calibrate the welder's current adjust knob. And then the list of my must-have features grew. It was an ambitious list but every box was checked-off in the final build.

Come back in a few days to read more about the project. The hacking adventure is about to begin.


Share this post

Link to post
Share on other sites

It's time to get into the build. Let's start by summarizing the features:

  • Color TFT Screen displays welding current, arc voltage, and menus.
  • Touch Screen for selecting features. Built-in help screens display useful welding tips too.
  • Programmable Pulse current mode for enhanced stick welding.
  • Helmet mounted Bluetooth Low Energy (BLE) Button for remote Amps control.
  • Audio for announcing Amps and over-temp alerts.
  • Flash memory for saving power-up defaults.
  • Low Cost hardware based on ESP32 (Lolin D32 Pro with 16MB Flash).
  • Non invasive design, no permanent changes to the welder.

The last bulleted item is a safeguard. I prefer hacks that are easily reversible because sometimes a project hits a wall and needs to be abandoned. So there were no changes to the sheet metal or existing circuitry. Reverting it back to a stock unit would be a ten minute task. But I like what my little welder has become so there's no need to undo the makeover.

Share this post

Link to post
Share on other sites

This is a good time to talk about safety. An inverter welder is a potentially dangerous machine. Lethal primary voltages (>300 volts) are present inside the cabinet, even after power is turned off. There are bleeder resistors in the welder's power supply, but never rely on them. And don't forget that the involved currents have more than enough energy to vaporize misplaced wiring (and misguided hand tools) in a dangerously hot explosive flash.

This is NOT a beginner build! If you're not well versed in working with electronic designs that have hazardous circuitry then STOP, turn around, and walk away.


The required hardware is summarized below. Estimated cost is about $40 USD.

Lolin D32 Pro ESP32 Microcontroller, V2.0.0 16MB Flash
Lolin 2.4-inch TFT Color Touchscreen Shield
SH1.0 Double Headed 10-Pin Cable for TFT
Microchip Technology MCP45HV51-502E 5K Ohm I2C Digital Potentiometer, TSSOP14
INA219 Current Sensor Module
PS2501-1 Optocoupler IC
PAM8403 3W Audio Amplifier
MP1584EN DC-DC Power Supply Module
TSSOP14 to DIP PCB Adapter
JST XH 2.54mm Wire-Cable with 7-Pin Female Plug, 30cm long
Ultra Thin profile (<13mm deep) 50mm diameter speaker, Qty 2
Bluetooth FOB Button Key Finder

You'll need a small (30 x 62mm) piece of Perfboard and a few resistors and capacitors (see schematic). I recommend having a variety of JST SH1.0 plugs/connectors on hand to connect things together.


There are several 3D Printed parts. The STL files will be available on Github. You'll need some ABS Filament (PLA not recommended). Print time is about 15 hours. A 160mm or larger heated build plate is required. Small self-tapping screws are needed for assembly (7 pcs M2x6, 2 pcs M2x10, 1 pc M2x12).


The software source code will be available to download on Github. For code development the VSCode/Platformio IDE is required. The custom modified Arduino libraries are provided in the download zip file. Please don't ask for a project package that works with the Arduino IDE since I have no plans to create that.


Share this post

Link to post
Share on other sites


The Sparky project is intended for experienced electronic circuit builders. So step-by-step build instructions and "Heathkit" wire placement drawings will not be provided.

Along with the schematic I will be posting several photos that can be used for reference. I'll provide some written commentary to further explain what is shown in photos.

The schematic includes some useful notes. The second page provides images of the various components to assist with your online purchases. To avoid compatibility issues you should confirm your component choices are EXACT matches to the images.

IMPORTANT: Fully test your new welding machine BEFORE you start the modifications. Burn as many rods as you can and confirm that it is working correctly. Do NOT start any disassembly until you are satisfied the welder is working. Immediately contact the seller if the Welder has problems.

Share this post

Link to post
Share on other sites

I originally intended to replace the front panel's current adjust POT with a big manly knob attached to a digital rotary encoder. Just like high-end welding machines use. But there wasn't room for it, so my "mechanical" control idea was abandoned.

Instead, the current adjustment is on the touch screen. Which is too bad since I'm not a huge fan of touch entry. But throughout this project I had to remind myself that this hobby welder isn't going into the hands of a professional user. On a positive note, the touch screen looks nice and is small enough to fit within the Welder's front panel area. Touch entry is very reliable with bare fingers. Welding gloves can remain on if you touch it with a tablet stylus or eraser end of a pencil.

The original current adjust POT plugs into the Welder's motherboard via a 7-pin plug. The over-temperature LED is wired to this plug too. The POT is simply unplugged and an identical 7-pin plug (wired to a digital POT) goes in its place. Save the old POT assembly in case you need to restore the welder back to stock configuration.


The removed POT's empty mounting hole is a convenient place to pass wires to Welder's interior. A new plastic bezel will cover it up.

All of the new components are mounted in the 3D Printed Bezel housing. Including two small speakers. It's a tight fit but with good cable management it all fits like a glove. Here's a photo of an early prototype.



Here's a front view photo of the final housing design (printed in yellow ABS). It slides into the Welder's metal cover and is securely attached by two *existing* screws.



This image below shows the snug fit of the new circuitry. The three cables are routed to the Welder's motherboard.


All the long cables will be passed into the Welder via the big hole that was exposed after the current adjustment POT was removed.

Share this post

Link to post
Share on other sites

Sparky can measure the arc's welding current in real-time. It uses a low cost INA219 DC High Side Current Sensor module. The module is equipped with a 3A rated shunt resistor. But we need to measure up to 200A.

Fortunately there's already a 200A shunt inside the Welder. But it's a low side shunt and the INA219 is a high side sensor.  After some datasheet spelunking, I convinced myself that it could be adapted for low side current measurements. I'm pleased to report full success with the unconventional configuration.

Here's a close-up photo of the shunt bar inside the Welder (images are screenshots from the video posted earlier).



The shunt is on the motherboard. Here's another photo.



The INA219 module's shunt resistor needs to be removed.


A filter network must be added to the INA219 board (PCB cuts are required). Filter details are found in the component datasheet. Or skip the technical education and incorporate the filter by following the basic schematic shown below:


Small gauge (26AWG) twisted pair wiring was used to connect the sense signal pads (VIN+, VIN-) to the Welder's 200A shunt resistor. These are the Orange/Brown wire pair shown in the image below. Note: The Brown & Black wires are connected together at the EDC- side of the Perfboard mounted attenuator resistors.

The sense wires' solder locations at the Welder's motherboard are critical to ensure accurate measurements. That is because the full shunt resistance is comprised of the shunt bar *and* the adjacent PCB copper plane areas.

It is important to precisely copy the sense wire solder locations seen in the photo below. Also shown are other useful wiring locations used in the project.



Calibrating the INA219 with its upgraded shunt resistor would have been easy if I had a DC clamp-on ammeter. But let me remind you that I don't have one (and the reason this project began). Instead, I grabbed a household electric frying pan and a waffle maker. They provided a high wattage non-inductive load that I used to calibrate the current measurements. A Fluke 8040A milli-ohmmeter was used to measure the hot resistance and a DMM provided the Welder's loaded voltage. Apply basic math, done.

Here's a photo of my current sensor calibration test setup. Unsophisticated but effective.




Share this post

Link to post
Share on other sites

As shown in the previous post, a pair of resistors are used to attenuate the welding voltage that is applied to PIN-3 of the ESP32 (see schematic). These are soldered on a piece of perfboard and protected with heatshrink. This assembly is mounted to the motherboard with double-sided foam tape. See image below.



The new circuitry is powered by a small adjustable DC-DC buck voltage regulator (VReg). A 100uF cap is added to its output and everything is protected in heatshrink. It's mounted on the Welder's motherboard with double-sided foam tape. The VReg's input is connected to the 15V supply, as shown below.


Important: Adjust the output to 5.25V BEFORE connecting any circuitry to it. Otherwise the factory set voltage will be too high and will destroy Sparky. During the voltage calibration I recommend temporarily loading the output with 1K ohms.

Share this post

Link to post
Share on other sites

The ESP32 microcontroller is a Lolin D32 Pro. It has 16MB FLASH and 4MB PSRAM. It saves us from some tedious wiring by including a TFT port connector. Attaching the TFT color touchscreen is as simple as plugging in a 10-Pin cable.

But there's some soldering needed on the ESP32. A 0.47uF cap is added to Pin-3  and a 10K ohm resistor is installed on Pin-5. Then all the I/O wiring is added, per the schematic. See photos below.



Share this post

Link to post
Share on other sites

The MCP45HV51 digital pot IC is a tiny TSSOP14 SMD component. A 14-Pin DIP adapter board is used to make installation a bit easier. The INA219 module, MCP45HV51 (with DIP adapter), and PS2501 optocoupler are installed on a piece of Perfboard. See images below.




IMPORTANT: A previous post mentioned that the INA219 module requires shunt resistor removal and the installation of a filter network. So be sure to do that BEFORE soldering the module to the Perfboard.

Share this post

Link to post
Share on other sites

This is a good place to stop and talk about the digital POT chip that is controlled by the ESP32. In case it wasn't obvious, it replaces the front panel mounted Welding Current POT that was removed earlier. But it's no ordinary digital POT.

Unlike common digital POTs, Microchip Technology's MCP45HV51 can handle the higher voltages used in the Welder's closed-loop PWM current control circuitry. That is to say, the feedback signal voltages are high enough to damage a typical digital POT. So don't attempt to go rogue and substitute it.


And you may have noticed that the original front panel mounted POT was 1K ohms and the digital POT is 5K. In a perfect world we would use a 1K digital POT. But that value is not offered by the chip maker. Fortunately there's no harm in using the 5K substitute.

BTW, during design validation I installed a "mechanical" 5K POT on the Welder. Testing confirmed that the wiper voltages were correct and welding operation was not affected. I rarely experience a lucky break like this one, so please join me in thanking the silicon gods for their mercy.

Share this post

Link to post
Share on other sites

IMPORTANT: The provided STL files must be re-scaled to account for filament shrinkage; 101% works well for typical ABS filaments.

Sparky is housed in two 3D printed parts. The Front Chassis holds the TFT, ESP32, and Perfboard assembly. Seven M2x6 self-tapping screws are used to hold these in place.

The Rear Chassis holds the two speakers and PAM8403 audio amplifier. Hot Melt glue is used to mount them. Don't forget to add the two resistors and two capacitors to the audio amp (see schematic).

The Front and Rear Chassis are held together by two self-tapping M2x10 screws. A 3D printed Clip slides into the slot at the far-end of the Rear Chassis. It locks the plastic housing to the metal cabinet. A single M2x12 screw holds it in place.


The 3D printed strain relief can be used if the power cord is upgraded to 12/3 (12AWG) SJTO cable. See image below. Apply rubber adhesive (shoe glue), plus cinch zip tie wraps around the cable on the front and back sides of the strain relief.


Share this post

Link to post
Share on other sites

Sparky's remote Amps Adjust feature requires a Bluetooth Low Energy "lost key finder." This device is officially named iTAG, but I refer to it as a FOB since it can attach to a key chain. It was intended to be used to find lost keys and has a button for taking selfie photos from a smart phone.


The FOB device is sold by online Chinese retailers for about $1. That's about the same price as the CR2032 coin cell that powers it. Although it is a low energy device, I've burned through three batteries playing with it. OK, not all of button presses were fun and games; Hundreds of presses occurred during code development.

The button has an on/off feature. To turn it off, press and hold the button until you hear a long beep. To turn it on, press the button until two short beeps are heard. If it is used with a smart phone the pairing must disabled before it can be used it with Sparky.

During power-up (boot) Sparky will search for the FOB button. If it is found a pairing will be performed. If not found during the boot scan the Bluetooth function will be disabled and no further scans will be attempted. But you can use Sparky's Setting menu to perform a manual scan.

The Bluetooth connection can be lost during use. Especially if the FOB is moved too far away from the Welder. When this occurs several periodic connection retries will be attempted before giving up; If pairing is not successful a manual scan will be required to restore the lost connection.

The Lolin D32 Pro ESP32 microcontroller includes all necessary Bluetooth hardware (no additional hardware is needed). The "ESP32 BLE for Arduino" software library is used in the firmware. I have customized this library to improve reliability (the updated lib files are included in the source code package). But it remains buggy and occasionally will cause the ESP32 to lockup during a device scan.

Sparky's heart-beat icon (lower right corner of screen) will stop blinking when the CPU is locked-up. Do NOT attempt to weld if the icon is frozen (not blinking). A power cycle reboot is required to restore full operation.


Share this post

Link to post
Share on other sites

Time to wrap things up. The welding controller was an interesting project. And It took more time to complete than I dare admit. But I learned some new tricks, so that is all the reward I need.

Sparky introduced me to client side Bluetooth Low Energy communication. This has a lot of potential for my battery operated IoT projects. Hopefully a developer comes along and patches BLE's library bugs.

I also enjoyed using the ESP32 XT DAC Audio 4.1.0 library from Steve at www.xtronical.com. All of Sparky's sounds are handled by this library. It deserves to be officially integrated into the Arduino library ecosystem. But keep in mind that I have customized the XT DAC library; You must use the version provided in my project files (don't use the public downloads).

And best of all, I finally have a DC stick welder with custom features. Cost was about $200 US for everything, including helmet and leather protection. My setup isn't something that a serious metalworker would own, but it's a good match for my hobby/household projects. Of course I need to practice before I try to build something. So please pardon the sparks and smoke while I burn some rods.


Project files are available on Github: https://github.com/thomastech/Sparky

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Create New...