We're back!

After a disaster in our datacenter took down our server, we are now running Pinside on a brand new server. However, things may not work as expected as we are still polishing the playfield and adjusting some switches! We might be switching to maintenance mode a few times. Please see this forum topic for more info.

(Topic ID: 262290)

Trying to revive an old EM (Dealer's Choice) with OPP and MPF


1 year ago

Topic Heartbeat

Topic Stats

  • 59 posts
  • 8 Pinsiders participating
  • Latest reply 8 days ago by BENETNATH
  • Topic is favorited by 8 Pinsiders


Linked Games

There are 59 posts in this topic. You are on page 1 of 2.
#1 1 year ago

Hi all,
I'm creating this topic to gather some help on this project.
I'm more a dot pinhead than EM, but I've got this old EM, staying in the basement, nearly working but not so well, noisy and damaged.
My decision is to remove the whole EM part and switch the pinball to a modernized version, using Open Pinball Project and Mission Pinball Framework.

I'm quite ok with all the wiring, electric and mechanic stuff, but newbie for the programming and OPP stuff.

I'seen that the main processor was changed recently to use ST FM cards, seems doc is not updated yet, so I hope to get some love for this topic and help from gurus ^^

I've listed the following :

* Coils : 4 flippers (double wiring), 2 slingshots, 3 bumpers, 1 ball tray, 1 knocker, 3 chime, 16 coils for the scoring system in the back box
TOTAL : 30 coils (34 including the double wiring, as it seems that each flipper coil shall be considered as 2 coils ( 1 for action, 1 for hold)

* Switches : 1 ball tray, 2 flipper buttons, 1 start, 4 slingshots, 6 lanes, 10 rollover, 9 targets, 3 tilts, 3 bumpers
TOTAL : 39 switches

* Lights : 12 GI, 31 active + 21 active in backbox

For the power, I've got the power supply from the original pinball, and also a 12V available, I'm not sure what would be the best option?

Based on the actual status, It seems that I'd need a Raspberry Pi 4 to run MPF, and various boards to have OPP onboard.

I've made a google sheet to list the items, feel free to comment

I've also started the config file :
(will setup a git later)

Boards :

A) Solenoid boards supports up to 8 solenoids :
1) 2 left flippers (double wired) + left slingshot
2) 2 right flippers (double wired) + right slingshot + ball tray
3) 3 bumpers (direct switch ?)
4) Player 1 and 2 scorings (4 coils each)
5) Player 3 and 4 scorings (4 coils each)
6) chimebox + knocker

B) Switchs boards supports 16 switches :
1) Lower part of the playfield (lanes, slingshots)
2) Median part of playfield (rollover + targets)
3) Upper part of playfield (lanes + targets)
4) flipper buttons + start button

NB : not sure about the role of the switch input on solenoid boards, especially for slingshot, flipper buttons and bumpers..Shall be direct switch that trigger the coils without going to the processor board ?

C) Incandescent Wing supports 8 lights :
it seems that i need at least 4 for the playfield and 3 for the backbox.

D) Power filter board : not sure if i need it ..

