Latest Entries »

G07 mistakes

The Electrohome G07 is a simple monitor…  At least that’s what I keep hearing and seeing.

As simple as it is however, I have not had a lot of experience with the G07.  The majority of my experience has been with 1990′s computer monitors and more recently 1990′s arcade monitors such as Wells Gardner and similar.  Compared to the later monitors, the G07 is completely foreign.  For instance, the horizontal output transistor is mounted off of the board on a heatsink.  It’s insulated from the heatsink to keep it from grounding out because the outer case of the transistor is one of the conductors BUT, this conductor does need to go to something so Electrohome uses a bracket with a wire on it that the mounting screws go in to.

G07 HOT
The problem I had ran into was that NTE had included additional insulators in their replacement transistor kit.  I had incorrectly assumed that more insulating is better.  The problem being that it broke electrical contact from the heatsink AND the back bracket which resulted in an open circuit, no high voltage and a dead monitor.

This is a cautionary tale.  The last 3 monitors I have not been able to fix and needed additional help on were due to improperly mounted HOT’s.  Some day I’ll learn this lesson.

Another note about the G07, the hot may appear to test as shorted because of an internal diode.  Always make sure to test from the pins to the case.  Testing between the pins looks like a short.

Wells Gardner WGM2775 Missing Colors

vapor

For months now Vapor Trx has been driving me crazy.  Every time I looked at it I wanted to sort out the issue.  The problem is that sometimes all of the colors were there and it would work great.  Then usually red would flake out and sometimes green.

I had pulled this board out and reworked it over a good bit.  It had a lot of lifted traces from heat issues and other solder issues along with needing a few caps.  I had done all of this, shoved it back in and it worked great for about a day.   I finally got the chance to dig into it a bit more.

I started by re-reworking the neck board since this is the most likely place for a failure with a color channel to occur.  I popped it back in and it was once again fine for a bit and then it died.  I popped it out and felt that there are 3 color driver transistors that looked very suspicious.  Those were the main spots where the traces had lifted due to heat and they all have crappy clip-on heatsinks that were kind of loose.  I decide to see if the part was bad or if I was having connection issues on the PCB.  I decided to swap the red drive transistor with the green one.

When I tossed it back in the machine, it worked perfectly until I came back the next day.  Luckily it was once again missing a color, but this time green.  So now I could be certain that the transistor itself was failing under load.  I stopped by Vecto, grabbed 3 NTE198′s and popped them in.  I tightened up all the heatsinks and fired it off.

I don’t want to jinx it but I’m now pretty certain that this one is fixed.  Hopefully people start playing it now that the screen actually looks good…

Sharp Image SI-727R-DS fixed!

si-727r-ds

Well it’s my fault.  I should have known better and checked this but I had tossed in the incorrect horizontal output transistor.  I had purchased a box of 5 replacements off of eBay for a Wells Gardener 25K7401.  That monitor however had a silicon insulator pad that kept the back of the HOT insulated from the heatsink.  The SI-727 however, does not.  When I stupidly installed that part in the unit, it was shorting out and giving me tick-tick-tick noises because the switching power supply was trying to fire up but went into protective shutdown.

Once I fired the monitor up, the picture looked terrible.  Looking into the cabinet though you could tell an amateur did the harness hack.  He twisted wires together and poorly electrical taped them.  This was not the problem but I fixed it.  Ultimately the problem was that the signal ground came detached in the process of fixing the monitor.  For the life of me, I could not find the proper place to attach this wire but ultimately I found one suitable at least.

The monitor still isn’t quite right.  The picture grows and shrinks slightly when going from light to dark scenes(monitor bloom) and the image does not quite fit the screen.  As annoying as this is though, the game is at least playable now.Lessons learned?

Always make sure none of the legs of the HOT have continuity with the heatsink unless of course it’s designed to do so and if you picture every looks inexplicably bad, check your grounds.

Asteroids Free Play part 2

 

asteroids2

If you recall from part 1 of this adventure, I have been working on the Asteroids game over at The Airlock.  Back in the heyday of arcade games, there was only ONE main purpose of an arcade game.  That purpose is to collect money.  As long as it can sit there with two coin slots and accept quarters, some arcade owners didn’t care if it looked or played good.

Of course we all know that people are much more likely to play a game if it LOOKS like it works.  Oddly though, Asteroids actually has a lockout where if the game is not turned on, your quarters/tokens will simply fall right into the coin return.  WHY the designers of Asteroids thought it to be necessary to protect people from their stupidity of inserting quarters into a game with no signs of life is far beyond me.

