Homebrew Pinball #3, Part 75

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



When I started working on this machine, I had a pretty simple power system. 3V for my boards, 5V for the RPi. Both coming from an ATX PSU. 25V for solenoids from an old gottlieb transformer. Power switch turned everything off, as normal, and I added an extra switch inside to cut the high voltage if necessary. A few early mishaps with coils locking on while the playfield was down made me realize the high votlage switch inside wasn't that easy to access, so I added a secondary power switch on the bottom for the high voltage. Very useful, I recommend that for any homebrew... Then I added 12V for the screen. And then 12V for the audio amp. Then another 3V line for the mini displays. And another 5V line for the LEDs. And another 5V line for the second RPi to power the mini displays. And another 12V line for the light strips. Each of these had its own fuse, etc, all coming from the ATX PSU. Luckily I designed a power splitter for the ATX-24 connector that could support all that, which has somehow managed to be future proof enough to keep me going and keep everything vaguely organized. Then I had to move each Pi to its own separate supply, due to noise issues coming into the amp.

However, there's a problem with that. I have three separate processes across my two Pis that currently need to be manually started, as I haven't made them automatic yet, and they sometimes need some massaging. My Pi also has a weird issue where about 1/4 times you power it on the OpenGL drivers just... won't work. I can't find any solution for it, so my only real option is to just repeatedly reboot the Pi and restart the processes until they work. Plus I have another weird issue that I've never been able to track down where the Pi won't boot if the cabinet switch matrix returns are connected. Can't figure out what could be causing that, and I'm hoping that a new MPU board revision will magically fix it. But in the meantime it means that, when I turn the machine on, I need to first reach in and unplug a connector, wait 5 seconds, then plug it back in. Then I walk over to my computer, SSH in, start all my code. If the driver is dead, I need to reboot, then pull the connector again. Sometimes this can end up being a 5-10 minute ordeal. My solution? Just don't turn the game off! So instead I reach in and unplug the LED power supply, light strip power supply, and mini display power supply. Then I grope around and find the power button on my screen and turn it off, and then I reach under and kill the high voltage. Game now appears 'off', but the Pis are still running. Easier, but it still leaves me in a situation where sometimes I avoid playtesting my own game because it's too much of a pain to turn on! So that had to stop. I realized that, in the end, all the systems I want to turn off are coming through the ATX supply, and my Pis are on their own supplies, so really I just need to turn the ATX off. If I'd planned this from the beginning I probably would just install a third power switch, but I don't feel like taking everything apart again to do that. So instead, I replaced my internal HV switch (which I never use anymore) with two extra 'service' outlets, and plugged the Pis directly into them. So now the Pis are just 'always on' as long as the game is plugged in, which is fine with me. Meanwhile I have a primary power switch which kills everything in the game except the Pis, and an extra switch to turn the HV off if needed. Much better

Posted Tuesday, November 16, 2021
at 11:42 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 74

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



In between these playfield changes I've been making a bunch of tweaks to the code. I added another multiball, rounding out the main hands (straight, flush, and full house). Added a mystery award which is really fun but hard to explain via text. Lots of tweaks and bug fixes. But mainly I've been working on sound!

The game now has more than 100 sound effects and callouts (and still many to go). At first I was agonizing over trying to find some good sounds that fit everything well, etc, but I've realized that you don't need a 10/10 sound effect to add quality to the game. Even a 5/10 sound effect is way better than no sound effect, as long as you've got them everywhere. Sadly I've also realized that making 5/10 sound effects is way harder than I'd have guessed. I've spent a bunch of time with a mic, a few poker chips, and a deck of cards, making random sounds by hitting them against each other, etc, trying to get some good, real, 'poker' sounds to put in.

On the software side, I did some research into how other games handle sounds. Playing one sound is simple enough, but it seemed like if I just played every sound that came in (and every call out, etc) things would get messy. You never want two callouts at once, and I figured you may not want multiple sounds at once either, so there needs to be some system in place for that. Sadly, it turns out that getting Java to play a sound, and then kill that sound mid way, adjust volume on the fly, or even just get the length of the sound are all more complicated than you'd expect. I ended up writing a custom mixer to combine a music channel, a voice channel, and a few sound effects channels together on the fly, which gave me the level of control I wanted. Currently I've got a simple system set up where, if a sound is playing on a channel, nothing will interrupt it (after like 50ms). If you try to play a sound but there's already another one going, that new sound is ignored. If two sounds come in at once (which happens a lot since I might have the base game make one sound effect, but then the mode you're in at the time makes another), I just choose the longer one. Originally that was a hack until I could code some proper 'priority' system in to let me manually order the sounds but so far it's worked surprisingly well so I haven't had the need to go further. I've also implemented some ducking, so the music and effects will get quieter when there's voice playing, and the music will get quieter when there's effects playing. Took a bit of play to get that to sound natural, but once it did it worked well.

