Jump to content
IGNORED

New ColecoVision PCB design project


Pixelboy

Recommended Posts

Hello fellow homebrewers (and retrogamers who buy homebrews). :)

 

I will divide the first post of this thread into two posts, one to introduce this project, and the other to go into more detail and ask some preliminary questions.

 

PROJECT INTRODUCTION

 

A couple of weeks ago, I purchased a lot of 1800 ColecoVision carts on eBay. There's another thread on the subject here. I decided to buy this lot after I opened up my own Motocross Racer cartridge and saw how much unused space there is inside. I attached some pictures below to demonstrate. (Sorry for the poor picture quality, my digital camera is crap.)

 

With no cart label to worry about, all that needs to be done is to unscrew the casings, throw away the (very cheap) PCBs inside, and voilà: Brand new casings for ColecoVision homebrewing purposes! Each casing has a compartment for overlays on the back side, which is a nice bonus, IMHO.

 

I had the carts shipped to Albert, and now that Albert has received them, the next step is to design a new PCB for them, since the Pixels Past PCBs sold via the AtariAge Store are not designed to fit inside those Actisivion-style casings.

 

PROJECT OBJECTIVES

 

The main objective of this project is to design a custom PCB for those casings. In fact, all the unrestricted space inside this type of casing opens the door to several possibilities, which I would like to explore via this forum thread. I have identified four different configurations:

 

- Standard 32K ROM

- Standard 32K ROM with auxiliary savegame chip

- Bankswitched ROM (64K, 128K or more)

- Bankswitched ROM with auxiliary savegame chip

 

By "savegame chip", I mean a component that can be used to save data persistently, after the power has been turned off on the ColecoVision console. We're talking savegame data for RPGs, high score tables, level editor data, or whatever else a homebrewer would need a savegame chip for.

 

What electronic components will be used to implement one or more of the above configurations will be determined during the course of this project. Evidently, we're looking to keep costs low, but also to come up with a solution that is not too hard to mass-produce. Philip Klaus Krause already has a working prototype of a similar design, but he admits that the components he uses are so small that they're a pain to solder onto his PCB. For this project, we would like to avoid that problem as much as possible, by using components that are relatively easy to solder onto our proposed custom PCB. It should also be possible to have socketed versions of the PCBs, for testing and development purposes.

 

Another secondary objective of this project is to establish (and ultimately document) the software side of things, namely how to take advantage of bankswitching, and also how to access the savegame chip, using either assembly language or C language. With this documentation freely available, ColecoVision homebrewers will have everything they need to let their creativity run wild. And with 1800 casings available, supply will not be a problem anytime soon.

 

Albert and I will be working together to make this PCB project happen, with me driving the project for the most part. I know next to nothing about PCB design and electronics in general, so we welcome the input of everyone in this thread, but more especially electronic experts who can contribute design ideas and supply us with technical advice and information. The end goal is to have the best available PCB for these Activision-style casings, in terms of design and cost.

post-7743-1247424021_thumb.jpg

post-7743-1247424029_thumb.jpg

post-7743-1247424052_thumb.jpg

post-7743-1247424069_thumb.jpg

Link to comment
Share on other sites

PROPOSED PCB SHAPES

 

Alright, now let's get into the thick of things. For starters, I have attached a picture below to demonstrate the several different shapes that this custom PCB could take.

 

Figure 1 shows the inside of the back side of the casing, with no PCB installed. Notice the central horizontal extrusion in the middle. This extrusion will have an impact on the design of the custom PCB, as you will soon see.

 

Figure 2 shows the PCB that is currently found inside the casings (which contains the software for Motocross Racer and Tournament Tennis). This is a one-chip solution that uses a very cheap PCB, with sloppy soldering. Reusing these PCBs is really not an option. You can see the purpose of the central horizontal extrusion, which is to hold the PCB in place vertically when the cartridge is inserted into the ColecoVision console. Also notice the three horizontal red lines which I added. These red lines indicate the position of extrusions in the FRONT side of the casing, which also serve to hold the PCB in place, so no components can be placed onto the PCB in those locations.

 

