What’s the story behind it? I posted some I posted some 6-segment LED display concepts on DeviantArt and a fellow named Andrew showed strong interest in it as a pinball score display. (Something I hope to pursue later!) He also linked me to his 2015 Ohio Pinball Show gallery on Facebook. This got me interested, and a couple months later my dad and I visited the Lone Star Pinball Museum.





Me and my dad at the LSPA museum.





Enamored with all the various pinball machines, I had developed more interest in the art, design, and mechanics of pinball machines. Later I noticed someone commissioning an artist for pinball plastics art on DeviantArt! The next thing I did was look for pinball parts or some general purpose hardware that was ideal to control such a machine. But I was surprised by what I found, and didn’t find.



The Search for Power Control I love the idea of node based controllers seen in modern pinball machines, but nearly all of them are proprietary and virtually undocumented! The hardware available for custom machines run about ~$100+ per board, are generally large (~20 sq in./~130 sq cm), require a separate main controller, and have a fixed serial protocol and rate. Other boards were understandably meant for use in existing, typically older machines, and were more expensive.





From the “build your own” perspective, there were numerous Audrino FET shields to chose form, (and relay boards), but all with different specs, hardware interfaces/terminals, and limited FETs. Of course they also required a separate Arduino or controller board.





Many people just use an Arduino Mega and run wires to multiple different modules and components. The same could be done with the awesome Teensy 3.5/3.6, (an ideal main controller for pinball in my opinion). But the otherwise tedious point-to-point or expanded board-to-board method didn’t seem very appealing, easily scalable, or space conscious. There’s already enough unavoidable connections to be made.



Building the Answer With FETs being the common denominator in most of my projects, after trying to find a flexible driver node solution, it struck me. Why not develop a node board that’s configurable by the designer, not only in protocol and function, but also in choosing wiring connectors and FETs?





The “General Purpose N-Ch FET Driver Board Node” was born and evolved into the Protean 710, then to the Protean 8X2 supporting N and/or P channel FETs! It’s the size of two Arduino Unos, just about the same board area as a Stern driver node, but more independent power outputs. It’s also a third smaller than other available boards with similar output counts.





Debug and power test unit with debug LEDs using the Protean 8x2 prototype V1 with V1.2 and V1.3 mods.





With an abundance of processor and IoT devices out there, it’s my hope to bring the power hardware side of things more up to speed in versatility and flexibility, filling the void between power control and microcontrollers. While I won’t dare claim the Protean 8x2 completely fills that void, I honestly think it greatly helps!



Details and Specs! Technical: Controlled by the ATmega328P, the classic Arduino chip (which includes TWI/I²C and SPI interfaces)

RS485 interface chip (data direction controlled by pin D2; tested up to 2M baud)

Recommended logic supply: 3.3V to 5V

Output/High voltage side designed to work up to 100 volts, (and has been tested with ~120V pulsed DC)

16 optically isolated channels (main I/Os).

Up to 3.67 amps on a single channel with bare PCB trace

Up to 7 amps on FET source common with bare PCB trace

Power traces bare, allowing for added solder to increase current handling.

LED indicator for logic power

LED on port D3, (or digital pin 3). Component Footprints Ready:

TO-220 case FETs

4-pin DIP or gull wing SMT optocouplers

LED (3mm) and resistor for main power indicator, (both upper 8 and lower 8 channels)

5mm x 20mm fuse holder or capacitor, (both upper 8 and lower 8 channels)

Vgs, or gate-to-source voltage select resistors, surface-mount or through-hole, (both upper 8 and lower 8 channels)

Back-EMF/flyback protection diodes, (surface-mount on top or through-hole on bottom)

Optional lower value gate discharge resistors, surface-mount or through-hole, (100k already included)

An LD1117S regulator in an SOT-223 package for POE on spares configuration, (on bottom of board)

TVS diodes in an SOT-23 package for ESD protection on power, RS485 lines, TWI/I²C lines, port D3, and the 16 I/O header pins, (all on bottom of board) Connectors Supported: Main power connector pitches: 3.5mm/~3.8mm, 0.156" (3.96 mm), and 0.2" (5.08 mm)

Main power connector alternatives: 0.2" pitch PCB mount quick connect terminals (would straddle two channel lines if used as output)

Logic power connector pitches: 0.1" (2.54 mm), 3.5mm/~3.8mm, and 0.156" (3.96 mm)

Vgs connector pitches (as part of main power connectors): 3.5mm/~3.8mm and 0.156" (3.96 mm)

Vgs connector pitches (next to main power connectors, as part of the newer V1.3 board that will be shipped for the rewards): 0.1" (2.54 mm) pitch Mechanical: Board Dimensions: 2.7" x 4.6" (68.6mm x 116.8mm), the size of two Arduino Unos

Mounting Hole Centers: 2.4" x 4.3" (~61mm x 109.2mm) Jumper configurations are illustrated on the back of the board. Jumpers and other various connections will also be illustrated on wiring guides and quick reference graphics. A place for...Jumper configurations are illustrated on the back of the board. Jumpers and other various connections will also be illustrated on wiring guides and quick reference graphics.