Can anyone confirm :
- how many ST card do i need (as i dunno how to plug board on them
- if my board count is ok
- if my item list seems also ok

That's just the starting point


#2 1 year ago

Hi Ben,

The counts sound ok. I recommend to get one or two spare boards just in case you missed something or stuff bursting in flames. For modern machines you probably want a 48V switching power supply. Should also work for the older stuff. 24V might also work. AC supplies definitely do not work without further electronics.

We do not recommend the RPi as a development machine. It just ain't fun with an IDE. Use some old PC or notebook. When it is all done you can switch to the PI.

You need proper ground and earth wiring. Otherwise this will be dangerous. The simplest way to get this right is a power filter board. It prevents a lot of dumb mistakes which would burn stuff or even might injur you. If in doubt get one.

Those sections should give a broad overview about the topics: http://docs.missionpinball.org/en/dev/hardware/voltages_and_power/index.html


#3 1 year ago

I'll add some, just in case.
I've thought also about the scoring wheel during this night. I wonder if some switches are needed to detect the zero position.

Are there any exemples of EM working with MPF?

Edit : bingo, 1 switch per counter, 16 additional switches to handle

#5 1 year ago

No, thanks!!

#6 1 year ago

I was wrong with the counting, as solenoids wings are only for 4 coils and switches wings are for 8 switches.
I'll need more than expected !

Total updated in the spreadsheet with location of boards and wings.

Can anyone take a dive in it , please ? I'll take the order soon

#7 1 year ago

Hi, I'm following a similar path with thinking about and trying to write the code for converting a GTB sys1 to OPP + MPF. If I can get this achieved I thought I would write my own expanded ruleset for the game.

As I understand it the new ST processors do not chain serially, but will use the usb connection so you may need a hub to "star" connect each ST processor.

Are you aware of the plank boards for OPP - there are some restrictions with the newer ST processors. I think the plank only fits on one side due to different pin arrangements on the ST. I believe the new processor will be able to support serial leds which may change your thinking on lamps as it would allow a string of led to be run from just one pin.

Not sure how you're making your printed circuit boards, but some of the gerbers I got from the OPP repository didn't seem to work when I uploaded them to SeedStudio - but that may be something I'm doing. It's a fair way down the track for me, so I put it aside until I made good progress with the code.

Good luck with the MPF programming - I'm finding it has so much flexibility that there are many ways to achieve everything and it's hard to work out which way is "best", sometimes it's hard enough just getting something to work at all. I bash away and usually make some progress there but it's a steep learning curve and takes lots of time. The MPF documentation also seems to lean more to DMD style machines with an emphasis on slides which is a little different to what I, and I think you, will be trying. This is not a criticism of MPF by the way, it's great that it's available for us and a massive effort from those creating it which i really appreciate.

Good luck and I hope you keep this thread updated as you progress. I plan to start a thread on my game when I feel I have enough to say.

#8 1 year ago

Have you considered a configuration based on where the boards need to be located.

Quoted from BENETNATH:

* Coils : 4 flippers (double wiring), 2 slingshots, 3 bumpers, 1 ball tray, 1 knocker, 3 chime, 16 coils for the scoring system in the back box
TOTAL : 30 coils (34 including the double wiring, as it seems that each flipper coil shall be considered as 2 coils ( 1 for action, 1 for hold)

* Switches : 1 ball tray, 2 flipper buttons, 1 start, 4 slingshots, 6 lanes, 10 rollover, 9 targets, 3 tilts, 3 bumpers
TOTAL : 39 switches

* Lights : 12 GI, 31 active + 21 active in backbox

Starting with solenoids: There are 16 coils for the scoring system which are all in the back box. That can be realized using two STM32 cards full up with solenoid wings. That also gives 16 direct inputs for figuring out things like when the score reels are in the zero position, and error detection, such I pulsed this reel 10 times, but I still haven't seen the carry bit, etc. Not sure what is supported in MPF.

Next are the 3 coils for the chimes, plus the 1 coil for the knocker. Nice to connect together all these guys together on a single STM32 because it is all part of the cabinet. That also gives inputs for the 1 start and 3 tilts. Typically you'll have some incandescents in the cabinet for the coin illumination, so it would be nice to have an incandescent wing down there to make wiring as easy as possible.

So the remaining coils on the playfield itself contains 1 ball tray, 4 flippers (8 solenoids), 2 slingshots, 3 pops. So that is another full STM32 to run all that. If interested, these can be mounted on the bottom of the playfield itself if there is space to fit it. It can make sense to split it into 2 STM32 (such as all the flippers on one towards the bottom, with two incandescent boards to run the active lights at the bottom of the playfield, then a second STM32 towards the top for the ball tray, 2 slingshots and 3 pops + another two incandescent boards towards the top). It seems with all the rollovers there might need to be one more STM32 for the extra inputs on the playfield.

For the two machines I've swapped over, I created a quick sketch of the general locations of STM32s under the playfield. This allowed me to minimize wiring on the bottom of the playfield which makes it much easier to keep things "clean".

Good gosh, I should have looked up the pinball machine earlier. That age of William machines I believe were dual wound coils, but there is an EOS on the flipper where it automatically disables the high power coil. If that is the case, you only need a single solenoid for each of the flippers. There is no need to control the two coils for each flipper individually. Also, with that age of game, I'm guessing that a single solenoid powers both of the left flippers and another single solenoid powers both of the right flippers. If that is the case, it moves the 8 solenoid requirement for the flippers down to only 2 solenoids for the flippers.

Bah, wife is telling me it is time to go to bed. Sorry, about the brevity and scattered-ness of the message. I haven't had any time to respond to many of your questions. Neopixels are coming, but they aren't there yet with OPP.

#9 1 year ago

I had a Dealers Choice a couple years ago!

I did not see any reference to the credit wheel coils. Are you including them?

You should have your flipper buttons as switches on your flipper solenoid wings or at least on the same STM32 board as the flipper coils. That way the flipper delay will only be the time it takes the STM32 firmware to read the button and fire the coil. Otherwise, the delay will also include sending the button read through the USB to your host computer, MPF deciding it needs to fire the coil, and sending the command over USB to the other STM32 board. Nobody likes latency in their flippers.

I cannot remember, were the flippers staged in Dealers Choice? For example, did pressing the flipper button halfway only flip the lower flipper and pressing it all the way fire both upper and lower flipper? Staged buttons could be useful particularly for the left flippers where flipping both at the same time opens a gaping hole between the two.

Just making sure you saw this reference: https://pinballmakers.com/wiki/index.php?title=OPP
It has most of the info you need, just lacking STM32 specific info.

Each STM32 can still support 4 wings. If you use all solenoid wings, that means 16 coils and 16 switches fit on one STM32. The pinout is not quite as perfect as the PSOC version. Wings 0 and 2 do not have 8 consecutive pins. They have 7 in a row and you would have to solder a wire to the correct pin to get the 8th pin.

Wing 0: PA_13, then PB_12 to PA_10
Wing 1: PA_15 to PB_9
Wing 2: PA_14, then PC_13 to PA_3
Wing 3: PA_4 to PB_11

The-Generic-STM32F103-Pinout-Diagram (resized).jpg
#10 1 year ago

Thanks a lot to you both.
Most of my thoughts are currently placed in the Google sheet I've linked in the first topic.

I'll read all your posts and summarize my new questions

#11 1 year ago

As mentioned by cobra18t direct inputs should be used for all the things that are very timing dependent. These include 4 flippers (double wiring), 2 slingshots, 3 bumpers. I also tend to use the ball tray as a direct input because that make it easy to play the whitewood mode without having any MPF programming. Note: This means that you have some wires that go from the cabinet for the flipper buttons to the bottom of the playfield. (You can have a long service loop length of wire to do that (with a connector to make sure that you can remove the playfield easily), but I added only a small bit of wire. I cannot tell you how many times I have put SS3 back together and forgot to attach the flipper buttons to the direct inputs. I immediately have to pop open the coin door to plug in that connector.

I looked over your google document and the parts listed for each of the wing boards seems correct. For the power filter board, if you don't need the processor to be able to disable the high voltage, you can drop out the PCHan mosfet and make the filter board a little more efficient.

Quoted from SYS6:

plank only fits on one side


Quoted from SYS6:

some of the gerbers I got from the OPP repository didn't seem to work when I uploaded them to SeedStudio

That's strange. SeedStudio seems to use the same board house as Iteadstudio (or maybe their prices track to as an amazing coincidence). That being said, all of the files sent to Iteadstudio come directly from the repository. I'm usually ordering from the Kicad\Panel-xxxx projects because that panellizes the cards so they are cheaper. For individuals, I suggest purchasing cards through MezelMods. It will probably make your life simpler.

#12 1 year ago

Sorry BENETNATH for the thread hijack, but it might be relevant to you.

Mezelmods are out of stock on solenoid and incand wing boards - I don't know how often they restock - can't imagine demand is that high and also typical shipping costs from USA to Australia are really high, so that's why I was looking at the board making houses.

I grabbed the gerbers from here: http://svn.code.sf.net/p/open-pinball-project/code/trunk/Kicad/

Below is a screenshot from the Seedstudio gerber viewer - it looks like the drilling mask is not located correctly? Maybe it's something I'm doing (I just upload the zip) or maybe a viewer issue? Panel-1019.zip and Panel-1020.zip look good, Panel-1013.zip, Panel-1014.zip and Panel-1018.zip all seem to have the misaligned drilling issue.

Thanks for any guidance.

panel-1013 (resized).png
#13 1 year ago

openpinballproj cobra18t I've summarized my replies and questions here:

Yes, as made in the google sheet, i've tried to work on the location of each ST32 board, in order to reduce the wiring.
You can see that on the second sheet.

1 ) For solenoids in the backbox, i wonder how the direct input can be used for the zero position. I need these zero switches to reset the score on starting. Are these direct inputs accessible by coding too ? I thought they were only used to trigger directly the coil without programming, like slingshots, bumpers.. If so, I will need to have them on a switch board.

2 ) For the incandescent that are only GI, i do not plan to have them connected to the OPP parts, justs linked to the power.

3 ) Flippers are not staged (that's a part of the gameplay and it's a drainer!), and they are indeed double wound, so I've considered them as 2 individual coils, as mentioned in MPF, one for action, other for hold. Each flipper has his own coil, so 4 coils for 4 flippers, considered as 8 total coils

