Saturday 14 February 2015

Fire Truck PCB. Mega repair!



So I offered to fix a Fire Truck Board and boy it’s been one hell of a repair. Well for me anyway!

The board was genuinely untested for a long period of time and for all I knew it could have worked. Dream on!

Photo below showing the board being powered up in my cab. The game is not running but at least there’s a video output, that's a starting point.



So not wanting to be fixing this board hanging out the back of my cab I needed to make some sort of test loom.

Test rig running Super Bug. They have a similar pinout.


The game runs from 10V unregulated coming straight from the power brick, this feeds into an LM323 on the game PCB which generates the 5V DC which powers all the game logic.

I used an open frame PSU which was rated at 12V 3A which was in spec. for the LM323 and shoved it into a cardboard box to give some safety over having 240V cables exposed! I also then added a phono lead on the adapter from the video and audio pin-outs. The audio is not amplified on the game board so it was fine to feed this straight into my test monitor.

I’m going to simplify the written down fixes as I spent a fair amount of time going round in circles whilst ‘learning’ about the roles of the CPU/RAM/ROM and their associated circuitry.

The board is quite good in that is doesn't need the CPU to be running correctly to display certain graphics, albeit garbled on screen.

A visual inspection showed a few scuffs around the board and a few possible suspect broken traces, after using my meter in continuity mode all suspect areas belled out ok. Next up were the ROM’s they were the only socketed IC’s on the board after removing then every IC had broken tarnished pins, I put the effort in and de-soldered legs back on, about 20 legs across 8 ROMs! I did get most of these to verify against my own ROMs but I wasn't happy that they would provide lasting reliability, some of the legs were flexing and most were badly tarnished.

I replaced all the ROMs with 28c16 Flash ROMs they’re direct 2716 replacements and can be reprogrammed without the need for erasing under UV. So I knew the ROMs would be good but one of the ROM sockets was very badly installed… It clearly hadn't been seated correctly when originally manufactured. The pins at the raised side didn't even make it completely through to the solder side of the board so I had to swap this out.



Now then, I've put the ‘fixes’ in the order which I probably should have worked on them rather than the order that I did fix them in. All suspect IC’s were removed and tested in my programmer, I removed a few device in error but I’d say 95% of my theory/hunches on faulty IC’s were correct.

Board voltages were sitting nicely at 5Vdc, the 12MHz clock looked good and seemed to propagate throughout the board, moving onto the CPU, pin 40 the reset line in normal running mode should be high but it was toggling high/low constantly so the game was resetting and not actually running properly.

There are two 74ls367 address line buffers A1 & B1 both of these had pin 9 stuck low. Confirmed as faulty.

Board still resetting.

The 'Watchdog reset' signal comes from LS42 counter at D6. The inputs to this all look good, IC removed and confirmed faulty. Replaced IC.

Board still resetting.

The 'Watchdog reset; signal is put through an LS08 AND gate, the other input to this gate is the 'Test' signal, the output is stuck high in effect never clearing the shift register. LS08 at B5 confirmed as faulty.

Board still resetting. argh!!

74LS42 at H2 is a decoder that drives the ROM select lines along with RAM select lines. It's noted the there is no activity on ROM1, ROM0 and the PRAM signal, if these signals are not being driven the program code can’t be running correctly. IC removed and confirmed as faulty.

Board still resetting. Goes for a beer!

Next up was a bad LS02 at location N5, this is the Output Disable line for the RAM, I didn't log what was wrong and cant remember but it tested faulty and was replaced.

After this there wasn’t really much else that I could find that looked wrong signal wise, certainly with a logic probe.… Hunch time! What about the RAM? Now this plays apart in the CPU/ROM/RAM chain, there are four RAMs on the board all 2111’s and there soldered, I decided to remove all of them and test them in my working board which has one RAM socketed. All RAMs are confirmed as faulty. H4, J4, N2, P2 all faulty. All socketed and replaced, IC”s procured from Twistywristarcade.com in the USA.

STILL RESETTING!

Surely there couldn't be much else stopping this board from running, turns out an LS367 at C3 had a bad output, this buffered one of the clock outputs from the CPU which in turn controlled the read/write signals to the RAM. IC confirmed as faulty replaced.

Game no longer resetting. Yay :)

The Alpha numerics seem to work showing the current and best scores and the front of the Fire Truck seems to be heading down the road but its graphics are slightly corrupted, also the rear truck is missing.

There was constant audio tone coming form the audio output, this is more annoying than anything else so I take a look at this next. All the individual sounds are generated from separate parts of circuitry (See Equites Asteroids Fix log for a similar problem) I isolated these one at a time and it turned out that the 'Extended play' sound is stuck on, IC B6 a 74LS74 flip flop had a stuck low output. IC removed and confirmed as faulty. Replacing this stops the constant audio tone.

