Rss

  • twitter
  • youtube

Archives for : Arcade n Pinball

NBA Hangtime Pinball Backglass COMPLETE

 

Well.. The Home Made Hangtime Pinball project is coming farther! Today, I finished the back glass and scoreboard system. The whole scoreboard system was made from scratch with 10mm and 5mm LEDs with Shift Registers and Transistors. Its running really nice and thought to share it all with you! It really is a treat seeing this project come to life! Here is the video!

 

Its really nice to have the pinball cab already in place, I will be painting over those tutles soon, even though I feel like im sinning! But what a better way to bring an old pinball to life than reincarnating it into a homemade pinball!!

The artwork changed a bit, here is the actual print!

I really wanted this pinball to stand out among the rest. This is why I not only have a pinball DMD (well kinda) display, but thought an old school point counter system would be retro and cool! So my mission was to include a basketball scoreboard into the back glass artwork, and I must say it came out better than I expected. I built the whole thing out of LEDs and Shift Registers basically. As you can see in the pictures below, there are a few different “modules”. They all connect together over ribbon cable, which includes the latch, clock and data for the shift registers, plus a couple of grounds, +5v and +12v. The Arduino Mega is what is controlling all of these along with sending signals for the other arduinos that take care of the other functions, like audio and the DMD (check out my other posts for details on those).

Alot of mess, but it does all make sense. These are for the scoring system of the scoreboard. These are essentially 7-segment LED Displays made out of 10mm orange LEDs.  Its hard to see, but each board has a 10-pin IN and OUT ribbon cable connection to run the shift registers, ground and power. I then needed to create the Period, Possession, Overtime and shotclock LEDs. Which is below.

Again, the shotclock is basically 7 segment LEDs, but this one out of 5mm Red LEDs. Then the est are more 10mm Orange LEDs, the 4 shift registers power all of these. Some may say you could get away using less shift registers since there are unused pins (especially on the third digit of the player scores) but they are cheap enough, that using them like this made it much easier to program and looks cleaner. This board again has the 10-pin IN and OUT on the back to link with the player scores.

Next I needed to recreate the backlight wood door. I like using actual bulbs instead of a fluorescent light or LEDs becuase it gives it a more retro, real pinball feel.

These lights are controlled by a lighting board, that uses shift registers and mosfets. This board gets its commands over I2C so it can work while the other things are going on. You can see this board in the pictures of the inside, and it will be upgraded with much more MOSFETs and transistors soon. So after installing this, and getting all of the LEDs aligned with the artwork, it looked like this.

Looks great to me! To really see it in action, check out the video at the top of the page!

Here is also a glance at the inside. After I finish getting it all organized and finished, I will do another post, with more details.

NBA Hangtime Pinball LED Screen Test

Next update on the NBA Hangtime Pinball is the LED screen. I have been wanting to make this for quite sometime. I am using 4 Sure 2416 LED Matrix boards and they are using an arduino Uno for communication at the time (It will get a standalone Mega after I finish the programming). The code for these boards are available all over the web, and I will post mine once I finish it becuase it is a mess right now. I am using the Arduino Mega as my master cpu and it is sending commands via I2C to this screen (check my blog on the sound boards for more information). So as you can see in the video below, it is running the LED screen and all the sound at the same time! I am getting closer! It can display small, large and graphic fonts and is running smooth as of now. Now I just need to work hard on making it look better and run smoother, which always seems to be the hard part……….

 

Multi-Tasking Arduino Pinball Audio

 

Well, another project has already consumed some of my time. I have decided to do a large project that will take up alot of time and would be a great learning experience. I have decided to make a pinball machine! And what a great theme, NBA Hangtime! I use to play this game growing up and still do, I even have a MAME machine sitting inside a Hangtime Cabinet. What makes the game excellent are many things, like the dunks, the minimal rules, 2 on 2, and who can forget the audio??? “Ooohhhhhhhhhh… BOOM Shaka Laka!”. Well I thought that the audio board would be the first thing to do, since it would make or break this machine. I am very pleased with the outcome!

Parts I used:

3 – Arduino WaveShields

3 – ATMega328 with Arduino Bootloader

3 – SD Cards

  1. Misc parts for the ATMegas (Read this for standalone ATMegas)

  2. Arduino Mega 2560 (Any will work, it sends the commands)

I recommend reading up on the I2C protocol if you do not understand it, it is VERY useful! (HERE)

So, one of the main problems people have with ATMegas are the fact you can not do multiprocessing, so in this example, if your playing a sound, you can not play another suond till that first sound is over. This is pretty much unacceptable for pinball machines. You have background music, and other effects happening all at once. So this is where the amazing I2C protocol comes in to help. It allows you to hook up many ATMegas taht can talk to each other. This allows you to have a Master sending commands to other arduinos so that they do the processing while the master goes onto other things… Soo.. Multiprocessing! (some micro-controllers can do this themselves, like the Parallax Propeller, it has 8 cogs, which are separate processors, but I wanted to do everything with Megas, since I understand the code, and its a challenge!)

In this last picture you can see the horrible ammount of wiring I had to do to get it all to work. But what i want you to look at is those Blue and Green wires coming from that molex connector. These are the I2C lines. They are just daisy chained from one mega to the other. If you look at my code, i send them commands based on what is happening. Each Mega has a separate address, in this case, they are 1, 2 and 3. So I send this command from the master…

sendcom(11, 27);