Other things will prevent people from playing a game as well or at least paying for it.  In the case of this asteroids, it was dealing credits every time the trust button was pressed.  Well today I discovered something else…  Every time you insert a coin into the right hand coin slot, it would hit the rocket thrusts.  BINGO!  This made it perfectly clear to us that those lines were crossed.

I started by checking the wiring harness to see if those two lines were crossed but they were not.  Moving on from that, I checked the board.  Found it!  There was a small solder bridge on the shift register that handled the coin and thrust signals.  Apparently when I was sprucing up the board to get it working again, I got a little overzealous in places and in this particular spot, I bridged it.

Now we still have an odd problem with it.  The jumpers are set for “1 coin, 1 play” and it says that on the screen but for some reason, one coin actually will buy you two plays.  Why?  Not sure.  Maybe we’ll sort that out in part 3…

Sharp Image SI-727R-DS

IMG_0737

At The Airlock, there is a dead game in the corner called Hyperdrive.  In fact, it’s not just one but two dead games.  It appears that one side of it was dropped on it’s face.  The previous owner probably left it sitting somewhere without the seat portion attached.  If someone bumped it, it wouldn’t take much to knock it over.

When it got knocked over, I believe the monitor was broken.  This theory comes from the fact that the monitors in each side are different.  Not only that, we have an extra monitor chassis board for the side that was not knocked over.  The monitor this game uses is the Sharp Image SI-727R-DS.  The 7 must be the series, 27 is the size, R is RCA tube and DS is dual scan if I’m not mistaken.

At first, the SI-727 seems like a beautiful chassis design.  It seems like it’s everything that any arcade operator could want in an arcade monitor.  It has fairly detailed silk screening on both sides of the PCB, switchable 15K/25K frequency, a nicely made remote board and it’s very easy to remove the chassis from the frame for servicing.

Further investigation reveals some problems however.   I have a SI-727R-DS board sitting here that I have nicknamed clicky.  We tend to nickname monitors with difficult or repeating problems at the airlock.  For instance, we have squishy, which is the radar screen in pod 4…. As you can guess, that one is vertically squished just slightly.  We recapped it, touched up the solder and it was still squished.  I think the problem may be a shorted diode in the vertical drive circuit but we haven’t had time to pull it back out to check.  We also have had other such as blinky, buzzy, etc.

The SI-727 is clicky though.  If I recall correctly, it makes a clicking noise when you fire it up.  This is most likely the power supply continually trying to power up and then power down when it realizes that the horizontal output transistor is shorted.  The question it, what has shorted the transistor?

I’m really not sure yet.  This brings me to some of the problems I have experienced with the SI-727.  First off, it has some nasty trace rot.  The traces are far too happy to badly separate themselves from the PCB.  Usually this problem is indicative of using too high of a heat setting on your soldering iron but I recently upgraded my iron to an extremely bad ass Hakko FX-951.  The heat control on this iron is better than anything I’ve ever used or seen.  All that said, I think these PCB’s just weren’t made well in the first place.  In this picture, you can see the trace side of the board.  If you click on it, look very closely and you’ll see where I needed to lay some solder wick by the horizontal output transistor and use it to beef up the trace.  I’ve had to use this trick from time to time but usually it’s because a previous technician has screwed up the board.  in this case, just the act of removing the HOT tore up two of the pads.

IMG_0736

The other problem I have with this monitor is that I cannot find a service manual and/or schematic for it.  When a problem like this arises, it can be invaluable to refer to a schematic for troubleshooting.  Sharp Image, the company that made this monitor appears to be long since out of business but I used a sneaky trick to find their old site, The Wayback Machine!  Looking through this old site however proved to be a fruitless effort.  In ALL of the archived pages I checked, old and new, the SI-727 schematic was nowhere to be found.   Some forum post mentioned checking the SI-527 manual, which I did, but that was also a fruitless effort.  All of the components seem to have different reference numbers so that’s not going to be especially helpful.

I’m confident that we will get this issue sorted out but it might be tedious without the schematic…

Asteroids Free Play part 1

asteroids

I knew it wouldn’t be long until another weird arcade issue surfaced.  This is one that has been troubling me since I worked on this machine.  The Airlock picked up a non-functioning Asteroids for fairly cheap a short while back.  Round one of fixing led James (with not much help from me) to bad ram chips.  Once he popped those in, the machine seemed to work until a week later when it didn’t.

