Here is a quick youtube link to the machine in diagnostic mode.
Let’s talk about power supplies for a moment. This bastardized creation has become a collection of parts thrown together that some how seems to be working fine so far. Like a house of cards I feel it could fall down around itself.
The power management consists of
A power transformer in cab that supplies the 24vdc for solenoids (via bridge rect1), 6.3vdc for cpu controlled lamps (via bridge rect2), and 6.3 ac for general illumination.
A pc power supply that supplies 5vdc & 12vdc for solenoid driver board.
A dedicated power connector for the raspberry pi (ac power connected 120 into wall plug)
A USB cable between the pi and the arduiono feeds the power for the 5 vdc used by the shift registers and Arduino internals. So this means the raspberry pi power supply keeps both the pi and Arduino breathing.
Perhaps this spider mess could use review and validation.
I am assuming some common power supply unit Might merit some consideration. I will post a schematic to reflect current state.
I generally go with a beefy switching PS for the solenoids, coupled with an OPP power filter board to add capacitance. Then, an ATX PS for the logic side. However, I also have a project coming up with a DMD at 12V, so I will either need to add a 12V supply for it or add capacitance to the 12V rail from the ATX.
@thatonedude You can probably just use the 12V rail without adding capacitance to the ATX supply. ATX supplies have a good amount of capacitance built in for that rail because it is normally supplying voltage for a PCIe based GPU. GPUs have large instantaneous current draws and while they do add some capacitors on the motherboard and some within the GPU board itself, the big capacitors bulk capacitors are normally in the ATX supply itself. (I'm not sure what the 12V DMD instantaneous change in current is, but my guess is it will work without a problem without extra power filtering).
@legtod2 You can easily drop the dedicated power to the Pi. That just needs 5V which you can grab from your PC power supply. If you want the Pi to be on all the time, use 5VSTDBY. It's pretty easy to add a MOSFET to turn the PC power supply on and off from the Pi itself. The powering of the Pi's USB depends on which version of the PI.
Interesting suggestion Hugh. The 5vdc from this pc power supply to power the Arduino is a good idea.
Quoted from openpinballproj:
I'm not sure what the 12V DMD instantaneous change in current is, but my guess is it will work without a problem without extra power filtering
I was running straight off of the 12V rail with my tests, and I would occasionally trip the PS breaker and have to do a reset on the PS. This generally happened on frames with a lot of bright pixels, so I interpreted it as an instantaneous load issue. I tried multiple supplies, and saw it on both.
Guess it means that you have to pony up the cost of more bulk filtering caps....Good information on the 12V DMDs. If doing that, you can probably buy caps with a lower voltage rating to save some coin. 16VDC is the next "standard" cap voltage. (Everybody loves to save some coin and the lower voltage caps are under $2 each).
Quoted from openpinballproj:
Guess it means that you have to pony up the cost of more bulk filtering caps....Good information on the 12V DMDs.
Yeah, I was quite surprised by it. Initially, I thought I had fried the DMD somehow with a short. So, I grabbed a brand new, beefier PS that promptly did the same thing.
Hugh and thatonedude...
Good old PC power supplies, they do a great job on the 5 volt logic side.
Cheap and easy to swap out.
At present my raspberry pi power supply is providing the 5volts to the Arduino via the USB cable connecting the two.
Also the USB cable is doing the double duty of the serial communications between the two.
My power up and power down order requires the power off of cabinet solenoids, then Arduino and pi shutdown.
Doing it in the wrong order causes all my solenoids to fire blowing fuses or even nastiier things.
You might be able to use something like this to turn the AC to the transformer on/off. https://www.aliexpress.com/item/1Pcs-5V-Low-Level-Trigger-One-1-Channel-Relay-Module-DC-AC-220V-Interface-Relay-Board/32803522724.html There are scant specs on it such as how much 5VDC current that you need, but it looks like the input is to a MOSFET to enable/disable the 5V to enable the AC, so it should take almost no current from the processor itsefl. If you have the arduino or pi control it, it should be pretty easy to insure that your startup/shutdown sequences are correct. (and hey, it is 93 cents so how wrong can you go). That might be an easy way to go.
You might want to consider driving the input of the relay through a MOSFET. It is listed as 4mA which is definitely achievable by any of the 5V arduinos on a per pin basis (at least the ones that I know of), but it is a high enough current that you start pondering about it. Hmmm, do I really need to drive 4mA directly from my arduino? Maybe I'm just being too conservative.
Your skillshot video inspired me to try something similar with my arduino conversion, I'm still trying to get it right. However, as I watched you video I noticed that you have implemented a lot of sound effects. Do you have a good sourve for pinball mp3s ? I looked and only found very few sound effects I could implement in my build.
Google is your friend. I found several sources for my sound effects. In this case Duke Nukem could be found all over the place. Some spots like smart phone ringer down loads or catch windows sound effects, etc. I even recorded my sons voice...”take me to your leader”. I have quite a few sound effects scattered through the machine. Even added a random sound effect during idle timeouts or during attract mode.
Also I have a virtual pinball machine. If I exports sounds from it I can switch the machine back to its original sound effects, but that would be boring.
Sorry for my poor wording. I also found a ton of sound files and effects that could be used in the machine. What I couldn't find were sound files from actual pinball machines. In the day of virtual pinball I was hoping to find the sound files that are found on the sound roms of the different machines. I found some clues on how to extract sound files from pinball table roms but none of them are straight forward and I didn't get far with that.
Using my virtual pinball machine, I did export all of the Close Encounters sound effects. I used it for a while but they got old fast. That’s why I sub them out for my own sound files.
What tool did you use ? I'm using Visual Pinball to play tables and I didn't find an option to export them.
I recently used this tutorial, https://www.vpforums.org/index.php?app=tutorials&article=54 to rip some sounds using the pinmame32 method listed. I did however use audacity to record as the built in F5 is flakey.
Just a short update.
Been experimenting with DMD's and new features for the table.
1) Added ball save function. A simple timer that kicks the ball back out if ball enters outhole before the timer is up.
2) Background theme music. A collection of theme based music to play whenever queued, paused, or stopped. Great for skill shots or attact mode.
3) DMD, with my own custom animations and special affects.
This helps build my framework for my William Phoenix table and future table projects.
This project has truly become a collection of Frankenstein parts and laboratory of learning experience.
I have adopted a Bally lamp board, and a separate zero crossing detector for my cpu controlled incandescent lamps.
Recently I received my teensy 3.5 for controlling a 64x128 dmd. Writing all my own code for scoring and dmd animations.
The dmd won’t live very long on this machine. Ultimately it will end up on my Williams Phoenix hybrid machine.
It’s time I invest in getting a back plane board that will enable me to interconnect the pinball wires to my pi’s and arduino.
It’s a scary mess of wires right now. What I need to do is some simple cable management buy some good connectors and do some crimping.
I opted for a Teensy 3.5 for my main controller, and I designed some i2c i/o boards to go with it. It was my first PCB, so I made some mistakes, but they work. I chose the 3.5 because it is 5V tolerant, it had 3 i2c busses and runs fast. I can run 24 of these boards from it, which comes out to 384 direct I/O ports or 1536 ports in a matrix form. That's enough switches and drivers for just about any configuration I can think of.
I also started thinking about boards to support slower Arduino forms, so I'm working on some secondary boards as well that can take some of the processing load from the main controller and reduce latency.
Also, for a sister project, I got pinmame running on a Pi and drawing to a physical DMD. Running X, it is a little slow, so I'm rearchitecting my pinmame hack and working to minimize the load on the Pi, so that it can run pinmame at full speed. My first experiment was getting a Scared Stiff ROM to draw. I have some video of before I cleaned up the signal. I need to make a new one. This one also uses the Teensy based system I'm working on.
Cool I have been experimenting using the teensy with gif recording to my my rgb matrix panels.
Hey @legtod2 great project, thanks for sharing it here and all the feedback you give on your design choices and their evolution. For the pygame light effect, I think that if you published the code (on github or somewhere else) it would enable some else with those skills to get the code, and try out a contribution more easily.
Good luck for your continued efforts. Sure is inspiring.
Its been a while since my last post. Made a large change switching Close Encounters over to a DMD rather then raspberry pi driven python virtual screen.
Here's what's different:
1) DMD (2 x 32 x 64 ) driven by a teensy 3.5 and serial port connect to arduino mega 2560
2) Raspberry pi python sound server. I just receives serial play requests from arduino mega
3) Arduino uno & spikenzie B64. This drives my 8 x 5 switch matrix serial switch changes to arduino mega
4) Arduino uno & Zero crossing plus Bally AS-2518-23 Lamp driver board
Why all the changes ?
Wanted to incorporate the DMD into the game and learn how to incorporate color dmd into the game.
I was going to use the Robertsonic Wave trigger board instead of the pi (But it costs $75.00 Canadian.
You can hear the pi serving the background music and sound effects of the game.
The raspberry pi has been running well for the last year. By adding the Shutdown pi & Reset Pi to the board, I can save myself future trouble of power cycling the pi by un plugging the power cord. For other DIY's, incorrect shutdown of the pi can cause file system issues with the sd card.
The teensy 3.5 is running the dmd. It has a bunch of gif files on it SD card and it plays them on cue from the Arduino Mega via serial messages.
In this version of my Frankenstien creation, I have strung together a bunch of dedicated components to make the whole machine.
More youtubes to follow
Its been awhile since my last update.
Updated my virtual pinball machine to 4k but graphics card kinda weak so playing in 1080p which still is not too shabby.
During these covid19 days of staying home having my virtual pin and my Bally Xenon table keep me occupied.
Been lurking and reading other builds and progress. One that especially has my attention is the cobra pinball.
I like the design (except the smd transistors) prefer the traditional through hole design simpler repair for the DIY.
Primary reason is when a solenoid sticks on, it gets burnt out. I can't remove an SMD by myself.
cobra18t and MPF and OPP have done a lot of work. Very impressive. Reminder to self, need to make a donation to his kickstarter ...
Good luck cobra18t!!!!
Quick youtube of my pinball & raspberry pi family
Great post i have created an arduino conversion to a gottlieb flying carpet started with playfield only with some coils. Completeley replaced all hardware and developed a arduino based solution. I decided in the early days to keep the flipers on a seperate board thus only needing a high current psu. The latest update i removed the eos and now drive it with 2 mosfets per flipper, mosfets are the freetronics shield, also replaced my orginal uno with a teensy, very fast response times under a 1 us to read flipper switch and fire coil. I am awaiting my cobrapin board and that will again have its own psus one for lights and one to drive pop bumpers etc. it will also enable the flipper board via the onboard relay control. I replaced the the eos because my arduino mega (the main game controller) was picking up random inputs. Used the jones plugs for output with fast diodes attached underneath
If you read this whole thread, you can see that I completely tried to re-invent the wheel. Wrote all my own code and made many mistakes.
That journey taught me many aspects of how a pinball machine works and I had fun doing it.
If you encounter other hobbiest taking this direction, please don't discourage them, instead encourage them and help them when asked.
Share the adventure and remember we were all newbies at some point in time.
Armed with this experience it's time for me to move onto phase 2 and build machines using Mission Pinball Framework and Cobrapin Pinball controller and OPP.
For new hobbiest who want to have a starting point for building pinball machine(s) this would be my recommended direction (MPF, Cobrapin, OPP) !
The story continues here ...
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