Moving on to the Cab of the Fire truck, the data for the truck comes out of a Prom at location P7, these signals are fed into an LS153, the output of this 'is' the cab video signal that gets summed before finding its way off the board to the monitor. Pin 1 (Enable) of the 153 was stuck high. This signal is fed from a 74ls74 flip flop (M8). Pin 5 the Q output was stuck hi, IC remove and tested. Confirmed as faulty. Cab video comes looking good.

The 'Tail' of the cab was completely missing on the display, data was coming out of the Tail ROMs at J5 & L5 but the next IC in the chain (74LS273) at L6 didn't really have much activity on its outputs, the clock input for this device (pin 11) was dead, I traced this back to a faulty LS86 at location N8, once replaced 'Tail' video returned.


Next up, the background playfield area decided it would fail, It did look normal at one point but during testing the background went all blocky with no real definition to the houses, cars & fire hydrants etc.

All the signal coming from the RAM/ROM looked OK, the *PFLD signal is fed into a 74LS02 NOR gate, the other signals on the input of the NOR gate are mixed clock signals, I decided to piggy back this and the fault went away, so I swapped it (A5) out and we had definition in the backgrounds again.


Now we had definition in the background, the vertical scrolling was not smooth and the lines of the video didn't seem to be getting displayed in the correct order, I traced this back to a faulty 74LS157 at J3. This IC provided the playfield RAM with position data, once swapped out the playfield was once again scrolling smoothly.

So from the test rig it looked like the game could now be played in the cab, so off I go with fingers crossed and plug it into a real cab. Upon power up, all the player/track select LEDs are flashing and it seems all the player/track select input buttons worked which was good. I started a game and found there was no acceleration from the Gas pedal because the truck never starts moving the steering couldn't be tested, when the game was started I could hear the engine noise and a few other sounds, the Horn button on the front control panel worked but the Bell button didn't work.

Time to track the remaining faults down...

The LS251 at location H10 was the main culprit for the lack of throttle, theres really no other components involved, no signals using a logic probe looked bad so I removed the IC and swapped it for a known good one. The game now had throttle, automatically for rear one player mode and manually from the gas pedal when selected from the front control panel. Once we had some acceleration I tried the steering in both game modes and found the next fault! From the rear steering wheel the 'tail' of the cab would turn erratically in one direction, this would also cause the 'cab' graphic to distort when it rotated. From the front steering wheel there was no steering at all.

I traced the steering fault to a 74LS14 at L1. Inverters 1, 3 & 6 were faulty, effectively three of the four steering signals were not working correctly. Once swapped out the game had fully functions steering from the front and rear wheel. At this point I confirmed all game controls and sounds worked correctly.

Now the steering was working there was a notable fault with the 'Cab' graphic when being rotated from the steering. When pointing straight up the road everything looked ok, but when turning the image looked corrupt.

Corrupt 'Cab' graphic when turning

The fault was traced to a 74LS86 at location R6.  This IC sends signals to and LS157 which then addresses the Prom which telling it which 'Cab' video data to display depending on the wheel rotation, the signal on pin 8 (V4) didn't pulse in a similar fashion to the other outputs, I remove the IC and sure enough XOR gate three was confirmed as faulty. Once replaced the game was play tested in all game modes, and now works flawlessly.

Game fully working in my cab

So with the game now fully working I think I've earned my repair wings to tackle any Fire Truck PCB out there! Another classic game board brought back to life hopefully to live on in a restored cabinet sometime in the future ;)

A final fix for the board before handing it back to its owner will be to change over the two different dip switch banks. Both of these are not working correctly, the original ones seem to be spring loaded and most of the time even when they were clicked into their correct position the dip switch state wouldn't change unless you a applied extra pressure to the switch, this was mainly noticed by the game language changing by itself on regular occasions.

If you didn't fall asleep reading my post and made it to the bottom, thanks. :)

To round this repair off, here's the complete list of faulty IC's replaced to get the game working again.

H4, J4, N2, P2 2111 Static RAM
A1 - 74LS367
A5 - 74LS02
B1 - 74LS367
B5 - 74LS08
B6 - 74LS74
C3 - 74LS367
D6 - 74LS42
H2 - 74LS42
J3 - 74LS157
L1 - 74LS14
M8 - 74LS74
N5 - 74LS02
N6 - 74LS08
R6 - 74LS86
H10 - 74LS251

Suspect, flaky, IC's changed to prolong reliability:
1C, 1D, 1F, 1H CPU ROMs
5F, 5J, 5L GRAPHICS ROMs

Green dots indicate replaced IC's that fixed faults.
Blue dots are the CPU and some of the Graphics ROMS.