ColecoVision hardware and software development

A collection of notes about creating new hardware and software for the ColecoVision.

Oh ColecoVision.

Use the menu on the left to jump to a topic of interest.


ColecoVision cartridge interface and prototyping board

What if we could interface a ColecoVision to something more than a static ROM cartridge?

Well, let's find out with the ColecoVision experimenters board.

CVE board v1

Board can be powered directly from the ColecoVision cartridge port or via external power through the USB connector.

All signals coming/going from/to the Colecovision cartridge port are translated between 5[V] and 3.3[V] signal level as needed.

Cartridge port Chip Enable (!CE) lines are available seperate and wired together through an AND gate.

Data direction and enable for the databus under software control.

Now what development board could we connect to this? It needs to have plenty of I/O. 8 for the databus. 15 for the address bus. 4 (or 1) for the chip select lines from the ColecoVision. 1 for the data direction line. 1 for the data enable line.

On top of that, we would like to have the I/O for the databus and the address bus to be contiguous so not a lot of bit juggling needs to happen to decode the address bus or putting bytes on the data bus.

Equally important: the development board used to interface to the ColecoVision should also run at a reasonable processor speed with plenty of RAM and flash to do something useful.

How about this new RP2040 microcontroller and its readily available Raspberry Pi Pico development board?

Hello Pico

That gives us: Dual-core Arm Cortex M0+ running at 133Mhz, 264KB of SRAM and 2MB of on-board Flash memory. And most important for our purpose: contiguous GPIO pins.

Let's hook it up:

Pico signal ColecoVision signal
GPIO 0..14 Address BUS 0..14
GPIO 15..22 Data BUS 0..7
GPIO 26 CS_AND
GPIO 27 DATA ENABLE
GPIO 28 DATA DIRECTION
GND GND
VBUS 5V

Rats nest

First thing to do: get a basic ROM emulator application for the Pico up and running.