This week there was a good amount of time to work on the next generation of OPP hardware. The hardware design/layout is all completed and was ordered on Wednesday through ITeadStudio. The cards should show up in three to four weeks. All of the parts from Mouser have been ordered including the processor cards. The processor is separate so all of the embedded development can happen even before the cards from ITeadStudio are received. Here are the major changes that are in this new version of hardware:
- The main processor has be changed from a MC9S08SE8 to a PSoC 4200 processor. The original processor’s package has been End of Life’d. That means either changing packages (which would mean moving to a surface mount package), or switch to a different processor with a development card so all the cards can keep using through hole parts. I chose to switch processors. The choice was then between the Teensy LC, STM32 discovery boards, and the PSoC 4200 Prototyping kit. They are all Cortex-M0 processors, but only the STM32 and PSoC are 5V processors. (Useful when enabling/disabling FETs without needing to voltage shift). The STM32 boards have a larger footprint, so I ended up choosing the PSoC 4200. Here is a quick link to the prototyping kit from Mouser. The prototype kits are $4 which is below my target price. Since it has 32 useable I/O pins, each card can support up to four “wing” boards.
- The original processor required a debugger to program the chip. The new processor has a bootloader built in at the factory, so no debugger is needed.
- Connections between cards was previously accomplished using a 4 pin 100 mil header. The new boards will use an eight pin ribbon cable to make wiring between cards easier. The 8-pin ribbon cable adds a couple extra signals including 12V and a synchronization pulse.
- The solenoid cards used to use an individual spade terminal to kick the solenoid, and a 2 pin 100 mil header for each switch input. The new solenoid cards use a six pin 4.2 mm spaced Molex connector to kick the solenoids and return the solenoid current, and a single 4 pin 100 mil header for all the solenoid inputs. Having only two connectors will make it easier to remember the location of the connectors. This was particularly a problem with the input card since it contained 16 individual connectors that all looked the same.
- The input only “cards” now have a single 8 pin 100 mil spaced connector for all the inputs. There is actually no board needed for the input only functionality, the 8 pin header is simply soldered into the PSoC 4200 board.
- The new board supports an incandescent wing board. Previously, the incandescent drivers were driven using a SPI bus which was bit banged from the main computer. The new incandescent wing board can support eight incandescent bulbs, and communicates using the normal UART bus. A synchronization signal has been added to insure that all incandescent boards can synchronize their blinking if desired. Instead of using four 2 pin 100 mil spaced headers to drive the bulbs, a single 8 pin 100 mil spaced header is used. Again, this makes it easier to remove and re-install cards and keep track of wiring.
- A card with support for a SPI bus or a Neopixel driver. After talking to a bunch of people at Pintastic, many people were interested in driving WS2812 LEDs. I have shied away from this for a long time because I don’t believe I have the artistic ability to utilize colored LEDs. It is very simple to use the SPI interface which is part of the 4200 to command the multi-colored LEDs. The 4200 running at 5V means no level shifting is necessary to talk to WS2812 based strip LEDs.
- Previously, each board (input or solenoid) had a different load of firmware on it. The new boards have enough flash memory that a single version of firmware will support all of the “wing” boards.
The PSoC 4200 has two 8 bit wide ports on the left side of the card, and two 8 bit wide ports on the right side of the card. (It also has a USB to serial port converter on top of the card, which kind of looks like a head because it is made to be easily snapped off). Two “wing” cards are soldered to the left side ports, and two “wing” cards are soldered to the right side ports of the processor, making the whole setup look sort of like a dragonfly. Up to four wing cards can be populated if desired. In some cases, it might make more sense to add another PSoC 4200 board to keep wiring lengths to a minimum.
The new mashup PCB which is in the repository contains the following “wing” cards: three solenoid drivers, one input board, two incandescent boards, and two interface boards per PCB. The PCB is laid out to fit on a 10 cm x 10 cm board. Each solenoid board can drive 4 solenoids. The input board can drive a single SPI interface (probably used to drive multicolor LEDs). Each incandescent board can drive eight incandescent bulbs (or LED bulbs). The interface boards contain ribbon cable connectors for communication and a communication connector that matches the first style of OPP cards for backwards compatibility. (Two pins are reserved on the ribbon cables to insure that the cables can’t be plugged in incorrectly. These could easily be converted to support differential transmit/receive signals if I find it is necessary.)
Here is a quick picture of the mashup PCB:
There was a Pinside thread which discussed the differences between PROC and Fast pinball controllers. Both PROC and Fast controllers are great solutions and available right now. During that thread, both of the people that have the original OPP cards chimed in about using the OPP hardware. (Thanks guys, it is always nice to hear that you have had positive experiences so far.) The original poster mentioned that the OPP hardware was not going to be a possibility because there is no “Buy it Now” button. I have stated to many people that I am not going to manufacture cards because I work on pinball as a hobby. That being said, how would a person get the OPP hardware that they wanted? Up to this point, all the people have contacted me via email, and if I think that they have a real project to work on, and they sound like they have a chance to finish the project, I agree to send them out hardware. (In all those cases so far, I have both populated and tested the boards) That is not a sustainable model in the long term. My current thoughts are that people contact me, and I send them out the bare boards, and then they order the parts to populate the boards locally. (Through either Mouser or Digikey).
When ordering boards (an order costs $30.50 which includes shipping to the US), ten copies are received from ITeadStudio. (Each ordered board contains the eight individual cards). I believe that it will take 2-3 PCBs for a pinball machine (depending on the desired features). So for a single order, you can build approximately three pinball machines. It doesn’t make sense for each user to order boards themselves since they will only use 1/3 of the order. That is why if they contact me, I can take care of sending them the boards that I have available and they don’t need to order from a board house. That should remove many people’s fears of needing to learn Kicad, talk to a board house, etc.
Let’s talk about the people that should not use this board set. The board set does not support DMD interfaces, or old style displays. It is assumed that a computer (such as a Raspberry Pi, Beagle bone black, etc will front end these cards, and will provide display capabilities). The board set is tailored towards wiring a machine from scratch. I would like to encourage people to put these boards below the playfield to make the wiring as minimal and simple as possible. The board was designed as a distributed system, and bringing all the wires to the back box removes most of those benefits. The one concrete reason why this board set may not work as a replacement boardset for a standard pinball machine is that the solenoid switches may be part of the switch matrix. To make the solenoids fire as quickly as possible, I have assumed that solenoid switches are not part of the switch matrix. I am going to attempt to update a machine this Fall without rewiring it, and just attaching the cards in the backbox. Since I haven’t done that yet, I can’t be certain it is going to work without requiring wiring changes. Both the PROC and Fast controllers are meant to be drop in replacements for many old boards. Choose whichever one of those best matches your needs.
So how much is this going to cost to build a set of these boards to support a pinball machine. I will use the SS3 features to calculate complete costs for the boards. SS3 uses the following rev 1 boards: two solenoid boards, two input cards, and six incandescent boards. That means that it will require four PSoc 4200 cards to run the system. The total cost for the whole system, including connector costs and shipping costs is $95.83. Actually a more apples to apples comparison would be to drop out the connectors which brings the price down to $66.75. (I’m guessing when they quote PROC/Fast prices, they don’t include the connectors that you need to actually use the boards.) Here is a link to the Gen2Board Board Cost that calculates all the costs. If I switched the insert lighting to WS2812 style serial LEDs, the cost would go down even further.
I am currently hoping that all the embedded code is updated, running, and tested by the end of this year. It should not take that much work, I just don’t want to over promise and not deliver.