void sendcom (byte x, byte y) {

    Wire.beginTransmission(2); // transmit to device #2

  Wire.send(1);        //sends a command to tell it is “On”

  Wire.send(x);        // sends directory number

  Wire.send(y);       //sends file number, or “random number”

  Wire.endTransmission();    // stop transmitting

}

Then the slave arduino #2 gets 3 bytes. It recieves..

(1, 11, 27)

So it takes those and plays a file off the card (check the waveshield website for more info on that)

1 means its on, then it looks at the 11 (which on the SD card is the files in the 1100s, like 1101, 1125, 1131) and then it sees the 27 which is file 27…. in the 1100s…. so file “1127.wav”. The reason for this is I have some math that allows me to do random plays. It is constantly adding the int “randomnumber” by 1 till it hits 51, then tells it to go back to 0. That way when I use “randomnumber” like…

sendcom(11, randomnumber);

 

it will tell the slave to play a random file in the 1100s. This works great when playing pinball to keep things fresh. There is ALOT of possible combinations with this!

 

Getting all of the audio was very very time consuming. I used a program called M1. It dissects the game rom file and I could extract all the tracks. This took a very long time and I ended up with hundreds of sounds, commentator sayings and music. Now I have all of that organized and can make my own audio on the fly. Way Way Way better than trying to record the audio in game, it would have horrible background sounds and whatnot. I probably wouldve given up on the idea if I didnt find that M1 program and got all the sounds by themselves.

 

HERE is the M1 Program.

 

Source Codes:

 

master.txt

slave.txt

 

I am still working on the code and the way it will all work. This is going to be a LONG project, and im sure ill have other projects in the middle of it, but it will get done eventually. If you have ANY ideas for the machine, please email me, let me know what you got! Represent NBA HANGTIME LOVE!

 

Call Of Duty : Lan Party


Ok, so its not as crazy as this picture, but I still think its a bit overkill for just a couple hours….. but doesn’t mean I wouldn’t do it again! Was great and was non stop for hours. I don’t play videos games to much, but sit me down in front of a 52” LCD with 10 other people playing COD, and you got me hooked! Check out the video!

Mini MAME Cab from Netbook

Well this time I have done something that has done before, but I believe I have a improved version! A Mame table top cabinet running off of a netbook pc (Which is also battery powered!). This is a Christmas Gift to my Aunt, Uncle and there Kids. I have produced MAME Machines before, but this one was completely from scratch. My others I have taken original Cabs and stripped them empty and added all of the components (NBA Hangtime Cab). This one I used 1/2 MDF board and built this off the top of my head. I already had the netbook, so I based some of my measurements from that.

Supplies Needed-

-1/2 MDF (3/4 could work as well)

-Plexiglass

-Netbook (I used a eeepc 901)

-iPac 2 Player ( Link here to Ultimarc.com )

-Buttons and Joystick (Link here to Happ Controls)

-Label Paper (Full page @ local Office Supply Stores)

-Assorted Tools, Wire and Screws

-1 1/8” hole saw

First I started off tearing apart the screen on the netbook. This allowed me to get some exact screen measurements so I could be sure I would have the clearance. Sorry I do no have any pictures of this, and since every netbook is different, yours probably will be. Just take a quick google search if you not comfortable doing this yourself.

After determining the dimensions, I cut out my pieces with my MDF board. I made all of the pieces and predrilled the holes so it would not split. Then, using a router, I cut out the plexiglass using the MDF as my stencil. Plexi is hard to cut, so go slowly.

I left the back to swing open so it would allow me to work on it, but also to be able to access the body of the netbook. This gave me a mouse and keyboard always on inside of the machine. I also went ahead and predrilled the holes in the wood for the controls and joystick. (not all are done at the time of the picture). Also as a side not. Dont try to cut the plexi with a holesaw, doesnt work as well as you would like. I applied the plexi to the machine, then use d a dremel with a cutting bit. This acted like a mini router, and cut the plexi perfectly. I then removed the plexi and painted it black.

And then had to add artwork. I am giving this as a gift to my uncle and his kids, so I went with a Galaga theme. He has always said he wants a Galaga Arcade cab :-). The graphics I used are HERE (Arcade Art Gallery). But you can obviously use any art work you would like! I then reapplied the plexi over top of the graphics to give it a glossy look, but also protects the artwork from wear.

Then I added all of the buttons and wired them up. This is an easy process. Once you get the Ipac, youll see that they make it very user friendly. I went ahead and added molex connectors to make it easy to disconnect things if I ever had to. After adding the controls, I went ahead and wired up and mounted the LCD from the netbook. This was actually easy. I just took a piece of MDF, cut it to fit where the screen would go, then i set it back the same as the screen is deep. This allowed the screen to be flush. I used the stock mounting hardware and screwed it right to the wood.

I also cut a hole in the MDF right behind the connector of the LCD so I could easily run it right to the computer. I mounted the computer directly to the back of the cab that is hinged for access. There I also mounted the ipac and a wiring diagram. As you can see in the picture below, there is no room to plug a USB cable into the computer. So I soldered it directly to the board. Very similar to my LCD Apple Logo project. (link HERE). I also added a power button to the top of the cab and soldered it directly to the board. Makes it easy to turn off and on.

That is pretty much all that is needed! I am using Maximus Arcade (link HERE) to run the machine, which I highly recommend. Makes having multiple emulators and easy task! Now just enjoy! have any questions, send me an email!