I’ve been working on the GenPyCode project in the Google code repository, and rewiring the SharpShooter II playfield. Progress is slow but steady.
Starting with the rewire of SharpShooter II. The initial step is to get all the solenoids firing and active on the playfield. Because the driver boards can statically configured, it is simple to set them up so the machine will be playable. The machine won’t play a game, but will continually serve the ball onto the playfield, all the bumpers will work, the kickout hole will work, and I’ll probably daisy chain the drop targets so you need to knock down all of them to have the bank reset. The end game will support two ball multiball, but that would take a bit of programming.
Right now, I’ve routed many of the wires that source and sink the 48V for the solenoids. The 48V source is brought to the playfield using three lines: upper playfield solenoids, lower playfield solenoids, and flippers. Four wires are used to return the current from the two solenoid cards. Three wires are used to source the current for the lighting. The playfield GI was originally broken into two circuits. A third circuit has been added to source the current for the feature lights. Looking at the current rating of the wires, I’m definitely over doing the number of wires, but it allows for me to the ground wires on the back of the playfield. (Less soldering for me to do.)
The feature lights for Disaster are going to use LEDs. Since this is a retrofit, the feature lights are incandescent bulbs. While the driver that I made was OK for individual LEDs (about 20 mA), an incandescent bulbs need approximately 200 to 250 mA. That of course means that the original design will not work to sink that much current. I’ve sketched out the new design for the drivers, which requires an individual MOSFET for each feature light bulb. The serial register also needs to have open collector outputs so that the FETs can be used as high side switches and the existing common ground returns can be reused. The parts for the new drivers are ordered from Mouser. I just need to get off my butt and layout the driver cards and order them. I’m sure that I can fit the design on a 5 cm x 10 cm PCB, so a single order will give me 20 PCBs.
Onto GenPyCode updates. The GenPyCode Python project takes the simpleRules.txt file and generates the Python files necessary to run the pinball machine. This is then run using the PinballFramework to operate the actual machine. I originally did a lot of the code using Java, but since the Raspberry Pi doesn’t have perfect support for Java, I decided to rewrite it using Python. Since then, the Python version has been significantly updated and more features added. I’m now going back and adding the newer features into the simpleRules.txt. It also adds features for more debuggability. It currently creates python files for solenoid bits, input bits, and LED bits. It also creates the constants for the sound files.
Next steps will just be continuing in the same vain. I’m hoping to finish the wiring on SharpShooter II and then take a video.