4 ) For neopixel, i won't wait for that and just use my actual incandescent lights.

5 ) I won't use the credit wheel at all

6 ) About flippers, I totally understand the direct switch idea to reduce timings, but what if i want to add a reverse flippers, or no hold flipper, How is it coded? Again, it's linked to the fact that a direct switch is still accessible at the programming level, or really activating the coil without central interaction. Also, what if i don't want flippers to be active on attract mode ?

7 ) I'm using for my research pinballmakers, MPF and google groups as basis

8 ) for the planks, i get that i can still use the 4 planks on a board, but that i will need to add wires as stated. But physically, are the other pins still attached to the ST32, or shall i consider i'll need to wire each pin ?

9 ) For the planks, I was considering Mezelmods indeed, even if it's overseas, but at the end, I may try to find a French maker to avoid shipment taxes. SYS6
that's interesting to know, you are totally welcome here . Any european seller to recommend ? Which schemas are the good ones ? In the repository, ther are quite a large number of them.. Which Gerber files are the good ones to create individual boards ?

10 ) for the power, What's your advice ? Keep the actual power unit from Williams for the coils and lights (6.3V?) , and add a PC power unit to get the 12V, 5V
Or discard everything and purchase all new, even for coils.

11 ) "if you don't need the processor to be able to disable the high voltage" . What kind of scenario would be for this ? a 'no bumper' mode ?

EDIT : I've made a basket at mouser, detailed in the Basket Order sheet. 183 € for the whole thing, but two ref are missings : P - Channel MOSFET and High voltage 5mm (T-1 3/4) indicator LED. Any alternatives ??

#14 1 year ago

Why ruin a perfectly good electromechanical machine? A little effort into repairing it should result in a perfectly fine machine.

#15 1 year ago