During that entire week, the machine was left on freeplay as are most of the newest games when they first come into The Airlock while they are still in the functional testing phase.  The game died and so I took the board home and laid a mile of solder on it to fix all the questionable joints.  I also cleaned up and reseated a bunch of shaky looking roms in nasty wiper sockets.

When I popped the board back it, after a little bit of finagling, it fired right up… in German.  Not a problem, we tweaked up the dip switches and it was good to go.  We didn’t notice the latest problem until we tried to switch it off of freeplay mode.  Flipping the switch made the screen change to “1 coin, 1 play”.  Problem is that when you put in a coin, then play a game, after the game is over, both start lights are flashing as if there are credits on the machine.  Because there are.

We’ve had other bigger priorities to deal with so this was back burnered but I was out there tonight and by pure fluke, my dad called me.  I tend to pace around when I talk on the phone so I paced and walked by Asteroids and hit several of the buttons.  No one had played the game today because The Airlock was closed for a private party who was there only for Battletech.  After I hit the buttons, I noticed that the credit lights were now flashing.  Very curious.

I expect that the problem is that something is cross-wired in the coin door/control harness.  For instance, something may not be grounded properly or what someone thought was a ground is actually another control line and they have tied it together.  Kelly suspects that there is probably a short circuit on the logic board itself.  Maybe I got too carried away with fixing those solder joints?  Who knows.  When we figure it out, I’ll post our discoveries.

Craigslist Psychology

Simpsons-Arcade

I hate Craigslist.

I hate having my time repeatedly wasted by flaky people and “professional” negotiators.  People who say they are on their way to pick something up, but they’re not.  People who email you interested in an item and then flake when you say “let’s meet” and my favorite…  people who say “Sure, I’ll sell it to you, let’s meet in the morning” and then when you go to follow up they say “ah, sorry dude, someone came by last night and bought it”.

Maybe I’m being too harsh on Craigslist.  I’ve gotten some great deals on there.  I’ve often purchased pro audio equipment on Craigslist and ended up selling it for double or triple the amount I paid months or years later.  If I tried to make a career of that, I would surely drive myself crazy but for recouping hobby money to spend on other hobbies, it’s been great.

None of this is really what I’ve chosen to zero on at the moment though.

Lately I’ve been looking on Craigslist for arcade games.  As much as I would love to find an environment Discs of Tron for $500 in Kirkland, it hasn’t happened yet.  That being said, I have seen other interesting things.  There is an odd phenomenon that I have noticed and the easiest way to explain it is via example.

There is a mint looking 4 player Simpsons arcade machine on Craigslist right now.  The seller wants $650 for it and it’s in Bellevue.  There is no point in me linking you to the ad because it will be long gone by the time you read this.  Whatever the case, a friend of mine offered the guy $550 via email and got no response at all.

There is also a wanted ad on Craigslist “looking to buy a 4 player Simpson’s arcade cabinet. Must be in good condition. Reasonable price. Thank you.”  That person is in Redmond which is geographically next to Bellevue.

These guys sound like a perfect match up but there are so many things that could be at play here…

Simpsons arcade machine seller:

  • Maybe he’s firm on the price an isn’t responding to “lowball” offers.
  • Maybe the ad is fake and is designed to screw with hungry and pathetic arcade collectors.
  • The wanted ad may have been there before the seller posted the game for sale and he may not have looked.
  • Perhaps he listed the machine on Craigslist and left town or hasn’t checked his email since he listed it.

Guy who placed the wanted ad:

  • Maybe this guy isn’t willing to pay $1 over $300 (unrealistic expectations)
  • Maybe he didn’t look on Craigslist before posting his wanted ad although this is extremely unlikely.
  • Maybe the game listed for sale was not listed at the time this wanted ad was placed.
  • Perhaps this guy saw the game when it was first listed on Craigslist for a higher price and felt it wasn’t even worth attempting to negotiate the price since it was so far from what he was willing to pay.
  • Perhaps he’s a flake and tried to buy the machine listed on Craigslist currently without following through.
  • Perhaps the wanted ad guy does not like the for sale ad guy and is just trying to screw with him for some form of revenge.
  • Maybe this is just part of an odd social experiment.

On Craigslist, sometimes it’s easy to lose perspective.  For instance, you can look on there and find “the deal of the century” and all of the sudden you decide that you are only willing to pay THAT price for another copy of the same thing.  This can skew your view of value drastically.  Remember that even though it’s on the Internet with a price tag on it, it’s not necessarily for sale or obtainable by you (or maybe anyone).

