Saturday, November 7, 2015

Vectrex CRT Replacement

NOTE: Handling a CRT of any size is a potentially dangerous proposition. Not only are CRTs driven by very high voltages and capable of storing a high voltage charge for long periods of time (even after being turned-off and/or disconnected), but they are also glass tubes containing a powerful vacuum and therefore pose the risk of serious injury associated with implosion. Any attempt to replicate the actions described below is done completely at your own riskTHIS MEANS YOU!

Twenty years or so ago I was fairly deep into arcade collecting, including the "elite" world of collecting vector arcade games. Vector games are a breed apart, using a display technology that is in many ways more closely related to oscilloscopes than to televisions. When I first started arcade collecting, I had never heard of the Vectrex. But it wasn't long before I heard talk from the other vector arcade collectors regarding the Vectrex. Soon I was not only aware of the Vectrex but I was desperate to have one...

In the days before eBay, it was often very difficult (or just extremely lucky) to find any sort of rare item. This was even more true for an item with any age on it. While this was a long time ago, the Vectrex still was more than a dozen years old! Plus, those that I knew who had a Vectrex just weren't interested in parting with it. Finally I came across someone who had two non-working Vectrex machines, which I acquired in hopes of making at least one working machine.

Some of my friends may have seen that back in December of 2013 (after a long hiatus) I succeeded at that goal by swapping the logic boards between the two broken Vectrex machines. Around that time, I also determined that the CRT in the (still) non-working machine had a broken neck. The resulting lack of vacuum in the CRT rendered it completely useless. I had done some research into possible donor CRTs that might be available, but I mostly put the project aside until one day not too long ago I stumbled upon an interesting video on YouTube...


Inspiration!


I had long ago heard that no one was making CRTs any longer, and it had not occurred to me to search for a NOS supplier. In my excitement, I ordered a tube and waited for it to arrive. In less than a week I was in possession of a brand new (or at least NOS) CRT that was a perfect match for my Vectrex. Or was it?

Original CRT w/ Mounting Ears

Replacement CRT -- No Ears!

(Not) All Ears

A closer look at the video might have prevented my dilemma. You see, the original CRT is constructed in such a way that the steel band around the edge (which is supposed to limit the possible effects of an implosion) holds in place four mounting lugs for securing the CRT in place. The new CRT has the anti-implosion band but it lacks the mounting lugs. In retrospect, had I realized that this would be the situation then I might not have ordered the replacement CRT at all. In this case, I am glad my excitement was enough to put me in this predicament. :-)


Strap Up!

Inspriation struck when I thought of the strapping material that plumber's use for hanging pipes and a number of other utilitarian purposes. Although I considered using the traditional metal variety, the modern plastic version seemed like it would be easier to fit to the purpose. Plus, I thought that it might be a bit less likely to present an electric shock hazard to anyone that might be poking around inside the Vectrex (e.g. me)...

The Vectrex in question still has the logic board problems that led me to the original logic board swap. So, in order to test the CRT replacement I connected a working logic board to the newly serviced monitor section of the Vectrex in question and I was able to play a rousing game of Minestorm. Overall, the machine is still in the non-working category, but at least the vector monitor is saved!

So, the point is that if you have a Vectrex and the CRT is busted or just worn-out, there is no need to despair. At least for now there are still workable NOS replacements that can save the day. With that said, do make sure that you handle the CRT and other high voltage electronics properly. Otherwise, the dead Vectrex will be the least of your family's worries!







Saturday, August 1, 2015

Down and Out

Hmmm...well, the RetroChallenge 2015/07 event ended yesterday and I have made essentially no progress since my previous post. I guess it is time to acknowledge defeat!

That is not to say that I didn't enjoy any good "retro" time this month. Not only did I (along with my pal Neil Blanchard) record and release our third episode (i.e. "episode 2") of The CoCo Crew Podcast, but I also made it to KansasFest, where I gave talks on the CoCo and on Fahrfall. Unfortunately, travel takes a lot out of me and I just never got back into the swing with my RetroChallenge project this month.

I still want to explore some CoCo cartridge port expansions in the future. When I do so, I will likely be documenting that here. Chances are that there will be some other stuff here from time to time as well! I might even be back for another RetroChallenge in the future. So if you want to keep up with any of that, then I hope you will subscribe to the feed and stay tuned!

Tuesday, July 7, 2015

Not Quite Dead

I was feeling a bit defeated yesterday, perhaps a bit too much. I may be down, but I'm not totally out! Without a breakout board, my circuits may be a bit more tedious to make and they will require more care in transport. Nevertheless, I can still make a little noise...

Optimistic Tone

I started with a simple circuit, a 555 timer wired as an astable multivibrator. I am feeding the output into the CART line on the CoCo cartridge port, which is intended for use as an interrupt signal. As such, it is tied to the PIA which drives the FIRQ signal on the 6809. This circuit gives me a new timing source to use for programs on the CoCo!

