Just finished the first cut of the schematics and sent them off to a free DFM checker to take a look at them. I need to verify all the footprints and do a sanity check on it, but it looks pretty good at this point. The end board consists of a couple different subsections including solenoid driver boards, LED lighting driver boards, input boards, a main controller board (the brains of the pinball), and a power supply board. Since I had the extra space, I also tossed in a debugger board to interface with the other smart cards.
Basic design is as follows: main controller board talks to LED light boards using the SPI bus. Simple, and the processor I picked (MCF52212) can do this in a state machine, so no wasted cycles to update these LEDs. Main controller also talks to input boards/solenoid driver boards using an asynchronous serial port. (RS232 but at 3.3/5.0 volt levels). Each of these boards is daisy chained together so that the processor can “discover” the boards when initializing. The solenoid/input boards each have a MC9S08SE8 processor on them to either fire the solenoid, or collect the inputs. The main controller sends commands to these boards over the serial link, and the responses are daisy chained together, and returned back to the main controller. The scheme was designed to minimize the wiring. Oh, how I hate wiring. It should make for a very flexible and clean looking back of the playfield.
Each solenoid driver board has inputs for each of the solenoids, so that they can be fired very quickly for the pop bumpers/kickers. The small processor collects these switch presses and sends them back to the main controller when requested. That way all of the real time stuff happens locally, but info that affects the score, can be collected and sent for “batch” processing at the main controller. Serial communications support debugging commands such as firing solenoids during test modes.
Input driver boards collect inputs from switches and present single edges to the main controller. They get rid of all the bounciness of the real world. Basically these boards are very similar to a smart PIA in current pinball machines. I tried to make this part out of a Xilinx FPGA, but I just couldn’t get it any cheaper than putting a small $1.50 processor on there.
I now get to start adding up the costs to see if the BOM is coming in below target. Target for the boards is $100. It’s going to be close. If I could do this stuff in any quantity, it would be easy, but building stuff for a hobby means you don’t get to use anything more than quantity 10.
All of the PCBs have been done in Kicad. I’ve been very impressed with the amount of tweaking that I can do in the program. I basically made each board as a single board, and laid it out. Then I did an overall plan to put all individual small boards onto a single PCB. I created a new schematic and put all of the sub boards in separate sheets in the schematic. (For some reason, couldn’t use a relative link to the old boards, but made a copy of the schematic sheets and boards into the new larger project.) I linked all of these together, altered the reference designators so I could have multiple copies of each board, and then copied the board files into the end layout. It all worked fantastically well. I’m sure that I could not have done all those things in Pads. Kicad is very intuitive for me. It seems like it was written by programmers.
That’s all for tonight. Hopefully more later this week or this weekend. Off to see the show in Allentown on Saturday.