A firmware update and a diagnostic EPROM for the Sequential Prophet 5 Rev 3.3 Synthesizer
I recently learned that there were some issues with Sysex dumping on the Prophet 5, and decided it would be interesting to learn how that code was put together, and try to make some improvements. I started with the V9.7 EPROM binary image, then switched over to V10.5 after I felt comfortable with the pre-MIDI code. Luckily most of the code is the same, so the time spent on V9.7 was not wasted. In addition to dis-assembling and commenting the source code, I created a Verilog simulation of the Prophet 5, so that I could watch the code executing, measure timings, etc. While I was working on understanding the code, I was also trying to locate a Prophet 5 that I could buy without breaking the bank. After several months, I found one, repaired it, and have been using it to test out my new firmware. Initially, my plan was to just fix any bugs and leave it at that. But several features seemed like obvious improvements, and one or two were suggested by people very familiar with the Prophet 5. Here are the features that I have added:
1) MIDI settings Omni/Poly and MIDI channel are now stored in NVRAM and are saved when power is off.
2) Program change enable/disable setting is now stored in NVRAM and is saved when power is off.
3) I added a "MIDI program dump receive disable" feature to reduce the chances of having your patches erased by MIDI input buffer overload.
4) MIDI single program dump is now properly terminated with the 0xF7 "End of Sysex" byte.
5) I added a "Dump all 120 programs using MIDI sysex" feature.
6) Voice tuning progress is displayed on the program LEDs, and if an oscillator fails to tune, its pattern is flashed when tuning ends.
7) Voice activity display can be enabled to show which voices are being used, using the program LEDs. This setting is non-volatile.
8) Variable Unison de-tune can be enabled, in which case the Osc B Fine pot controls the amount of detune and Osc B Fine is set to 0. This is only active in Unison mode. Unison de-tune amount is stored with the program, since it uses the Osc B Fine setting. This feature can be disabled if you only want Osc B Fine in all cases, and that setting is non-volatile.
9) A new Uni1 mode has been added. Press Unison switch once for normal 5-voice Unison mode, and again for Uni1 mode. In this mode, the Unison LED flashes. A separate (global) NV setting selects between one or two voices for Uni1 mode. Uni1 mode setting is stored with the program.
10) A new "latch/hold mode" has been added. Notes will sound after their keys are released in this mode.
11) The transpose feature (which was in the code before, but only accessible using the external sequencer) is now accessible. MIDI and local keyboard notes are affected.
12) Several HW tests have been added, which may be useful when servicing the synthesizer. These are accessed using an internal jumper.
a) Scratchpad and NV RAM tests
b) LEDs test
c) DAC tests
I decided not to add CC support as the Prophet 5 CPU is running at a mere 2.5 MHz (versus 4 MHz for the P600, Six Trak, MAX, and Multitrack) and has a rather small MIDI receive buffer. I am afraid its performance when hit by a barrage of parameter changes would not meet expectations. I also decided against adding a second LFO. I was trying to avoid adding features that were not easily supported with the existing controls and buttons, without having to resort to a "cheat sheet" taped to the front panel.
I have provided Beta test copies of my code to several people and so far no issues have been found. A few more people will be testing it in the next few weeks. I was very careful when making the edits to not affect normal operation of the Prophet 5.
I am offering EPROM images for a modest (TBD) fee for a set. I have spent many hours working on this project, and also had to purchase a Prophet 5 (ouch!) in order to test the code. I plan to keep the Prophet 5 around, in case I need it for additional testing. Distributing the code this way will let me keep track of who has it, in case I decide to add additional features in the future (no plans at this time) or if something comes up that I need to let people know about. Also, if you have any questions about the new features, I will try to answer them if you are a registered user.
Here are the instructions for using the new code features.
If you are interested in purchasing a copy of my new code revision, or if you have a great idea for something else that I might want to add, please contact me.
Prophet 5 Diagnostic EPROM
At one point, Sequential had a diagnostic EPROM available for technicians working on the Prophet 5. I have not seen a copy of that code, but I did find an instruction sheet which listed the tests and how to use them. I have tried to more or less re-create the functions of that EPROM. Some of the tests are included in my new firmware for the Prophet 5, but someone suggested that I make a stand-alone version which could fit in a single 2732. (so that it can be used in non-MIDI P5's) Since I was working on it any way, I added an ADC/Pot mux test and a S&H test. Here is an archive containing a binary image of the 2732 EPROM, and here are the instructions for running the tests. If you use this code and find it helpful, please let me know.
Please note: Taking the Prophet 5 apart and replacing the EPROMs must be done carefully, or damage to the synthesizer could result. It should only be attempted by someone familiar with this type of work. I will not be responsible for any damage to any instrument caused by either proper or improper use of the code offered here.
Copyright © 2007-2016 by TaunTek.com. All rights reserved.