1. Direct inputs and inputs on switch boards are exactly the same. The direct inputs can easily be used for zero positions of the score reels. The reason that direct inputs are very important is for the latency. Only thing to worry about is if the input for something like a pop bumper or a flipper is on a different STM32 card than the drive solenoid. I would not suggest that you do that.
3. I can't tell from the manual, but I'm pretty sure that all the games of that era used an EOS (end of stroke) switch to break the high power kick part of the flip. That being said, both the kick and hold selenoids are driven by a single MOSFET. The MOSFET applies current to both of the solenoids, when the flipper gets to its EOS (end of stroke), it opens the connection for the kick solenoid, and so only the hold solenoid is being powered. That's why I think you may only need 4 MOSFETs or a single solenoid wing for all the flippers. The inputs for the two flippers on each side can be programmed to use a single input so you don't have to wire 2 inputs for each flipper button. The programming of with switch affect which solenoid is completely programmable.
5. You gotta use the credit wheel. Make it sound that much more authentic. I believe Nick added empty stepper units to his multi-bingo just so the sound was correct. I love that stuff and there is nothing better than the sound of an EM. (Maybe I'm showing my age).
6. Good questions. Maybe they were explained above, but maybe not. The activation of the MOSFETs because of an input (either from the same wing card, or an input wing, or even a switch matrix input on the same STM32) happens without talking to the main processor (the thing that is running the rules). The main processor sets which input activates which MOSFET(s). By changing the rule of which inputs activate the MOSFET, you can program all sorts of things such as Daffy flippers, only allow flipping the lower flippers, reduced power flippers, delayed flippers if you want to, etc. The main processor can change the rules throughout the game and that's how flippers are disabled between games. The main processor can also cause solenoids to fire which is how balls are served onto the playfield.
8. A plank takes up two wing card positions and can only be used on the "left" side of the STM32. A plank is simply two wing PCBs jammed together. It also includes the interface board, so it creates a much more rigid assembly of boards. Since the STM32 won't use the interface board portion, that is the only benefit that you are getting from a plank board. (As noted before, it only works on one side of the processor since the STM32 uses two middle pins for the USB communications, and that would mean a lot of rewiring to try and use it on that side of the processor. (Pin 32 and Pin 33 in the above diagram)
9. In the repository there are both individual wing boards, and panels (groups of 8 boards that are scored between them). Some manufacturers will score boards, some will not. ITeadStudios will score boards (last time I checked). With ITeadStudios, you get 8 boards on each 10 cm x 10 cm PCB, so an order gets you 80 boards. For wings, you need solenoids, and incandescent boards. (Input boards are simply the 8x100 mil spaced connector). That being said for $40 US, you could get 80 solenoid wings and 80 incandescent wings. Most people don't need that many, so it is easier to order through MezelMods. That also moves the burden of ordering boards from you onto them. I have no idea how taxes work in France or really anyplace, and hope to keep it that way. That's why I don't sell stuff. Not my area of interest.
10. I'm a sucker for never throwing anything away. I would reuse the high power transformer, and throw in a PC power supply for 5V, etc. I trust a PC's power supply's voltage regulation much more than a big honking transformer from the 1970s but who am I to say. The 6.3V is probably AC for the incandescents so it either needs to be converted through a bridge to DC, or just use the 12V from the PC power supply and step it down with a buck converter. I went the 12V stepped down route, and I've even just used the 5V from the PC supply which would make the lights anemic if not converting to LED bulbs.
11. The situation is if you want to disable high voltage when the coin door is opened. Old machines didn't do that, and there is little to no reason to do that if the machine is running 24V. Heck, you might even feel it if you get hit by 24V. Here is a word of advice. SS3 (sharpe shooter 3) was originally 24V (SharpShooter 2 conversion). Do not try to run 48V through a 24V coil. It doesn't work well, and lets the magic black smoke out of your MOSFETs. Switching to a SMPS running at about 30V gives you more action than the original game would ever have in the day, and makes it much more interesting IMHO.

Quoted from KenLayton:

Why ruin a perfectly good electromechanical machine?

I completely agree, but all the EMs that I have converted were converted because major parts were missing. The score reel motor is gone. 2 of the stepper units have been scavenged for some other game to make it work. Player unit/Match unit is gone. All of the wiring has been eaten by mice. (Why do they like insulation? Must be the nicotine from sitting in a bar for so many years). Sometimes a game can't be fixed.

#16 1 year ago

KenLayton i was initially working in this direction.
But bonus unit is damaged and i failed to get one. and when i made some hack to have it working, I found at the end that nobody in the family was enjoying the huge noise nor the basic gameplay. As the playfield is ruined with painting collapsing, I will sand it down and offer a new life, with additional gameplay and rules and a real family project around that, as we have been doing by the past when we built our arcade. I want this pinball to be played, not only repaired and last here to collect the dust. But that's really a decision based on the state of the machine, and the use i want for it.

openpinballproj :
1. great, so i can use direct input for flippers too. And you confirm that the activation of the direct input switch will not activate directly the coil, it has to be validated by the processor, right ?
3. As there are dual-wound coils, i was just using the basic tutorial of MPF here : http://docs.missionpinball.org/en/latest/tutorial/3_get_flipping.html

number: 0 #
number: 1 #
allow_enable: true
number: 2
number: 3
allow_enable: yes

main_coil: c_flipper_left_main
hold_coil: c_flipper_left_hold
activation_switch: s_left_flipper
main_coil: c_flipper_right_main
hold_coil: c_flipper_right_hold
activation_switch: s_right_flipper

I thought that would be ok to plug each positive wound to one of the coil pins available, separately for each wound. So 2 pins per coils, 8 pins used total for 4 coils.

5. Amen, i agree, will update my sheet on that ^^

8. ok, i don't need planks, just wings, i got the difference now ! bad wordings for me ($my_posts =~ s/planks/wings/

9. I've checked https://jlcpcb.com/ and i can directly send gerber files by wings, prices are ok. But I'm missing gerber file for power and incandesc. only found 1013-SolDrvG2\Gerber\Gerber.zip . Does anyone have the 1014-IncandBrdG2\Gerber and 1018-PwrFilter\Gerber (correct one ?)
Shipment are really cheaper than mezelmods, and prices are at 1€ / board.

10. Same ^^ So I'll reuse the transfo for coils (the coils are really acting well with it, juicy and fast) and GI, and put a PC power for 12V and 5V. Seems feasible ?

Any items to suggest as alternative for the missing ones in the mouser references ,as in my EDIT above.

Thanks a lot !

#17 1 year ago

Damnit, I lost my post because I switched off the page. Now my responses will be much shorter:
1. yes, the direct inputs are "qualified" by STM32 and are configurable.
3. I can't think of any reason using two MOSFETs for the hold/kick coils would be beneficial. Any configuration that I can come up is achievable with a single MOSFET. That includes no hold flippers, weak flippers, daffy flippers, etc. Maybe somebody else can pipe up with something I'm missing? Dropping it to one MOSFET doesn't save much money, but it makes the wiring/configuration simpler.
9. Next couple of days I will throw that up in the repository. I never thought anybody would need individual cards which is why I never bothered adding the Gerbers. Sorry about that. I can't promise it tonight, but hopefully in the next few days.
10. Sounds good.

Alternate for LED. Any LED you have laying around will work. Here's the cheapest one I can find on mouser: 743-INL-5AR30
For the PChan MOSFET, how about this guy: 942-IRF9Z24NPBF

So just so I can find this information, I need to check on the following Gerbers in the repository:
Panel-1013.zip, Panel-1014.zip, Panel-1018.zip, 1014-IncandBrdG2, and 1018-PwrFilter. I'm guessing I forgot to set the drill origin which most places don't care about, so sometimes I miss it.

#18 1 year ago

You rock, thanks

For the dual wounds and 1-2 MOSFET, that was my understanding. But I agree that with an EOS, that's feasible. My only concern is to know how I'll connect my coils to the Mofset. I can have my two dual wounds coils connected on the same, for left, and same for right?

And for the gerber, thanks also, it seems the easier way, as mezelmods are more expensive and not available. And between wings and planks, the shift to st32 seems to point me in the 'wing' direction. Especially with the set-up I've designed on my layout, see my spreadsheet. (still miss the credit coil)

#19 1 year ago
Quoted from openpinballproj:

3. I can't think of any reason using two MOSFETs for the hold/kick coils would be beneficial

If you configure the flipper as two coils then you take away the need for a functional eos which some may consider an advantage. For me I'd use eos and take less wiring. I guess you could just wire up the power winding and then use software to reduce hold strength, then it's just one coil and no eos.

Benetnath, if you run the GI through a controlled circuit you gain more flexibility for attract mode and special effects. If you used leds then the current draw would be lower so you could use them in strings by area. Anyway, just a thought.

openpinballproj. Thanks for the comments on gerbers. I hadn't thought about it enough, but with the move to the STM32 processor perhaps people wont use the plank as there is no need for the interface part. I guess it could be used and just not populate the interface bits and you gain the structural rigidity.

My take on the gerber drilling masks is:

1013.zip, Panel-1013.zip, Panel-1014.zip, Panel-1018.zip all look to have the drilling not aligned correctly.

1019.zip, Panel-1019.zip, 1020.zip, Panel-1020.zip are good

I don't know if this drilling mask matters or not - I just loaded the files into the viewer and got results that didn't look "right" to me.

Can you tell us which pins you are thinking are likely to eventually be used for led strings on the STM32 processor. I'm planning a layout and this may influence which wings go where. To me the leds will be a great addition to OPP - cheap, flexible, lowers pin and wing count and pretty cool. Thanks for your efforts.

#20 1 year ago

Going from 2 coils to 1 coil was a cost cutting measure on the manufacturers part. I personally feel that the EOS is a mechanically/electrically superior design. Limiting the kick pulse length and PWM is all possible based on programming through MPF or however.

SYS6 Looking at your last list of everything that needs updating, I made updates to everything that you listed (Panel-1013, Panel-1014, Panel-018, and 1013.zip) as you noted. I also found 1014.zip and 1018.zip which you previously mentioned. Just committed the changes to the repository so it is all available with svn update.

Quoted from SYS6:

Can you tell us which pins you are thinking are likely to eventually be used for led strings on the STM32 processor

I'm running Neopixel LEDs using MOSI2 pin (PB15). The rest of the pins on that wing will be inputs. Other pinball things have been taking up all my free time, but hopefully in the next few weeks I will complete the firmware. (The firmware for Neopixels is actually done, but I noticed I was wasting too much memory on the USB bus receive side. I want to reclaim that memory and re-organize how received data is processed to make it more efficient and cleaner.) Remember that the STM32 needs a 3.3V to 5V converter on that pin to properly drive Neopixels powered at 5V.

Dual wound coils are wired such that power goes to the top of both coils, and the bottom of the hold coil goes to the MOSFET which the bottom of the high power coil goes through a normally closed switch then to the same MOSFET. When the button is pressed, MOSFET leads become connected to ground. As the flipper flies to the up position, the EOS opens the NC switch and it becomes open. That stops the connection of the bottom of the high power coil to ground and it de-energizes that coil. (That is a very quick explanation of how certain dual wound flippers work.) There are various flavors from various manufacturers, so it is always best to inspect the flipper that you have and make sure it works as you expect.

#21 1 year ago

thanks for your replies.
About neopixels, would these ones works for our inserts : https://www.adafruit.com/product/2762 ?
I don't now which flavor I'd go but I'm thinking of RGB for some attract modes and missions too.

For dual wound, i've been reading this : http://docs.missionpinball.org/en/latest/mechs/coils/dual_vs_single_wound.html
and also this: https://howtobuildapinballmachine.wordpress.com/2014/12/20/playfield-hardware-flippers/ especially the schema (Typical End-of-Stroke switch setup and function)

And that paragraph on MPF :
Downsides to using this “old style” EOS switch
No fine tuning. Since the transition from the power to the hold winding is purely mechanical, you can’t change the power of the mechanism unless you physically switch out the coil and/or change the voltage used.
For flippers, you don’t get any “novelty” flipper modes. You can’t do things like “weak flippers” or “no hold flippers” since the flipper behavior is mechanically controlled.

Base on that, I was thinking to just wire each coil to a specific MOSFET and deal as stated before.
I think i understood the EOS mechanism, and I don't understand how the 'no hold' function could be done without having both wounds wired to the wing.

EDIT : thanks for the gerber files ! will give a try to get wings done and do a feedback

#22 1 year ago

openpinballproj, thanks for the comments.

On leds I'm guessing that it will be config switch to say if the MOSI pin is used for serial leds or as a switch input? With this in mind would it be an idea or possible to make it available on both MOSI channels? (I don't understand how the STM32 labels pins 17 and 41 both as MOSI1 - is this why you chose MOSI2?) I'd like to avoid long strings of leds for voltage drop and reliability issues and just design elegance. If one led in a string fails all down stream don't work. With say about 60 normal controlled feature leds on a pin with maybe three STM nodes it would still be 20 leds per string. That's if people don't go down the route of controlling gi and I'd guess bearing in mind the cost and flexibility of serial leds many will chose to put gi on the strings. I'm planning to not use any incandescent wings - just all leds.

The level shifting is easily done with logic level converter - about $1, plenty on ebay etc, typically they are bi-directional but you only need outgoing 3.3 up to 5V.

Benetnath - have a look at the pre made strings of Neopixel leds - saves lots of soldering!

On flipper coils, I think Bally used serially wound coils with a eos that shorted out the hold winding for the initial power kick, then the eos opens putting the hold winding in series with the power winding. Best to work out what type you have, both this and the parallel winding described in post #20 earlier could be used with a single output. If you wanted you could unsolder the winding wires from the flipper coil lugs and rearrange to suit whatever you wanted - parallel or serial or just one coil or both - the world's your oyster!

On gerbers, I had a quick look at 1013.zip, panel-1013.zip and panel-1019.zip these all seem to have two copies of the top and bottom copper and silkscreen files, this doesn't look correct? 1019.zip looked good.

#23 1 year ago

You might want to take a quick look at this thread. @cobra18t made some holders and used string LEDs for his stuff. Much cleaner than cutting apart strip LEDs.

Quoted from cobra18t:

I made some simple laser cut holders for the surface mount LEDs for the inserts. They are made from a laminated MDF board I had lying around. It was 0.1" thick.

Here is the link in his thread for the LED strings that he is using:

Quoted from cobra18t:

You can get the wired LEDs on Amazon or eBay. I think I paid $8 or 9 per 50 LEDs. Here is an example:
ebay.com link

