Recently, I’ve been penning a series of articles on the topic of switch bounce (see Switch Types, Switch Terminology, and the Ultimate Guide to Switch Debounce Part 1, Part 2, and Part 3).
From the outset, my chum Peter Traneus Anderson (a.k.a. Traneus Rex) warned me that this was a deep rabbit hole into which one might fall, and that it might prove difficult to dig my way out again. Peter is a wise man, is all I can say.
More recently, I was chatting to my friend, Aubrey Kagan, who started off in Rhodesia (now Zimbabwe), bounced around the world, and ended up settling in Canada. Aubrey reminds me of another friend, David Ashton, who also started off in Rhodesia, ricocheted around the world, and eventually planted himself in Australia. I believe it to be mere coincidence that Aubrey and David managed to end up just about as far from each other as it’s possible to be.
The reason I say Aubrey reminds me of David is that either of them could out-engineer your humble narrator without breaking a sweat. Both members of this dynamic duo have spent their careers designing, debugging, and fault-finding electronic systems in weird and wonderful environments, ranging from the bottom of mines to the top of radio towers.
I remember several years ago when I built a Geiger counter that didn’t count. One problem was that I didn’t have a radioactive source with which to test this little beauty, so I didn’t know if the fact that it was silent indicated a lack of radiation or a failure of the system. I wrote a blog about this, following which David emailed me to tell me to send it to Australia for him to look at, so I ambled down to the post office to dispatch the little scamp on its way.
When I returned to my office, I found a gift from another reader sitting on my desk — a package of radioactive marbles. So, I started the day with a Geiger counter but no radioactive source, and I ended it with multiple radioactive sources but no Geiger counter. I’ve said it before and I’ll say it again, it’s a funny old world, and no mistake, but we digress…
As part of my conversation with Aubrey, the topic of switch bounce reared its ugly head. I think I mentioned that — to the best of my recollection — this subject was not one I was taught at university. This prompted Aubrey to note he was of the opinion that there should be a “Finishing School” for electrical and electronic engineers in which they were taught a suite of real-world nitty-gritty skills.
Oh dear. I didn’t mean to do that. I’m sure that, like me, as soon as you read the preceding sentence you immediately started thinking of The Nitty Gritty by Shirley Ellis.
I was going to say that you don’t see much dancing like that these days, but then I thought of my friend Little Steve and his interesting interpretations on the dance floor, which made me decide to hold my tongue. Anyway, Aubrey suggested a few topics he felt should be included as follows:
- Switch bounce
- Driving transistors (bipolar and FET)
- Interfacing to different (industrial) voltages
- Relays (driving the coil, bounce and turn on/off times, back EMF)
- Driving SCRs and Triacs
- The wiles of isolation and ground loops
Of course, this is a slippery slope, because we could easily create a catalog containing so many topics as to form a complete university degree course in their own right; however, if we assume we’re talking about something a little less imposing, like a 6-week summer finishing school, for example, then what items would you add to the list?
One big omission: DRY JOINTS!! If I had a dollar for every one of those I’ve fixed, I’d be… well, maybe not rich but able to shout everyone here a beer. And maybe Bacon for Max.
The latest one I had was my car indicator flasher unit (Max – you translate that to US English for me). It became intermittent, and not being able to indicate to other drivers that you are changing direction is not a good place to be.
Eventually after checking fuses and wiring I determined that the flasher unit was the problem. Extricating it from under the dashboard required the skills of a contortionist. It had a small PCB with a relay, and one of the relay pins had the concentric circles on the solder that are unmistakable signs of a dry joint. I sucked the solder off, cleaned up the pin and pad with a small wire brush, resoldered it and it’s been good as gold since. The skills – hard earned in my case – needed to diagnose and repair dry joints should be in every engineer’s repertoire.
“…flasher unit (Max – you translate that to US English for me)” I wouldn’t touch your flasher unit with a barge pole LOL
No bacon for you!!
Oh, the humanity!
“I sucked the solder off” Actually, you can get a tool that does that for you.
You’re a funny. funny man…..
Thank you. I’m playing here all week. Tell your friends! 🙂
“One big omission: DRY JOINTS!!”
Step 1: Teach them to call them dry joints instead of “cold sodder” joints. Why they swallow the “L” beats me and I still can’t bring myself to do it after more than 30 years.
The fact that so many electronics courses don’t even include soldering makes me shake my head in disbelief.
Many years ago I was on a course taught by an American, the system password, he told us, was “Sodder”. Only after several attempts, and him writing it on the board, did I (and several others) get it right. I suspect solder had not been invented when Noah Webster created his dictionary.
“Dry joint” = “Cold joint”?
I don’t think they are necessarily the same thing (although I’ll defer to David, Aubrey, and Rick on this one — I’ll ask them to comment). My understanding is that a “dry joint” is one where the elements to be joined weren’t clean or they were oxidized or there wasn’t sufficient flux or the iron wasn’t applied ling enough, resulting in an unsound joint. By comparison, a “cold joint” is one where the solder is generally in the right place, but because one or more of the elements to be joined were cold, causing the solder to prematurely harden, the result is the solder doesn’t bond to one or more of the metal surfaces in the joint.
In a dry joint, one or both surfaces are not properly “wetted” with solder. This may be due to too little solder being applied, or, as Max said, oxidation or other contaminants prevented it from bonding.
A “cold” joint is characterized by a dull or hazy appearance. It is usually caused by moving one of the components being soldered while the solder is hardening. It can also be caused by blowing on the joint to cool it rapidly (usually because you’ve got your fingers too close to the component you’re soldering and you want to stop the pain!).
Whilst I think Max is correct in his analysis, I think to all intents and purposes they are equivalent linguistically. I never heard of a “cold joint” (pertaining to solder) ever on the east side of the Atlantic. Conversely, I have never hear of a “dry joint” in all my years in North America.
I daresay the analysis is more important to an assembly house or quality control department in analysing the process. When one finds it on a board (as an isolated event or on a prototype), the identification and cure is more important than the cause. A rose by any other name would smell as sweet.
Oooh — Good One!
Recently met a new grad at my engineering workplace which only hires the top new grads from the top schools, I introduced myself as an FPGA designer and the grad had no idea what I was talking about. I bet the same person could write out Maxwell’s equations, and give me 20 Fourier transform pairs from memory.
You can’t know everything, but it’s at least useful to know what the major component types are
Do you mean just how the FPGA evaluates Boolan expressions(LUTs) or how to design the logic expressions in the first place?
Also power dissipation as per my blog “Power Dissipation: My Arch-Nemesis”
The list is growing…
Aubrey ( Aubrey Kagan ) — one you and I talked about was “How to read data sheets” — Elizabeth Simon could take the columns she wrote for EEWeb.com and use those as the basis for a book — or for one of the topics in our Summer Finishing School
I also mentioned robust design-
1. design to detect or ensure correct operation of I/O
2. glitch prevention (at startup, before the micro has set up its registers
3. Watchdog timers
I tell you — there’s a couple of us who could get together to give an amazing finishing school (you, David Ashton, Peter Anderson, Rick Curl…)
How to read data sheets is a great one! I had no idea what a data sheet was or how to read one as a fresh-out.
I suggest how to put together and read component part numbers. For example, putting together military resistor part numbers.
That’s another good one to add to the “course” — we should all get together and write a book about this stuff
We could also add simple tips and tricks on generating pulse, adding delays on different edge (an extension of the contents your Debounce part3 blog), oscillators etc. all using simple logic. AND making sure all the inputs are a defined logic level.
Linear circuit mostly taken from early National Semi app books, especially on how to work with bipolar supplies
And of course DECOUPLING
Oooh — that would be one I’d love to do — I’m currently working on Part 4 of the switch bounce one, which will be posted tomorrow on EEJournal.com — this part is on the use of monostables — I think there will be some surprises in store for people…
And debugging with source material like Bob Pease’s book
David Agans book
I once met Bob — he was an interesting guy — I would have loved to study under him.
If we are being serious about this- we also need to enlist advice from experts in other domains
Power engineering, motors etc. The only valuable contribution I can make is: 230VAC is Dangerous!
Some basic magnetics (maybe the do still do this in their studies)
Maybe someone rich and famous will see this thread and say “I would like to pay a humongous amount of money to each of these experts to get them to visit my luxury hotel in Hawaii and put on a training course for a group of deserving students” — hey, it could happen!
You said “I was going to say that you don’t see much dancing like that these days, ”
Well the jerky motion reminded of a much more recent performance of Christine and the Queens- not quite as feverish nor as synchronised, but comparable just the same
P.S. It may seem familiar, I have referenced this performance in the past
You should have disclosed your vested interest in dancing through your father and uncles
If only I could claim my father’s dancing knees, but I fear I have no skill on the dance floor (sad face)
When it comes to learning “a suite of real-world nitty-gritty skills”, my answer is:
“The Circuit Designer’s Companion”, Tim Williams
I have the 1991 edition, I believe there are newer.
I’ve just added this to my wish list on Amazon
In its usual disconcerting way, Amazon has offered the following book as well
“The Circuit Designer’s Companion” by Peter Wilson
The table of contents seems to cover some of the topics we have mentioned.
Component tolerance (or how do design something that can be manufactured reliably)
Component de-rating. (or how to design something that works reliably)
I agree a good one! Years ago a co-worker looked at me like I had two heads when I said the word de-rating..
It all depends on the context — if your co-worker asked if you had any big plans for the weekend, and you responded “de-rating” … LOL
Also how to draw a good schematic- not just the first step in producing a PCB
Maybe some PCB layout
I think doing a simple schematic -> PCB -> fab -> debug (fault designed in), verification, test would be great.
Yes, a thousand times yes. I am beating my brains out trying to teach young engineers that the schematic is not just a netlist for the layout editor to reconcile – it’s supposed to convey *information*, i.e. tell the story of how the PCB works.
I had a 16-page (!) schematic from one of them – each page containing as few as two components connected to nothing but net labels. It was an incomprehensible pile which I took an afternoon to condense to 4 sheets and now looks at least like a human participated in it.
I bet I could do a full week on “Why the grid is your friend.” Sometimes their work looks more like fingerpainting than engineering.
“Sometimes their work looks more like finger painting than engineering” ROFLOL
Do you teach your students about switch bounce? If so, you might be interested in the series of articles I’m posting on EEJournal.com — the most recent post was earlier today: https://www.eejournal.com/article/ultimate-guide-to-switch-debounce-part-4/
Not a teacher, just an increasingly elderly and cranky EE thrust into a mentoring role. I have read your recent series (pretty good btw) but our stuff tends much more heavily to the solid-state relay kind of switching rather than physical contacts. What few switches there are tend to be on OEM equipment or we let the FPGA/software guys handle it.
Of course, back in the day (as you note) we didn’t have the extra cycle time to waste with software debug timers, so we used RC and/or latching solutions as required. Now excuse me, I gotta go run some kids off my lawn.
Very interesting — thanks for sharing — say “hi” to the kids for me 🙂
If all you want is the netlist, you can skip the schematic and type the netlist using a text editor, provided the netlist format is ASCII text. I loved the original MS-DOS Orcad schematic-entry program in part because I could create parts using a text editor, a feature they removed in later editions.
This is the way we used to do things with the early logic simulators when all we had was logic gates and registers — Ah, the good old days 🙂
How to use a multimeter
How to use an oscilloscope
How to use a logic analyzer
How to use a protocol monitor (SPI, I2C, UART…)
Max I think by now we’ve got ourselves a 3-year engineering course called “Practical Electronics Engineering”… (don’t use the acronym…. 🙂
It would certainly stick in your mind LOL
i love this! Means a lot to me, cuz i’m developing curriculum for a teen electronics mentoring program. My goal is to plant seeds for all the core knowledge-areas: power, embedded, audio, user-interface…
I really envy you being able to do this 🙂 I’m going to start a series of Arduino for Absolute Beginners here on the Cool Beans Blog — you might find it useful for teaching your teens.
Sweet! However, we won’t use Arduinos. Our learning experience is built around a real-world product, and Arduinos aren’t really suited to that. Also, we want our apprentices to have a good foundation with electronics, so we’re starting with just hardware, not embedded. Finally, when we bring uC’s into the project later, Atmel chips might not necessarily be our first choice (no offense to Microchip 🙂
That’s fair enough, although I think you may still find the earlier columns in my beginner’s series to be of interest because they will be introducing fundamental electronic concepts.
Absolutely. Also your list in this article are the sorts of things we want to focus on: Ground loops, inductors, transistors, etc
I hope you include some good old Boolean logic design.
Not just statements/expressions, but sequence control logic.
No, I do not mean FSMs.
I mean inputs, outputs, interface sequencing, and internal sequence control.
I tell you — we could fill an entire university course — just what DO they learn at university anyway? LOL
This whole discussion is about things I learned as a technician/field engineer.
When I got around to university it was about applying math and physics to quantify things that I already understood.
Maybe instead of “Finishing school” it should be “Prep school”.
the previous sentence made me think of the Nitty Gritty Dirt Band 🙂
I had my 14-year-old daughter help me graph the current through a 47 Ohm Carbon composition 1/4W resistor at 1V, 2v, etc. As we were passing 5V, I’m sure she was thinking about her idiot dad, since this was obviously a linear function. Then she asked, “What’s that smell?”, terminating the real lesson #1 of “What do burnt parts smell like?” She later learned how to identify several other components by smell, even though those were not organized lessons . . .
“…She later learned how to identify several other components by smell, even though those were not organized lessons…” ROFLOL