krüe :: cabbage-flash

cabbage flash


Cabbage Flash is a flash cart system for the ColecoVision game console. It allows carts to be flashed after they are assembled, so that many carts can be constructed at once and then programmed when neccessary. Cabbage Flash was released at @party 2010.


I created Cabbage Flash to distribute ColecoVision demos. I didn't want to have to bring a soldering iron and EPROM programmer to the party place in order to pass out a few cartridges. Cabbage Flash makes writing to a cartridge as easy as a 'dd' command. The cartridge has already been assembled beforehand.


Cabbage Flash consists of two circuit boards. Billie, the cartridge board, contains a flash chip and glue logic which allows programming via the standard ColecoVision cartridge connector. Tedd, the programmer board, contains a usb microcontroller with interface circuitry for the usb, rs232, ColecoVision, and JTAG ports.

The boards themselves are available at BatchPCB:


Plug a cartridge into the programmer cartridge connector and then connect the programmer to a host computer via USB. Cabbage Flash will appear as a 32KiB mass storage device. The cartridge can then be read and written with standard operating system commands such as 'dd'. That's it.


Here's the lastest Cabbage Flash distribution: cabbage_flash.tar.gz.

netlist.fs, billie.fs, tedd.fs:
These files contain forth programs which create the circuit netlists. They require modules in the Forth Foundation Library.
billie.pcb, tedd.pcb:
These files contain the circuit board layouts in pcb format.
at29cx.f, usb.f:
These files contain avrforth code which implements flash writing and the USB mass storage protocol in the programmer microcontroller. They require version 2010.06.13 of avrforth.
flash, eeprom:
These files contain flash and eeprom images of the executable code, ready for uploading to the target at90usb1287. The code should fit '64 and '32 devices as well, but I cannot provide binaries as I do not posess those variants.


Most of the error checking in the mass storage specification is not implemented.

Standard ROM carts are not detected automatically, so don't try to use them with Cabbage Flash.