I would stay away from wiring each LED individually. It is a royal pain in the butt.

So going through the MPF quote, I'm guessing it might not be 100% true. I'm sure that MPF can change the configuration on the fly. @jabdoa would be able to verify if the following is true or not:

Quoted from BENETNATH:

No fine tuning. Since the transition from the power to the hold winding is purely mechanical, you can’t change the power of the mechanism unless you physically switch out the coil and/or change the voltage used.

So running it as a dual coil with an EOS, the coil would be configured as an on/off coil for the OPP solenoid. That means that when the button is pressed, the MOSFET is on, and when the button is released, the MOSFET is off. Simple.

Now let's say you want a weaker flipper. Change the configuration of the coil with an initial kick and PWM for the sustain. By keeping a very short initial kick (configurable in 1ms increments), the power of the flipper will be reduced because it will not give it full voltage as it rises. How about a no hold flipper? Same thing. Change the configuration to use an initial kick, and then no PWM in the hold. It is exactly how you would configure a pop bumper or a slingshot. So all modes listed in the quote seem to be achievable.

Was simply chosen because that is the pin that was used on the PSOC4200 support for Neopixels. For memory constraints, the SPI interface works best instead of using a PWM. STM32 is memory constrained with how I'm driving the Neopixels and because of it, only about 200 or 250 Neopixels are possible. (I can't remember the number off the top of my head). It is configured as a Neopixel wing using Gen2Code, just as other wing boards are configured. I could support the other MOSI positions, but I'm not sure what value it would add. My thought is if it is a long string, you would add extra power taps on the string to avoid voltage drops. I believe Adafruit has a rule of thumb on how frequently you need to add extra power taps.

If I wanted to control GI lighting, I'd simply connect it to a solenoid, and that could turn the whole string on or off. Nice and simple. Each solenoid can have its own voltage since you are only closing and opening the connection to ground, not the connection to the voltage.

Quoted from SYS6:

On gerbers, I had a quick look at 1013.zip, panel-1013.zip and panel-1019.zip these all seem to have two copies of the top and bottom copper and silkscreen files, this doesn't look correct? 1019.zip looked good.

Bah! Tried to do it too quickly. I didn't clean up the directories before re-zipping so that must be the issue. Sorry about that. I will probably correct sometime tomorrow or the next day.

#24 1 year ago

All gerber files are updated (hopefully) to clean up old version of copper layers. If @SYS6 could verify, that would be great. Sorry for the thrashing. Never do something in a rush, but alas, that's what I just did, but it should be correct now.

#25 1 year ago

I don't mean to muddy the waters too much on the flipper front, but you could also wire your dual wound flippers as single wound Stern style flippers, bypassing the EOS. So you only have to use the power coil. In MPF, you would configure them with a kick pulse and then a PWM hold. Again, MPF can do all novelty modes on a single coil flipper as well.

