Jump to: navigation, search

Difference between revisions of "CobraPin"

Line 60: Line 60:
 
'''J1, J2, J3''': Direct input switches.
 
'''J1, J2, J3''': Direct input switches.
  
'''J4, J5''': Remaining direct input switches <OR> switch matrix input/output.
+
'''J4, J5''': Remaining direct input switches <OR> switch matrix input/output. See MPF section below for switch matrix anomalies
  
 
===Neopixel RGB LEDs===
 
===Neopixel RGB LEDs===
Line 81: Line 81:
 
CobraPin specific info can be found here: [https://docs.missionpinball.org/en/dev/hardware/opp/cobrapin/index.html CobraPin on MPF Docs]
 
CobraPin specific info can be found here: [https://docs.missionpinball.org/en/dev/hardware/opp/cobrapin/index.html CobraPin on MPF Docs]
  
== STM32 Programming and OPP Configuration ==
+
===Switch Matrix===
The firmware on the STM32 board exists in two parts: the '''base application''' and the '''OPP configuration'''. As delivered, the boards should be programmed and configured appropriately. But if you need to updated something or replace a processor board, this section is for you. The base application must be programmed with a separate programming device while the OPP configuration can be changed over USB via Python scripts.
+
The switch matrix can be a little confusing. '''OPP drives its matrix output with HIGH pulses''' as opposed to pulsing LOW like Williams and others did. The switch matrix diodes should point from the CobraPin '''SW MATRIX OUT''' connector to the '''SW MATRIX IN''' connector. So the band on the diodes should be closer to the '''SW MATRIX IN''' connector.
===Programming===
+
 
 +
This means you may have to swap your rows and columns connectors if you have a matrix from an old machine. If you do this, you will have to transpose your matrix switch numbering since the rows are columns and the columns are the rows now.
 +
 
 +
Additionally, switches inputs from a matrix in MPF appear to be inverted. So when a switch is open or '''OFF''', it appears in MPF that it is closed or '''ON'''. To fix this, you have to invert it again. So you add "'''type: NC'''" to the switch definition of a normally-open matrix switch. The '''NC''' stands for Normally-Closed. I know it is backwards. Maybe we can fix it, but that is how it currently works.
 +
 
 +
== STM32 Flashing and OPP Configuration ==
 +
The firmware on the STM32 board exists in two parts: the '''base application''' and the '''OPP configuration'''. As delivered, the boards should be flashed and configured appropriately. But if you need to updated something or replace a processor board, this section is for you. The base application must be flashed with a separate programming device while the OPP configuration can be changed over USB via Python scripts.
 +
===Flashing===
 +
You can download a snapshot of the OPP source here: [https://sourceforge.net/p/open-pinball-project/code/HEAD/tree/trunk/ OPP Source]
 +
 
 +
The STM32 firmware images can be found in the folder '''Stm32Workbench / Gen3Images /'''
 +
 
 +
'''Instructions for flashing''' the base application on to the STM32 board can be found here on the OPP site: [https://openpinballproject.wordpress.com/2020/11/03/11-3-2020-loading-stm32-firmware/ Loading STM32 Firmware]
 +
 
 
===Configuration===
 
===Configuration===
  

Revision as of 00:07, 16 January 2021

CobraPin Pinball Controller

This page is under construction

CobraPinV0 2 isoSmall.jpg

Overview

CobraPin is a pinball controller designed to offer a basic all-in-one assembled affordable solution. It is intended to be hosted by a computer running the Mission Pinball Framework (MPF) and is based on the Open Pinball Project (OPP) It will be released to the public in 2021 on Kickstarter.

Features:

  • 24 coil drivers for solenoids, flashers, motors, etc. Outputs are broken out into 3 banks of 8 outputs.
  • 38 direct switch inputs <OR> 22 direct inputs and an 8x8 switch matrix
  • Neopixel support for 512 RGB or RGBW LEDs
  • 24-50V power filter. Board also provides the common ground for the supplies.
  • Fuses for solenoid banks and Neopixels
  • Easy replacement of at-risk components
    • Processor boards are socketed
    • Transistors can be removed with simple soldering tools and replaced with through-hole components
    • Fuse clips for common 5x20mm fuses

Future Hardware Plans

Expansion Board

An expansion board for CobraPin is planned, but not yet complete. It should support a lamp matrix, 8 additional coil outputs, and 8 additional direct inputs. The purpose of the expansion board is to make it easier for people to control existing machines with flashers and matrix controlled lamps

Segment Displays

While regular segment displays will not be supported by CobraPin, custom alphanumeric boards are planned. These will likely be controlled by the neopixel output although they will be mono color. Each segment will act as a neopixel channel. For example, a WPC89 16x2 character display would take at least 182 effective neopixels out of the 512 available on the CobraPin.


Wiring

CobraPinConnectionDiagram.jpg

Power Input

Power comes in to the board on two 4-pin 3.96mm pitch connectors. The default connectors are JST VH style. The pinout is labelled in silkscreen on the board.

J9: Coil power input (24-50V)

J10: Neopixel 5V input

Coil Power Output

The output power for the coils comes from a 3-pin 3.96mm JST VH style connector. These outputs are fused by F1, F2, and F3. Each pin provides an output for one of the coil banks. The pinout is labelled in silkscreen on the board.

J13: Coil power outputs

Coil Ouputs

The 24 coils are broken up into 3 banks of 8 outputs. The 3 9-pin 3.96mm connectors are JST VH style. There is a ninth pin on the connector that can be used as a key. That pin is marked by an asterisk in silkscreen. The coil outputs are labeled in silkscreen with the MPF compatible numbers.

Each coil output has a diode to help protect the transistor. You may still use coils with axial diodes installed, but you MUST ensure that you connect them with the correct polarity.

J6: Coil bank A outputs

J7: Coil bank B outputs

J8: Coil bank C outputs

Each bank has an LED next to it to indicate if that bank has power. Check these if you are concerned you have blown a fuse.

Each solenoid has an associated yellow LED to indicate it is being driven by the processor. It is highly recommended to test a new setup without high voltage power or without the coils plugged in. Using these LEDs, you can verify that each output is being driven correctly.

Switch Inputs

There are 5 9-pin 2.54mm pitch KF2510 style connectors for switches. The switch inputs are labeled in silkscreen with the MPF compatible numbers. Each connector also includes a logic ground pin. Use this for the direct input return. The two pins labeled “N/C” are not connected to anything.

J1, J2, J3: Direct input switches.

J4, J5: Remaining direct input switches <OR> switch matrix input/output. See MPF section below for switch matrix anomalies

Neopixel RGB LEDs

There are two neopixel chains that support 256 RGB pixels each for a total of 512. These outputs are on 2 3-pin 3.96mm JST VH connectors. RGBW pixels are also possible.

The J14 fused output can be used to provide additional power taps in a neopixel chain. This is a 4-pin 3.96mm JST VH style connector. Each pin is rated for 7A continuous. The fuse holder is rated for 10A. The red D25 LED can be used to confirm you have a good fuse (F4) and are providing power for neopixels.

J11, J12: Neopixel outputs

J14: Fused 5V output

USB

The two processor boards are connected to the host computer via two separate micro-USB cables.

MPF Configuration

It is HIGHLY RECOMMENDED that you start your MPF game-making journey with the MPF Tutorial

For detailed MPF documentation, head over to MPF Docs

CobraPin specific info can be found here: CobraPin on MPF Docs

Switch Matrix

The switch matrix can be a little confusing. OPP drives its matrix output with HIGH pulses as opposed to pulsing LOW like Williams and others did. The switch matrix diodes should point from the CobraPin SW MATRIX OUT connector to the SW MATRIX IN connector. So the band on the diodes should be closer to the SW MATRIX IN connector.

This means you may have to swap your rows and columns connectors if you have a matrix from an old machine. If you do this, you will have to transpose your matrix switch numbering since the rows are columns and the columns are the rows now.

Additionally, switches inputs from a matrix in MPF appear to be inverted. So when a switch is open or OFF, it appears in MPF that it is closed or ON. To fix this, you have to invert it again. So you add "type: NC" to the switch definition of a normally-open matrix switch. The NC stands for Normally-Closed. I know it is backwards. Maybe we can fix it, but that is how it currently works.

STM32 Flashing and OPP Configuration

The firmware on the STM32 board exists in two parts: the base application and the OPP configuration. As delivered, the boards should be flashed and configured appropriately. But if you need to updated something or replace a processor board, this section is for you. The base application must be flashed with a separate programming device while the OPP configuration can be changed over USB via Python scripts.

Flashing

You can download a snapshot of the OPP source here: OPP Source

The STM32 firmware images can be found in the folder Stm32Workbench / Gen3Images /

Instructions for flashing the base application on to the STM32 board can be found here on the OPP site: Loading STM32 Firmware

Configuration

Troubleshooting

Replacing Components

STM32 Processor Board

Transistor

Fuse