We love classic synthesizers here at Hackaday. So does [gligli], but he didn’t like the processor limitations of the Prophet 600. That’s why he’s given it a new brain in the form of a Teensy++. The Sequential Circuits Prophet 600 was a big deal when it was released back in 1982/1983. The 600 was the first commercially available synthesizer to include a MIDI interface. The original design of the 600 could be called a hybrid. A Zilog Z80 microprocessor controlled modular analog voice chips. The Z80 was a bit stressed in this configuration though, and a few limitations were evident. An 8 bit processor just wasn’t quite enough for software driven envelopes and a Low Frequency Oscillator (LFO) control. This was further exacerbated by the fact that everything was driven through a 14 bit DAC.
[gligli] discovered most of the limitations in the 600 were due to the processor. By beefing up the processing power he could really unlock the potential within 600. Since he didn’t actually have a Prophet 600, he started with the schematic. [gligli] created a PC based emulator for the digital circuits, learning the whole system as he worked. With that phase complete, [gligli] bought a used Prophet and started hacking. The Teensy++ required a few hardware mods to fill the Z80’s shoes, including cutting off a pin and adding a few jumper wires. We really like the fact that no changes to the Prophet 600 itself are required. Pull out the Teensy++, drop in the Z80, and you’re ready to party like it’s 1982 again.
The new processor interfaces directly with the Z80’s 8 bit bus. Since the AVR on the Teensy has built-in RAM and ROM, it simply ignores the ROM and RAM address spaces of the original system. Interfacing a fast micro with older parts like an 8253 timer and a 68B50 UART does have its pitfalls though. The system bus had to run slow enough to not violate timing requirements of the various peripheral chips. To handle this, [gligli] added a number of wait statements in his firmware. Once the system was working, [gligli] was free to start adding new features. He began by smoothing out the stepped envelope and filter generators, as well as adding new exponential modes. From there he added new keyboard polyphony modes as well as pitch and mod wheel changes. The full lineup of new features are listed in the instruction manual (PDF link). Since this is an open source project, adding a feature is as simple as cracking open your favorite editor and writing it up.
[Thanks Kiss]
Standing ovation!
Bravo! This is outstanding work!
Would be nice to have a before and after comparison.
“An 8 bit processor just wasn’t quite enough for software driven envelopes and a Low Frequency Oscillator (LFO) control.”
FYI, the teensy is an 8-bit processor too. :)
Also, the 14-bit DAC isn’t “exacerbating” anything, that’s the nice bit [gligli] wanted to interface to :)
To clarify I meant the 14 bit DAC requires multiple write cycles from the Z80. The AVR has the same problem, but it is running quite a bit faster.
lol, I’ve not looked at the specs, but I’d wager the Teensy is running a little faster than 3.5Mhz or whatever the prophet is clocking at :)
The Teensy runs at 16mhz, and more importantly most instructions are single-cycle, so it’s many, many times faster than the Z80.
And I had no idea a Teensy++ could be modded that easily to imitate a Z80. Wow.
I don’t think it’s imitating the Z80 in any way. It’s just doing the same job, driving it’s peripherals with the right signals, reading it’s inputs. As the article here says, he’s ignoring the RAM and ROM of the onboard computer system.
I’d guess he’s using the Teensy’s I/O lines to simulate the Z80’s bus, and let the existing address decoding in the peripherals do their job the old way, rather than just wiring chip-selects to the Teensy’s pins. From what’s written here some of the sound generation was done in software on the Z80, so he can write functions for that, and more, however he likes, including adding new ones by altering the functions of the input buttons.
I wasn’t clear – I know it’s not software emulation (which would erase the performance gains unless you did recompilation or something), but being able to physically sub for a Z80 CPU and use the bus is damn cool.
Prophet 60091
BEST HACK EVER!
I love how it’s reversible, so that a piece of tech history wasn’t ruined in the process. The Prophet was already awesome, but he’s really taken it to the next level. Having worked hard at the coal-face of Z80 music synthesis in the 80’s myself for video games, I know how hard-pushed the Z80 (an epic uP IMHO by the way) would have been, even with all that analogue hardware to make the actual sounds.
Love it, let’s hear more!
I agree! Perfect hack!
I personally love seeing circuit traces on vintage products which were clearly hand-drawn. Not sure why I like it, maybe it’s just the human touch…
Yup! A lot of 1980s home computers and accessories had the same type of curvy, hand-drawn traces. It’s like the style of an artist, or a signature.
Great project. I had a Six Trak (Sequential snyth with similar internals) and it would get bogged down when interfacing with modern MIDI gear. I bet this would work with the Six Trak with a few modifications.
Outstanding!
bravo !
“Pull out the Teensy++, drop in the Z80”. Shouldn’t that be the other way around?
Would this upgrade work with the Sequential Circuits Six Trak as well? Its the same processor and the same company…. any chance this would work?