Figure 3 shows one possible shape of our proposed custom PCB. It's probably not big enough to contain extra stuff like a savegame chip, and doesn't take advantage of the free space inside the casing, but it may be just big enough to house a standard 32K EPROM, and if feasible, it would be the cheapest solution for those who just want to do a standard 32K game with this type of casing. It's worth looking into, I beleive. Take note of the two small holes that would have to be drilled into this PCB.

 

Figure 4 shows a PCB which takes up a little more room inside the casing. A rectangular hole is cut in the middle of the PCB to accomodate the central extrusion. Since there is also an extrusion in the other half of the casing in about the same location, the electronic paths on the PCB will need to go around this rectangular hole. The little yellow vertical lines along the sides of the PCB demonstrate this.

 

Figure 5 shows another PCB design that takes up as much space inside the casing at it possibly can. With this approach, we can pack a lot of components onto the PCB, and going around the rectangular hole in the middle is less of a problem, but we also need to cut 4 additional round holes into the PCB to accomodate the other extrusions. A "bankswitched ROM + savegame chip" configuration will probably require this kind of larger PCB.

 

 

IMMEDIATE QUESTIONS

 

1 : Before anything else, very precise measurements of the inside of the casing will have to be taken, as the design of the PCB will be based on those measurements. Does anyone here have access to a micrometer to take these measurements?

 

2 : I have been told by several people that cutting holes into a PCB makes them more expensive to produce. Albert and I agree that removing the central extrusion from the casing would be a real pain, and we would like to avoid this if at all possible. So can anyone here give us an idea of how more expensive it is to have PCBs produced with holes in them, as described in figures 4 and 5?

 

3 : Albert told me that Pixels Past PCBs use a PLD, and it would be cheaper to use a TTL instead. I can't tell a PLD from a TTL, so comments on this issue would be welcomed, if only to give me a better idea of how better a TTL solution would be.

 

4 : What options are currently available for the savegame chip? We'll probably be going with an EEPROM, but I'm willing to entertain other suggestions, if there are any. Having different options in terms of available data space would be nice to have, because some games may only require half a kilobyte (to store a simple high-score table, for example) while other games may benefit from having a big 8K save chip (like level editors that could save multiple player-made levels).

 

5 : Does using a savegame chip automatically imply that a CPLD will be required, like in PkK's L5 Megacart? Does bankswitching over 32K also imply the use of a CPLD? Could both bankswitching and savegame chip management be done by a single CPDL? (Keep in mind that we're looking for components that can be easely soldered onto the PCB.)

 

More questions and issues to discuss will likely arise as this thread expands. In the end, we will be looking for someone to perform the actual manufacturing of the designed PCB(s), and we'll be looking for sources for the components that will be soldered onto these PCBs.

 

I'll be paying for all of this project mostly out of my own pocket, and I'm only doing this to offer something new to the ColecoVision homebrew community, so the word "profit" is not part of the equation here. The casings and PCBs will be offered to homebrewers at the lowest cost possible.

post-7743-1247424370_thumb.png

Link to comment
Share on other sites

Why don't you go down the same route as batari's 2600 Harmony/Melody carts? By that I mean have a microcontroller that feeds the Coleco's CPU the instructions it needs. You wouldn't need much space on the cart PCB for a solution like that (assuming its feasible - I know little about the Coleco hardware). However, its not going to be solderable at home by most people (which is a strike against it).

Link to comment
Share on other sites

I am an out of work machinist. I would suggest using a CMM to get casing dimensions. You should probably also check several of the housings to see what the dimensional deviation is. I doubt there is much, but better safe than sorry. If I where working now I would ask one of the quality control people to do this for me. You can then take these and make a blueprint. I am sure there are some autocad uses on here, that will take these dimensions and put them on a print for you.

 

Once you have a blueprint of the case, have checked for size deviation and figure out the components dimensions and location you can make a PCB blueprint with dimensional tolerances to take to the manufacturer.

 

Having a blueprint will also probably give you more credibility when you approach a manufacturer to make the PCBs for you. Your going to have a lot of money in making these I am sure. May as well do it right and be a little OCD now, than ending up having to file down housings or PCBs to get them to fit.

 

I would go with the largest one that will fit in the case, with all the features you can offer.

 

