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,

Homebrew Pinball #3, Part 65

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



Since I had the playfield torn down, I figured I might as well install the inserts too. I've got a big bag of random inserts I've collected over the years from different stores, so I started laying them out. To keep things simple, I used one size of arrow (1.5" triangle) and three circles. I think the circles can probably be done with a forstner bit, but the arrow will need to be done with a router. Taking some advice from Johnsonvillebrat, I designed a guide for my router
and a guide for the shape
It took about 10 tries to get the guide just right for a snug fit (a big pain, since each print took 3 hours!) but I eventually got it just right
and made my first cut in the playfield

....aaaand immediately ran into an issue.

Can you spot the difference between these two arrows?

One is wider at the tip! I sorted through my inserts and found out that half of them won't fit the guide I made, which also means I don't have enough of the correct inserts for the playfield. I was planning on making them all clear, uncolored, for RGB lights, but I don't have enough of those. So I went to order more.
...aaaaand no one stocks them! (unless I want to pay $5 each shipped from europe) What? A transparent arrow should be like, one of the most common ones needed. Pinball Life (who has a great selection of inserts for homebrew) has six colors... but no clear. And they don't have any plans for restocking. The best I can find is that PBR has some opaque white inserts available, but I'm not sure how that'll look since every modern game I know of with RGB lighting uses transparent.

Luckily, I had one of those in my assortment, so I figured I'd stick it over an led and see how it compared.

...which made me realize I have no RGB leds. In fact, I have no real plan at all for how to light all these inserts! Back when I was first planning out this electronics system years ago when RGB was still a bit new, I figured I'd just get some 4-legged RGB LEDs, and then just stick them in a matrix. Except I don't have any boards designed to drive a matrix. And after wiring up the switch matrix, I really don't want to wire up another whole matrix with double the wires. It seems like today everyone is using NeoPixels and other individually addressable, chainable LEDs (well, besides stern, but), so I started looking into what'd be the cheapest, easiest, least messy way to get some of those installed. Luckily when I designed my MPU I added a spare connector for the 3 extra unused GPIO the RPi had, and I made sure that one of those was the DMA pin that's commonly used to drive these LEDs from a Pi, so I think I can drive them. If not I can get a FadeCandy or something. It seems like a lot of people are just buying FAST's individual LED boards, but they're $1.50 each, and need wiring to connect them all. So I ordered 5 meters of addressable LED strip (150 LEDs) off eBay for $15, and some mounting clips for $5. I'm hoping I can just string this through the playfield to reach all my lights, and use the spare LEDs in between as free wiring (just don't turn them on). Maybe that'll work, or not. I can always find a use for 5M of LEDs at worst though.

In the mean time I've also ordered a bunch of opaque white inserts from PBR, since they're cheap and I needed some other parts anyway. Hopefully they light up well. Maybe the opaque inserts will give it a more retro feel? Of course, I don't know if the random opaque triangle insert I had lying around is from PBR or not, so cutting (and thus, reassembling) the playfield needs to go on hold for now until the order arrives so I know whether I need to design a new router guide

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 64

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



Ran a test cut of one 4x5" area

It turned out fine, no obvious issues.

so I went and did the whole thing. I took one of my rough manual cuts, and stuck it down with a bunch of double sided tape. In retrospect I should have used thinner tape, as during the cut I could see the plastic flexing downward before the bit broke through, but it doesn't seem to have caused any issues with the cut.



My first time running a real job on the CNC, probably took about 40 minutes. Plastic seems to have come out fine, and it at least fits on the playfield.
Most of the holes are off center, but not outside the margin of error (I made every hole bigger than needed). There's a few places that need some correction, so I need to figure out how to do that. Aligning the plastic perfectly was a big pain, I don't think I could reliably get it matched up again. But I want to avoid doing stuff 'by hand' for risk of cracking the plastic. Maybe I'll need to use the router manually? Or try to run the CNC with manual control. Before I bother with any of that though, I should probably secure this down again and do some more heat tests.

I went in multiple times to try to do the corrections to the layout, but something just wasn't making sense. The corrections weren't all in the same direction, but different parts of the playfield tended to all need correcting in the same direction, and half the time that direction was opposite of how i'd already corrected those points before. In addition, the way I lined up the plastic so that it lined up with holes the closest resulted in it not being parallel with the edges, which didn't make sense either. When I lined it up with the edges of the playfield, right to the corners (where I know it should all match up), none of the holes lined up at all. So I stopped working on that until I could figure out what was going on. I measured various parts of the plastic and the wood playfield, and checked them against my CAD drawings, and they were all accurate. Then I got a t-square out to check if maybe my playfield somehow wasn't square. Nope, playfield was square. But the plastic wasn't! It had a 3/8" skew to it along its entire length. There must have been something wrong with the setup of the CNC causing it to list to the right as it moved up the playfield, so I'll need to figure that out. Never noticed in my test cuts since all of them were smaller. So that plastic is a loss for any real work. But knowing that it's wrong, I don't have to worry about fixing it the right way. So I just got out a router and adjusted all the holes by hand to line up enough. I'll reassemble the playfield on this bad plastic for now to test out the material.

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 63

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



But before I can cut some new stuff, I need some drawings to cut! I took my scan of the original playfield, and converted it back into a cad drawing (what a pain!). Then I got that printed out on paper at 1 scale again, tore down the playfield, and laid the paper down on the playfield to verify everything, since I wasn't sure if the scans would be "square".

Sadly you can't see through paper (it would have been amazing to get this printed on something clear but as always I'm being cheap), so I had to use a small screw to search out all the holes in the playfield again for comparison

Some parts were spot on
Some were off, but very consistently so
And some things were so far off I don't know what could have happened...
Overall, the stitching seems to have worked pretty well, but not good enough to really be a go-to thing. In the future I'll need to be more vigilant about cutting stuff exactly matching the cad, and adjusting the cad as I go when anything diverges to prevent this.

I spend most of my day off today going through every hole again and manually adjusting my cad drawing (which the paper was printed from) to account for the discrepancies, so hopefully I'm now good to go. I'd like to avoid having to get another throwaway paper printed to verify all my changes, and I've got 3 sheets of acrylic ready to go, so I'm tempted to do a few test cuts on leftover stuff, then just get cutting and see how I do. Probably not the smartest thing to do but at some point you've gotta stop preparing and just jump in, and the cost of failure is theoretically pretty low (or it would be if I could find any reliable source of plastic locally, grr)

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 62

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



Two months of no real progress on the game, but: I've got a CNC router!

It's... currently sitting on top of the bed in my spare bedroom, because I horribly underestimated how big it would be. But that's fine, not many guests during COVID. I haven't done any really big serious work with it yet, but it seems to work fine for my small tests I've run so far, so I don't think anything should change much.

I did some test cuts using a straight edged router bit (not sure the correct term for this), which was recommended for cutting plastics (since it doesn't have a helix to pull up the material). With a spare bit of lexan, it didn't do too well, sorta ripping up the edges and melting them a bit, similar to the issues I had cutting my lexan by hand with a drill. I got a sheet of 1/16" acrylic and tried that, and it cut much better. Not perfect, but definitely presentable. The only issue is that acrylic has a tendency to crack and shatter randomly. The router bit hasn't caused any of that yet, but when doing a whole playfield it could potentially cause an issue. I also tried another scrap of plastic I had on hand (which I think is PET-G, but I didn't label it), and it cut super nice. I'm trying to source some PET-G sheets locally to test out but I haven't found anything so far, so I'm gonna go ahead and try the thicker acrylic first. Acrylic also is (supposedly) what 70s+80s games with plastic playfields used, and what other homebrews have, so I'm still hopeful it'll work.

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 61

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



After a few multi-hour sessions with the glass on, the plastic has finally started buckling. Worse, after I left it to cool off for a day, it's still not lying completely flat again. I assume if I stripped and repopulated the whole playfield I could fix it, temporarily, but not a permanent solution...

I've been told that this method worked successfully on some homebrew pins, but using 1/16" perspex (acrylic). When I went to my local plastics shop to buy some, they recommended I use lexan instead for this application, as it shouldn't react to heat any more than acrylic and would hold up to the pinball better, but months later when I finally unboxed the sheet and measured it, it seems to be 1/32" per my calipers. So maybe a thicker sheet would work, or maybe the material is wrong. Or maybe I'm missing something else... I don't really want to hand cut another one of these after all the effort the first one took either. Maybe I'll shell out to get one laser cut, if I can get a good cad file together...

I've also ordered a CNC router (https://www.v1engineering.com/lowrider-cnc/) that hopefully I can eventually use to cut new playfields and maybe plastic sheets (or even longer term goals, I get my own laser cutting head to attach to it), so maybe I'll wait on addressing this issue for a while. Moving back to a clearcoated playfield is always an option, it'll just add a ton more complications and steps to deal with...

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 60

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




Got the playfield reassembled and have been playing a bunch of test games. No buckling on the main playfield at all. I've got a slight bubble above the upper left flipper, I think I just tightened stuff down wrong though, doesn't seem to be changing. Have to be very careful no screws are rubbing against the edges of their holes, and to attach stuff in a 'wave', to make sure the plastic lies down flat. There's a slight drop in the plastic over the screen from the weight of the ball but not enough to affect its travel or anything.

Plays much faster with the plastic compared to the paper (who would have guessed?). I'm not getting occasional airballs off the center bank, which isn't great, and some balls are flying right over the eject hole. I'll have to make some air ball guards, and might also turn down the flipper strength some, since it's a bit too much in some places. If you hit the left target on the center bank from the right flipper it rockets down the left outlane too fast to see.

While reassembling I also noticed that some of the post screws are starting to strip. Some of these should definitely be machine screws, but that can wait.. for now I'm just upgrading to longer screws, since the ones I had were only going 1/4" into the wood.


The upper magnet continues to cause me issues. Despite doing multiple tests showing that it could grab a ball from ~2.5" away with no wood in the way, it still can't pull a ball reliably off the post for some reason... It might work better if I had the post above the magnet instead of below, so it'd have more time as the ball drops, but it's probably still be sketchy. Again I wonder if having a large metal core covering this whole area would work better, or if having the magnet under just 1/32" of plastic is equivilant....

If I position the magnet at the far right, it can grab the ball 75% of the time, but it drops it too far to the right and it doesn't feed the flipper well. If I position it more to the left it feeds cleanly, but can't grab the ball. there's about 1/8" sweet spot where it mostly works, but anything can throw it off, definitely not reliable enough.

Additionally, I'm also having issues where sometimes the ball comes around the orbit so fast that it actually bends the post and gets wedged in between the post and the wood on the right, sometimes also lifting off the playfield somewhat. If I can't get the post more rigid, I'll have to abandon it since it's getting the ball suck...

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 59

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



Installed the upper magnet. Needed to cut a 3" hole to fit it, but luckily that just barely left holes for the surrounding stuff that was mounted there. Right below the nearby target you can see one hole where one end of the ball guide goes, which I'm half certain is going to rip apart at some point since there's so little wood left there. Tried to design the mount to hold the magnet slightly below the surface so it won't scratch the plastic, but not sure how that'll work when the magnet is active... maybe I should cut a circle of plastic to 'float' in between them or something? I feel like overall I don't want it to be too much lower, or it may stretch the plastic or something

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


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 58

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



After a lot of careful measuring, it's time.

The fit I'm going for is very tight. I'm about 2mm from one of the drop target mounting points, and I'm going to need to relocate one of the slingshot switches slightly, move a fuse block, and make a custom mount for the magna-save, but, it should work.

Printed this magnet bracket, and cut a small stick of 3/4" iron for the core (I think this is the right metal...)

20 agonizing minutes later, I have a hole

It fits! Barely. You can see the penciled outline of the drop bank on the bottom right, and the currently floating fuse block on the bottom left. I had some room to the top (left side of the playfield) I could have moved it to if necessary, but I wanted to keep it centered between the slings/flippers if possible

I then mount the control board very professionally, and hook it up. Success!
Lets get a game running...

The viewing angles aren't the best but I think it should be okay. Will have to wait until I get it in the game for that though. The supports are a bit too thick and stick out of the playfield, so I'll need to space those or something. Not sure how I messed that up, thought I specifically made them slightly short :/

Posted Tuesday, November 16, 2021
at 10:28 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 57

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



Reassembled and dropped it in the cab again for more testing.

Everything seemed to work fine. No mechs were sticking, no raising of the plastic anywhere. I left it sitting for a while with the transformer+electronics on in case that would trap any heat underneath, but nothing happened. I'm still quite suspicious, but I can't really think of any more testing I can do at this point, and the playfield does look so nice and shiny....

So I took the playfield back out, and disassembled the whole thing again. I'm getting very fast at this, but it's still a pain. One thing I'd try differently next time is the side rails. Currently they're under the plastic, but I think it'd be fine to have the plastic 1mm away from them. This'd save at least a quarter of all the screws I need to remove when taking the plastic off, and prevent the playfield from having time to sag while the rails are removed. Within a few hours of removing them there's a noticeable 1/4" dip in the middle of the playfield, which is more than I'd have expected, especially with all the drop target banks already removed... I assume my playfield wood just isn't as sturdy as what manufacturers use, but nothing I can do about that

With the plastic removed and everything stripped off, I have some updates to do that I've been putting off:
- the right controlled gate for the top lanes needs to be moved about 1/2" to the left to prevent ball hangups
- the right-most upper lane needs a new rollover drilled in line with the others, since previously it only had a 'bottom' row switch
- need to add lane guides to the upper lanes so the ball doesn't fall the wrong way
- the target under the upper left flipper needs some tweaking. The hole isn't big enough to fit it through right now, so I need to extend it, and I want to reposition the guide wire below it to give a better feed
- I've removed the upper left target (it was sort of under the ramp above the upper left flipper) since it can't be hit due to the pop bumper being replaced with a rubber (it wasn't really hittable before either), so now I can make a new guide going from the upper eject hole to the upper left flipper that doesn't have a gap in it for the target, which will hopefully improve that feed.
- widen a few holes and slots slightly since some mechs would occasionally bind a bit on the edges

Once that's out of the way, I'll move on to the fun part: cutting a 10" hole in the middle of the playfield for the LCD screen. No chances to mess up horribly here, nope...
And then I can cut another 2.5" hole for the upper magnet and finally get that installed again!

Posted Tuesday, November 16, 2021
at 10:27 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 56

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



No noticeable change in the plastic after sitting all day with the lights on it, so time to dig in. I started by just making all the holes for posts, guides, etc.
I've gotten pretty good at making clean holes, at least for smaller sizes, but for some reason they never seem to center well. Some I went to a bigger size, others I manually elongated by running the drill against one edge.
Luckily, with a new blade, making the slots and other straight lines isn't too big an issue. I score each side 3-5 times, then use a hammer to punch it out, and I get pretty clean lines (as long as I get the corners right)

Bigger holes cause issues. Once you get to about half an inch (or even 3/8 sometimes) the bits start to chew up the plastic. Depending on how bad it is I can sometimes clean it up with a blade but it's never perfect. I wish I had a better way to do these, but no method I tried (drill, forstner bit, spade bit, etc) was perfect. It'll be fine for a whitewood, but I think I'll definitely need to get a better one of these machine cut at some point if it all works out.

I'm finally at a point where I have most stuff cut out, enough to reassemble and playtest the game to see how everything works. I've skipped some of the guides, the drop target banks (since they're removed right now anyway), etc.

Posted Tuesday, November 16, 2021
at 10:27 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 55

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



Using my flatbed scanner, I scanned the whole playfield in, since this is probably my only chance to access it completely flat

I'm hoping that I can stitch these together and use them to update my CAD drawing to match the hand-changes I made when assembling, though I've heard mixed results about how accurate this can be...

Then I put down my sheet of plastic, which I think is 1/32 lexan, and started marking holes for posts.

The main worry with this plastic is whether it'll bubble and expand, separating from the wood, which I've seen happen when trying to make playfield protectors. This is a bit thicker though, and lexan, not PET-G; I'm hoping one of those two factors will fix that issue. To test it, the best thing I could come up with is just to heat it up for a long period of time, so I set it up with a bunch of incandescent lamps pointing right at it, for lack of any better options

I'll leave this on all day, and see if the plastic rises up anywhere. If not, I'll proceed with cutting the rest of the holes+slots, and reassemble the game for further testing. Not sure if I'll also cut the hole for the screen at this point, or play it some with the protector first before going 'all in' and cutting a 10" hole in the playfield.

Posted Tuesday, November 16, 2021
at 10:16 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 54

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



Game is getting increasingly hard to play due to the lack of a screen, so I decided it was time to bite the bullet and try installing the plastic sheet, which means I need to strip the whole playfield. Took it out of the cab for the first time in a while

In some places, I'm glad that past-me thought ahead and installed connectors
In other places, like the wires going to the trough mechs, I wasn't that smart, so I ended up cutting the wires, and I'll install a connector later. A few mechs I left hanging, since I didn't think to put connectors on them, and now they're wired in such a way that I can't easily add them.

Tear down went pretty quick and painless. There's not that much on top of the playfield, and all the drops have connectors so they're quick to remove.
The biggest pain was all the standups. They didn't get connectors either since they're so scattered, and some of them barely fit through the playfield. In a few cases I actually assembled them through the playfield to begin with, so I needed to disassemble the target again to get it out.

The paper has held up pretty well to being played on over and over.

When I first installed it I worried that the ball would rip it up when I started flipping but there's no tears at all, even in high traffic places.

I moved all the playfield components to a spare sheet of cardboard to keep track of them:
I wasn't very consistent about screws, posts, etc when assembling, and in some cases I even had to do stuff like grinding down plastic posts to make them shorter, so you really can't mix and match anything, and keeping it all straight like this is really important.

Taking off the paper reveals about what I'd expected: a ton of trapped sawdust everywhere. It's been messing with the ball and getting it stuck in places it seemingly shouldn't

It also reveals something I hadn't anticipated; the wood around every screw is slightly ripped up and standing above the playfield
I'm not sure if this is just normal, or if it's caused by me screwing everything in without drilling pilot holes. Luckily these sanded down easily without affecting the finish of the wood at all

With the playfield all torn down, next I'll need to start cutting the plastic

Posted Tuesday, November 16, 2021
at 10:16 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 53

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



Installed a tilt bob, which had to go on the right side due to how I'd routed the wiring, etc. Even in this position I'm still going to need to trim the rod some to keep it from catching on stuff. Plus I need to earplug it!

With that installed, I realized I still had no way to kill power to the flippers, so I installed some relays too. Now the tilt works properly in game, and the flippers also aren't energized when there isn't an active game.

While opening the game to check on something, I noticed I had four pinballs piled in the front left corner of my cabinet. Occasionally, balls hit by the right outlane saver will airball over the lower left flipper/guide and fall down in there, and rather than grasping around for them I just grab another ball

So I set up an airball catcher, made from scrap lexan and attached to the existing ball guide

In order to get the height right, I also had to put the glass back in, which was a problem since I didn't have any siderails. I dug a pair of stern side rails (from replacing with lollipop rails) out of my spare parts, and they seem to fit the williams cabinet fine. Eventually I'd like to get proper williams rails on there, but I need to get the secondary holes for the extra flipper buttons, so that's been on the backburner. Since the stern rails are narrower, they fit above the buttons fine.

My lockdown bar is also still covered in rust, so I grabbed one from my whirlwind for now, and for the first time actually had the game assembled with glass+lockdown bar. It's surprising how much of a difference this makes. The game feels much more like a 'real' game. A lot of the noise gets quieted down, which also makes the gameplay feel smoother. A big improvement, although I still need to get a coin door skin somewhere...

With the mechanisms quieted by the glass however, it becomes much more obvious that I don't have any sound effects! I think this is going to be a big focus soon; I need to start finding (or recording) sound effects and callouts for everything. I'm not really sure how I want it to sound either. Most card themed pinball machines are EMs, and the solid state ones fall into that weird early 80s state where the only sound effects that could be generated were laser blasts and explosions (Eight Ball Deluxe always stood out to me for this). By the time sound designers were free to use any sound effects they wanted, poker themes weren't really popular. I think the only two games that'd fit that category are High Roller Casino and World Poker Tour. For better or worse, the sounds on those have never really stood out to me, to the point where I can't actually remember what they sound like to use as a reference. For a while I was tempted to stick a chime box in this game and call it done, but I'd like to try to get some actual sound effects in.

For now, I think I'm going to try to make all the sound effects be related to actual poker. Chips clinking, cards being shuffled, etc. Not a ton to work with but maybe it'll be enough. Not sure how that'll feel as a pinball game either though....

Posted Tuesday, November 16, 2021
at 10:14 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 52

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



After more playtesting, I decided that it was too hard to catch the ball. With a game where not hitting the wrong things can be as important as hitting the right things, players need to be able to get some control. Even I was having trouble with this, and would often have the ball roll off the end of the flipper while trying to catch it, which I think is partly due to how steep my flippers are (at rest), and thus how shallow they are when raised.

When I originally designed the game I tried to copy the layout of my Alien Star, but I messed up somehow, and part of that was that I put in my flippers too steep. A while ago I picked up a spare gottlieb inlane guide, so I stuck this in my printer and took a scan:

measuring that picture, I got an angle of 119 degrees (probably 120 in reality since that's a nice number...), while my layout was 126 degrees (fun fact, williams inlane guides are 125, so I somehow mistakenly made williams inlanes...). So I made a new inlane guide with a 120 degree angle:https://cad.onshape.com/documents/cf8933508c54fdc1d2e1cbec/w/8de46f8a59b2e2a9657a1015/e/ce2603cfd473c1490421177c

Installing it on the playfield made it look way more dramatic than it was, with the giant gap between it and the slingshot:

But the actual difference in the flippers was pretty reasonable:

So I went ahead and adjusted the left side as well, and moved the slingshot down to compensate

You can see from the old lines and holes how much stuff moved... I'm ending up with a lot of holes in my playfield! When I try to make the plastic for this, I'm going to have to be careful to note which holes are 'current' so I don't use the wrong ones when reassembling.

Posted Tuesday, November 16, 2021
at 10:14 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 51

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



For the second aspect, I wanted to see whether the shot behind the pop bumper could be made if you removed the pop bumper. So I took out the pop bumper:

Gobble hole? No, I need to fill it. What do I fill it with? Well, lets just cut another hole with the hole saw and save the piece



Not a perfect fit, but for testing it works better than expected.

Now... Can you shoot into that area to the right of the back lane?

No problem!

Originally I was going to consider redesigning the lanes area to add another 'shot' here if this angle worked, but I realize there's already a handy blue target right there, that can no longer be hit by the pop bumper, so I don't really need to design any new shots. Just add an arrow insert pointing at that target and make it a jackpot or something, and it goes from 'least useful target in the game' to 'major shot'. Considering the amount of work necessary to redo this area to use two shots instead, I'm inclined to just go with the four lanes from the previous approach and this 'shot' here.

Now for the last bit, should I put something where the pop bumper was? I did a bunch of test runs, dropping the ball from each of the upper lanes, rolling it down the metal guide, shooting it from the upper right flipper, to see exactly where the ball traveled, what angle it was going at, etc, and then took a deep breath and installed two posts.

This is another case where I hate trying to place stuff, since getting these two posts positioned at the proper location and angle to get the bounce I want could take a lot of trial and error, leaving my playfield filled with holes, but I don't really have any better ideas on how to approach it. Originally I'd hoped that both ends of the rubber would be located on my disk I installed, so I could just replace it if necessary, but it was clear from my drop tests that at least one end would need to be on the playfield.

Now... does it work?

Success! I'd like it to feed a bit higher on the flipper, but proof of concept is working good. I think eventually it'll need be lowered a bit (but not so low that it obstructs the right flipper's path to the upper scoop. A bit of nudge when the ball lands on the rubber should help too. Before fine tuning further I'm going to play the game more and see how this affects other parts of the game, but throwing it around by hand it seems to be working generally how I'd like:

I had also planned to maybe put a standup behind this rubber to be hit by the right flipper, and it looks like from a very early shot you can hit the bottom edge of the rubber, so that does look possible, but I'll wait to do that until I'm sure I like this rubber and its placement. I might also experiment with alternate coil stops/etc on the right flipper to make it shoot at a higher angle.

Posted Tuesday, November 16, 2021
at 10:13 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 50

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



Added a post on the upper right of the lanes, and luckily it doesn't seem to affect orbit shots, so I think that converting my two rows into one 4 lane row is doable. Plus, since I still have the switch down below, I don't need to make any further playfield changes for now to work with it. The action is also not too bad. The ball doesn't stay up there long, so you have to lane change fast, but it's not impossible. I feel like the lane change on some games makes it almost too easy.

I do wish the gates were a bit more bouncy though. You only get maybe one bounce off each of them even on a strong shot; I'd like it if the ball bounced back and forth a few times. Not sure if that's something you can do much about though. Maybe I'll play some some foam or springs eventually.

As you can see in the image though, there's one small issue: the right gate is a bit too far to the right, so the ball gets hung up from time to time. I'll need to move it a bit to the left eventually, but for now it doesn't get stuck too often.

Posted Tuesday, November 16, 2021
at 10:13 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 49

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



Did some testing with the plastic covering... I previously tried to do a full playfield protector on one of my games, but as expected, it warped and raised off the playfield, presumably due to heat expanding/shrinking. However there are many european pins that have plastic playfields and don't have that issue. I'm not sure if that's due to the material (IPDB claims they're plexiglass but I don't know how they tell) or the thickness (I've now gotten confirmation that at least one manufacturer, Interflip, uses 1/4" plastic over their 1/2" plywood).

I cut two strips of plastic, one from the new sheet of lexan I bought for this project and one from the scraps that (I think) are from the previous full protector I made (hard to tell these sheets apart :/ ), and attached them to a piece of plywood, then I stuck it in my Dracula (the only game I have handy that's all incandescent) to 'bake'. After 12 hours, I could see some slight raising on the old material, and minimal/none on the lexan, which is promising at least... I'm not sure exactly what conditions are needed to reproduce the issue though. Is it just heat expanding the plastic? is it air under the plastic heating due to inserts? Presumably it's more noticeable on larger areas with no anchoring, but that's harder to test.


I also did some more practice cutting of my spare sheet of lexan. Trying regular drill bits and forstner bits. The forstner bits seem to leave more of an edge on the holes. Both seem to have some risk of creating weird spirals of plastic (like on the rightmost hole in the picture). Cutting on wood seems to help, I think since the bit can't 'punch through'. I was able to get pretty clean holes with a drill bit at medium speed. Too fast or too slow tended to cause issues. I also need to make sure to hold down the plastic around the bit as much as possible, to keep it from pulling the plastic up.

Experimented with cutting straight lines as well, and found that it's possible to do pretty cleanly with an exacto and ~5-10 passes. Definitely preferable to power tools. Can also be cut with scissors but they're hard to get into the holes since you're not cutting from the edge.

On last annoying thing: apparently the plastic sheet I purchased is 1/32". It's been a while, but I thought I'd requested 1/16 as 3/32 wasn't available, and I felt like that was the most that could be potentially layered on top of a 1/2" playfield without affecting the mechs+etc sticking through. I'll still use the sheet though since I've already got it, and hopefully it works okay. If I run into issues with it flexing or expanding, but everything else is fine, then i'll consider buying another thicker sheet

Posted Tuesday, November 16, 2021
at 10:12 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 48

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



With the gate figured out, I'm almost ready to tear the playfield down and start cutting my lexan covering. There's ones area I'm still not satisfied with though: the upper right area

my original design for this was intended for it to be two offset rows of three lanes, using the shot behind the upper drops as the third upper lane. Like on EMs, you'd shoot up there, bounce around, and try to nudge into the lane you want, then fall down into the pops. But it isn't working out the way I wanted.

1. due to the path of the ball coming through the spinner, I had to remove the mini post I was going to have on the far right of the lower lane, so now balls tend to just roll off to the right instead of going over the rollover
2. there's only one pop bumper, and it's not directly below the lanes. you don't get balls going back up through the lanes much. instead, the ball rolls down to the pop, and gets shot back up to the area below the lanes, and then just falls back down to the pop again. Sometimes this can repeat 5x before the ball works its way around the pop and back into play. Not satisfying.
3. Due to the small size of the divider posts, it's much harder to nudge the ball where you want it than it would be on an older game, which would use 1/2" posts.
4. again, due to the way the ball comes in from the spinner, there's a gap between the rightmost post and the one way gate. When you shoot through the spinner, about 40% of the time, the ball bounces off the left gate and falls perfectly back through this gap, never entering any lane.
5. the lanes are so close to the top of the playfield that there isn't much room for the ball to move around. This also means that the exit of the lane behind the drops doesn't flow well since it just bangs into the top arch. I originally wanted it to shoot around the orbit.
6. because this playfield is longer than an EM, being in a whirlwind cab, the lanes are even farther away from the player, which makes it harder to figure out where the ball is going or nudge appropriately

Part of the small spacing is caused by the lane behind the drops, but I don't want to lose that shot since I want to use it for jackpots during multiball. At a minimum, I need to adjust the playfield somehow so that the ball can't escape the lanes on the right, but I'm considering reevaluating this area further...

A simplification of the lanes?

Basically changing my two sets of three lanes into one set of four. This would solve the gap on the right issue. It should function ok, as long as the rightmost post/divider doesn't interfere with the spinner shot. There'd be no room or time for nudging, so this would have to be just a lane change affair. I'm not sure how much the ball would bounce around up there though, with the upper rail so close to the posts. Would you even have time to read the ball movement and try to change lanes before the ball had fallen into one?
The pop bumper will still feel a bit weird with the ball popping into that dead area repeatedly though. I'd like to move the pop bumper down some, but moving the entire bumper isn't something you can really do once you've cut its hole, so that'd have to wait for another whitewood...

Maybe get rid of the pop bumper completely?
Although I like having a pop bumper (especially one pop bumper, which recalls games like Stars, Meteor, or TNA), I'm not sure it fits this design that well. it tends to make play on the upper playfield very chaotic. If you don't hit the drop you're going for on your first try, you're out of luck because the pop bumper will pop the ball around and take out 2-3 drops before you can get control again, which is half your hand. I'd hoped it be more of a 'danger' off in the corner, but during play the ball tends to hit it any time it's up there.

One thing I originally envisioned for this layout was that the center drops would be angled the other way, allowing you to bump the ball back towards the upper left flipper off them, but the spacing for that didn't work out. Adding a small rubber here might make the play up there more interesting, allowing you to bounce the ball back to the upper flipper. I could put a target on the back of that rubber too, to give the upper right flipper another target to shoot for. It was supposed to be able to hit the target on the upper left, under the ramp, but it turns out the flipper can't hit something that high up, so that target is basically useless.

Instead of lanes, I could try to do something like many williams EMs have?

A kickout hole with rubbers on either side to alternate the award. It's a fun area to play in, trying to nudge the ball back and forth to get it to land on the award you want. I'm not sure there's enough room for it, or what the awards could be though.

Or maybe something completely different. Get rid of the upper section completely. No more one way gates; the ball always does a complete orbit. Lots of other ways you could take this, but here's one idea I came up with:
The shot next to the drops is still there, it's just redirected to feed the right orbit cleaner. Hopefully with this the ball could feed down the right to the inlane, or get caught be the magnet to feed the upper right flipper. The area below it could be an extra hard skillshot: plunge just to the beginning of the arch to arc the ball into that lane.

Or maybe that lane is also shootable via upper left flipper? The pop bumper would need to be removed to unblock the shot, but...

Now you have two shots from the upper flipper. One feeds the left inlane to the lower left flipper, one feeds the right lane to the upper or lower right flipper, or shooter lane. I've always thought that was a cool idea, although it makes more sense on a more combo/flow game. Demolition man technically pulls it off, but the side ramp is so hard to shoot compared to the subway that everyone just goes for the subway. With equally easy/hard shots the flipper could act as a 'skill diverter' letting you intelligently set up more combos. Maybe that could still make sense for this game though, as long as the rules set up something for each lower flipper

These last two redesigns look a bit weird on first sketch, but there's a lot of room up there to tweak things and make them shoot smoothly. Having a large empty area like that feels weird to me though... As a designer I like to use up every single square inch of playfield, so having a large empty plastic like that seems like a waste, but maybe it's for the best?

Tomorrow I'm going to pull out the pop bumper and patch in some wood in the hole, and see how the upper area plays like that. Does it shoot better? Can an extra rubber there make the ball bounce back the way I'm thinking? Can the upper left flipper hit that rightmost shot? Can the upper right flipper hit that rubber?

I'll also try placing some more posts in the upper right area, see how far to the upper right I can put stuff without interfering with the spinner shot. I imagine if you get too close to the upper arch the ball is going to hit the post, since it's probably rattling around a bit as it meets the rail...

Thoughts? Any other cool ideas?

Posted Tuesday, November 16, 2021
at 09:52 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 47

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



I tried to write some code to make use of the left orbit (under the ramp), and realized I had no good way of detecting shots through there. I had originally placed a rollover under the ramp, and a hanging gate across the exit from the back the ramp. That way, shots that hit the rollover first would count as orbit shots, and if a shot just triggered the gate, I'd know that was the end of a counter-clockwise shot from the spinner as it entered the left lane. The rollover under the ramp also doubles as a way to detect balls that, coming around from the spinner, fall under the ramp instead of going down the left lane, so I can raise the ramp temporarily to let the ball out. Which is good since that happens *a lot*. That should have all been good, but it seems it's possible to shoot under the ramp and not trigger the rollover, probably due to the width of the ramp and the ball bouncing around. So often I was just getting the gate switch, and had no way to tell which direction the ball was going, which was a problem. I also wanted to improve this area to give a cleaner feed to the left lane from the spinner, and prevent balls going under the ramp from the back so often.

Enter: the longest gate ever

Now it senses balls coming through the left orbit, using the same hanging wire as the previous gate did, and prevents balls from going under the ramp from the back, instead feeding them to the left lane. These little gottlieb L brackets for mounting gates+spinners are a life saver, they allow me to do all kinds of weird things with gates. Just need to make sure they're aligned properly

Posted Tuesday, November 16, 2021
at 09:51 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 46

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



I realized that the top lanes still did nothing outside of the skillshot, so I decided to add a quick rule that one lane would give you more magna-pulses, but this reminded me that I still didn't have any ability to sense the flippers being pressed. I've been making do so far with using the secondary buttons for stuff like navigating menus, but you can't really use those during gameplay, and I want to add a status report soon since I'm getting to the point where the screen is getting filled up with information.

Since I'm using directly controlled flippers with high voltage contacts, this isn't as simple as it would be with software controlled flippers. I don't want to use switches on the flipper mechs like early games did since that seems to have some lag sometimes, and I can't add switches to the buttons since they're already double stacked for staging, so I'll need to do it electronically. Looking at other games, system 11, WPC, and gottlieb system 3 use opto-isolators to sense the HV signal going to the flipper, but I didn't have any on hand and have never used those before, so I tried to come up with a simpler solution.

My thought was, since my flippers are grounded by the cab switches, I should be able to just hook some 3V circuitry in parallel, since ground is the same for both. I put a diode between the chip and the cab switch to prevent the high voltage from going backward, and used a 74367 tristate buffer chip, so I could hook the switch matrix column to the enable to simulate a physical switch. A quick test with a breadboard hooked up to the switch seemed to work, so I assembled this one off board
Optimally this would have been part of my MPU board, but I wasn't sure what the circuit would look like at the time, so I left it off. Once it's battle tested I'll probably design a new MPU with the added stuff but for now this'll have to do.


Wired it up and ran into an issue... hitting either flipper button registered both sides. of course, not something I ran into when testing just one side with the breadboard. The signal seems to be traveling backwards into the playfield, through one coil to the HV line, then back through the other coil. I ended up just putting some beefy diodes in line between the flipper coils and the contacts to prevent that.

Also had an issue where the right flipper button (row 1, column 8 ) was also registering as the switch in row 1, column 1. Left button (row 7) was fine. Eventually concluded this was just due to the order I scan the matrix (row 1->8 for each column 1->8 ). I must be scanning it faster than the circuit through the chip can react, so it's still reading as closed for the next column (1 is after 8 ), but corrects itself before it gets to the other rows. Added a tiny delay after finishing the last column to account for that.

Posted Tuesday, November 16, 2021
at 09:51 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 45

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



Another lingering problem I've been having is with the slingshots and pop bumper. Originally I was going to control them through the driver boards like everything else, but I realized I'd be able to use 2 boards instead of 3 if I powered them separately. So I figured I'd just drive them with Gottlieb pop bumper driver boards. I had some spares, and they're purpose built for this purpose. But for some reason I can't seem to get them to work well. Unless I gap the switches incredibly wide, the boards will rapid fire. So after a lot of fighting with that I decided that I could make a better pop bumper driver board!

Instead of relying on a 555 timer and some capacitors to handle timing and debounce, I'd use a cheap CPU (a PIC16F1827 8 bit CPU) and code it to work exactly how I needed. Plus, then I could use a single board to drive all three of my coils (these gottlieb boards are so spread out and wasteful!). Since I already had the wiring harness set up to use them, I designed the board so it could work with multiple original 6 pin connectors, or with just two custom connectors (one for inputs, one for coils). And since the CPU had 15 IO pins, I made it drive up to 7 coils (why not?). Still the same size as the original, and mounts using the same standoffs:

I built one up, populated the components for three coils, and hooked it into the machine. It took some tweaking, but the results are quite good. I'm now able to gap the switches incredibly close, so the kickers are super sensitive, and I can adjust the pulse time to get the strength where I want it. The pop bumper is now much stronger, and the slings got set a bit weaker since they've always been concerningly strong when they did get triggered

Curious to see how it performs compared to an actual gottlieb, so at some point I'll build another of these and stick it in my Alien Star, assuming I can get all the connectors to reach

Posted Tuesday, October 27, 2020
at 03:01 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 44

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



Had ideas floating in my mind as I went to bed last night, so I spent labor day turning my 3d printed down-post:

Into this:

(experiment! can you see this in 3d here? https://cad.onshape.com/documents/e14cc6f13a9ec312b7e371b0/w/a5bf5ad363bb92618999d587/e/dd1e5e8e912c1fee6b05a354)

It mounts in a standard slingshot bracket; when the coil energizes and pulls the plunger (which attaches to the bottom of this part) down, it also spins around about 120 degrees in its channel.

The thing fits in about the same area as just the coil (and could be made smaller too, but I sized it around the hex base which is 9/16 for easy mounting with a wrench), so there's no clearance issues compared to the plain post that was there before.

I had to rearrange things slightly since the existing post+hole wasn't in the proper position for a gate (which would optimally be right above the wire guide, but in the end it works since it also gives me more room to bounce the ball around a bit, giving the player more reaction time, which was another goal I had when reworking this area.

Will have to give it some more playtesting to make sure it holds up well... In the long term I'd redesign this area a bit further around this new mechanism. The two rollovers aren't needed anymore, since it's basically impossible for the ball to go the wrong way which also means two switches saved (I think my matrix is nearly full), two less cuts needed to be made in the playfield (and the eventual plastic cover). The post can be moved a tiny bit closer to the drops below. I can use a shorter metal rail since I don't need to have it extend up to work with the up-post, or maybe a small custom-cut guide can be made to fit below the post and provide a smoother transition to the outlane. Instead of the temporary red post I added on the left, I can shape the inlane guide above it to fill in that area.

It took about 12 prints over 10 hours to get everything right since I didn't really plan this out before hand, and didn't know what measurements I was working with, but in the end it's working smoother than I expected, so not bad for a day's work

Posted Tuesday, October 27, 2020
at 03:00 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 43

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



Lots of playtesting happening while I try to figure out what direction to take the code in. I've gotten a few others besides myself to playtest, such as my old college roommate who dropped by for dinner one day:

He's not a pinball player, and has probably played 20 games of pinball in his whole life, so it was interesting comparing how he played it with how other, regular pinball players did. Another interesting difference though, is that he knows how to play poker, vs another playtester who plays pinball a lot, but doesn't know poker too well. One person trying to actually play poker hands, go for good hands, etc even though their accuracy and control were minimal while another mostly ignored the hands. I need to make sure that the game is fun for both types of players.

Watching people play has also given me more chance to actually watch how the game physically plays and I've noticed some areas I don't like:
The right inlane/outlane area was giving way too many inlanes vs outlanes. The metal wall on the side of the slingshot to smooth the orbit feed doesn't help either, as it's effectively making the inlane even wider. I thought from my initial design that it'd be very outlane heavy but either the wood outlane wall is bouncier than I expected, or the angle the ball tends to come in just is leading to that sort of path... I added a mini post with a small rubber right above the inlane guide, which seems to help a bit:

My ability to place the post is a bit limited since I need to make sure not to interfere with the orbit feed from the diverter, so I couldn't really place it much higher, or any more to the left (which I wanted to do to make the outlane 'wider')

The left outlane had similar issues. The ball was going down the inlane much too often, and again I couldn't really change the size of the inlane that much since it's also the left orbit return feed. So I needed to play with the outlane instead. I started by swapping the left slingshot post from a star post to a thinner post, but that didn't have much effect. So I started moving the post down+right, keeping the front 'face' of the slingshot the same since I still need to keep it aligned with the switches. It's now down as far as it can go without touching the upper switch, which also required dropping from a 2.5" rubber to a 2" rubber. Still, the ball tended not to go down the outlane that much. I also added an old data east half post rubber to it, since I've found these tend to have a deadening affect on the posts, but it didn't really have a noticeable affect.

I also noticed that the magna save wasn't getting used. At all. Whenever the ball came over to this area, it'd either be down the outlane or inlane instantly; there was no time for nudging or reacting, let alone using the magnet. Eventually I'll probably move the magnet lower, since the slingshot has gotten so much shorter, though I don't think that will help the speed issue that much. I'm not sure if the issue is just that the game is too fast, or if the geometry is also having an effect. I added a mini post in this outlane too, again being careful to not affect the orbit feed while moving it as far to the left as possible, and also added a post above the magnet. I'm hoping that this will cause the ball to bounce off the posts more, leaving it in range for the magnet to be used. This whole area is a bit cramped... I wish I had had a widebody cabinet to use instead of a standard width, mainly for this left side. The feed down the left wall could really use another inch or so to play with, but oh well.

Playing with posts like this is a bit nerve-wracking. I can picture there being a lot of minor adjustments I'd like to do, but once you put a post in one place, you can't put another too close or the holes will interfere with each other. Right now I'm 'testing' by holding the post upside down so the rubber is at the proper height while trying to roll the ball through in all kinds of directions to see how it plays, which is working okay, but you can't really do any advanced testing. Most commercial games have slots for the posts to be moved through, but that is still only one axis, and those slots are difficulty to cut by hand. I'm almost tempted to make a custom little assembly with large washers above and below the playfield, so you can then just drill like a 3/8" hole in the playfield and position your post anywhere in there...


The lower/mini playfield entrance is also giving me issues. The ball tends to rattle a lot more than I expected coming down the outlane, so sometimes the ball is going the wrong way when the post is down. Sometimes the down post and its hole cause the ball to do weird things too, since the post hole is in the path of the ball (which I've learned from owning a Jurassic Park is something to avoid at all costs...).

I'd REALLY like to have a little diverter gate here instead of a post, but the area I have to work with is extremely limited. I picked up a Stargate recently, and saw that they had a really cool diverter mech in their outlane. It's a rotating gate, but it operates via an up-down post mech, with a spiral path around the plunger, so the gate/plunger is forced to rotate as it moves up and down. I bet that mech would work perfectly, if I could somehow find one to use, but I've only ever seen it in Stargate. Maybe I can fabricate one with my 3D printer...

I'm also going to play with the post to the upper right, try to move it down and to the left as far as possible in order to guide the ball more towards the mini playfield entrance. I can't move it too far though without blocking the outlane drain path, and I need the one way gate on the inlane to still work, so this may end up being a custom shaped 3D printed post?

The star rollover on the left got positioned too far to the left, so it's possible for the ball to roll down the guide smoothly and not trigger it. I can't really move the rollover though without cutting a new playfield or something. Multiple playtesters commented that the ball feeds to the lower flipper very fast; you need a very quick reaction to flip in time once you realize the ball is going to the mini playfield instead of draining. So I may try to reshape the guide here in to try and slow the ball down and force it to go over the rollover as well.

One last area of minor concern:

Occasionally a fast right outlane drain will self-lazarus off the mini playfield exit gate. It's not too often, so I'm not that concerned, but I'd rather it didn't happen. Usually games have 'biff bars' (or whatever the official term is) to prevent this, but since I actually want balls to be savable from the mini playfield flipper, I can't have one here. Don't really have any ideas on how to prevent this

Posted Sunday, October 25, 2020
at 02:15 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 42

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



More code progress, working on the first mode...

As I've actually been able to play, I'm realizing just how hard it is to get a straight/flush. The odds in real poker at random are about 3-4%. Not exactly how frequent you'd want a multiball to be... I had figured it'd be much easier here, since you're able to choose your hand, but it turns out that aiming is hard. Playing test games, I was managing to get a straight maybe 1/8 times. Not horrible, but still not too good. I also realize a general flaw with awarding modes+multiballs off your hand is that if you get 4/5 cards for a straight, that doesn't carry over. Most games if you drained while trying to get multiball, you'd at least have saved progress, but this is all or nothing. Also, getting a pair is super easy, probably too easy.

So I'm playing around with various ways to change this up. First, I'm thinking of other ways to get the various multiballs, such as using your poker winnings to 'buy' them. That way as long as you win your hand, you're still making progress towards features, and if you can pull off a good hand, you get rewarded with an instant multiball. Still some stuff to work out here though. I don't want to end up with big menus for purchasing things or anything, I'd like most of the choices to be made during gameplay.

Alternately, maybe I keep a separate progress tracker for each mode. Getting a 3 card straight would give you some progress, a 4 card would give you more, etc. Or I can combine this with the 'purchasing' mechanic, lowering the price of the multiball based on previous progress.

Another option would be to have some other multiball awarded for more standard things. I could place some shots around to spell 'LOCK' and light locks for a separate multiball, to at least balance out the game more from relying on the hard to access hand multiballs. I'm there's many ways to set this up, but I'm hesitant to add something which could pull the focus away from playing the poker hands.

I'm also playtesting the ability to undo cards. Right now I have the magna save and outlane vuk tied into the same 4-light meter, so I also added the ability to undo your last dealt card at a cost of two magna-save pulses. currently this is triggered by the start button, but eventually I figure it'd either end up as the action button (if I can manage to mod one into this williams cab), or as a cheat button below the shooter (callback to Jackbot).

Lots of options to play with, but they all require playtesting. Which is good to be doing anyway, although the game is still a bit barren right now. It's also giving me more data for stuff like the outlanes. I've moved posts around, added rubbers, etc, to try to make the outlanes fairly drainy (since there are options to save the ball), but still savable with some nudging.

What I'm finding interesting is how little chance I get to nudge things. The ball moves around so fast that it's either in the inlane or outlane often before I can react. I'm not sure if the game is just playing faster than other games (it doesn't feel that way too much), or if something is making the rebounds less predictable, etc. I'm wondering if some of this may be the paper covering the playfield. Could it play different enough from wood to cause issues? I also know that the plunge and upper lanes have some issues due to bits of wood stuck under the paper, so maybe there's more of that that I'm not aware of. Hopefully that should be handled once I get the inserts/plastic figured out. I need to spend some more time doing some practice cutting before trying to hand cut the full sheet I've got. I've also been looking into CNC/laser cutting options, but haven't had much luck so far. When starting this project I'd hoped to use the local makerspace since they have a CNC router and a laser cutter, but they've been closed due to covid Considering purchasing a cheap 2x2ft unit for myself, but I'm not too knowledgeable about the options on this front.

Posted Sunday, October 25, 2020
at 02:15 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 41

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



I'm hoping to use a plastic sheet on the playfield instead of having to manually cut all the inserts and deal with clearcoating, etc, but I wasn't sure how I was going to handle the star rollovers. The sheet will end up pretty similar to a Hardtop, and I know that star rollovers cause tons of issues with those, with each hole needing to be manually cut out for alignment, rollovers raised, etc. Plus I'm hoping to cut this plastic by hand, and drilling holes in it isn't the easiest, especially for large holes. Doable, but I also have 11 rollovers on my playfield right now (and could really use a few more), so it's something i really don't want to mess with. I looked into using eddy sensors but I can't find any good cheap source for them.

I thought back to earlier EMs, especially some ballys, which have tons of small, ~1/4" rollover buttons, and I figure that those would probably have a much easier time dealing with a hardtop. But with how my playfield is designed, buttons that small will run the risk of not being triggered by the ball. Plus I don't think those small bally rollovers are available anymore.

So i'm trying my hand at 3D printing some custom rollovers:

These are designed to have a button slightly smaller than my 3/8 bit, to give a small bit of wiggle room when drilling the holes, but hopefully not enough to get the ball hung up on. They also seem to be just big enough to still have similar sensitivity/range with a normal rollover star. The transition as the ball rolls over isn't quite as smooth (partly because it's not smooth like a star and partly because my 3D printing isn't that smooth) but it doesn't seem too bad.

They'll need some tweaking, but I think they should be usable.

Posted Sunday, October 25, 2020
at 02:14 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 40

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



While doing some gameplay test I had my first 3D printing casualty... Luckily it wasn't from the ball hitting it, but from a design flaw. My shooter lane diverter gate is using a regular ball gate (what bally tended to use in its outlanes), and they aren't too accurate since they just use a relay to spin the gate. When the gate is resting against the side rail it's fine, but when it's energized and out in the playfield it can have a lot of variance. In this case it ended up stopping above the 5 bank of drop targets:
You can guess what happened next...

I've now added some software compensation to prevent this from happening:

You'll also notice my new gate is orange. I ran out of my original spool of white PLA plastic, so now I'm trying out some orange PETG; recommended to me by by another homebrewer as being much stronger than PLA and good for pinball mechs. It took me five prints to get a usable gate though, and it's still a bit messy, so I need to work more on dialing in the settings for printing with the different material.

Posted Friday, October 23, 2020
at 09:23 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 39

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



Still alive! Been distracted by other stuff but I've been slowly making code progress on the game.

I had started by trying to code the first multiball, but I was making lousy progress due to running into a lot of bugs and having issues debugging them. After a few days making no progress like that, I decided to put a halt on game coding, and focus on making the dev/testing/debugging workflow better.

Testing the game physically was a big pain. Originally I was trying to run the code from my desktop, but the game was at the other end of the house. Then I tried doing remote desktop from my laptop, but it still wasn't too good. So I started planning on how to rearrange my office to accommodate the machine, so I could have easy access to it while developing, but I couldn't really come up with any good layout. There's just no comfortable way to be sitting in an office chair near a desk but also be able to reach a whole playfield. Plus, I realized that my projector mount is too tall to fit in my office

So cleaned up my work area, cleared out my livingroom (which has a high ceiling), and set up a new testing/work area there, with all the best comforts available :

As cushy as this is, I still would prefer to do my coding from my office workstation as much as possible, so also worked improving my 'visualization'/'simulation' more. Even then though, I still found that every time I deployed new code to the machine I was running into tons of hard to reproduce bugs, so I spent some more time adding a ton of logging to the code, and improving how the logging works to make it as easy as possible to examine different subsystems, etc.

The real big change though came after that. I captured some weird bugs on the machine, and then took the logs back to my desktop to investigate, but it was slow going reading the logs and attempting to figure out what was important when trying to reproduce the issues virtually. In particular I had one log file that contained nothing but a log of every switch closure/opening that I was staring at since there were some weird switch issues (flickering, etc) going on.... and I thought to myself, with this info, couldn't I just play back the entire game?

So I spent a weekend writing a 'recording'/'playback' system that could read any log I give it and run the game on my PC to recreate the exact sequence of events. With that, I could add tons of breakpoints, pause and step through the code, etc, and pinpoint the issues. Plus, the recordings make perfect automated test cases, so I now have a growing collection of recordings of resolved issues that can be automatically run to verify the game is functioning properly when I change more stuff.

This had further benefits too beyond tracking down bugs too. When developing new bits of the code, I no longer need to click through the game to access the areas I want. I have premade scripts for "complete a hand", "qualify multiball", etc that I can just run whenever needed, which has made development much nicer.

Plus, since it's a recording, I can speed it up. Here's a video of the game playing back a recording of collecting 5 cards, starting multiball, and then lighting a jackpot:

Overall, I'm still spending a lot of time working out bugs, and figuring out how to handle various standard game things like various priorities overriding each other while I develop the game code, but it's been worth the time to slow down and improve my workflow. The game is going to require a lot of code, so if coding the game isn't fun by itself, then I'm in trouble!

Posted Friday, October 23, 2020
at 09:22 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 38

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



Not much progress lately, all my time has been taken up by other things

I installed an up-post next to the magnet to catch the ball as it comes around the left orbit

Was a bit nervous about the installation since this wasn't at all planned for, and I had to just eyeball the location, but luckily it did barely fit

The post itself is a bit smaller than the sleeve, but the sleeve itself is nearly touching the magnet, so I definitely can't really get much closer

Sadly, even with this set up, the magnet still couldn't grab the ball. In retrospect I should have just screwed a regular post in at this location and tested the magnet with that first. If I pushed the ball even 1/4" closer to the magnet, then the magnet had no trouble grabbing the ball, but with the ball leaning against the right wall, there was just slightly too much distance. I can't move the wall, since it's part of the shooter lane, and I can't move the magnet, since it has to be aligned to drop to the upper flipper.

Again, I wondered about having an exposed core, and whether that would be enough, but I didn't want to drill the playfield to find out. Before setting up some test cuts on my spare playfield, I decided to test out the best-case scenario: instead of an exposed core, just expose the whole magnet! I stuck the magnet under the lexan sheet on my test playfield, and ran some wires to test it:

No problem here. The magnet easily grabs the ball from at least 1-1.5" further than it does with 1/4" of plywood in the way. I'm now very curious how this compares with the large exposed cores Stern uses now, but still don't want to spend $50 to find out. Even that wouldn't be needed though, if I do end up going the route of just covering the entire playfield with a plastic sheet, which is looking more and more enticing as a solution to many of my issues.

The main problem right now is actually cutting the sheet. Circular holes shouldn't be a big issue, but I'm not sure how cleanly I can make the slots for the target banks. My biggest worry is all the star rollovers. I'd have to cut holes for each of them that align very well with the holes in the playfield, and then raise the rollovers up to be flush with the sheet. I'll need to practice some more with my spare material and see how cleanly and accurately I can make all these cuts. Long term I'd probably need to get this laser cut, but I haven't had any luck finding a place to get a cut this big made yet

Posted Tuesday, October 20, 2020
at 02:02 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 37

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



Last month I picked up a world cup soccer, and while shopping it I noticed that it had the same style one way gate as one of my spares, with a second wireform to hold the gate open, and that this was the type used by TNA, so it's available from PBL. I did a rough mockup of the part from measuring it on WCS, and it looked like it'd fit, so I ordered the mech from PBL for $30, rather than making another custom mech.

Of course, it didn't quite fit, but I was able to make due. I ended up having to move the mount for my support rails in a bit, and then mounted the gate mech on top of the rail at an angle. I could have put it in a nicer position, but I'd mounted the switches for the lanes in the way. As I probably could have predicted when I decided to do all my switch wiring with one mech still missing, it was a bad idea.

When I hooked it up to test it first, the gate didn't work. I could hear it buzzing, but it wasn't quite strong enough to pull the flap in. If I gave it a small nudge it'd work though. Once I turned the playfield over, gravity did the work for me and it worked fine. In retrospect I realized that this is another mech designed for 50V, not 25V, so I guess I should be happy it works at all. On the plus side that means that it's pulling such minuscule power at 25V that it'll probably never overheat, even without any PWM. I left it on for two minutes and couldn't even feel any warmth from the coil. I like the idea of being able to just have gates and diverters constantly energized, vs having them react when they know a ball is coming at them. There's a lot of times in other games where I get caught by surprise by the orbit coming around or not coming around, etc, since there's no indication on the playfield. At a minimum I think it'd be nice to have a little stop sign insert or something if you're going to do that...

Using a transformer that only outputs 25V seems to be my single biggest mistake so far with the whole project.... It's just continually messing me up since it's not something I ever really thought about before. As much as I like the gottlieb flippers and the general retro feel I think that, if I do another homebrew after this one, I'll either switch to all 50V, or at least get a transformer that can support both, and just use williams mechs...

Posted Tuesday, October 20, 2020
at 02:01 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 36

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



In order to prevent the arcing from destroying my relay contacts, I switched to driving the magnet using a TIP36C that in turn was grounded via the relay instead. That way, the high current is switched by the transistor, so there's no possibility of arcing, while the relay still allows me to control the 50V coil via my 25V driver FET. I mounted the TIP36 on a small bracket made from left over aluminum to act as a heat sink.

With this, the magnet functioned properly, no more locking on, but it also somehow managed to blow my 50V supply's fuse. Even upping it all the way to a 10A slow blow didn't help; I couldn't energize the magnet for more than 1 second. I think this must have something to do with the caps on my voltage doubler, as the lower rated fast blow fuse directly powering the magnet isn't blowing...

Regardless, none of this seems to matter since the magnet still can't grab the ball from the orbit very well. Even with, a medium speed ball thrown by hand, the magnet seems to have almost no effect, let alone being able to grab it. At this point, seeing how bad even 50V is suited for this task, I'm going to stop bothering with this approach for now, and just install a diverter of some kind, as I can't see any of my other ideas improving on it enough for this to be a reliable function in the game. I'm hoping to have at least one multiball be all upper flipper based, inspired by classic lawlor layouts, so having a reliable way to feed the side flipper is a must...

Posted Tuesday, October 20, 2020
at 02:01 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 35

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



3D printed some brackets for the screen. It's funny, prior to getting a 3D printer "how do I mount a screen under the playfield?" was a really big question mark on my project's todo list. With a 3D printer, I had it mounted just fine with 5 minutes of modeling.

Made a test screen hole in my testing playfield plywood. Messed up the cut spectacularly somehow, my whole rectangle was like 1/4" skewed. Not sure how I managed that when I made it by tracing the screen, but oh well.

I also tried mounting a test piece of 1/16" lexan over the hole, to see how much it deformed. I screwed it in at the same positions that the nearest posts are on the real playfield, to get an idea of how well it'd be held down. I had problems instantly with a bit of warping, since my holes weren't placed perfectly.
I think that to use this on a real playfield I'd need to pre-drill all the screw holes with a slightly larger bit, so it has some room to slide around while I'm tightening everything down. Then I'd have to work from the center outwards as I attached everything to try to keep it taut.

My initial test of 'pressing it down with a finger' didn't seem very promising. I could flex the hole down way more than I can on my Black Hole. I still don't understand how the super thin window on black hole is so sturdy when every plastic I've looked at is so much more flexible...

In the end though, I realized I shouldn't be testing with my finger, but with a ball. Setting a ball in the middle of the hole has almost no effect on it, and it seems to roll across it fine. At worse, I can always make a second layer of plastic just for the screen, to bridge that section if it becomes an issue, so this approach still seems viable.

Another benefit I thought of is that I could conceivably mount my magnets way closer to the ball. With wood on top of the magnet, it seems like most playfields are still retaining 1/2-3/4 of their thickness to keep the wood solid, which means the magnet is probably about 3/16" away from the ball in the best case. With a plastic covering, I should be able to cut that down, which should make the magnet stronger, and might help with my issues on the upper magnet. I'm not very familiar with the physics of magnets though... I'm curious how this would compare to the large metal cores on games like TWD. Is a 3/16 thick, 3" wide metal core on top of a magnet generating a larger field than the entire winding itself does?

Next I need to figure out if I can use my star rollovers with it. I used them a lot in the design since they're easy to cut the holes for (compared to a rollover switch slot), but I know I've heard about issues with them and playfield protectors...

Posted Thursday, October 15, 2020
at 09:38 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 34

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



Received my replacement screen today:

Will try to hook it up this weekend and get it displaying some images, then do some text cuts on my spare plywood to figure out mounting, and see how well my lexan sheet will work.

In other fun, my flippers have suddenly gotten very weak (can barely make it up the ramp). I hadn't actually had the game on in the past week or two since I'd just been working on code, so I have no idea how long it's been like this. Always a fun issue even on regular machines, so I'm sure it'll be fantastic trying to track it down here...

I wish there was a reliable way to quantify flipper/coil strength so I could really check on stuff like this, make sure I'm not going crazy, etc...


Finally tracked down my weak flipper issue... I replaced the bridge, no change. Replaced the capacitor, no change. Checked signals with a scope, everything looked okay. Cap smoothed the signal out well, peaks were proper height, everything seemed proper. Then I realized... the fuse was blown. I never even considered checking that, since obviously the flippers were working. Something about the way I hooked up two bridges in parallel, one with a smoothing capacitor on it, must have allowed enough voltage to build up through just one side of the AC, through a common ground or something, that allowed it to still get the flippers enough power to flip. Not really sure how that could be, but. I thought I had replicated the circuit gottlieb used on black hole accurately, but the one difference was that I had a separate fuse for each bridge (although I only fused one side of the inputs) while Gottlieb had a shared fuse for both bridges.
I assumed that was just a cost saving measure, but maybe it's actually because of this?

I also realize now, looking at the schematics, that they don't actually fuse the DC side of the bridge, which is interesting. I guess they figure that the per-coil fuses will usually catch those issues? I guess they usually do, at least in my experience. I definitely didn't fuse my solenoids enough overall. I put separate fuses for each flipper and bumper, but the controlled coils only have the one shared fuse on their driver board. More concerningly, I've never blown the on-board fuses for some reason, but I have blown the rectifier fuse when a coil locked on, despite the rectifier fuse being 8A slow blow and the on-board being a 4A fast blow. Hopefully that doesn't become an issue.

I've also designed another iteration of my driver board since my rev 7 that I assembled still had mistakes, though I haven't ordered it yet since I'd like to get some more boards done for a combined shipment. This time, I restarted from scratch. My previous schematic had been carried over and repeatedly modified since my original rev 1 board back when I started learning how to design boards, and was a bit of a mess.
Before:
After:

I'd also been repeatedly running into issues when designing the boards trying to fit them in a 2x4" footprint. Over time I went from 13 FETs to 16, added driver chips, fuses, test points, indicator LEDs, etc while still using the same size board, and it had gotten really hard to layout. This time I scrapped the voltage indicator LEDs, and dropped from two fuses (one for each bank of 8 drivers) to one fuse. Originally, I had designed the board so each bank could be operated completely separately, and could be configured with pullups for PNP transistors or pulldowns for NPN transistors, so that it could also be used to drive an 8x8 lamp matrix, but that use has sorta disappeared in the intervening years.

Those part removals combined with some tricky layouts let me finally get all the transistors layed out neatly. This also means that I can now stick both solenoid connectors on one side, and keep all the low voltage signals on the other side of the board, to clean up the wiring a bit more

Rev 7:
Rev 8:


Yesterday my second screen shipped out, so of course today my original screen I ordered from China arrived out of the blue.. Only took 2 and a half months. This one included a USB power cable, which is nice since now I won't accidentally fry anything by using -12V, but it's also weird, since USB is 5V. As far as I can tell, the boards are identical. Not sure if there's something I can't see that's different or if one of the sellers was wrong about the supply. Was also able to confirm that my first screen is still good, so I must have only damaged the driver board, so now I've got a backup. And soon I'll have two boards and 3 screens. My attempt to get a cheaper screen from china has now cost me about $130 I guess that's what I get from ordering something from overseas during a pandemic though

Posted Tuesday, October 13, 2020
at 10:15 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 33

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



My screen still hasn't arrived, so I gave up and ordered another one. Hopefully it will arrive eventually..

In the mean time, I tried out an idea I'd been toying with for a while. I don't know where any of my lights will go, or how the art will look, and it's hard to play with that, so why not make some temporary artwork?

I dug out an old projector, and hung it from a 2x4 sticking out from my upstairs landing, and lined up the game underneath, then I loaded up a quick mockup:

I expected it to be a bit hard to play like this but it was actually surprisingly easy to ignore and play like normal. The quality isn't very good though; the cards aren't readable even at 1080p. With a 4k projector this might be workable beyond rough prototyping, but it'll probably work for now. I also had to put the projector really high up, probably 10+ft off the ground. Gets to be a real pain turning it off and on without a remote

With this I'm hoping I can get the game much more fleshed out before needing to commit to making a new playfield and moving everything over

Posted Tuesday, October 13, 2020
at 10:14 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 32

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



Coded the logic for actually determining which hand won, and displaying the best 'hand' from each hand of 7 cards. The code for finding pairs, straights, etc was surprisingly simple and fun to write.

Since it can identify what hands you got, I can now tie that into what modes/multiballs are enabled at that point. Unsure what I should do if you manage to get multiple different hands.

For instance, what if you manage to get three pairs? Technically only your better two pairs will count as far as the poker game goes, but if each pair qualifies a mode, should you have the choice of which one(s) to play? Should only the higher two pairs' modes be lit, effectively making lower cards' modes harder to get?

If you get a straight and a pair, and then you play the mode you get from the pair, does the multiball you got from the straight go away, or could you go play it after finishing the mode?

If you qualify a mode, but then immediately go into the shooter lane to start another round of poker, should you lose that mode, or should it still be available? Should you be able to start a mode mid-way through a hand?

So many questions... Luckily the decisions on these aren't really hard to change the code for, they could even be settings technically, although I'm not going to bother coding any settings menu or anything since I can just edit the code I'll probably go with the most restrictive options for now (if you take a mode you lose your multiball, etc) just so I don't have to deal with coding a mode select screen yet.

Posted Tuesday, October 13, 2020
at 10:13 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 31

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



Coded some initial spinner rules. First time you shoot the spinner, it stops it in the upper lanes. Next time it orbits around back to the left flipper for a 2x spinner shot, and stops it in the lanes. Then you get two orbits before it stops it, etc.

Coding this was way harder than that sounds, due to me not really thinking about 'shots' and such when I designed the playfield. A ball shot through the spinner could go in one of six lanes. Or it could fall back through the spinner. Or fall down the shooter lane. Or it could manage, theoretically, to go below the left one way gate and continue on to the left. When the gate is open, it will usually go all the way around, triggering the left orbit switch and the left inlane on its way down. But it could also fall short into the upper eject, or go under the ramp, or fall even shorter into any of the lanes, etc from before.

Originally I figured I didn't need to care about this too much. I'd just consider a shot to the spinner as whenever the spinner suddenly spun a few times. But when I'm purposely designing the code to let you repeatedly rip the spinner, it's very likely the spinner will still be spinning somewhat by the time you rip it again, or you could even go right under it while it's spinning, so I ended up with a ton of code for different edge cases trying to detect when the player does a successful orbit or not, multiple timers going on, etc. It's a bit of a mess, and it's going to be even more of a pain to debug if something goes wrong.

It would have been really nice to close up some of the areas a bit more so I could know 'for sure' whether a ball passed through there, rather than having a big open area up there for the ball to bounce around in. Too bad big areas for the ball to bounce around in are fun...

Scoring wise, I'm trying to sorta take a page from Meteor, since I like the way its spinner value is continually fluctuating. For the first iteration of that, my attempt is to make the spinner score more when you having matching numbers of drop targets down on each bank. For instance, the spinner starts at 10 points. You knock down one target on bank A, that goes up a bit. You knock down one target on bank B as well, that number goes up even more. Two targets down on each bank is better than one, etc. I'll try to balance it so you can get the spinner up really high, but at the same time if you hit one stray target it may ruin it completely.

Hopefully this will also encourage people to 'shoot around' more, instead of finding one or two banks they feel safer on and just picking targets off those

Posted Friday, October 02, 2020
at 10:58 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 30

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



Coded the basic structure of the skillshot. I'm pretty dissatisfied with most skillshots in games currently. Most seem to either be 'just plunge the lit lane', or plunge to a flipper and hit a lit shot. You don't really care about your plunge at all. Some games like Deadpool make it a bit more interesting by locking in your lane choice. Most games that actually require you to plunge to a specific spot (such as Taxi) just make you learn one or two plunger positions, which I think can get boring once you've learned them, since at that point you're just slowing down your game to squint at the plunger. My goal here is to have a lot of different places to plunge to, and have the context of the game make you change which one you're plunging to frequently.

There are seven different places to plunge to:

Red: plunge just far enough to clear the diverter. Diverter will close, leading ball to right inlane
Orange: plunge so that the ball hits the lower magnet switch, without hitting upper magnet switch. Magnet activates, pulling ball to the left and feeding upper right flipper (well, hopefully, if I ever get it working)
Yellow: if you plunge past the magnet and hit the upper magnet switch, you'll fall back down and feed the right inlane, similar to the red skillshot
Green: The lower 3 lanes. Not sure what will happen with each lane yet, maybe one will be lit as an extra target
Blue: Upper 3 lanes, same as green
Pink: plunge and fall into the upper eject which will then feed the upper left flipper. Really hard to do, worth the most
Purple: Hard plunge all the way around and feed the left inlane

The Pink and Purple skillshots are made harder since there's a one way gate to the left of the lanes, blocking them. Currently I have it timed so it's open for 2 seconds, then closed for 2, so you'll get redirected to the lanes or let through based on your timing.

Your current 'bet' amount is determined by where you plunge, so you can choose to bet a little or a lot while still keeping it 'pinball'. I'm thinking the bet amounts will be percentages of your total 'bank', so you'll be forced to bet more later in the game. You can return to the shooter lane at any point while playing your poker hand by shooting under the upper right flipper, so you can adjust your bet if your hand is looking better or worse.

In addition, there will be an award on each skillshot, that you can only get if you 'call' your shot by selecting that award with the flipper buttons. Currently it's just points, but I want to eventually put other stuff in there to mix stuff up. If it's only ever points, they'll either just be ignored, or they'll be so big they're unbalanced, so I like to put 'in game' effects into stuff wherever possible. But that will have to wait until I have more game coded to affect.

The graphics themselves on the screen are pretty basic right now, but serviceable. I kinda dread getting to the point where I actually need to make this stuff look nice somehow. Even for a simple screen like this, I think more code is dedicated to drawing and updating the screen than there is to the actual skillshot logic... It must have been nice in the DMD or alphanumeric games where you could often just slap some text up and be done with it

Posted Thursday, October 01, 2020
at 09:43 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 29

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



I've spent a good amount of time playing with the upper magnet. It's positioned next to the shooter lane, right orbit, so that it can drop the ball to the upper right flipper.

The magnet had two use cases:
1. for the skillshot, if you plunge the ball up so that it stops next to the magnet, and then the magnet activates, pulling the ball sideways from the shooter lane to then release it to the flipper
2. to feed the upper flipper via left orbit shots. this is the main use case, with the skillshot just being a bonus. I didn't really forsee a problem with this while designing, but I've come to realize that this just isn't how magnets are normally used in machines. Games like Twilight Zone will stop a fast moving ball on an orbit, but they have the magnet directly under the ball's path. The magnet acts only as a ball grabber, not a diverter. Most cases I can find of magnets being used as diverters are things like TWD's crossbow, or WCS's lock. WCS is the closest to my use case, since it specifically grabs a moving ball, stops it, then drops it. But even WCS has issues grabbing a fast moving ball.

I quickly discovered that my original plan of wiring and mounting this magnet the same way the magna save is mounted just won't work. The magna save coil is being powered using 25V, while most newer games use 50V for their magnet. So I hooked up my 50V line to my magnet relay, instead of 25V, and... immediately fried my relay. The 50V is strong enough that, when the relay deactivates and its contacts move apart, the voltage will just arc across the gap and continue powering the magnet while melting the contacts. I had a similar issue with the 5-bank reset coil, and was able to fix it by adding a 10uF, 300V capacitor across the contacts. For some reason this doesn't work on the magnet. I wondered if the magnet was stronger, but the magnet actually has more resistance than the drop target coil. My random relay was only rated for 3A@25V though, so I ordered a really beefy relay, which was rated for 30A (!). I think my magnet should be drawing about 10-12A at 50V, so that should be plenty. But that relay also had constant arcing issues. I tried bigger snubber capacitors, other snubbing solutions, even disassembling the relay and physically bending it so the contacts are farther apart, and nothing helped.

It seems like switching 50V@10A just isn't reliable via a relay somehow, though I don't understand why. Modern games all control their magnets via transistors and mosfets, although I don't know if that is specifically to avoid this issue, or for other reasons. The problem is, I can't use those here, since my 50V has a separate ground from my 25V. My next plan is to get a TIP36C (which is what williams used for their 50V coils in the 90s), and then try to use a relay to switch the gate (instead of having a microcontroller switch it like normal) which feels like horrible overkill, but it may work. Even at that point, I'll still have issues because I can't PWM a relay, so I'll basically be running the magnet at full power. I'm not sure how long I can power the magnet like that, hopefully it's long enough to get the ball settled.

The magna save is also a completely 'below playfield' magnet, with no visible core. Adding a core that goes all the way through the playfield helps make the magnet stronger, and I assume that this is why games like TWD, which need to grab a ball shot at their wide bash toys, use an even bigger exposed magnet core. At first I figured I should just order one of those larger exposed cores, but they're incredibly expensive somehow (the large core costs more than the magnet itself!). Even a regular size core is expensive. I don't really want to spend that much money on something that may not even be useful, so for now I've just bought some 3/4" steel roundstock that I'll use to test the smaller exposed core. I can't find any info on how much stronger this make the magnet.

All this is still up in the air, too, as I don't know if the magnet will be able to grab the ball properly even with a large core and 50V, given the crazy speed my left orbit shot has. I've spent a lot of time trying just to get the 50V to work, and still haven't been able to even do a single test yet to see if the 50V can grab the ball since it keeps melting stuff

I'm also trying to consider other approaches, such as replacing the magnet with a physical diverter, but currently I can't find any good way to fit one in with my current constraints, and I would still need a magnet or an up post to hold the ball for a reliable side flipper shot after the diverter gets the ball to the flipper...

I may also try putting an up post in the shooter lane, specifically to stop the ball as it comes down the lane from the left orbit, and then using the magnet to pull the stopped ball over the flipper. I am running low on drivers for the coils though, so I want to avoid adding in more coils if possible...

Posted Tuesday, September 29, 2020
at 08:58 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 28

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



Got the basic habitrail installed. Made a half height, low quality mount to hold the other end, which seems to work okay.

It looks like I can make the curve on the entry mount wider for a smoother feed. This is the original:

And here's my current iteration:

Mounting the entry mount was also an issue, since I didn't really plan for that. I ended up putting it on a standoff on top of one of the existing ramp's mounting holes, but I still only have one screw holding it. It seems to work okay, so I'll leave it for now. I could probably extend another support out to the posts behind the 2-bank if necessary, but I don't want to cover the playfield any more than necessary.

I also needed a place to mount the switch, so I stuck a microswitch through a small gap. To prevent airballs, I put holes on the top to screw a sheet of clear plastic into. Still need to figure out how to attach the plastic on the left side of the ramp. I don't understand how Mars never has airball issues on its ramp... seems hard to believe that they managed to make it the exact height needed for their flipper strength, especially since I'm using the same flippers!

This is my final entry design. Looks pretty weird, but it works. :

I had to add some side rails to keep the ball from falling off, especially at higher speeds. Lock post worked on my first try with a random guess for the pulse length, which surprised me.

While it's nice to know this works, I probably will avoid locking multiple balls this way, since I don't have any way to mount a switch behind it to know if it failed to release a ball due to the ramp positioning. Sadly, this was the only position I could fit the post mech in, so I'm a bit constrained here. I'mthinking I'm going to have most multiballs work by locking one ball on the ramp, and then you get a second ball to plunge, and the ramp ball is released once you hit a switch. Maybe there will also be something to let you short plunge and combo up the ramp to lock a second ball, for three ball, or a rule about locking both balls during MB to release a third. Since there's no auto plunger I can't really have a normal add a ball. I feel like multiballs lately have been a bit boring design wise, so I'm hoping to do more stuff with multiple phases like DE used to do, or maybe more advanced stuff like a special multiball that you can only work towards qualifying while you're already in another multiball, at the cost of ignoring the current multiball's jackpots to make that progress...

For normal ramp shots, I programmed the game to engage the post as soon as the ball makes the ramp, and then disengage once the inlane switch registers, but I had issues with the ball bouncing over the switch since it was just dropping off the end.Inspired by Metroid which I saw at Pintastic last year, I made this end cap for the rail to make the ball drop nicely.

It worked, but I didn't like how it looked, so I made this instead, which seems to work fine and looks more natural:

Posted Tuesday, September 29, 2020
at 06:30 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 27

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



Here's a big case of 'wish I was using MPF'... Testing live on the machine was a pain since it was at the other end of the house from my regular computer. So I wanted to be able to easily test stuff virtually. MPF has a nice application for this. Lets you import a picture of your playfield, then drag and drop switches, lights onto it. Pretty handy, so I recreated it using my new rendering capabilities. Not a ton of work in the end, although mine lacks some polish...

Squares are switches. Red means closed, yellow/white means open. Left click to toggle open/shut, right click to quickly press the switch and release it again. Diamonds are coils, they turn red when energized. The white circle above the right inlane is a light, currently off, currently wired up as a 'lower ramp w/lit'.
Another in the left outlane will turn green when the mini-playfield is enabled, triggering the down post to let the ball in. Hopefully I can use this to get a slightly better feel for where lights will go.

I also added some code to do stuff like automatically opening the drop target switches when the bank resets, auto closing the shooter lane switch after a ball is released from the trough, etc. Stuff that would happen physically on a real machine. Otherwise it gets to be a pain to use, since the drop target coils would repeatedly fire until you remembered to click each switch again

Posted Tuesday, September 29, 2020
at 06:30 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 26

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



Code can't get very far without some read-outs. I don't have any lights yet, so for now my 'screen' will have to do. Currently that 'screen' is a 50' HDMI cable running to my livingroom TV, but it'll do.... I spent a long time trying to find a good R-Pi compatible graphics library that would work with Typescript/Node. For some reason, everything seems to have been abandoned 2-3 years ago, and doesn't work with modern Pi operating systems. I'd be fine with even coding the graphics from scratch with a plain OpenGL context, but even a simple library to provide that seemed to be missing.

Eventually, I found a simple library that supported things like basic shapes, images, and text, that was designed specifically for RPi game dev, but had been abandoned partway through development. The author's last update said that they were working on keyboard/mouse support, since without that a game graphics library isn't very useful. Well, it's useful to me! no keyboards here...

Only problem was, it didn't work with the latest RPi OS, since they introduced a new graphics card driver, and it wasn't compatible with Windows (my dev OS). So I dug in, forked it, and made my own version with RPi 3 support, some features and bug fixes, and, with one late night hacking session, a shaky but usable windows port. Not too bad, all things considered. The nice thing about this, vs using an established library (if one had existed), is that if I find any other bugs or shortcomings, I can just easily add whatever I need, since I'm already maintaining my own fork.

With that out of the way, I got some initial status displays set up. Very rough currently; I am not in any way an artist. Hopefully I can work up something half decent for the screen at least, but actually doing some art for the playfield is probably beyond me... More mountains to climb down the road

I can add more cards from the drop targets

No scoring or ball logic hooked up yet though... I also need to figure out what exactly is actually going to happen once you complete a hand. To keep with the 'real poker' goal, technically you should have a final opportunity to bet before your opponent reveals their cards, so I figure you'll need to shoot a shot that can hold the ball to finally flip the cards and declare a winner. In this case, my only ball holds are the upper eject hole, the ramp, and the shooter lane, so I'll have to figure out some logic for that, as well as how exactly you can 'fold' if your hand is looking bad. I'd like it to be something on the playfield, vs some menu interaction, but it has to be something very hard to hit accidentally....

Current lines of code: 4,106

Posted Friday, September 25, 2020
at 10:25 AM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 25

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



Began work on the habitrail for the ramp, to return the ball to the left inlane. I 3D printed some clips with flat bottoms to make it easy to hold the rails while I align them and work. The plan is eventually to either use some brass and solder it, or try to braze some steel, but for now, I'm using some easy to bend 1/8" copper wire (and cheap, since it's just on spools at Home Depot) to get it right and test things. I'm curious to see if the clips can hold up to soldering/welding, it'd be convenient.

The actual alignment is a bit iffy; since my ramp model didn't match the actual model that means the habitrail I drew won't line up with the physical ramp either. I tried to eye-ball adjust it to match where it looks like the ramp actually is, but we'll see how well that works.

The actual attachment to the ramp will also be weird. It was designed to connect to a plastic tube that goes across the playfield, and didn't have much flow. Originally I just sorta hand-waved this part as "I'll make something to hold the habitrail, can't be that bad", but now I'm at the part where I need to actually figure out how to connect a ramp whose shape I don't know to the habitrail I haven't built yet.... Here's my first attempt. I'll probably just have to print this a lot of times to get the fit right, assuming the basic shape even works.

Posted Thursday, September 24, 2020
at 10:36 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 24

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



Earlier, I went searching for an LCD to put in the middle of the playfield. After a lot of digging, I ordered this 9" screen from AliExpress. Seems to have HDMI support and can be powered with my ATX power supply, but it's hard to tell for sure. There's a ton of different badly documented screens for sale, with conflicting information about what they support or how to drive them. It seems like there's really only two driver boards floating around, one with VGA support and one without, judging by the pictures, but some of the items for sale are clearly wrong about what they're offering. Lots of fun. But for ~$30, I'll take some gambles. Any screens for sale from more reputable US sources seem to be $100+ which is a bit ridiculous. Originally I planned to just buy a monitor and strip off the case, but it's hard to even find a 9" monitor, and the more common 10" won't fit my playfield.

Sadly it's been more than a month since I ordered the screen, and it still hasn't arrived. Tracking last showed it leaving China on 3/30, so not sure if it's gotten lost or just stuck in customs or something forever...

Not a super big deal, I guess, since I don't have any way to really mount it yet.

I'm investigating different options for plastic to cover the hole. Not sure what material is best as far as being pretty sturdy but also thin and scratch resistant. Based on the Voyager homebrew, I'm also wondering about just using a single large sheet of plastic for the playfield as opposed to recessing a smaller cover. I wouldn't have to worry about routing out the recess for the window, or about doing any inserts either, and no need to clearcoat. A lot of other possible issues arise though, so that'll need some more investigation. Once I can find better what material to use, I'll try to order some sheets for experimenting

Posted Thursday, September 24, 2020
at 10:35 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 23

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



While getting some basic code running to reset the drop targets and eject the holes, I suddenly lost an entire bank of solenoids. Inspecting the board, I eventually figured out that the board had been repaired so many times as I modded it to test different things that one of the traces carrying the solenoid ground had just gotten ripped off completely. At this point it probably had 4 jumpers on it already, and multiple cut traces, plus some of the mosfets had been replaced three times, so I decided it was time to junk that pcb and build a new one.

One of the main issues that required all those modifications early on was my changing requirements for how the inputs would work. First I'd had them active high, then active low, and then I'd had to change which pin they were. Back when that happened, I redesigned the board to add some more configuration points, so each I/O could have a configurable pull up/down, as well as fix some other pain points. I added LED indicators that the fuses were good, test points for the voltages, and combined my 6/6/4 pin connectors into two 8 pin connectors. A big goal on these boards as I design them further is just making the connector count as small as possible, since they needed to get unplugged so often. I'd actually had the new PCBs on hand for months, but hadn't needed to actually use one yet, so I started assembling:

Sadly, I discovered an issue with my design early on: at some point I had mirrored some of the components. For the mosfets, that wasn't too bad; just turn them around, but I'd also mirrored one of my 16 pin chips, which resulted in the horrible hack of mounting the chip upside down:
Sigh. I guess another pass at the design will be needed down the line. It'll work for now though, just hard to mount

Posted Thursday, September 24, 2020
at 12:24 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 22

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



Switch and coil wiring complete!

It's hard to really grasp it from the pictures, but for comparison, here's the relatively empty bottom right corner with a few switches wired from before:

And after:

This area can still use a bit of cleanup, but I ran out of my little metal strips for wiring support as well as the plastic ones.

Also visible here is my attempt to save some more solenoid drivers: two gottlieb pop bumper driver boards. These are wired up to the slingshots. It seems to work fine, and makes me curious why Gottlieb still used EM style driving for their slings while using driver boards for their pop bumpers. Eagle eyed readers will also note that one of those driver boards says NG on it. Surprise surprise, that board was... not good. Instantly locked on one of my slingshots. Genius. I also figured I could very simply enable/disable these by just hooking their logic ground to one of my driver mosfets, but it turns out that makes them glitch and fire randomly when you turn them on and off, so I reverted to doing what gottlieb did, and cutting the ground signal to the switches.

Some more wiring pics:

I was able to mostly follow my sketched wiring from earlier without issue. The one place where it got weird was the mini playfield at the bottom. Since there's no support rail out there, I ended up having to run the solenoid wiring along with the switch wiring around the right flipper to reach it. I'd planned on it going around the lower edge, or between the drops and the flipper mech to leave all the area between and above the flippers open for lights, but there just wasn't room

Out of 62 switches, I only had three wiring issues to fix on my first switch test pass, which is nice. Very glad I didn't mess up a whole column or anything. There doesn't seem to be any sure fire way to confirm that a matrix doesn't have any issues, but I knocked down lots of drops and hit lots of switches, and didn't get any incorrect readings.

With that out of the way, I was able to get to the most important part: getting something on the playfield to react!

Now I can start actually coding a few simple rules, and try to play some test games where I imagine different targets are lit and shoot at them to try to get an idea for how my rules to work, and I won't have to stop every 30 seconds to manually reset a bank of targets or eject the ball from a hole

Posted Wednesday, September 23, 2020
at 03:23 PM


Tags: Blog Post, Pinball, Project, P3,

Homebrew Pinball #3, Part 21

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



In the midst of wiring, I've been taking some breaks to start on the code. Against my better judgement, I'm going to attempt to write all the game code in Typescript (a type safe superset of javascript), and run it via Node off the Raspberry Pi. I'm a bit worried about performance, but I figure I can always optimize it, shirk off some duties (such as video or sound) to a C backend, or upgrade to a Pi 4 or a x86 based board with a Pi compatible GPIO header at worst. Why Typescript? Because I've been using it at work for so long that trying to use most other languages is unbearable. Typescript is just so nice and developer friendly...

Hopefully this all makes vague sense to people who haven't coded a pinball machine before:

I also am going to try to take a different route from how (to my knowledge) all other pinball games are coded. I've worked with/explored a lot of systems (early williams/bally/gottlieb, wpc, MPF, skeleton game, etc) and they're all very much focused around a central concept: events come in (from switches, timers, etc), and then the code listens to those events, and sets some state (light on/off), fires some coils, etc. It seems to often lead to bugs where lamps get stuck on, balls get stuck in holes, etc, because there's state where there shouldn't be, or there isn't state where there should be.

For instance, on Demolition Man, when you collect the third claw award, it lights the 'car chase' inserts on both ramps. When you finish the mode, it turns them off again. But there's a bug where sometimes, if you drain while in car chase, on your next game, those lights will still be lit! Clearly, it's storing the 'state' of the lamp globally, and then forgetting to turn the state back to 'off' in some edge case. In my mind, that implies something wrong with the methodology they're structuring their code around. The lamp's state should be directly tied to being in car chase mode, it shouldn't be possible to 'forget' to turn if off. I'm sure there were tons more bugs like this that were found and fixed during development we never saw, if this one was able to get through multiple software revisions. I've even seen similar bugs on modern games, like Alice Cooper. On an older game like DM where they were writing in assembly and bytecode, and modes were a new concept, it's understandable that their handling of all this wasn't the cleanest, but with modern games where there can be tons of stacking going on, I want to come up with a cleaner solution for the lights.

Another example of the reverse case is something I've run into on my Taxi. In certain edge cases, the ball will go into one of the eject holes, and then won't kick back out. The game knows the ball is in there, since it registers in switch test, and it doesn't trigger ball search. Somewhere in the complex code surrounding the kickouts, there must be an edge case where it forgets to fire the eject coil. But again, that shouldn't be possible! We have a piece of set continuous 'state' here, which is that the ball is in the hole (the switch is closed), but its tied to a momentary input and output (the switch closing, and the solenoid firing). Since one of those momentary events was missed, the continuous state is now stuck.

In my mind, whenever possible, you want to match up these types of events/states. If a the eject switch is closed, the ball needs to be ejected. That's a 1 to 1 issue. The fact that sometimes, this might result in multiple momentary firings of the eject coil should be abstracted away. Similarly, imagine you had a shot where there's a down post and an opto. The game knows the ball is behind the post, since the opto is blocked, therefore it needs to release it. The same exact situation from a logical perspective: ball in hole/etc, ball needs to be released. But this time it's a down post, which isn't a momentary coil. You just need to energize the post until the ball leaves, no need to repeatedly fire the eject coil like in the first case. So I want to have a system where, in both cases, the game/mode's code is exactly the same. All it would say is something like "coil on if switch closed". Then a separate layer, which actually interacts with the hardware, can take care of things like, is this coil momentary? If so, fire it, then wait a bit. If the game is still requesting the coil to be on, fire it again. Increase the strength if necessary, or maybe trigger an operator alert if too many attempts have failed, etc.

With this in mind, my code works like this:
I have three layers: the game code, the machine driver code, and the actual hardware code. The game code is going to support stacking modes, sub-'modes', etc with their own priorities to override each other, etc. The machine driver code handles turning the 'wants' of the game code into commands for the hardware. In the simple cases this is just stuff like sending the 'turn on coil', 'turn off coil' commands to the hardware, but in cases of more complicated devices, it'll also manage that. For instance, my ramp has a switch to tell when it's up, and I put a switch underneath, to tell if a ball has gotten stuck under the ramp by rolling in from behind while it was down. The 'driver' will handle raising the ramp temporarily if it detects a stuck ball, or giving the lift coil another pulse if it detects the ramp has fallen down when it's supposed to be up. The hardware code will be very simple. It'll just handle reading the switch matrix, toggling IOs, etc, based on what the driver tells it to do.

The driver layer is going to have a list of every 'output' (coils, lamps, etc) the game has. Each mode will be able to specify its own values for any lamp or coil it wants to control. I'm then going to have a system that watches all the modes for when one of those values changes. It'll figure out which modes have priority, etc, and propagate the final value down to the driver. This way, I can have one mode say 'eject the ball from this scoop', but then, if needed, a sub mode that's playing an animation could say 'don't eject the ball right now', and block the coil from activating. When that sub-mode ends, the system will take care of automatically reverting all the outputs' values to remove any effects the sub-mode was having. In the case of lights, I'll also add support for combining values instead of overriding, so for instance I could have one mode say an arrow is green, and another say the arrow is white, but since they're stacked together at the same priority, the driver will take care of flashing the arrow green-white-green-white for them.

Hopefully this is all a good idea....

Posted Wednesday, September 23, 2020
at 09:39 AM


Tags: Blog Post, Pinball, Project, P3,

< Newer Posts
Older Posts >

Posts per page: 5 10 25 50 100