As far as the two gentlemen with ads on Craigslist…  I’ll leave you with a simple question, would the wanted ad exist on Craigslist at all if the for sale ad wasn’t already posted on there?  I have seen this situation many, many times before on things like cars, bicycles, houses, etc, etc.  My thought is that the person who suddenly covets this item didn’t know they wanted or needed the item before seeing the “for sale” listing on Craigslist.  Once the seed is planted though and they decide that the original item that sparked their interest does not meet their needs, then they set out on a quest to obtain this item.

What does the guy who placed the wanted ad expect though?!?  Is someone susposed to come out of the woodwork with a NICER copy for LESS money and deliver it to him?

Freeze Spray vs Donkey Kong

I’ve been spending a lot of my free time lately helping the guys over at The Airlock bring some of their newly acquired arcade games back up to good working order. The majority of the time, monitors are the problem area with these games.

One of the latest ones I fixed was Donkey Kong. It’s an original dedicated Nintendo cabinet from the early 80′s. One of the better looking design schemes out there. In the cabinet is the original Sanyo EZ 20 monitor mounted up on it’s side which is important to note for later…

This monitor had a weird problem. It lost all ability to hold the picture horizontally which appeared as vertical static since the monitor is mounted sideways. The weird thing though was that when you first turned it on, it was fine but then if you rebooted it, this condition existed. Sometimes it went into this condition after many hours of play though as well.p

With monitors, my usual starting point is caps. The electrolytic capacitors in this monitor appeared to be 30+ year old originals. CRT monitors are notoriously hard on caps. These games were only designed to last 2-3 years at the most since in the golden era of arcade, it was unfathomable that anyone would care about a game past that point.

Back to Donkey Kong though. Of course I started with the caps. I figured I had fixed it when I fired it back up to a perfectly clear picture. I turned it off to finish reassembling the monitor and when we turned it on to retest, we found our familiar squiggles.

Kelly, one of the guys at The Airlock, thought this may be a logic board problem in the video circuitry since it was a problem we were unfamiliar with in our experience of fixing monitors. After 20 feet of solder later and many questionable joints fixed on the logic board the problem still remained however.

Enter the freeze spray

Since the problem appeared only after the game warmed up, I figured that we may have a chance to pinpoint the faulty component with the old freeze trick. I grabbed a can of r134a that is on hand there and the little red straw and started blasting while someone watched the screen for me. It didn’t take long since the screen went back to a perfect picture practically on my first spray.

I power cycled the system and luckily the problem immediately reoccurred. We repeated this process, each time being more precise with the can of spray until we finally pinpointed the problem component, a 1/4w 1k resistor. Swapping that out fixed the problem and it’s been rock-solid ever since.

It was interesting to me that a resistor became heat sensitive. I was originally expecting it to be a solder joint, a cap(but they were all replaced) or a heat-sensitive IC perhaps.

Simplified Python Multithreading

I’ve been bashing my head against this topic for months now on some level.  I’ve looked around the web at people’s horrible explanations of how to use the threading module in Python and now that I figured it out for myself, let me unleash my horrible explanation on the world.  :-)

In order to properly use threading, first off, you need a task that can be passed off to a thread and done in the background in parallel with other tasks.  For example, crawling a website.  A crawler could grab a page, parse all of the links for that page and then pass all of the links off to process threads to speed up the process.

My problem before was that I was thinking about threading all wrong.  I was thinking that you launch the threads via the process you are trying to accomplish so in other words something like:

def thread(url):
    content = crawlPage(url)
    return content

^^^ BAD!!!  That doesn’t work.

The proper way to think about threads is that you are creating empty background while loops.  Those loops continue running and picking things out of your queue to process.  If there is nothing in the queue, they’ll just indefinitely loop until something shows up.  The code I’m going to show you below has been distilled down to what *I* think you need for a good thread implementation.  It has several great features such as monitoring, throttling(upwards only) and a queue.

There is some fluff in this code for purpose of demonstration that could be pulled out when it comes time for implementation but I would suggest you download/retype this code, run it and tweak it a bit to see what happens with it.  I pretty much promise you that you’ll get a better feel for how threads work after messing with this code for a bit.

#!/usr/bin/python

import time 
import Queue 
import threading 
import random

# create the queue that will feed the background threads
q = Queue.Queue() 

# this starts and individual thread that continuously 
# pull jobs out of the queue
def backgroundThread():
# this while loop keeps the thread running continuously
    while True: 
        # get the job out of the queue
        job = q.get() 
        # do the job
        print "Job output: %s" % job
        # pause so the loop doesn't spike your cpu load
        time.sleep(5)
        # report back to the queue that the task is finished
        q.task_done()

