The hardware for the breadboard prototype is now complete. I recently got the push buttons wired up, hooked up 5 red LEDs to blink with the solenoids, since everyone likes blinky LEDs, and got the ULN2003 driver chip working and powering solenoids.
I've written several crude Arduino programs to test each of these functions and they all work. Now I have to just start putting the puzzle pieces together to make a code search program with a usable user interface,
A side note, I've been doing electronics for decades and I've worked with microcontrollers since ceramic package PIC 16C54's were a thing. But I've never done an Arduino project before. Just never got around to it and I don't know much about the Arduino language, so this is a bit of a learning experience.
One dilemma I am facing is whether or not I should bother writing switch debouncing routines. I find it extremely annoying to use an electronic device that fails to do proper switch debouncing and just as you have clicked a switch several times it bounces and jumps right over whatever you were trying to select. So the OCD side of me says things won't be right in the world unless I implement proper switch debouncing.
But in the course of testing my hardware I found a chunk of code online that tests for switch debouncing and found that it isn't much of a problem. I can click the buttons I used maybe 20 or 30 times before detecting any actual bounce. And it's not like this project is meant to be a polished consumer product. So the practical side of me says don't bother with the switch debouncing software.
I don't know yet if it will be the practical side or the OCD side of me that wins that argument...