Might even be able to get some venture capital from people, once you have everything figured out.

 

I hope you find this helpful Luc.

 

I admire you for doing this to help the homebrew community.

Link to comment
Share on other sites

I am an out of work machinist. I would suggest using a CMM to get casing dimensions. You should probably also check several of the housings to see what the dimensional deviation is. I doubt there is much, but better safe than sorry. If I where working now I would ask one of the quality control people to do this for me. You can then take these and make a blueprint. I am sure there are some autocad uses on here, that will take these dimensions and put them on a print for you.

 

Once you have a blueprint of the case, have checked for size deviation and figure out the components dimensions and location you can make a PCB blueprint with dimensional tolerances to take to the manufacturer.

 

Having a blueprint will also probably give you more credibility when you approach a manufacturer to make the PCBs for you. Your going to have a lot of money in making these I am sure. May as well do it right and be a little OCD now, than ending up having to file down housings or PCBs to get them to fit.

 

I would go with the largest one that will fit in the case, with all the features you can offer.

 

Might even be able to get some venture capital from people, once you have everything figured out.

 

I hope you find this helpful Luc.

 

I admire you for doing this to help the homebrew community.

Now this is the kind of input I'm looking for. :) Thanks yurkie, I'll keep your advice in mind!

Link to comment
Share on other sites

Why don't you go down the same route as batari's 2600 Harmony/Melody carts? By that I mean have a microcontroller that feeds the Coleco's CPU the instructions it needs. You wouldn't need much space on the cart PCB for a solution like that (assuming its feasible - I know little about the Coleco hardware). However, its not going to be solderable at home by most people (which is a strike against it).

I'm willing to look into it, but I'd really need to know more about the advantages of using a microcontroller over a more traditionnal solution. :)

Link to comment
Share on other sites

I truly like the idea! ... looks promising! :)

 

But, what will you do when you'll be out of those casings?

will you make a mold for those ? ;)

I will be surprised if we run out of those 1800 casings anytime soon. That represents 18 homebrew CV games produced in 100 copies each! Considering that there is currently no homebrewer out there with any plans to use these casings (since this project is brand new) I'd say there won't be much demand left by the time we run out of those casings.

Link to comment
Share on other sites

Why don't you go down the same route as batari's 2600 Harmony/Melody carts? By that I mean have a microcontroller that feeds the Coleco's CPU the instructions it needs. You wouldn't need much space on the cart PCB for a solution like that (assuming its feasible - I know little about the Coleco hardware). However, its not going to be solderable at home by most people (which is a strike against it).

I'm willing to look into it, but I'd really need to know more about the advantages of using a microcontroller over a more traditionnal solution. :)

Maybe you can tell me a few things about the Colecovision and I might be able to give some advice. I see it has a Z80 CPU (which I know almost nothing about.) It's running at around 3.5MHz, so the ARM is unlikely to be able to do anything useful between clocks. Does the Z80 ever need something in one cycle? What is the maximum EPROM speed you can use on a cart board?

Link to comment
Share on other sites

I'm willing to look into it, but I'd really need to know more about the advantages of using a microcontroller over a more traditionnal solution. :)

The obvious one would be to save PCB space, thus potentially avoiding slots in PCBs.

 

Other advantages would be :-

 

(The micro in the following examples is the one in the cart)

 

Make use of the micro's internal RAM adding a further 8 to 16K or more *.

Make use of the micro's extra flash for larger games (up to 256K*).

Use sectors of the micro's flash for read/write/erase game data storage.

Access to the micro's real time clock.

Make use of the micro's PWMs for extra sound channels (if cart interface supports it).

Make use of the micro's timers for more precision graphics effects (if feasible).

Make use of the micro's maths routines for fast multiply, divide, polygon rotation etc.

Use the micro as a game co-processor.

Use the micro to interface to SD/MMC cards and the like.

 

Lots of possibilities. I'd have to know much more about the Coleco's cart interface access times before knowing if it was feasible tho.

 

*The size of the RAM and flash made available to the Coleco would depend on the micro chosen.

Link to comment
Share on other sites

