Chroma Expansion Board and New Firmwareby Sandro Sfregola  <firstname.lastname@example.org>
with David Clarke [21030085++] <email@example.com>
The CEB was the precursor of the CPU Plus (CC+), implementing the initial functionality of the CC+ as an add-on rather than a replacement board. The information on these pages is provided for historical interest; there will be no further updates or firmware revisions. See The Chroma CPU Plus (CC+).
Introduction - Q & A for Chroma owners
Q: What is the CEB?
A: The CEB is a hardware upgrade in the form of a small circuit board that can be mounted on top of the existing computer board inside the Chroma (see pictures below); here are in short the added hardware features:
- 32 KB of program ROM in the form of a single, low power 27C256 chip; it replaces the original program memory (16KB) based on eight (obsolete) 2716 EPROM ICs; this allows for a very simple and fast firmware upgrade when needed
- 8KB of battery backup, general purpose RAM
- A complete high performance MIDI interface (1 in, 1 out) based on a common 16C550 UART chip
Q: What is the main purpose of the CEB?
A: The original firmware fills all the available 16KB ROM, so it is impossible to add new features without more program memory; the CEB doubles the ROM space and at the same time adds more RAM; but probably the more interesting feature is the on-board MIDI.
Q: How MIDI is implemented?
A: The new firmware implement a full Syntech/Chroma Cult compatible MIDI interface with added features like Local on/off and the programmable Midi Controllers Map; on board MIDI means lower latency compared to an external interface connected to the data port. See the MIDI interface section for details.
Q: Where can I find the CEB and the new firmware?
A: I designed the CEB for no-profit purpose; I provide you schematics and all the details but you have to build it (or have it built by somebody); the components needed are cheap and very easy to find; David Clarke [21030085++] has designed a nice PCB (my own CEB is still in the form of a wired prototype as you can see in the pictures)--see inset. Components cost is well under 50 US$. The new firmware is free and can be downloaded from this site in the form of a binary file for EPROM programming. It is work-in-progress so new releases will be available in the future; David and I test every version before publishing.
Q: Is the CEB simple to install?
A: Yes, for a skilled technician but it is not recommended for beginners; ask a friend competent in electronics.
Why and when: how this project started--a little history
I got my Chroma (faulty but in good condition, no MIDI, no flight case, no pedals) in 1991 from a local instruments store at a very little price (!); it was the time when analog synthesizers were at the lowest popularity, as you know.
At that time I found several faults on the Chroma, three dual channel boards, something on the CPU board and the common power supply stability problems; I had schematics but not the service manual. Since I was too busy and I had other analog synths to play with, I postponed any service work on the instrument so I left it sleeping in a dark warehouse until ... December 2001 (yes, ten years later!) when I decided to fix it.
I started searching the web for a service manual and I found this incredible site: it was a good surprise seeing so much interest for this "old" instrument; when I saw the Chroma for the first time in a music magazine (1982, I was 18) it was a dream (at that time the instrument price was more than that of a city car in Italy).
So, with the support of adequate documentation I started the servicing job: I replaced the power supply and fixed the faulty channel boards, but I still had CPU crashes; after a carefully investigation, the problem was identified in the program ROM area (8 EPROMs and the relative address decoder). Instead of simply replacing the original components I chose to build a small board with a single 27C256 EPROM programmed with rev.14 firmware (the first CEB! - see picture): finally I had a stable, working Chroma.
After some months, in April 2002, I decided to add a MIDI interface to the instrument and the obvious choice was, at first, the original Syntech/Chroma Cult; but after some calculations and a look at the disassembled (by David Clarke, see EPROM Code) Rev. 14 code I decided to go for the "funny way": new firmware and on board MIDI!
Some may wonder why.
I was pushed by the same thought that pushed David to disassemble the firmware: the implementation of custom features.
My first concern was about main CPU load. I have estimated that using the proper hardware and writing the additional code in high-optimised assembler, even a sustained, complex MIDI input data stream (lots of channels and messages, clock etc.) should not cause problems of CPU overload; the system will decode MIDI without any degradation of the instrument performance (see technical details); this is possible thanks to the fact that the Chroma uses a dedicated CPU for keyboard scanning.
I must state beforehand that this project started thanks to the incredible job of David.
Let me explain: in order to modify the firmware of any microprocessor-equipped device, the following documentation is needed:
- Firmware original source code (commented!)
If for whatever reason the source code is not available (as in this case) it must be obtained by "reverse engineering": the executable machine code (the EPROM binary data) must be disassembled, understood and commented; this is definitely a hard and long task.
Back in April 2002, I contacted David and explained my intentions to him: I don't know what he thought about me at first time (probably that I'm a lunatic as I really am!) but he found the project interesting and eventually we started a strict and prolific collaboration.
This project is an example of how the Internet can be such a powerful instrument, allowing complex things to be developed by people that never personally met, living in diverse continents: I had my Chroma out of reach for a while so David tested the firmware for me on one of his instruments! David has made a great contribution (and still does) during development and debugging and he has written the user interface code and some others features; so thank you very much!
A comment by David about the project:
"The CEB has really had two main benefits for me.
"First, it provides a good development platform, where there's additional RAM and ROM available (so that I can experiment with code modifications, etc).
"The second has to do with my knob box. With the DMX interface, I had the choice of having MIDI attached OR having the knob box attached. With the latest CEB firmware (and a slight mod) I can connect up my knob box while still having MIDI control (and actually have the knob box send parameter changes to the Chroma - which will then go out MIDI and can be captured)."