So as I’m typing this, the incandescent driver boards are finished. Of course, since I can’t bear to waste an inch of PCB, I’ve also started working on the next generation of driver boards.
I’ve decided to start working on the next generation of boards. This is solely based on the fact that I have extra PCB area. The incandescent driver boards are 2.5 cm x 5 cm. The PCB house I use sells 10 cm x 10 cm boards. That leaves 5 cm x 10 cm of board space. That happens to be just enough space for the next generation driver design.
Here are the list of improvements:
- Completely open source solution. The next generation will switch from the HCS08 processor to the an ARM based processor. This allows to switch from Freescale’s CodeWarrior, to CooCox and the CoIDE which are both free and open source.
- The first generation required an $80 debugger to program the bootloader in the processor the first time. After that, code could be updated using the serial port and the boot loader. The fact that the debugger is required, makes the first generation more expensive for people trying to independently create a pinball machine. The next generation contains the debugger on the development board. There is also an embedded bootloader, so if creating cards from scratch to make them cheaper, that bootloader can be used.
- The HCS08 in the first version used a DIP package for the processor. That package for the processor is end of life, so the cards would have to be laid out again. That would involve switching from DIP packages to surface mount packages which would make home assembly more difficult.
- The next generation uses a standard off the shelf development board. The solenoid driver/input driver boards mount to the development board using the breakout header pins. All soldering remains through-hole components to make it easy for hobbyists.
- The first generation cards were either solenoid drivers or input cards. The next generation allows the cards to be either input or solenoid drivers, or a mixture by populating the boards differently. Since there are less different cards, a single order of 10 cm x 10 cm PCBs can build two complete pinball machines.
- The next generation of boards have switched from 5V processors to 3.3V processors. Previously a voltage conversion needed to take place between the solenoids drivers/input drivers and the Raspberry Pi. Now that everything is running at 3.3V, that converter can be removed. This makes interfacing between those two cards, that much easier.
So, I don’t really have time to write the firmware for the next generation of cards. I’ve done minimal amounts of work getting interrupts working on the ARM processor, and blinking LEDs. I started looking at doing the bootloader, but it would take about a full month of work to get everything up and running. While it would be fun to do that, I’m busy getting the rest of the framework done.
That put everything on hold for a while, but then, suddenly a couple weeks ago somebody approached me to help with the Open Pinball Project. This seemed like a natural fit to have him work on the next generation. He has some Arduino experience, but we will see if he can show production quality firmware.
There are other things that are happening too, but there isn’t enough time for me to do all the updates this evening.