if you look at my original posts and some posts down you'll see I already did it as a test of 8 per board. its just a shift register so chaining them is easy. The source code is written for 32, and 4 shift registers is nice and easy. Since the code is written for 32, i just went with that as fixed, making it able to handle however many boards other people add makes it a lot more tricky. what if someone else only uses 1 board, or 5 boards.. easy to fix the code at 32 and let you use 32 as you see fit for any number of flashers or solenoids etc from 1 to 32 without having to rewrite anything.
weekly update.. moved all the resistor networks away from the connectors for the switch matrix per Erics suggestion. Trying to add a seven seg display for doing error code instead of a blinkenlight to count.
also exported solenoid driver gerbers to github.
also have a rough light board design in the works, it will be two channels, one channel will be just GI and the other channel will be the inserts. The plan is the GI will have 4 x WS2803 chips (18x 4 = 72 single colour LEDs ) and the inserts will run 8 x WS2803 (18 * 8 / 3 -> 48 RGB inserts). debating running the inserts at 10 chips which would give up to 60 RGB inserts... Obviously, for each insert that is single colour you only need 1 wire, RGB need 3 wires, so and 8 chips, thats 144 lines to use if not all are RGB that should be heaps, but if you use only RGB LED then 48 might be cutting it close? I'm thinking 48 should be ok.
I have also started combinging a whole bunch of my playfield drawings together to try and work up a rough final design for the whitewood. I need to take some measurements of my drop target banks to see how much dimensional space under the table they take up so I dont start laying things out in the middle of other mechs. I make rough 2d cad outlines of things so I can place things out on a 1 paper + whiteboard, mostly because drawing on a small paper like legal size, I always screw up dimensions of things so working in a 1
scale helps me a lot (yay gigantic whiteboard from walmart, its the exact size of a widebody table, just shy of being a few inches in length for a complete size, so skip the apron and your good!)
no updates? no its summer, the best time to be out hiking, mountain biking, camping and fishing with my two little uns (7+5)
board design is still going on (just summer time slow).
trying to find/source a suitable replacement for WS2803's so I can get em from mouser instead of ebay..
thinking of switching the SIPO and PISO shiftregs (595's + 165's) to soics and cutdown on some boardspace. Mostly at this point changing the input switches (165's) to SOIC wouldnt save much as the connectors take up enough space as it is. I have a new 2x7 Seg LED diagnostic display that needs to be added, its smaller than the one thats on there right now (that honking big square chip to the right of the UBW32 PIC32 connector. Connector for the two lane GI/Inserts has been added as well. Just missing some of those fandangled resistors that things seem to require
fet board squeezed down in size slightly for fabbing so its a nice round number, 9.7 x 4.5" (25cm x 12cm) to get in under the 10"x5" size a lot of fabs have, price wise. Right now its about $80 for 5 pcb's of the fet driver. $16 a pcb is not bad.
well. the game rules are being done in C, run on the pic32. All the audio/video code runs currently on the RaspberryPI.
The code on the PI is all SDL2 on linux, using accelerated graphics. Audio is a little external usb dac, so decoding and playing is done off the board.
Ive written some helper scripts that generate C code based off a switch list etc to generate a lot of the repetitive stuff. Im using C, but on the RPI side, anything could be used that can read messages from the rs232 uart.
The PI sits in a loop and has an rs232 open line to the PIC32 for using messages to communicate.
The PIC32 will send short messages like "S0005" (run script 5), "I1" (show image 1), "X3,5" (play sound fx 3, priority 5) , "P123,456,789,1123" (update 4 player scores), etc
so, the RPI basically sits in an event loop, pulls any messages from the queue, acts on the current game mode (attract, play).
Im using PIC32 and the PI because thats what I had on hand. I chose to use rs232 to communicate between the main board and the PI so I can swap the PI out with most anything else if it is not fast enough to do all the decoding it needs to do.
The one nice thing about the RPI, you can have accelerated SDL2 OpenGL graphics without needing X, so it comes up nice and fast.
Do you have any specific questions? I kind of rambled.
I just found that threat! Really great job.
It may be a bit late, but for your information, "DesignSpark PCB" is a free to use program for designig your PCBs without the Eagle-Free limitations.
Another tip: to lower the cost and to ease the process, the driver you designed for your solenoids can probably be used for flashers and light bulbs (or LEDs) as well. I know it may sound like overkill to use a 8A Mosfet to drive 8 LED's at a time, but 1) you never know what kind of weird short-circuits and other trouble you can get into and 2) buying 100 identical mosfets usually costs almost the same price as buying 50 of them.
Anyway, this project is amazing!.
i wish i knew 1/100th of what the heck you all are talking about. You are some bright people. I should had gone to college. Best of luck with your project and thanks for sharing.
How well does the pi handle open GL? I wouldn't have thought it would have enough power to do much. I have one so this sounds fun as I'm looking into building a cocktail head to head. Was going to just utilize a cheap backlit lcd and use an Arduino mega. PI would be nicer to integrate for that and audio, and just control all the in/out on the Arduino.
The opengl isnt too bad, but I'm not really pushing it. I have a 19" screen that has a native resolution of 1366 x 768, which is plenty, and I'm not pushing 60fps with complex stuff. I have static images, fonts showing the scores etc. working on some video decoding, which shouldnt be too hard. hopefully that will integrate ok.
the pi's video is more constrained by its cpu really.
if the pi is too slow I plan to change it out to something like the Hummingboard i2ex.
I'm only using the PI because I had it on hand and I dont need to boot into X to use accelerated graphics.
I am curious.
Are you not using P-Roc or Fast Pinball hardware because they don't do something you need for them to do, or just because you are capable of laying out and manufacturing your own driver boards?
well, Fast didnt exist when I started, and I dont think its available yet still, and P-Roc is far more expensive than I wanted, so Im making my board design open source for anyone else to make/use/modify etc. pinheck was in the works but was more cutdown than I wanted, plus I didnt want a dmd. I wanted colour, that meant LCD and LCD meant either a PC or something smaller. I didnt want a whole pc so I have a RaspberryPI.
I started my project a lot longer than the first post in this thread would indicate but had not done much hardware design prior.
Quoted from BloodyCactus:
well, Fast didnt exist when I started, and I dont think its available yet still, and P-Roc is far more expensive than I wanted, so Im making my board design open source for anyone else to make/use/modify etc. pinheck was in the works but was more cutdown than I wanted, plus I didnt want a dmd. I wanted colour, that meant LCD and LCD meant either a PC or something smaller. I didnt want a whole pc so I have a RaspberryPI.
I started my project a lot longer than the first post in this thread would indicate but had not done much hardware design prior.
That is all totally reasonable. I am starting my own project and I was asking because I wanted to see if you ran into any gotchas on those other platforms. Micro PCs are super cheap and easy to work with, so I will likely go the route.
I am super excited to see how your project turns out!
The real burning question, will it take 70+ hours to reach wizard mode?
It would be funny to keep track of ball time, have that affect your score and reward long ball times, and have it become inactive if you stall the ball somewhere purposely (goes too long without hitting a switch).
Make sure to have a cheese wheel multi-ball.
Are you going to incorporate dragon shouts into the game? Also, have some ridiculous mode where you have to save Lydia but she keeps walking into traps so you can never win it.
Where can I find out more about your open source board?
Love these Custom Theme pins. A few days ago someone posted a huge list of custom theme pins. But I cant find it again, searched and searched with no results. Anyone know what thread that was, that had the mega list of customs?
Quoted from NextoPin:
Also, have some ridiculous mode where you have to save Lydia but she keeps walking into traps so you can never win it.
This.
I am inspired now. I've seen enough DIYs and re-themes here now that I'm absolutely going to make a Metroid-themed head-to-head table. "Metroid: Screw Attack" sounds right for the title.
I thought about a metroid pin a few weeks ago, that would be cool. Head to head is a great idea, not enough of those out there.
Quoted from NextoPin:
I thought about a metroid pin a few weeks ago, that would be cool. Head to head is a great idea, not enough of those out there.
Not only that, but 1/2 the size. That was the enticing part of it to me. Seemed like it would be a simpler/easier route for a DIY project. Something feasable. My previous DIY I started was a coffee-table pitch-n-bat. Finished the code for Arduino, including LCD screen. Started prototyping the PF on a piece of MDF, then my first pin (Pinbot) showed up. Now the coffee table is a workbench and I've got a bucket full of unused parts.
who does things in order?
Its been driving me crazy, so I took 35 years of crap off my inline drop target mech for a clean up. Get it under the sisal wheel, some glass stove top cleaner..
Was kinda pissed at the price of replacing the 4 worn out leaf switches from marco, so I 3d printed a shim to fit a sub miniature microswitch.
Had to give it a new label while we were at it too
We cant have a Skyrim pin without bears, good thing Frontier has bear targets.. which are from Bally and fit in the bally inline drop target mech! (yeah marco only had 3 when I got them so we have a bullseye too)
Quoted from Shoot_Again:
I prefer leaf to micro but nice looking drops I really like the heads.
yeah I would have replaced the leaf switches if they were not $12 a pop. I can print a shim and use a $1 microswitch.. or spend $50 on 4 leave switches
whats this blurry mess? I rewrote my ws2811 driver. Right now I've got it tied to a demuxer chip, that chip drives 16 individual FastRGB / WS2811 chips.
4 data lines tied to 4 demuxers, with 4 control lines gives me 64 individually controlled LED's, in theory, each one of those 64 LED's can be a chain rather than a single light, but I dont like chaining my lights together and having 1 take out a string of multiples.
since the mcu has 64kb ram, were going to run 32kb ram for pattern data (max 2048 patterns).
a pattern might be simple (solitary colour on only) or complex (set colour, cross fade to another, wait 5 seconds, cross fade to another etc).
I'm thinking I'll feed it via rs232 or spi-can bus from the main board, that will be nice and simple.
Quoted from BloodyCactus:
who does things in order?
Its been driving me crazy, so I took 35 years of crap off my inline drop target mech for a clean up. Get it under the sisal wheel, some glass stove top cleaner..
Was kinda pissed at the price of replacing the 4 worn out leaf switches from marco, so I 3d printed a shim to fit a sub miniature microswitch.
Had to give it a new label while we were at it too
We cant have a Skyrim pin without bears, good thing Frontier has bear targets.. which are from Bally and fit in the bally inline drop target mech! (yeah marco only had 3 when I got them so we have a bullseye too)x3PB013148.JPG 81 KB
x1_PB013145.JPG 79 KB
x2PB013147.JPG 66 KB
x5PB013150.JPG 98 KB
x6PB013154.JPG 129 KB
x7PB223159.JPG 77 KB
x9PC053167.JPG 117 KB
x8PC053166.JPG 162 KB
xAPC053168.JPG 98 KB
I love being able to 3D print parts! We live in the future!
Aaron
FAST Pinball
Quoted from roffels:
Do you have a playfield design worked up?
I have several rough designs, I say rough because when I'm not dealing with 1, scale screws me up, so I have some rough layouts I've got (I think 2 or 3 I'm going between) but until I draw it 1
I dont know if it really fits or fits with lots of room to spare etc. I draw them on my tablet, at best guess.
so, we have a insert board with its own tiny microprocessor.. so what do we do with it? program it of course!
Spent today writing the source code for the RGB LED Driver. Turned out to be a very tiny 5 instruction bytecode interpreter. You can set colours, brightness, pause, cross fade to another colour, change the currently playing pattern, jump to another position. Right now its compiled down to byte code and works just fine.
Right now the system runs on a fixed 25 frames per second, giving 40ms to run the loop for all 64 inserts.
Example here is a colour chase, starts by setting the colour to off/black, then in 5 second increments it cross fades from back to blue, blue to aqua, aqua to green, green to yellow, yellow to red and red down to black. FTO is FadeTo, it takes the current known colour of the LED, and calculates additions/subtractsions to the R/G/B components to cross fade to the destination colour across a set time period.
pattern_004: SCOLOUR 0x000000 .l1: FTO 0x0000FF, 5000 FTO 0x00FFFF, 5000 FTO 0x00FF00, 5000 FTO 0xFFFF00, 5000 FTO 0xFF0000, 5000 FTO 0x000000, 5000 GOTO .l1
The board is connected to an RS485 tranceiver chip that will read instructions. The idea is, feed all the pattern data over from the master control board at the start, then just tell the system, Play pattern #2 on LED #7 (which would be for example, the flashing keep shooting insert), as in our example is set insert to red, wait for 1/4 a second, set it off, wait 1/4 second, repeat until we send a command to turn it off.
pattern_002: SCOLOUR 0xFF0000 PAUSE 250 SCOLOUR 0x000000 PAUSE 250 GOTO pattern_002
Since rs485 is connected to the control chips UART, we can just open it like a serial device and send simple byte code down the line “P2:7\n” (play pattern 2 on led 7).
Looks like a great project with the new PCBs, it'd be a shame if it's no longer progressing (I'm impressed already). So: Good question pbrockstar!
Ha! Cleaning up my favorites and saw this -- 2 yeArs and no post.. not looking promising.. too bad, great theme!
Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside