
OVERVIEW
If you’ve watched our last tutorial, “How to make a PCB using an Online service”, you will remember that we created a PCB using the online service “EasyEDA.com”.
Well since then, we received the boards from EasyEDA and I must be say they look great! There is nothing quite like having a professionally made PCB.

Having solder mask makes soldering very easy for beginners since the solder will not bridge contacts.
Also having a 2 sided PCB, enables more connections between components while keeping the PCB size small.
And of course having silk screening (text, graphics…) makes the board and your project look even better.
THE RIGHT TOOLS FOR THE JOB
When it comes to soldering, the right tools will make the job less of a chore and might even make it fun.
Unfortunately of course, the right tools cost more, but if you value your time, and will be doing soldering on a semi regular basis, then it ‘s money well spent.
From my experience, 2 tools that will make a big difference are, a good soldering iron and a way to hold the PCB while soldering.
Since this is “not” a paid article I will not suggest a particular brand, but will instead tell you what I personally use day to day.
MY SOLDERING STATION

I went with a Weller WES51, a 60w analog soldering station that comes with the PES51 soldering pencil. No bells or whistle, it just works!
The best part of this system is the PES51 soldering pencil, it’s small, easy to hold and has a very precise tip, which in my mind is the most important thing when doing PCB soldering.

They’re are other models with digital temperature readout, but I find myself almost never adjusting the temperature once it has been set… So I would probably not use it much anyways.
So why did I go with the Weller brand?
Aside that they have been around forever and got a good track record, but for me the reason was that I could get replacement parts easily.
Soldering tips need to be changed at some point, and being able to find them locally or at least on Amazon was the main selling point for me.
They are other brand of course that are probably just as good and if you are shopping around for a new soldering iron, get at least a 60W and more importantly, get one that comes with a slim soldering iron, like the PES51 soldering pencil.
WELLER WES51
These are Amazon affiliate links...
They don't cost you anything and it helps me keep the lights on
if you buy something on Amazon. Thank you!
MY PCB HOLDER
If you have done some soldering before, you probably used one of those third hand with a magnifying glass.

I’ve used this for a long time because I couldn’t really find anything else,
and also it’s cheap :).
Once I started working on bigger PCB’s and doing more soldering, I needed something better.
Once again Weller had the thing I was looking for, the ESF-120 PCB holder.

Again I would like to mention that I am not being compensated by Weller :).
I’m only mentioning what I use and not saying that they are better than others brands.
At first glance, the ESF-120 looks overpriced for what it is, that’s what I thought the first time I saw it.
But I wanted something simple that just works and wouldn’t take time to set up.
Although it is mostly made of plastic, the two metal rods are heavy and small rubber feet keep it from moving around while you solder.
Just be careful with you iron around the plastic parts because they will melt if you touch them.
The first time I used it, I wondered why I waited so long to get one.
It a simple device that holds the PCB and the little adjustable arm holds the part to be soldered so it stays in place when you flip the PCB.
They are more advanced system available like the PCBGRIP, which offer a lot more (of course for more money…), but for my need the ESF-120 fit the bill, and I would not solder without it.
So there you have it, if you want to make soldering less of a chore, getting a good soldering iron and a better way to hold the PCB will be a great improvement and will make soldering less daunting.
Weller PCB Holder ESF-120
These are Amazon affiliate links...
They don't cost you anything and it helps me keep the lights on
if you buy something on Amazon. Thank you!
THE CODE / SOLDERING
Of course since we are using a PCB, soldering the parts for our project was easy and fun.
When I’m soldering a PCB I start from the inside moving out, I find that way gives me more room to work without having to be careful not to hit already soldered components.
So for this project I started with the resistors, then moved on to the headers for the DigiSpark and the CD4021 shift register.
Finally, I flipped the board around and soldered the MX switches.
Using the ESF-120 made this a breeze, thanks to the little arm to hold the parts while soldering.

The headers are not needed of course, but I like to be able to remove the DigiSpark or the shift register if I ever need too.
Once everything was soldered, all that was left to do was to program the DigiSpark with the code needed.
As always please watch our YouTube video for more information.
#include "DigiKeyboard.h" // Include Library for Keyboard Emulation
//Define pins
int dataPin = 0; // Pin 0 of DigiSpark connected to Pin 3 of CD4021
int clockPin = 1; // Pin 1 of DigiSpark connected to Pin 10 of CD4021
int latchPin = 2; // Pin 2 of DigiSpark connected to Pin 9 of CD4021
//Define variable
byte RegisterValue = 0; // Used to hold data from DC4021
void setup() {
//define pins used to connect to the CD4021 Shift Register
pinMode(dataPin, INPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop() {
DigiKeyboard.delay(1);
//Set latch pin to 1 to get recent data into the CD4021
digitalWrite(latchPin,1);
delayMicroseconds(20);
//Set latch pin to 0 to get data from the CD4021
digitalWrite(latchPin,0);
//Get CD4021 register data in byte variable
RegisterValue = shiftIn(dataPin, clockPin, MSBFIRST);
if (RegisterValue == B10) {
DigiKeyboard.print("7");
DigiKeyboard.delay(200);
// DigiKeyboard.println(RegisterValue, BIN);
}
if (RegisterValue == B100) {
DigiKeyboard.print("5");
DigiKeyboard.delay(200);
// DigiKeyboard.println(RegisterValue, BIN);
}
if (RegisterValue == B1000) {
DigiKeyboard.print("1");
DigiKeyboard.delay(200);
// DigiKeyboard.println(RegisterValue, BIN);
}
if (RegisterValue == B10000) {
DigiKeyboard.sendKeyStroke(KEY_SPACE);
DigiKeyboard.delay(200);
// DigiKeyboard.print("Cut Transition");
}
if (RegisterValue == B100000) {
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(200);
// DigiKeyboard.print("Auto Transition");
}
if (RegisterValue == B1000000) {
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(200);
// DigiKeyboard.print("Auto Transition");
}
}
TUTORIAL VIDEO
CONCLUSION
Copy the above Sketch code in your Arduino IDE software to program your Arduino.
Used Libraries:
Download The DigiKeyboard Library
created by DigiStump here:
Once downloaded, just extract the content of the zip files inside your “arduino/libraries” folder, and make sure to restart the Arduino IDE (Close and Reopen) software so it detect this newly installed library.
Comentários