Maybe you can tell me a few things about the Colecovision and I might be able to give some advice. I see it has a Z80 CPU (which I know almost nothing about.) It's running at around 3.5MHz, so the ARM is unlikely to be able to do anything useful between clocks. Does the Z80 ever need something in one cycle? What is the maximum EPROM speed you can use on a cart board?

A brief look at pages 31-35 (of 308) in the Z80 datasheet here shows that the CPU takes more than 1 clock cycle to perform memory access cycles. The access times can also be stretched to accomodate slower interfaces. No idea if all the signals required are on the Coleco cart interface tho.

Link to comment
Share on other sites

Hi Pixelboy,

 

For basic 32K cartridges, I'd go with the PCB in figure 2, rather than figure 3 (of post #2). The 74LS21 chip (or whatever is chosen) can go on the back (soldered first, with the leads bent inward before soldering). That's what my board does. With the Activision layout, it looks like the PCB can be even smaller than the Coleco layout. The PCB and logic chip might end up costing less than $1.25 each, in quantities of several hundred.

 

Thanks,

5-11under

Link to comment
Share on other sites

Maybe you can tell me a few things about the Colecovision and I might be able to give some advice. I see it has a Z80 CPU (which I know almost nothing about.) It's running at around 3.5MHz, so the ARM is unlikely to be able to do anything useful between clocks. Does the Z80 ever need something in one cycle? What is the maximum EPROM speed you can use on a cart board?

A brief look at pages 31-35 (of 308) in the Z80 datasheet here shows that the CPU takes more than 1 clock cycle to perform memory access cycles. The access times can also be stretched to accomodate slower interfaces. No idea if all the signals required are on the Coleco cart interface tho.

Thanks. It looks like 3 cycles, which makes its access time about the same as the 2600, and that makes it feasible.

 

Pixelboy: If you want, I'm happy to throw some parts on a board and see what happens. I would need a new Colecovision at some point though as I fried it by accidentally using a TI99 PSU some time ago :(

Edited by batari
Link to comment
Share on other sites

No idea if all the signals required are on the Coleco cart interface tho.

The Coleco cart interface has 30 connections which include fifteen address lines (A0-A14), eight data lines (D0-D7) and four predefined chip selects (CS1-CS4), 2 GNDs and VCC. There are no memory cycle stretching signals or data direction control lines like the Z80 equivalent of R/W#. From that point of view its very much like the 2600's cart interface.

Link to comment
Share on other sites

I just read the initial posts in detail. You do not need a micrometer - an ordinary caliper is accurate enough. We are not talking about machine parts here, and the tolerances are quite large.

 

I have a few calipers but they really aren't expensive, so instead of sending stuff to someone you could just pick a caliper up yourself.

Link to comment
Share on other sites

I just read the initial posts in detail. You do not need a micrometer - an ordinary caliper is accurate enough. We are not talking about machine parts here, and the tolerances are quite large.

 

I have a few calipers but they really aren't expensive, so instead of sending stuff to someone you could just pick a caliper up yourself.

 

I have to disagree, if the pcb is going to have holes to accommodate the posts that the screws go in and that raised rectangular portion. Precision will be very important to keep the board from slopping around inside the housing, or not fitting at all.

 

You have to think about the fact that pixelboy spent over $1,200 just to get these cases, and probably will have to spend several more thousand to get boards manufactured for the 1800 cases.

 

Why not just suggest he use a tape measure?

Link to comment
Share on other sites

You can get a decent caliper from Canadian Tire (or your local big-box hardware store) for about $15 if they're on sale ($30 if they're not on sale). The digital readout is easy to read. Just measure the existing PCB, including the location of the half holes, and the hole size from the case. Make adjustments if you think the existing board is too tight or too loose. Measure >2 times, and all should be fine.

 

Pixelboy or Albert, give me a PM if you want me to do any of the following: layout the PCB, order some PCBs, assemble the logic chip. I've done this for the regular Coleco casing, using it for my Squares! game, as well as providing >500 to other customers. Price will be low, especially if you want to order decent quantities.

 

Thanks,

5-11under

Link to comment
Share on other sites