I configured the 555 circuit to generate a continuous square(-ish) wave at approximately 4800 Hz. This would require quite a bit less service than the ~15.7 KHz Hsync signal provided by the CoCo's video chip, and it would still be fast enough to generate a wide range of useful tones and/or sound effects. To illustrate the point, I have a test program using this time source to service the 1-bit audio output on the CoCo in order to produce a lovely 2400 Hz tone.


Extended Play

So, at least I have the basis for some Retrochallenge play. With the current circuit, I might build a more flexible synthesizer or sound effects generator, or I might even expand to playback of sampled sound through the CoCo's DAC. Perhaps a simple game is in order? The possibilities are endless! There are at least a few possibilities, anyway...

So, what is next for my now improvised Retrochallenge entry? I'm unsure...I guess you'll just have to stay tuned!

Monday, July 6, 2015

Breakout Breakdown

Disaster! My cleverly contrived apparatus to break-out the CoCo cartridge port to a breadboard doesn't work!  In fact, it could even damage the CoCo...

Short Circuit

The apparatus I described in the previous post included a breakout board designed for use with the Raspberry Pi 2. This board includes a 40-pin IDC connector and pins in the footprint of a 40-pin DIP. This seemed to be a perfect match for the 40-pin CoCo cartridge port.

Unfortunately, the designer of the breakout board has "helpfully" used his knowledge of the Raspberry Pi 2 GPIO port in order to tie all of the Ground lines together on the breakout board. This might have only been an avoidable nuisance, but it turns-out that the layout of the pins on the board is such that when adapted to the CoCo cartridge port, +5V power is shorted to ground. The traces responsible for the short are not visible, so I don't think the board can easily be modified. Fortunately, at least I don't seem to have damaged any CoCo in the making of this mess!

Retreat

Time was already a bit short for me this month, as I have plans to be at KansasFest. I'm not sure I have time to order any new parts either. I'm not sure where this leaves me.

Maybe I can come-up with a way to save this project? Or perhaps I can hatch another one? I will have to take some time to consider my options.

Stay tuned...

Friday, July 3, 2015

Holiday Weekend

Well, the Retrochallenge 2015/07 event started a couple of days ago. As usual I'm off to a slow start. This weekend started a day early, giving me a little time to get going on my project. So far I've done very little, but I thought it might be useful to review the outline of the project and discuss some possibilities...

Outline

The point of this project is to exploit some features of the CoCo cartridge port for the potential benefit of game cartridges. Therefore it is reasonable to question what such features are available. This includes interrupt signals, address decoding signals, and audio input.

I have discussed the interrupt-based timing sources available on the CoCo in my other blog posts over the years. The Hsync and Vsync signals are a bit inflexible and difficult to use for audio playback in particular. Vsync is too slow to drive the DAC, and Hsync is much faster than needed -- especially since it connects through the PIA that feeds the IRQ signal on the 6809. The CART line on the CoCo cartridge port is actually tied to the PIA that feeds the FIRQ (i.e. "fast IRQ") signal on the 6809, potentially making it a great candidate for an audio playback timer signal.

The cartridge port provides two separate address decoding signals. One is the standard ROM chip select used to access program code on cartridges. The other is designed for accessing the floppy drive controller hardware. But since a game cartridge typically is used without other cartridges, that signal can be used for whatever purpose a cartridge likes. In particular, it can be used to provide access to other hardware bits that a game might need.

The CoCo cartridge also has a line that can feed an audio signal directly back into the CoCo. This could be used to enable audio generation hardware directly in the cartridge itself.

Apparatus

(Note: the apparatus does not work -- do not attempt to replicate this from the picture!)

Breakout Circuit for CoCo Cartridge Port

The purpose of this experiment is really just "proof of concept", so I won't be bothering for now with building PCBs or any other permanent design artifacts. Instead, I only want to have electrical access to the CoCo cartridge port as a means of interfacing to hand-built circuits on a breadboard.

Some time back another CoCo person produced some simple PCBs that breakout the cartridge port to a 40-pin IDC connector. More recently, the popularity of the Raspberry Pi platform has led to the availability of some small PCBs that adapt between a 40-pin IDC connector and a 40-pin DIP connector compatible with a breadboard. I combined these two items to adapt from the CoCo cartridge port to a solderless breadboard.

I often like to use a "monitor" program plugged into the the cartridge port when doing CoCo development. In order to facilitate that, I have added a "Y cable" to the mix. This should allow me both to use the "monitor" program and to have access to the cartridge port signals for circuit development.

Ideas

If I haven't lost you yet, then I probably don't need to tempt you further! Nevertheless, I will provide a couple of teasers to whet your appetite...

In order to facilitate audio playback on the CoCo, a reasonably paced signal is needed. Use of the FIRQ line is desirable, since that can be the most efficient mechanism for handling high frequency events. The more flexible interrupt and timing mechanisms of the CoCo3 illustrate that a moderately paced FIRQ signal can provide pleasing audio playback. So, a simple idea is to use a simple timer circuit (e.g. a 555 wired as an astable multivibrator) to provide such an FIRQ signal.

