<< Prev Next >>
Long weekend but due to activities was only able to work on the project Friday and yesterday.
First the .156 hole problem. The specs said .045 inches was the pin size. I presumed that meant the required round hole diameter needed. It was instead the square pin side dimensions. Actually the pins are 1mm square, and the spacing is exactly 4mm.
SO using Pythagorean theory, the hole diameter needed would be square root of 2mm, or about 1.4mm or about .056 inches. So the closest normal drill bit size would be 1/16th. So I didnít need to spend $14.98 necessarily on the Dremel set! Oh well. But it was nice to use the small bits and Dremel tool. A regular drill would be too cumbersome for this work.
I still had to go buy a set of smaller Dremel collets to hold the tiny drill bit. Now Iím all set. I drilled the holes fairly easily. Here are the tips:
- Use a pencil for marking Ė it shows up ok on the PCB.
- Draw a straight line as the guide for where you want all the holes to appear.
- Use a ruler and carefully mark the holes exactly 4mm apart.
- Use a sharp nail and hammer to tap a pilot hole over each marked spot. The PCB is soft so the nail goes in easily. Just needs to break the surface.
- Use the Dremel tool and drill the 1/16th holes.
- Put the connectors in. My early holes were off a bit and there was a bit of stress on the connector. I enlarged one or two holes so it sat flat. If it doesnít sit flat some pins will be on an angle.
- I then glued the connectors down using model hobby epoxy. You donít want the mechanical stress of plugging/unplugging connectors to fracture the solder joints, so the glue can provide the mechanical stability.
So I put on two logical connectors of size 20 and 12 pins. The first one physically consisted of a 12 pin plus 8 pin connector side-by-side.
These will hold the A3J5 and A3J3 connectors from the game. Because one header had the side clip, I was forced to mount the A3J5 connector "backwards".
Next was to put the diodes and wires on the board and solder them all. Time consuming but straightforward. Got 3 of the 7 rows done.
Also put in an 8-pin KK .100 header. Found a 7 pin wire with mating connectors on both ends from my momís 20 year old Fisher VCR which I just scrapped. I can use that. Just had to hack a bit out of the plastic side tab on the header.
Here is my procedure:
- Write down all of the row and column info for lights by name (e.g. "5X", "Special", etc.).
- Write down a mapping of pins from the A3J* connectors to the two new connectors (which I call J1 and J2).
- For each row, write down the 4 lights in order, and beside each put their A3J* connector number. Beside that map the A3J* pin to the new J1/2 pin number and write it down.
For each row, do the following steps.
- Insert the 4 1N4148 diodes in a row and solder down to the pads. Then blob solder so that all 4 positive terminals are connected.
- Test connectivity of the 4 common connections.
- Run a wire (22g solid core) from the row connector on the 8 pin header to the positive side of the diodes. Solder down both ends, and solder the connector pin. Then blob solder from the header pin to the wire, and from the wire to the commonly connected positive side of the first diode.
- Do a diode check on the DMM from the header pin to the negative side of all 4 diodes. Should read over .5V.
- Using the pin mapping written down previously, run 22g solid wire from each diode negative side to the J1/2 connector pin. Leave it one hole from the pin. Solder both ends of the wire, then blob solder from the wire to the diode pad.
- Now since our .156 terminals are in freshly drilled holes with out any copper pad, we need to run wire directly to the pins and solder to them. For this task I developed a technique of using bare 22g stranded wire. I twisted tightly and pushed/pulled through the protoboard hole between the wire just soldered and the terminal pin. I bend the stranded wire around the header pin. Solder the stranded wire to the pad and to the header pin. Cut off excess stranded wire. Blob solder from the stranded wire to the connector wire.
- Do a diode check from the 8 pin connector to the J1/2 connector. Should read .5V or more.
Will probably take one or two nights to do the rest. Hoping my connections hold up. After each solder operation, I check the results first with the magnifying glass then with the meter.
After this is done, need to expand the lamp matrix breadboard to the full 7 x 4.
Finished soldering the lamp connector board last night. I was too afraid to plug the p/f connectors into it though Ė didnít want to spoil my elation at finally finishing the job. Got lots of basic experience soldering pins to pads.
I think I will expand the breadboard matrix to 7 x 4 for a change of pace, then test out the connector board. Plug in the p/f connectors and manually check each light one-by-one.
Documented the matrix layout in a Word doc.
On holidays this week. Lost the weekend to baseball tournament (the girls won!), Paulinaís birthday party and Hannahís birthday party. Also went on a wild goose chase out of town trying to get an Exhibit Iron Claw at an auction. What a waste.
Back to work yesterday and historic milestone 1 was reached Ė hooked up the hardware to the game and drove the lamps!
First I needed a platform to put the breadboards and connector board on. I mounted the connector board onto a piece of wood. This can be mounted on another piece of wood later. First did continuity check for the connector board and all was well.
Took some Ĺ inch plywood and cut it down to 20 ľ x 16 inches. Drilled 4 holes in it. Then took some short 2 x 4 pieces and put 2 5/16th diameter doweling pins in each. The 2 x 4 pieces fit snug on the neck of the game where the head would sit on. Then I put my plywood platform on there, with the doweling pins going through the holes and pretty well sitting flush.
Thus the plywood platform sits steady on the game neck, but can be popped off quickly. Also, the 20 ľ inch wide platform can later be put in the cabinet on the bottom towards the back. The actual interior width is about 20 3/8th inches so it will fit nicely there.
When I first did end-to-end light checks with the 6V battery, I got strange results. Then I realized I had a connector off by one pin. Not having all the perfect connectors makes such things possible, even though I have clearly marked pin 1 on all connectors and headers to avoid any mistakes.
Lo9aded the new lamp config file and fired up the software. My first tests did blink some lamps. But I was worried, but again, it was another connector off by 1 pin. Then the first two rows worked but then nothing. Again feared a hardware problem.
But it was a Java software bug. Díoh! Fixed that quickly and all lamps worked. Some actual sockets are flaky, and one lamp doesnít work due to bad p/f connector. I will work on that later.
So it all worked on August 11. Then at night I finally started to work on the diagnostic console. In about 2 hours I had written the code and implemented batch command macros for doing attract mode light displays. I was very happy. Leveraged some utility code I already had.
Today I expanded the console command processing. It is very slick. Added support for user-defined variables for use in command substitution. Most commands I was going to custom-code arenít needed. Just need to use the basic building blocks of simpler commands and macros.
I can thus build arbitrarily long and unique light sequences with simple ASCII commands. Did I mention that this made me happy?
About the only issues still related to lamp processing is the power supply and voltage to use. Currently running off the wall wart at around 12V. The lights are a bit dim (especially the green bonus multiplier lights) but are not bad. The wall wart is rated at 9V and puts out over 12V unloaded. I may try my other one which is rated at 12V and puts out over 15V unloaded.
I probably need to use a proper transformer with higher output than 1A so as not to worry about overheating.
If I turn on all 25 lamps and leave them on, power drain should be .6A or something like that. Or maybe itís just .3A since we are drawing 12v. I should measure.
In practice, only half the lamps should ever be on at one time (using standard Solar Ride rules).
I also get a flicker when sending the lamp commands out. It is a little worse than I thought or had noticed on the 2 x 2 test matrix. Oh well, I can live with this.
Almost time to start on the switch matrix.
Testing the lamp matrix with the game. Master controller and lamp controller boards plus
lamp connector board on the piece of plywood on the head.
Enhanced the command processing a bit to make it work better. Added support for variables. Thus I can have macro files that can be called from other files. So I can have a generic "blink light" macro to9 blink a light, etc. Works great and Iím very happy.
Started on Saturday on the switch matrix. Had trouble understanding the sample circuit for it, as I was confused as to exactly how the LM339 comparator worked.
So I took an LM339 and tested on a breadboard. What a nightmare! Spent 4 hours to learn the hard way how to configure this simple IC.
I got burned by a very simple property that no one seemed to point out anywhere:
- The supply voltage Vcc must be greater than or equal to the maximum difference of the voltages being compared.
So for testing I had Vcc = 5V and my two voltages under study were 5V and 15V. So the difference is 10V, which is greater than the Vcc value. Díoh!
I had finally figured out by brute force that if Vcc was 15V instead that my tests worked. Then I saw the rule innocuously present in the LM339 data sheet.
Also didnít realize that the LM339 outputs are open collector in one state, and high impedance in the other state. So you need to connect the output to 5V via pull-up resistor so that your processor will see 5V or 0V as opposed to 0V and floating.
So now the next step is to build some test circuitry for a single switch and connect to the BS2 already on the breadboard. Make sure we read the values properly, and play with debouncing via software.
After that, we can build the real code and circuitry. It will be similar to the lamp matrix: 74HCT138 (1 to 8 decoder) for strobing, 74HCT240 for inverting the output and ULN2803 for turning on the rows to the 12V or 15V supply. On the return side we will have on LM339 connected to the BS2.
I also need to first examine the existing Solar Ride wiring. Unlike with lamps, Solar Ride did use a matrix for switches, and has diodes already hooked up on boards. So hopefully, we can use the wiring as is and make a much simpler connector board.
Not much done in the last week Ė it was Iron Claw week! Picked up a 1930 Exhibit Iron Claw on Monday night, and spent a lot of the week getting it to run properly.
Also hurt my tailbone on Friday and was in agony Saturday. But woke up feeling great Sunday and went back to the game.
Removed my boards from the game and opened it up to start looking at the switch matrix wiring closely. Didnít finish mapping it all out but I did trace wires so that I can associate all switches with diodes on the 3 diode boards attached to the playfield underside. There is also a small diode board attached to the bottom board.
Unfortunately, the Gottlieb doc for System 1 and Solar Ride itself neglect to document the wires for the switch matrix. Seems like everything else is mapped out except this!
Looks like connectors A1J6 and A1J7 carry all lines for the matrix. A1J6 was snipped off so will have to be re-attached. Iíve been carrying it around with me as an example of the connector style. I can see that 2 pins are totally corroded off, so work will be needed there.
A1J7 is free and looks ok, but I havenít mapped the wires out yet. Still donít know how the rows and columns are arranged exactly.
I also put on the Gottlieb coin door I found. Stupid me I forgot I had this at all. This is great news, because I now have a replay button and test button, and wiring for coin switches also (no mechs installed though).
Also figured out that the coin door connector has the slide-on connectors for the left flipper switch! Recall that I manually made up connectors for that. So now I just have to plug in the factory parts here.
Cleaned up the coin door with Goo Gone and fine steel wool.
Next step is to continue mapping wires and figuring out how the switch matrix is arranged. With luck I wonít need to do butchering of wiring as I did with the lamps.
Gottlieb did some economizing, by tying the left and right pop bumper switches together. Additionally the left and right outlanes and a couple of the rosebud rollover switches are tied together. This would not be good for multiball but itís ok for me.
Funny thing about the pop bumper and sling shot kicker matrix switches Ė they are actually part of the end-of-stroke switches, not the actual ball contact switches.
The coin door, tilt, replay and test buttons are handled separately and go through the diode board on bottom. The schematics and diagrams indicate 4 diodes on this board. There were 4, but one was also missing so it looks like there should actually be 5. One wire is not mentioned in the schematics but exists with a diode in the game. Not sure where it goes to. Maybe itís an extra coin switch option or something.
Addendum: just found a switch matrix layout in the pdf manual for Buck Rogers! I donít know why the equivalent wasnít in the Solar Ride manual. Shows the A1J7 connector wires. Should be mostly applicable to Solar Ride too I would think.
Didnít have much time last night so I just hooked up the remaining wires from the coin door. There were slide-in connectors for the left flipper and to the ball roll tilt and plumb-bob tilt. One of the slide-ons broke however so I have to put a new one on.
So I disposed of my temporary left flipper connector wires, and I now have wired replay and test buttons plus tilt and coin switches as well.
Tonite I will use the Buck Rogers matrix page and see if I can map out the matrix rows and columns.
Just had time to map out the switches in the matrix last night. Clipped switches shut, then did a resistance check across the suspected row and column lines until I got continuity. The Buck Rogers diagram provided hints as to what were probably the wires for rows and columns.
Got them all mapped, although I still have a little bit of confusion regarding the slam tilt and ball roll tilt. Determined that the unmarked A1J6 wire (purple) went to the plumb bob tilt. The missing diode on the diode board on the bottom board belongs to coin switch #2. My guess is that a desperate operator stole the diode from there for use on a more important switch, then just taped up the coin chute.
The only other switch in question is the outhole switch. It is not listed in the matrix anywhere and somehow connects to the Game Over and/or Tilt relays.
My job today is to document the matrix wiring in a reference file. Then I can sit down and figure out how I can wire this to the LM339s and so forth.
Didnít do much last night except map out the outhole switch. Both sides of the switch go to A1J7 connectors. The wiring leads to both the Q and T relays though too. Not sure of the exact logic here. No diode on this switch Ė definitely not part of the matrix.
Still scratching my head over the general circuit design of the matrix. Most of it makes sense except for the wiring around the +12V entry to the LM339. I will set up a test to see how it all works.
Pretty simple Ė just need a switch with one side connected to ground (which would normally be a ULN2803 being strobed), and the other connected to +12V. Need a couple of resistors from 12V to the LM339. Check the voltage at the LM339 output. Hopefully the connected LED flashes with the switch in one state and goes dark when it is in the other.
Built the little test circuit for the LM339 with a switch and it works as expected. So I understand the circuit now. The one part of the circuit I didnít understand before was due to a brain cramp. The sample schematic example I used for reference showed the +12V line connected to ground through a 470pf capacitor. I forgot that caps donít pass DC Ė I had been thinking that this was almost like a short to ground!
I presume the 470pf cap is for elementary debouncing of the switches.
Started making a new breadboard for the switch controller. Had bought a breadboard last week. Decided to use my other BS2p24 for this (rather than the BS2 on the other breadboard). Iím kicking myself for only buying two of the BS2p modules at the sale price!
Built the voltage regulator circuit and put on the stamp module and download connector. Hooked up the board and downloaded an LED flash program to verify the circuitry and to make sure this stamp module works ok.
I have the 74138, 74240 and 2803 chips ready to go next.
Had to iron out the matrix details on Solar Ride first. I had one error in my diode mapping so I fixed that. I also had the rows and columns reversed. After many brain cycles I was comfortable with how the rows and columns will hook up.
I also need to integrate the special coin door switches in the matrix but that seems straightforward.
One wire with a diode (diode D1-6) remained unmapped, but I traced it to the slam tilt switch on the underside of the playfield. No idea where that goes to though so it wonít be in the matrix I guess.
The final matrix size will be 5 rows and 6 columns. I can now wire up my chips on the breadboard. That should be very straightforward. The interface board I need to create will be simpler than the one for the lamps (no diodes) but it will still be a fair bit of work.
Re: switch controller software, still not sure if this will be an output-only set up. One thought is to use resets as a way to send it commands. Master controller would have an i/o line hooked to reset of the switch controller. After reset, it sends a single command to it. After that the switch controller is output only.
This would allow it to share the i/o lines to reduce i/o pins used by one or two.
<< Prev Next >>
Last updated: September 26, 2008