You can get a decent caliper from Canadian Tire (or your local big-box hardware store) for about $15 if they're on sale ($30 if they're not on sale). The digital readout is easy to read. Just measure the existing PCB, including the location of the half holes, and the hole size from the case. Make adjustments if you think the existing board is too tight or too loose. Measure >2 times, and all should be fine.

 

Pixelboy or Albert, give me a PM if you want me to do any of the following: layout the PCB, order some PCBs, assemble the logic chip. I've done this for the regular Coleco casing, using it for my Squares! game, as well as providing >500 to other customers. Price will be low, especially if you want to order decent quantities.

I really appreciate the offers so far, and Bryan Edewaard has also expressed an interest in this project too. I'll keep all these offers in mind, but right now what I really need is some answers to the rest of the preliminary questions I asked in my second post. In particular, how much extra money is involved in cutting holes (round and rectangular) into a PCB, and if there's a better solution than an EEPROM for the savegame chip. Question #5 is also especially important, because it impacts on the entire design: If it's possible to fit a 32K ROM chip with auxiliary savegame chip on the small PCB pictured in Figure 3, then it's definately a solution we will be looking at. Otherwise, we should just go with the largest PCB as a one-size-fits-all solution.

 

I just read the initial posts in detail. You do not need a micrometer - an ordinary caliper is accurate enough. We are not talking about machine parts here, and the tolerances are quite large.

 

I have a few calipers but they really aren't expensive, so instead of sending stuff to someone you could just pick a caliper up yourself.

I have to disagree, if the pcb is going to have holes to accommodate the posts that the screws go in and that raised rectangular portion. Precision will be very important to keep the board from slopping around inside the housing, or not fitting at all.

 

You have to think about the fact that pixelboy spent over $1,200 just to get these cases, and probably will have to spend several more thousand to get boards manufactured for the 1800 cases.

 

Why not just suggest he use a tape measure?

I have to agree with yurkie on this one. If we cut a rectangular hole in the middle of the PCB to accomodate the central extrusion, then it would be wise to have the lower edge of the hole touch the underside of the extrusion, for proper stability. This requires extremely precise measurements to get it done right.

 

Here's what I propose:

 

Step 1) Whoever ends up taking those precise measurements will supply us with some kind of schematic (via AutoCAD or whatever else is the most appropriate).

 

Step 2) We will get someone to create the desired PCB, but only in terms of outer shape and inner holes.

 

Step 3) We will test this "blank" PCB on several different casing samples (something like 10 or 20) just to make sure the PCB fits snugly as we need it to. If the blank PCB passes the test, then we will know that the AutoCAD drawing is valid, and that the complete schematics of the real PCB can be based on it. If the blank PCB is not quite right, we'll alter the AutoCAD drawing and try again until we get it right.

 

Step 4) With the PCB shape validated, we'll mandate someone to design the final PCB.

 

Does that sound okay to you guys?

Link to comment
Share on other sites

I just read the initial posts in detail. You do not need a micrometer - an ordinary caliper is accurate enough. We are not talking about machine parts here, and the tolerances are quite large.

 

I have a few calipers but they really aren't expensive, so instead of sending stuff to someone you could just pick a caliper up yourself.

 

I have to disagree, if the pcb is going to have holes to accommodate the posts that the screws go in and that raised rectangular portion. Precision will be very important to keep the board from slopping around inside the housing, or not fitting at all.

 

You have to think about the fact that pixelboy spent over $1,200 just to get these cases, and probably will have to spend several more thousand to get boards manufactured for the 1800 cases.

 

Why not just suggest he use a tape measure?

No need to be an ass.

 

My calipers are nothing special, and are accurate to 0.001". Why would you need more than that? Maybe as a machinist you are used to dealing with parts that actually require greater precision than that, but I can guarantee these cases don't have those kinds of tolerances.

 

EDIT: Typical PCBs today have tolerances around 0.004". A precision PCB might get to 0.002". In the 80's, they were certainly more.

Edited by batari
Link to comment
Share on other sites

Does Opcode use PkK's Megacart? What are the specs on both? Is all the memory non-volatile?

Opcode's MegaCart is very different from PkK's L5. I'm not fully informed of all the specs, but Opcode MegaCart has the first 16K fixed and the remaining 16K bankswitchable. PkK's L5 has 24K fixed, and 4K bankswitchable, if I remember correctly. PkK's L5 has a savegame chip included in its design, while Opcode's MegaCart does not.

 

