Boy, that is probably the dullest title of all the blog posts, so far, but, well, there it is. Basically I’m converting the code from the old processor to code on the new processor, updating some of it since it is being changed from an 8 bit processor to a 32 bit processor. The change in processor size makes some things easier and some things more difficult, but everything has to be revisited. The ports are set up more coherently on this processor which simplifies a lot of the code.
I have currently converted the processing for the input boards and the solenoid drivers. I had already done the Neopixel stuff, but need to use interrupts for the Neopixels so it doesn’t affect the switch/solenoid processing as much. (It’s just the right thing to do). I’ve added code to save the configuration off to flash memory, and retrieve it so the configuration is persistent. Error checking has been added to the non-volatile configuration so that it is guaranteed to be valid. Saving the configuration in flash allows the boards to be run without being tethered to a computer. (AKA Joe/Cactus Jack configuration, and well the configuration I use most often when wiring up a playfield and batting around the ball).
The last big thing that I need to program before starting testing is the serial communication. Should be a pretty simple module, just haven’t done it yet. I need to merge all the commands from the input and solenoid driver into a single file. At that point, after testing, it should be ready for the next step.
So I need some way to test the boards. I’ll probably start out updating the PinBrdGUI python application to support Gen2 cards. That will test the basic functionality. Then I will probably hook the boards up to the old playfield that I used for original testing of the first generation of boards. (I can’t even remember the name of that playfield at this moment) It allows me to shoot the ball around, look at inputs, etc. It’s not a very exciting playfield, but it is good enough for testing.
So the eventual destination of these boards is in a Dolly Parton machine that is going to be rethemed. The goal is to not change any of the wiring harnesses and hook the boards directly up to the Dolly playfield. (This excludes the sound and displays, because those are going to upgraded to an LCD display and full stereo music much like SS3.) I’ll probably spin a board to do the interconnections and why not, it’s cheap. It means that I will need to completely understand the wiring harness of the Dolly machine, but that shouldn’t be too bad.
The one thing that needs to be supported is a switch matrix and a lamp matrix. I’ve already figured out how to do the switch matrix in the code. It will need a couple more serial commands, but they are all based on the input board. It will simply look like 8 output drivers to power the column strobe, and 8 input drivers to read each of the signals. It will then send all 64 bits of data (8 bytes) back as a single command.
I haven’t figured out how I’m going to do the lamp matrix yet, but it may require another new board, or I might be able to combine two incandescent driver boards. Just haven’t taken the time to do the design work yet.
That’s all I have for today.