This Tutorial will show you how to upload the latest Spot Welder Software V3.2.2 to your Arduino Nano
The new Software is compatible with all V3 and later Arduino Spot Welders.
To upload the Arduino Code of the Spot Welder V3 to the Arduino Nano you need to do some preparation.
- download the Arduino IDE from https://www.arduino.cc/en/Main/Software
- download the Arduino Code from Github
Once you have installed the Arduino IDE you need to add two libraries. The “Adafruit_GFX” and “Adafruit_SSD1306” library. Make sure to use Vesion 1.1 of the SSD1306 libraray. The newer versions seem to cause problems.
Install them through the library manager in the Arduino IDE (click: Sketch -> Include Library -> Manage Libraries)
Then go to the SSD1306 library folder (on windows typically like this: C:UsersMarcDocumentsArduinolibrariesAdafruit_SSD1306-master ) and open the “SSD1306.h” with a text editor.
In the SSD1306.h you need to define line 51 (#define SSD1306_I2C_ADDRESS 0x3C) and line 69 (#define SSD1306_128_64) . In the latest version of the library its line 55 and 73.
The code should look like this after you changed it:
#define SSD1306_I2C_ADDRESS0x3C// 011110+SA0+RW - 0x3C or 0x3D // Address for 128x32 is 0x3C// Adress for 128x64 is 0x3D (default) or 0x3C (if SA0 is grounded)#define SSD1306_128_64 // #define SSD1306_128_32 // #define SSD1306_96_16
After you have done this dont forget to click save.
Now you can go back to the Arduino IDE and open the Arduino Code from the Github project you downloaded. The file is the Arduino_Spot_Welder_V3.2.2.ino . Make sure all unziped files of the Spot Welder code are in the same folder and the folder is named Arduino_Spot_Welder_V3.2.2 .
Connect the Arduino Nano to your computer with an USB cable and it should automatically install the drivers for the Arduino Nano. If it does not connect you need to install the driver for the USB chip manually. CH340 Windows Driver – CH340 Mac Driver – CH340 Linux Driver
If the Arduino is connected correctly a new Com Port should show up in your Arduino IDE under Tools -> Port
Select the new Com Port . Also select as Board: “Arduino Nano” and Processor: “ATmega328”
Finally click on “sketch -> upload” to write the programm into the Arduino Nano. When it is finished the Display on the Spot Welder should show a low battery warning because the default low battery warning is set to 11V.
hi can this be used with out a car battery as very expcecive here i would like to know as i am new to this can i use my lipo 35 5000 battery i have alredy as i would like to buy one please
It does also work with 3s Lipo batteries. Dont use 4s Lipos beccause the voltage of these is to high.
Lipos that have been approved to work well with the spot welder are for example the Turnigy Nanotech or the SLS Quantum
Hi, it seems the “SSD1306.h” library has a newer version and the code changes are outdated. Could you describe how to change the code for importing the newest version? Thank you.
I will take a look at that. In the meantime you can just install the old version V1.1 of the library.
Thats the one i used in the tutorial.
Thanks, I used the old library and it worked.
Note to other people: the processer to select in my case was Processor: “ATmega328P (old Bootloader)”
To support the new library, I made the following changes
In the main.ino file
Change:
Adafruit_SSD1306 display(OLED_RESET);
To:
Adafruit_SSD1306 display(SCREEN_WIDTH,SCREEN_HEIGHT,&Wire,OLED_RESET);
In the .h file
Change:
// SD1306_LCDHEIGHT must be defined in Adafruit_SSD1306.h
#if (SSD1306_LCDHEIGHT != 64)
#error(“Height incorrect, please fix Adafruit_SSD1306.h”);
#endif
To:
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Hi, it seems that i’m unable to download a usable V3.2.2.zip containing the arduino code on your github page …
Same thing for the BOM file …
Can you check if everything’s ok ?
Regards,
Just tested, it works fine for me. Maybe try to download the whole project by clicking on the green “clone or download” button.
https://github.com/KaeptnBalu/Arduino_Spot_Welder_V3
You done a great job in this post. Very useful blog ever about the welder. Thanks for sharing this blog with us.
What bullshitt, i open file i dont see nothing of that. Tutorial is out date.
Sorry for your problems. Maybe you did not use the recommended version of the SSD1306 library ? But dont worry, there will be a new software version and tutorial soon that is compatible with the latest library and Arduino IDE versions.
Hallo, ich habe eine Fehler.
Arduino: 1.8.9 (Windows 7), Board: “Arduino/Genuino Uno”
C:\Users\Behi\Desktop\Arduino Spot Welder V3 master\Arduino Code\V3.3.2 Arduino Code\Arduino_Spot_Welder_V3_3_2\Arduino_Spot_Welder_V3_3_2.ino: In function ‘void displayPulseData()’:
C:\Users\Behi\Desktop\Arduino Spot Welder V3 master\Arduino Code\V3.3.2 Arduino Code\Arduino_Spot_Welder_V3_3_2\Arduino_Spot_Welder_V3_3_2.ino:1070:74: warning: large integer implicitly truncated to unsigned type [-Woverflow]
setTextProp(1, (SSD1306_LCDWIDTH-(sizeof(LS_PULSEV)-1)*CHR_W*2)/2, 16);
^
Sketch uses 25090 bytes (77%) of program storage space. Maximum is 32256 bytes.
Global variables use 581 bytes (28%) of dynamic memory, leaving 1467 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x38
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x38
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
Da ist das falsche Board ausgewählt. Es muss “Arduino Nano” ausgewählt werden, nicht Arduino /Genuino Uno”
Hallo, ich habe immer wider problem.
Arduino: 1.8.9 (Windows 7), Board: “Arduino Nano, ATmega328P”
Build options changed, rebuilding all
C:\Users\Behi\Desktop\Arduino Spot Welder V3 master\Arduino Code\V3.3.2 Arduino Code\Arduino_Spot_Welder_V3_3_2\Arduino_Spot_Welder_V3_3_2.ino: In function ‘void displayPulseData()’:
C:\Users\Behi\Desktop\Arduino Spot Welder V3 master\Arduino Code\V3.3.2 Arduino Code\Arduino_Spot_Welder_V3_3_2\Arduino_Spot_Welder_V3_3_2.ino:1070:74: warning: large integer implicitly truncated to unsigned type [-Woverflow]
setTextProp(1, (SSD1306_LCDWIDTH-(sizeof(LS_PULSEV)-1)*CHR_W*2)/2, 16);
^
Sketch uses 25288 bytes (82%) of program storage space. Maximum is 30720 bytes.
Global variables use 582 bytes (28%) of dynamic memory, leaving 1466 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x45
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x45
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
Danke, Ich habe das Aktualisiert. Arduino: 1.8.9 (Windows 7), Board: “Arduino Nano, ATmega328P (Old bootloader)
Hi Marc
Having a problem and hope you can help,I was having issues with the encoder and you sent me a new encoder to fit myself a couple of years ago,as it was difficult to adjust and would jump from screen to screen and difficult to adjust weld pulse also noticed it would not go any higher than pulse 12ms !,I finally decided to replace encoder and is working fine apart from it still will not go higher than 12ms,any ideas ?,firmware 3.3.2.,Only started using again as was away.
Hi,
The standard limit for the pulse time is set to 100ms in the software. Maybe somehow it was changed to 12ms ? You can go to the system menue and check the setting. Instructions how to do that can be found here: https://malectrics.eu/arduino-spot-welder-quick-start-guide-v3/ . If this does not work, try a full reset in the system menue.