Posted Tuesday, November 16, 2021
at 11:41 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 73

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



Sometimes to get an idea as you fall asleep saturday night.... and then spend your sunday making it work

My upper magnet has never worked how I wanted. My goal was basically just to be able to shoot the left orbit and feed the upper right flipper. Magnet couldn't grab the ball. So I added the up post. That wasn't 100% reliable at even catching the ball, and when it did, the magnet still couldn't grab it somehow. So I cut the hole all the way through the playfield to give the magnet more power. Didn't help at all. When I made the new plastic playfield, I didn't even bother cutting a hole for the up-post. My thought was, instead of shooting the left orbit to feed the magnet, I should be able to shoot the spinner, and use the spinner to activate the magnet, since the ball would basically be in perfect position over the magnet when the spinner switch closed. But that, of course, didn't work at all. Magnets suck! I ripped out the magnet. Maybe I should just forget this entire idea about feeding the upper flipper. I basically only ever used it for one of my four multiballs which had a jackpot only hittable from the upper right flipper; it seems like a waste to put a whole mech in just for that. But the multiball was based entirely around that upper flipper shot (it's basically a lawlor throwback themed multiball), so I'd have to rewrite that whole multiball somehow. Plus then I'd have no need for the target under the upper left flipper which I've gone to a lot of pains to implement. There'd barely be any reason to have the upper flipper at that point; all it'd be useful for is trying to feed back to the upper playfield area if you drained out of it to the right.

So I needed some other way to feed the upper flipper. Before, on the left orbit, approach, I'd tried to figure out how to work a diverter in there, but there just wasn't room any way I could find. While watching the magnet fail to catch the ball via the spinner shot I thought, it'd be cool if I could like, have a raise-up captive ball. I've always liked how captive balls feed flippers but you don't see them in too many games. But there was no room in front of the spinner to try to make something like that due to the screen+lights. And I couldn't really put it behind the spinner since I had a giant hole there from the magnet and you wouldn't be able to see the captive ball well to aim for it. But I figured you don't really need a captive ball at all. Really you just need a wall for the ball to hit to fall back to the upper flipper. A single drop target that could raise up would be cool, but I think the rebound would be too fast. I really just want to deaden the ball and let it gravity feed for the shot to be makable.

Thus:
In the up position, the ball goes underneath just like normal. When it's down it sorta catches the ball and lets it fall back down again. It isn't always a perfect feed but you can always get a flip at it

Posted Tuesday, November 16, 2021
at 11:32 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 72

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



I'd been considering something similar, and then I saw these on the Sonic Spinball homebrew and got a link to the strips, so I added some light strips along the sides for GI. Actual GI bulbs had never really been in the plan, since they'd need to squeeze into some tight spots. Plus there aren't that many spots to put them, which confused me a bit at first. When you look at the playfield though, other than the slingshots and around the ramp, there's pretty much no spaces where a GI bulb could even go. When designing I like to make the most of the space, but maybe it's a bit too far?

I got some plain warm white LED strips, and some V channel guides for them:

Then I 3D printed some supports for them that stick into the triangular hole in the back of the channels
I mounted them onto the side rails, instead of to the cabinet like Sonic + Pinstadiums do, so there's no need to remove them when lifting the playfield. They sit about a millimeter below the glass


The illumination doesn't cover the whole playfield quite as nicely as I'd like, but if I wanted anything else I think I'd need to custom design some channels to aim them at like a 30 degree angle instead of the 45 or 0 angles commercially available.
If I'd planned these from the beginning, I might have made some custom metal channels, with some stronger metal mounting posts, so that I could actually set the playfield upside down on them for servicing (and maybe some spare attachments at the front to make it even). I like the idea of the playfield having complete protection when removed from the cab. I've got the support rails on the bottom covering that side, so I can easily pull the playfield out, set it down on a table or on end, and not worry about the mechs, but currently if I want to set it upside down I need to use the wooden back wall and manually install some more wood posts to the hangers in the front, which isn't too convenient.

I'm not sure if that'd be worth the effort though, and I'm not sure how satisfied I am with this technique. For a whitewood like this that I've been winging the design on a bit, they're really nice. No need to make concessions for them in your plans or worry about wiring, etc, but they also have an annoying glare on the playfield. It's especially noticeable here since I have a perfectly flat acrylic sheet on the playfield, while a clearcoat would probably be a bit more subdued. The glare isn't in the main play areas, so it's not a deal breaker (they're better than no lighting!), but I'll have to think more about other options or tweaks to this in the future

While the coverage isn't completely even, these new lights do illuminate the back wall (or lack thereof!) though, so I'll need to think about that more at some point. Technically you could airball right over the back wall and into the cab currently, but I've never seen that happen. It also illuminates that there's a ton of dust on my playfield :/ Sadly that's what happens when your game sits for months with no glass on it, and I don't think that'll be changing any time soon. I may need to station a shop vac nearby for convenience though.... There's still a lot of ball hangups, etc currently so I couldn't really have the glass on for too long anyway. Actually I don't even have a sheet of glass for it since I stole it for another game to replace some non-tempered stuff; and I don't have a lockdown bar for it either. At some point I'm going to need to put a focus on getting some glass, getting a bar, installing an action button, and then dealing with all the stuff that keeps me taking the glass off: I'll need to make some plastics (easy, but may need to swap some posts to mount them), add some more stuff to prevent airballs from getting stuck places, make an apron of some kind, etc.

Posted Tuesday, November 16, 2021
at 11:31 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 71

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



While I had the playfield apart, I also made a few layout tweaks

This is the guide for the upper left flipper. Old guide on the bottom. It had a split in it for a standup, but it turns out the flipper can't hit that angle. No matter how I aligned the eject plunger, I couldn't get a clean feed past that gap. So I made a new, one piece guide and installed it. Now the ball comes down nice and smooth to the flipper. Almost too fast, to be honest. I need to play with that mech a bit, see if I can get it to give a slower kick.


A bit hard to see here, but I added slots for adjusting the height of the left outlane posts. Eventually I'd like these to be slots in the wood too, with machine screw posts, so they can be precision adjusted, but right now the area underneath is too messy to safely install that.


The center post on the right side got a horizontal cut, since it can't really be moved vertically due to the feed from the shooter lane. Also replaced the upper end of the shooter/outlane divider rail with two mini posts. I'm not sure how that will affect the play in that area, but hopefully it does something. Previously it didn't seem like there was much to 'do' over there. You'd just watch the ball balance on the center post and fall one way or another, and any ball hitting the wood rail would just die and go down the outlane. So I'll see how this goes.

Posted Tuesday, November 16, 2021
at 11:31 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 70

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



Finally got the lights all working, and coded a simple attract mode animation for them. Originally I was trying to use an existing server I found for controlling ws2812 leds, but it kept crashing and wasn't very suited for pinball animations, so I coded a simple server myself which just handles a light being on, flashing, or pulsing, with settings for frequency and phase. I think I will need to tweak my colors a bit though. Not sure if it's because of the specific leds I got, or the way the opaque white inserts are coloring it, but everything feels a bit 'pastel'...

The downside to doing all your leds as one giant strip, I guess, is that if you want to change them later it's more complicated. And of course, once I got everything together here, I realized I'd forgotten to install a light for the lower playfield diverter. So I guess at some point I'll need to cut a bit from my left over led strip, attach that there, then cut my existing strip somewhere, and run the data line over to the new led and back again.

I'm also thinking about maybe having a sort of 'wizard mode' accessible after you get all the main hands (at least straight, flush, full house, since technically those cover all the 'lower' hands too. maybe four of a kind, but it's hard to guarantee there's ever a deal with 4 of the same card), so it'd be nice to have a few more inserts in the barren center area between the screen+slings for that. Just when I thought I had all the lights/etc figured out!

Posted Tuesday, November 16, 2021
at 11:30 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 69

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



I'd been getting tired of using the projector for everything, and with the lights taking away half of its use, I figured it was a good time to get to work on the other part of that: the cards themselves. I'd realized early on that having all the cards just printed on the playfield, unchangeable, would have a possibility for people finding certain cards to go for every time which would make the game less fun, and having the projector able to deal a random set of cards onto the playfield solidified that worry. And then I found some cheap LCD displays on ali express while searching for the main screen I installed before
Turns out they were slightly narrower than the spacing on the drop targets:
Thanks to the provided example code it wasn't very hard to get one to display a card using a raspberry pi
But could you drive more than one easily? I made a little board that had a shift register on it to control the CS line of the display, so that I could theoretically wire up to 8 displays to it


So far so good! Now, could I fit those displays in front of the targets? I did some measurements of the 3 bank in the middle and printed a bracket

And they fit! barely.
I programmed a simple tcp server to control them, and hooked the 3 displays into the game
Alright, proof of concept complete. Time to go way too far with this.

I'll need to custom make a bracket for every bank in the game, since they're all different manufacturers+sizes

And since I'm already getting into this, why not throw some other single displays around the playfield?

Now, can I actually drive them all? No. I lose signal around the fourth board. A lot of learning about signal integrity and I've got another version of my board with some termination resistors and a buffer chip to redrive the signal between each board
And with that, I can barely get all my displays to work

So I cross my fingers and cut a lot of big holes in my playfield. The amount of missing wood at this point is starting to concern me a bit, but it seems to hold up okay when the side rails are attached.
Wiring them up is also fun. So many ribbon cables! Almost looks like a Spooky game...
And once I finally got the whole playfield reassembed...
Success!

Posted Tuesday, November 16, 2021
at 11:29 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 68

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



Still working on a bunch of stuff so I don't actually have any top side pictures yet but..... light!

The funny side effect of just trailing a light strip around the playfield is actually looks cool underneath too.

I ended up using 126 LEDs worth of 30/m strip to reach all ~30 inserts on the playfield. Besides from a few places where I didn't plan for lights and had too many mechs in the way, it was pretty easy to mount the strip over the the holes. The budget pack of clips I found are a bit too big, so there's still a bit of back and forth play, but I don't think there'll be enough movement to cause any issues.

I hooked the strip up to a dedicated 5v line+fuse coming from my ATX PSU, and it seems to be lighting fine with just that power coming in at one end (I was sorta expecting needing to provide more power somewhere along the length), even with all the lights on (which will never happen in practice). I had to make another little adapter board for my RPi-powered MPU to add in a 3V - 5V level shifter since the RPi only puts out 3V, but that seems to be fine for driving the whole strip, with an added 4ft of wire between the board and the beginning of the strip. Time will tell whether the electrical noise interferes with the lights once everything is playing, but hopefully they'll be okay (plus I plan to refresh them at 30Hz so any glitches should clear up quick).

Posted Tuesday, November 16, 2021
at 11:20 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 67

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



Got the inserts from PBR, luckily they're the same size I was planning on, so I went ahead and cut all the arrows.
Midway through I stumbled upon this technique, drilling three holes through first, then routing out the rest using the guide, which allows me to do all the routing in one pass (before it was three passes since I kept needing to stop and remove all the dust, etc). Then once it was cut and the insert test-fitted, I'd take the guide away and hand route between the three holes to leave a good open area in the center for the light.

I was hoping that the circular inserts would match up with my forstner bits, but not all of them did. The smallest one (5/8?) are perfect, a nice snug fit, but the 3/4" are just loose enough that they'll fall out from gravity if there's any vibration. I'd like to get these all press-fit if possible so I don't have to worry about gluing them, so I'm going to try to make another router guide for the 3/4"

Posted Tuesday, November 16, 2021
at 11:19 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 66

Cross posted from the original Pinside thread, this is one of many posts regarding my third homebrew pinball machine, creatively nicknamed 'P3'



Got the LED strip today. Was surprisingly easy to get working using adafruit's python library, worked the first time. Sadly I don't want to use the python library so I'll need to explore alternatives for integrating it with the rest of the code. I did some experiments with inserts. The circular ones lit up fine, but the larger ones like the arrows had a bit of coverage issues.
It's hard to get good pictures of leds lit up, but

Here's a clear triangle insert
And here's an opaque one

The clear one lit up a bit more evenly, but it didn't really look that good, you could clearly see the hot spot where the led was located. Surprisingly I think the opaque one looked better overall, and other colors seemed less washed out, which is nice since that's probably my only option...

I then played around with led placement. Putting it more towards the center or ends didn't help much; the ends were still pretty dim. What did help was cutting a bigger hole. here's a single led, positioned similarly to the previous photo, but with almost all of the insert cut through the playfield instead of just one hole the size of the led

Probably good enough for me. I'll need to come up with a better way to cut those inner holes out, maybe another 3d printed router guide or something.

I also played with two leds under the same insert

This looks a bit better than just one, but not as good as I was expecting. The hot spots seem more pronounced. I'm not sure if I'll be able to position the strip to hold two leds inside the arrow or not (the clamps haven't arrived yet). This is where a lot of people seem to use multi-led boards, which might be worth it at least for the main shots? I'll have to look around

Posted Tuesday, November 16, 2021
at 11:19 AM


Tags: Blog Post, Pinball, Project, P3,

< Newer Posts
Older Posts >

Posts per page: 5 10 25 50 100