A normal CoCo cartridge can provide almost 16Kb of program storage. That may seem like plenty(!), but larger programs can easily consume that with graphics assets, audio samples, map data, and even just program code. One approach to extending available storage is bank switching. This can be done by using the I/O address range in the cartridge to control the bank switching hardware in order to multiplex the ROM address range onto a larger memory.

Adding audio hardware to the CoCo seems like a simple way to extend its gaming capabilities. This may have been expensive in the past, but for today's hobbyist I think this option seems quite reasonable and could make for a very collectible game cartridge. Anyway, I hope to conduct the exercise of building such a circuit as the month progresses.

If I get this far, I may have one more idea that would have seems a bit ahead of it's time when the CoCo was in stores. Still, it might be a cool option in today's market. For now I'll keep this last one under my hat...stay tuned!

Thursday, June 18, 2015

RC2015/07 Competition Entry

June is halfway gone, and another RetroChallenge event is just around the corner. July is going to be busy for me, including my first ever attendance at KansasFest. That combined with some external things had me wondering if I had time to participate in this round of RetroChallenge, but I do enjoy the events and the cadence they provide for my retrocomputing hobby. So, what to do?

The Struggle Is Real

I often have trouble coming-up with projects for these things. It is important to "size" things properly to fill a month's time without running long enough to elude completion. It should also be interesting for readers (or viewers) at a variety of technical skill levels. Of course, it also needs to be interesting for me as well! Finding the "perfect" project is probably impossible, but it is hard not to try... :-)

Spit It Out!

OK, OK...while I have at least some interest in a number of retrocomputer and retrogaming systems, there is no denying that I'm in love with the CoCo. Recently I even produced the first cartridge-based game release for the CoCo in decades. While Fahrfall cartridges only hold an EPROM, there are other capabilties of the CoCo expansion port that could be exploited for more advanced gaming possibilities.

So, for my RetroChallenge 2015/07 project I will be exploring some hardware possibilities for CoCo cartridges that might be interesting for games in particular. This will include both some existing (i.e. documented) circuits and hopefully some new ones as well.

Want to learn more?  Then you will just have to stay tuned... :-)

Saturday, June 6, 2015

Digital Joystick for a CoCo?

From time to time, we see requests on the CoCo mailing list for ways to use digital joysticks with the CoCo. You see, the CoCo is designed to use analog joysticks for pointing, like the Apple II or the IBM PC. Joysticks like that are good for applications requiring precise positioning, like Flight Simulator or the old game Doubleback. But for action-oriented arcade games like Pac Man, Frogger, or Donkey Kong, the brute force choice of a simple direction is usually preferred over precise positioning. Worse, like the Atari 5200, the original CoCo joysticks weren't even self-centering...

Adapt

While the later "deluxe" CoCo joysticks addressed the self-centering issue, analog joysticks still feel a bit sloppy for most arcade games. One option is to build an adapter that allows the use of common 9-pin digital joysticks like those used on the Atari 2600, the Commodore 64, and other machines from that era. Such adapters are built around a single integrated circuit, are relatively simple to build, and allow the use of unmodified digital joysticks with the CoCo. Tim Lindner has a YouTube video of him building just such an adapter.


Improvise

The other option involves either hacking an existing joystick to work with the CoCo or building your own to do so. These options are essentially the same, each requiring a circuit to convert switch closures into analog voltages that are meaningful to the CoCo. A hand-drawn schematic of such a circuit is shown above.

Unlike the Apple II and IBM PC, the CoCo does not use an RC timing circuit for measuring joystick position. Instead, the potentiometers in the CoCo joysticks are wired as voltage dividers. This allows for less precision in the exact choice of components, since there is no need to match-up against anything internal to the CoCo. The biggest concern would be choosing resistor values so small that the joystick burns-out the CoCo power supply. Caveat emptor!  But if you stick to the values in the schematic above, I think you will be fine...hopefully... ;-)

Overcome

The original idea for the circuit came from a post about the Vectrex, which uses a similar design for its joysticks. On each axis, the resistors are wired in an "H" configuration. The resistors on one side (the side always connected to power and ground) are significantly larger in value than the resistors on the other side of the "H". The switches are connected across the top and bottom of the "H". When a switch is closed, the equivalent resistance of the large and small resistors connected in parallel is much smaller than the value of the single large resistor on the other end of the "H". This causes the voltage at the center of the "H" to swing accordingly, fooling the CoCo into thinking that the (non-existant) potentiometer has been moved in the corresponding direction.

It would be tempting to eliminate the smaller resistors in the "H" configuration, causing the switch closure to pull the axis voltage directly to the rail voltage. The problem is that if a mechanical failure allows a pair of opposing switches to be closed at the same time, then you will have a short circuit that could damage the CoCo. Keeping resistors in the path should limit the possibilities for damage. I strongly urge any circuit builders to keep both sets of resistors.


I hope that others will find the information useful. I know of at least one other person that has used this schematic to build a CoCo joystick out of arcade components, much like I had previously done for my Fahrfall joystick. If you have any questions about the schematic, then feel free to leave them for me below. Also, you can download the PDF of the circuit if the picture of the schematic above is too small to be useful.

Enjoy!