# this launches the necessary number of background threads
def launchThreads(num_threads):
    for i in range(num_threads): 
        # create the thread
        t = threading.Thread(target=backgroundThread) 
        # setting daemon mode makes threads cease when
        # main thread is terminated
        t.setDaemon(True)
        # start the thread
        t.start() 
        print "Now launching %s" % t.name
        
# launch 2 background threads
launchThreads(1)

# Main loop
while True:
    #this spins up more workers if queue gets too big
    if q.qsize() > 10:
        launchThreads(1)

    # this will be results of another process or a list/file iteration
    job = random.uniform(1,300)

    # push the job into the queue.
    q.put(job)

    # this slows down the queue filling up for demonstration
    time.sleep(random.uniform(0,1))

    # shows the size of the queue
    print "%s jobs in queue" % q.qsize()

    # this prints a list of the threads currently running
    for thread in threading.enumerate():
        print thread


If downloading the code works better for you, here’s a link to it.  threading-demo.py

IRC on my (nearly) 30 year old PC XT

I recently had the urge to fire up my IBM PC XT.  The challenge usually is to do something interesting on the machine.  Playing games slower than my Libretto 50CT or using Microsoft Word 1.0 is not especially interesting to me but hooking it up to my network and chatting on IRC… that’s more like it.

I have had this thought in the back of my head for a while.  I knew it was possible to put it on a network but finding an 8-bit ethernet card is challenging.  Not only are they super rare but on eBay now they are super expensive.  I’m NOT paying $100 for a network card for a computer I only paid $20 for in the first place.  As a rule, I’ve kept my retro computer hobby cheap so I wasn’t about to make an exception here.

In retro computing, patient generally equals cheap.  This case was no exception.  Someone on one of the IRC channels I hang out on randomly asked me if I wanted another Libretto.  Of course I do!  Any Librettos will find a good home here.  This person graciously sent me not only a nice Libretto 70CT but also a bunch of accessories including a Xircom PE3-10BT pocket ethernet adapter.

This is something I had NO idea existed.  It is an ethernet adapter that hooks up to a parallel port.  It also has a short PS/2 keyboard pass through cable that supplies power since parallel ports don’t have power in their specification.

This left me with two problems on my XT.  First off,the XT has no where to plug in a PS/2 keyboard and second, while I have a parallel port on my AST Six Pack Plus expansion card, the pigtail for it is long gone.  The previous owner probably never installed it in the first place even though MSD(Microsoft Diagnostics) showed that the port was activated.

I poked around online a bit and saw that 8-bit ISA parallel port cards are a whopping $30.  No thanks.  I poked around my garage and found a 16-bit ISA controller card.  This one was just like the 100′s that I installed when I was building clones (as a profession) back in the 386/486 days.  Now I know there is no chance that the IDE bus would work in an 8-bit ISA slot but I thought there was a good chance that the parallel port would work so I jammed the 16-bit ISA controller in the 8-bit card slot and let the extended part of the bus hang over the slot.  I disabled EVERYTHING on the controller except the parallel port.  Lucky enough, I fired up the computer and it showed up in MSD as a bidirectional parallel port.  Yay!!

The next challenge was getting power to it.  I ended up building a very convoluted adapter that went from PS/2 to AT to a hacked midi cable and then to a hard drive Y-cable.  It’s ugly but it works flawlessly.  When I get the proper connectors, I will build something proper.

After that, there was nothing left to do but fire it up and snag the software for it.  First off I needed a packet driver for the Xircom card.  Since Intel bought Xircom many moons ago, they still have the drivers available on their website.  (Xircom PE3 Driver).  So after you unpack the driver, you simply run PE3PD.EXE and it will work if all the hardware is in order.

Second, you need a TCP/IP stack and some applications.  This is solved by the mTCP project.  This project has a DHCP client, Telnet, FTP Client/Server, IRC, Ping, Netcat, an NTP client and a WGET clone of sorts.  One of the most surprising things to me was that this project is still extremely current.  As of this blog post, the last update was October 29th, 2011.  Even if there is never another update though, I’m fairly impressed with what I see.  The IRC client, IRC JR, works flawlessly after you set up the config files which is well documented.

I could use this machine as a terminal for one of my more powerful machines as something mundane like a clock but being able to hook it up and use it as a well-equipped IRC client is fairly pleasing and gives me many more excuses to fire up my XT in the future here.

Powered by WordPress. Theme: Motion by 85ideas.