Size comparison, Arduino Uno and Protean 8x2 V1.2

Use as an IoT Device

Because the UART (Rx & Tx) has its own headers, an HC-05 or HC-06 Bluetooth module can easily plug right into the Protean 8x2. Likewise, the 2x4 breakout headers for the RJ45 jacks can alternately be used for an ESP8266 Wi-Fi transceiver or an NRF24L01 transceiver. Connect them to their respective interfaces using jumper wires or wire-wrap wires. Power the Protean 8x2 at 3.3V to avoid damage to the modules.





(Note that using the SPI interface with the NRF24L01 module will use at least 3 power channels, particularly pins PB3-PB5, or digital pins 11-13.)





Simultaneous Input and Output Handling Notice I’m pushing the buttons before it gives me control and after it takes it away.



The Protean 8x2 can use each channel as an output and input simultaneously. This is ideal for initializing immediate responses for things such as pop-bumpers, slingshots, flippers, model train horns, or a set sequence of events. Once an input is received, the microcontroller or MCU can take full control. To accomplish this, each channel uses a simple resistor network as shown in the schematic below: The Protean 8x2 can use each channel as an output and input simultaneously. This is ideal for initializing immediate responses for things such as pop-bumpers, slingshots, flippers, model train horns, or a set sequence of events. Once an input is received, the microcontroller or MCU can take full control. To accomplish this, each channel uses a simple resistor network as shown in the schematic below:





How the ATmega328P pins connect to the optocouplers and header. TVS diodes optional.





Given the schematic, you can tell the input would be a non-isolated logic level active high, (specifically a rising edge). This also means that shorts against ground aren’t high risk if the pin is high. But it also means to source or sink the full rated current of the MCU, (if needed), you’d have to short the resistor to the header pin.











Software



While anyone can program the Protean 8x2 how they wish, just like an Arduino, I’ve written a simple serial protocol that you can find at GitHub: https://github.com/adamlhumphreys/Protean8x2-C . It’s almost 2Kb compiled, uses a few simple 5-byte commands, and has no error checking, (at least not yet). You can configure channels as outputs, inputs, (active high or active low/pullup; state change or one time press event), and control a 5x7 matrix with fixed digits, all via RS485. Excess bytes are ignored.





USB to RS485 adapters used in software development. Notice one has a TTL serial mod.









Development Progression First thoughts on paper. There were more holes and things took up way too much space. One of a few breadboard based driver tests. Protean 710, 7 inputs and 10 isolated outputs with classic DIP ATmega328P. Initially I supposed it would be easier to program another chip and swap it with a DIP. But after some thought, it occurred to me that shouldn’t really be necessary and might actually be more troublesome depending on where it could be mounted. My attention also turned to focus on outputs, (especially given only slightly more board space was required), and P-channel support. This is also the board on which the software and protocol was developed.

Protean 710 and 8x2 comparison with SMT sketches.

First Protean 8x2, V1

Version 1 board from OSH Park , soldered by hand. After some more thought and consideration, I realized that if I wanted to keep the optocouplers within their collector-emitter voltage limit for P-channel FETs at 35V+, I needed to change things. The result was a simpler and cleaner board, V1.2.

The Protean 8x2 V1.2 (from my small production test run) with quick-connect terminals! Wire wrap wire on RJ45 headers to RS485 headers for neatness, (though admittedly a little too close cut).

This is what the Protean 8x2 V1.3 will look like, and what will be shipped. Changes include Rx & Tx headers, improved silkscreen, and extra hole/pad on each side of the board for Vgs 0.1" pitch connector support. It will also include default jumper configurations based on backer feedback.



What’s Done So Far Research

Board development and design

Logo design, (inspired by my nephew Blake who made the initial concepts)!

Prototyping

Software development for a simple serial protocol as an Arduino .ino sketch written in C/C++ (i.e. without using Arduino functions) on GitHub.

Prototype Testing

Part sourcing

Manufacture and assembly estimates acquired

Small test production run (20 boards) received and evaluated

Started designing wiring guides What Needs to Be Done, Kickstarter’s Crucial Role Purchasing

Develop test procedures, program, and/or fixtures

Testing (likely myself but possibly the assembler depending on volume)

Finish wiring guides and quick reference graphics/documentation

Packing and shipping rewards

Software development using specifically Arduino functions, (if interest is expressed, and I would think it would be)

Release Arduino enabled code on GitHub for open source development and contribution, (would keep C/C++ only and Arduino function variants separate)

Publish schematic (Available now to backers!)

Is it open source?

The software is open source and can be found here: https://github.com/adamlhumphreys/Protean8x2-C But what about the hardware? In truth, the answer is, “not yet.” The schematic will be available, but not the fabrication files as of yet. The reasoning for this is multifaceted. Firstly, the design itself isn’t particularly interesting being mostly repeated blocks. But it goes deeper than than.

I love open hardware, but at the same time, I recognize the convenience of buying an existing board. I don’t generally see myself going through the process of buying boards and taking the needed time to assemble them myself, especially several SMT parts. If I bought them assembled, it would still cost significantly more. But isn’t that what makes open source hardware great since large manufactures with established malleable financial assets can make and sell them by the thousands? Let’s get to that.