1. This removes the need for a functional EOS.
2. PWM makes the flipper buzz or hum a bit while holding which would be truer to the sound of the AC flippers in the early 70s.

Herein lies the beauty and frustration of MPF, it is so flexible that sometimes it is hard to decide how to execute a plan because there are dozens of ways to accomplish the same thing. In the end it has more to do with preference than anything else.

Don't forget the flyback diodes for your FETs/coils. The FETs will get so sad without them.

#26 1 year ago

diode are already on these coils , as EOS are.
I've place the order for ST32 and wing boards (thanks to the gerber files which seems working without a glitch, openpinballproj ).
Now is waiting time. Meanwhile, I'll continue my readings.
About the 1 or 2 coils.. I will see how I handle that. I took spare cards, so I might just test various options to decide what i like the most.

cobra18t I like your led ribbon + laser cut panels. Would you mind to share the laser cut file, as a friend of mine can do that for me ?

#27 1 year ago

openpinballproj SYS6 spoke too fast, the order for the PCB went back and was refused as : there is no solder mask in the order.
I just uploaded the gerber file 1013.zip, 1014.zip and 1018.zip.
Did i miss anything ?

EDIT : pic of the gerber viewer

Capture (resized).JPG
#28 1 year ago

I installed Kicad and created a valid Gerber with solder mask, but It uses 4 layers in the jlcpcb interface. How many layers is it supposed to use ?

sorry for the noobiness

#29 1 year ago

I went through the gerbers 1013, 1014, 1017, 1018, 1019, 1020, panel-1013, panel-1014, panel-1017, panel-1018, panel-1019, panel-1020and have sent a PM to Openpinballproject rather than cluttering up this thread - best to wait until he comments.

Openpinballproject - on leds I guess I just have to get over my dislike of long serial strings - they just seem clumsy to me, but if that's my biggest concern then life is going well With your suggestion to use a solenoid for gi control, then you have pwm for fading but no colour ability. I had been thinking of gi colour changes tied in with modes which would be cool. I guess adding an extra STM32 would be an easy and cheap way to gain another led string output in the worst case (or to solve my tastes!)

Benetnath - don't stress over the flipper coils, most arrangement will just work and with software you can fiddle with funky modes etc

How is your MPF work progressing? I've found it a steep learning curve, but think after following the tutorial that coding an existing simple / old game is a good way to learn. You also just focus on the code rather than trying to be creative with rulesets - for me I plan rule extensions as a second step. As cobra18t says, it is so flexible it's hard to work out the best way, or even how to begin, and when it doesn't work as expected it can be hard to trace what is the issue. I also have moments of stupidity - I spent a few hours one night trying to work out why a led would not illuminate - tip don't set the default colour to 000000 The coding also makes you focus on the minutia of how things work - as an example early WMS solid state games light the bonus with all lower lamps on so 1 stays on, then 2 illuminates, next 1 and 2 stay on then 3 lights etc. GTB don't behave this way - only 1 or 2 or 3 is on at one time until you get greater than 10, then it's 10 and 1 etc. These things all take time and consideration. I'm finding the final little bits take a long time and it would really help to have a working game to play with your finger. Good luck and keep us informed as you progress.

#30 1 year ago

Damn it. I just used the defaults, and since each of the individual cards weren't used to generate an actual PCB, I didn't generate all of the layers. Bah! I will regenerate later tonight with all the correct layers. Third try is going to be the charm. Thanks SYS6 for checking the files for me. The boards are all 2 layer boards. No more responses from me until I update the repository....again. Ooohhh, I'm annoyed at myself.

#31 1 year ago

These new ones are good.
1013, 1014, and 1018 wings are valid in my Gerber viewer.

#32 1 year ago

I took some time to progress on the coding.
At least the first steps.
I'm finishing to populate the switches, then will move to the coils and lights.
I must say that I REALLY love the tutorial section of MPF.
That's well explained and covers plenty of scenarios. A pleasure to follow.
I don't know how has written that but that's really user-oriented.

2 weeks later
#33 1 year ago

Hello openpinballproj and folks .
due to COVID19, I'll some spare time at home and I'd like to place the order of components.
One is EOL in mouser and I'm not sur about the alternative ?
511-STF10P6F6 : MOSFET P-CH 60V 0.13Ohm 10A STripFET VI