Hope this helps... :)

Link to comment
Share on other sites

Next questions...

 

When using a CPLD or FPGA to control a serial EEPROM, what is the typical method to access the memory, from the homebrewer's perspective? Is there a lot of overhead required, or is it a simple task to access? The reason I'm asking is because...

 

A fairly simple way (for someone like me, who doesn't fully understand FPGAs and CPLDs) to add memory would be to add a parallel EEPROM, and "chip-select" it into the upper portion of memory. Access to the memory should be easy, but it would reduce the available ROM space by the amount of space allocated to the EEPROM. I might have to try this... .

 

Thanks,

5-11under

Link to comment
Share on other sites

GD&T should be used for locating holes and slot on the board. Here is a wiki explaining GD&T a little bit

 

http://en.wikipedia.org/wiki/Geometric_dim...and_tolerancing

 

I think if you want to go with a large board, you should probably machine the features prior to having them printed. 3 or 4 could be stacked on top of each other and machined simultaneously. Would probably cost about $85 an hour to have them done in a machine shop. If you got 3 at a time with a cycle time under 1 minute that would be 180 an hour. Of course you would have set-up and programming on top of that. This however would be a breeze to program and set-up on a CNC vertical mill. You can probably find a CNC Machinist that can do it off the clock for free. I know several shops I have worked for allow personal projects off the clock.

 

I was looking around for a blank PCB supplier for you. I didn't have much luck. I did however find this very interesting Do It Yourself PCB website.

 

http://nospecifictopic.blogspot.com/2005/0...-make-pcbs.html

 

Since you will probably only need 50 or 100 at a time, if you get the blanks machined and ecth them yourself as needed this should save you a lot of money.

 

Luc send me a message if you want a copy of the Eagle software.

 

Hope this is helpful.

Link to comment
Share on other sites

GD&T should be used for locating holes and slot on the board. Here is a wiki explaining GD&T a little bit

 

http://en.wikipedia.org/wiki/Geometric_dim...and_tolerancing

 

I think if you want to go with a large board, you should probably machine the features prior to having them printed. 3 or 4 could be stacked on top of each other and machined simultaneously. Would probably cost about $85 an hour to have them done in a machine shop. If you got 3 at a time with a cycle time under 1 minute that would be 180 an hour. Of course you would have set-up and programming on top of that. This however would be a breeze to program and set-up on a CNC vertical mill. You can probably find a CNC Machinist that can do it off the clock for free. I know several shops I have worked for allow personal projects off the clock.

 

I was looking around for a blank PCB supplier for you. I didn't have much luck. I did however find this very interesting Do It Yourself PCB website.

 

http://nospecifictopic.blogspot.com/2005/0...-make-pcbs.html

 

Since you will probably only need 50 or 100 at a time, if you get the blanks machined and ecth them yourself as needed this should save you a lot of money.

 

Luc send me a message if you want a copy of the Eagle software.

 

Hope this is helpful.

I wouldn't bother personally, as prototype PCBs are not too expensive if you don't mind waiting a few weeks to get them. batchpcb.com offers 2-layer PCBs at $2.50/sq. in. so you could do your best guess on dimensions with a caliper, order a board, if it doesn't fit, make adjustments and order another, but you could test the non-fitting board electrically so it wouldn't be a total waste.

 

If you are in a hurry, you could have a machinist work on blank PCBs to figure out out the fitment before settling on the final design, of course considering the actual tolerances that PCB manufacturers offer.

 

It is also worth noting that an interior rectangular cut is often considered a chargeable extra. Drills, however, are not.

 

However, I disagree that etching by hand is a good idea except for single-layer boards. These are two-layer boards and it's hard to line up the layers by hand. Drilling should be done after etching, and that's two runs at the machine shop, not one. Even if you can get the layers lined up adequately for etching, you don't have through plating of vias, and would need to solder a wire in every via. Also, on through-holes, you need to solder both sides of the board. Lastly, you are unlikely to save any money. It's better to have the final PCBs done professionally.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...