This is my first serious crowd-funding effort, PCB project, and open source software, so I’m admittedly nervous. I’ve set the bare minimum goal I can to get this project know and to purchase, test, and ship the boards. I wouldn’t recoup the hundreds of personal hours of research and development I’ve put into it, not to mention the cost of development parts and boards.



So, at what funding level would I recoup my development? According to my spreadsheets, at a lower rate than I anticipated, about $25,000, or about 1,000 boards. So why didn’t I just set that goal? The price point would’ve been the same, but I have no idea how much interest there may be in the Protean 8x2, and Kickstarter is all or nothing. Thus I thought it best to chose a middle ground where something is better than nothing for those who are interested.



How open would it be? If I’m able to recoup my development costs, (either via this campaign or otherwise in due time), in addition to what will already be available, the PCB files and BOM would also be made available, likely under a Creative Commons license. Not only would I be motivated and fiscally able to continue developing more boards, but other individuals and companies could support them indefinitely! Therefore, having this project being fully open source is actually very important to me for many reasons.



Open source hardware is also important to me because this means a machine can provide years service without support being cut off. I hate that upkeep costs for a pinball machine, (or really any machine), can be so high because the proprietary hardware that makes it work is no longer readily available and no one else can make or even improve on it. While the obsolescence of some machines may not always be explicitly planned, I also personally hate planned obsolescence.



Estimated Maximum Lead-times 1 Month for parts acquisition, either buying myself or the assembler, assuming all parts are available. Otherwise, if multiple suppliers lack sufficient stock, particularly for the ATmega328P and the RS485 controller, lead times could be a few months, but I sincerely doubt that would happen all at once.

for parts acquisition, either buying myself or the assembler, assuming all parts are available. Otherwise, if multiple suppliers lack sufficient stock, particularly for the ATmega328P and the RS485 controller, lead times could be a few months, but I sincerely doubt that would happen all at once. 1.5 Months for PCB fabrication and assembly (ideally shorter, but issues could pop up or I could have more backers than I’d expect)!

for PCB fabrication and assembly (ideally shorter, but issues could pop up or I could have more backers than I’d expect)! 1 Month for testing (if doing it myself) and shipping. Of course this also depends on volume and reception. If I find myself filling 2000 orders, (which would be awesome), it may take slightly longer.

for testing (if doing it myself) and shipping. Of course this also depends on volume and reception. If I find myself filling 2000 orders, (which would be awesome), it may take slightly longer. Estimated delivery time: June 2017, just in time for summer projects! Software Plans (out of campaign scope) Later, I’d like to implement an initialization sequence where things such as baud rate and address can be setup with one-time hardware configuration/initialization and stored in EEPROM without the need to re-program the ATmega328P. Stepper motors would be another thing I’d want to support. Later, I’d like to implement an initialization sequence where things such as baud rate and address can be setup with one-time hardware configuration/initialization and stored in EEPROM without the need to re-program the ATmega328P. Stepper motors would be another thing I’d want to support.



Long Term Goals (out of campaign scope) Developing different boards for more specific driver purposes, such as a triac version; a board with larger FET package and heat-sink support but fewer channels (already named by my nephew Blake!); an independent 64 input OR lamp/LED output node board; standalone coil control board; and hopefully more!

Making improvements

Use the newer ATmega328PB when it gains more support and also research ARM

Keeping the boards available (which admittedly depends on reception, volume, etc.) on Tindie, Etsy, and perhaps some distributors. Why the ATmega328P? The board design itself can actually accommodate the newer ATmega328PB, but I chose the ATmega328P for a few reasons: Arduino compatible “right out of the box” being very widely used, thus easily programmable.

5V ready. Most older pinball games would likely use 5V logic, which would otherwise require a resistor divider for reading 5V signals for modding, etc.

I honestly haven’t yet had the time to dive into the world of ARM. But I certainly want to, at least the Cortex M0/+ chips. Experience Over the years I have, and continue to do things as electrical wiring, small circuit design, repairing many various appliances, and solar installation. I am familiar with various power hardware failure modes, and most of them typically include relays, contactors, switches, capacitors, or cold solder joints. The board design itself can actually accommodate the newer ATmega328PB, but I chose the ATmega328P for a few reasons:Over the years I have, and continue to do things as electrical wiring, small circuit design, repairing many various appliances, and solar installation. I am familiar with various power hardware failure modes, and most of them typically include relays, contactors, switches, capacitors, or cold solder joints.





I began working with microcontrollers since 2012. Since then, I’ve made a number of small projects here and hope to continue developing my kWh logger and a proper greenhouse controller. I’m always looking to continue growing my knowledge of microcontrollers and general electronics, (among other things if your familiar with my profiles). I’ve also contributed a small bit to the Arduino-IRremote library ( https://github.com/z3t0/Arduino-IRremote/pull/268 ) and hope to add a mask based optimization in due time.





See my biography for more details and history.