The potential alternative is 511-STU10P6F6 (It's a TO-251-3 instead of a TO-220FP-3 and Vgs th - Gate-Source Threshold Voltage is 4V instead of 2V)
Do you think that would work ??

#34 1 year ago
Quoted from openpinballproj:

Alternate for LED. Any LED you have laying around will work. Here's the cheapest one I can find on mouser: 743-INL-5AR30
For the PChan MOSFET, how about this guy: 942-IRF9Z24NPBF

I assume the PChan MOSFET you are talking about is the one on the power supply filter board.

#35 1 year ago

Yes it is.sorry I missed your post.
I can take this one for the power board?

#36 1 year ago


I've received my STM32F103 cards and I'm awaiting the ST-link v2 (chinese clone) to program it.

then when programming, i need to put Boot 0 = 1, and Boot 1 = 0
I've seen the folder Stm32Workbench\Gen3Images . Is it the correct place to go to program the bluepill ?
I shall use the ST-link utility to flash the OppStm32. firmware, right?
And after that, i need to load the wing config if the process is still the same (the step seems to be optional as I'm planningto config with MPF, what are the advantages in setting everything now ?

Referring to https://pinballmakers.com/wiki/index.php?title=OPP i should use Gen2Test but that might just not be updated. I think it's still ok as there is a stm32SwMatrix.py config in the folder and STM32 updates in BrdIntf.pdf.

My first board is supposed to wear 3 coil wings and 1 switch wing,
So i should do this config :
wingCfg = [ [ rs232Intf.WING_SOL, rs232Intf.WING_SOL, rs232Intf.WING_SOL, rs232Intf.WING_INP ] ]

the coil config is not clear for me yet, as if i'm correct, i need to define for each coil if it is using a direct switch or not, but What if i want to allow not using the direct switch capability (eg : for potential change in the flipper action)?
What is the default parameter for coils, ON_OFF_SOL ?

Sorry but i've got no knowledge in that field

4 weeks later
#37 12 months ago

for followers, plenty of questions and answers on my topic here : https://groups.google.com/forum/#!topic/mpf-users/MCgyK--Hfpk

openpinballproj rocks

#38 11 months ago

A lot of things have been progressing.
first wings were soldered and put on the STM32 that I'll use for the flipper driver.
I'll post more info once i've got time.

Result is here, in whitewood mode (without MPF, only OPP hardware working)



3 months later
#39 8 months ago

Any updates on this one?

#40 8 months ago

Mmh.. Yes, I have purchased a deadpool and a turtles...
I lack spare time so it's a bit on hold

#41 8 months ago

Hahaha. I saw you had a Turtles and thought that might have something to do with it. I am working out some more bugs in neopixel support with Hugh and Jan, so hopefully it will be cleaned up by the time you get back to it.

#42 8 months ago

Yes, I'm still checking mpf from time to time.

7 months later
#43 22 days ago

Hello ! Finally back on track.
Still plenty of other projects ongoing but sons and I have found new motivation.
I took some time to add thicker wires for my 24V + and -, and also to reduce the resistance value for the NTC .
And BANG, this pinball is now really alive, snappy and powerful.
This major improvement gave us a good shot of motivation and we have added 2 STM32 for the score reels that are now fully functional and tracking the score as they should.

One main issue had to be solved, counter 10k switches had to be set as "type : NC" as they are open on all positions except on zero ; which is the opposite behavior as all other switches.
Jan and atum helped me on that (thanks again ! the MPF google group is a great place !)

Now, we have :
- all coils
- all switches

perfectly working !

Time to add some lights.
The only current one is the LEd ribbon on neopixel wing, but it's behaving strangely, as it's reacting to the flipper activation that are on the same STM32.
I suspect a ground issue but it was not reacting like that when no inputs were added on Wing0..

I will also update my 3 initial STM32 as they are still on 2.0.x. I think i can upgrade them directly with a Gen2test.py command, not sure how, will have to find.

#44 22 days ago

Addition of a RULESET !! All coders help will be needed here !!


I cherrypicked ideas here and there (Thanks to openpinballproj and cobra18t discussions) !
all comments are welcomed, and if you rock at MPF, I'd be glad to have you onboard as I am a complete noob on that..
I'll focus on the classical ruleset for now then expand

#45 21 days ago

How's the power on the coils? I'm working on converting a different Williams EM, but with P3/MPF. It's probably the same mix of 24 AC and DC coils as my game, and I was a bit concerned about current on the flippers.

Assuming you're using the stock FL-21-375/28-400, the power stroke on the flipper is only 1.5 ohm. So it's a lot of current/heat going through it if you start chimp flipping.

#46 21 days ago

Hi TreyBo69
I've removed everything from the old machine, wires and power unit.
I kept coils, switches and mechanics.
I'm using a 24V DC, no AC mix in there.
The power board from OPP provides a nice filter and buffer.
Initially, I had put too thin wires and the flipper coils were working but too weak to be playable.
I added now thicker wires, don't know the gauge ; and now the ball is flying as it should.
I did not notice major heat on the coils

#47 20 days ago

I meant the coils that were originally in the game were mostly chosen to be powered by AC, so they generally have a much lower resistance than coils chosen for a DC voltage. What flipper coils are you using? Thanks

#48 20 days ago

Coils that are present :

Flippers are FL20-28, indeed AC coils fed with DC. Not sure about the potential issue.

Slingshot and Bumpers G23-750DC
Drain A22-550

I made a quick video today

#49 17 days ago

Code added for ball save is working
All scores on in-game play are working.
Need to works on skill shot, tilt addition and to debug the leds

#50 16 days ago

On the LEDs...I'm assuming they are being driven off one of the STM32s. The output of the STM32 is 3.3V and the Neopixels would really like to see 5v, so is there a 3.3V to 5V converter in there? The other thing is the distance to the first LED from the STM32. How long is that? Sometimes adding a pretty hefty series terminating resistor is helpful. Adafruit suggests 300 to 500 ohms on the data line as a series terminator. Last suggestion is to add some bulk capacitance on the first LED from 5V to gnd. Adafruit again suggest about 1000 uF at that point. Depending on the number of LEDs you may need to add multiple power taps along the line of LEDs. I would suggest not bundling the data line with any other high current lines (such as solenoid power, solenoid current returns, etc).

When running in white wood mode, you should see all the LEDs in a particular pattern. Since they are RGBW, it won't be as pretty as if they are RGB with each LED being individually lit a different rotated color, but it will be a single color for each LED since the pattern simply turns on everything 4th LED.

There are 59 posts in this topic. You are on page 1 of 2.

Hey there! Got a moment?

Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside