Jul 032014

Lately LCD modules showed up that do not comply with the unwritten standard that returning the cursor to home position on a non-shifted display will not take longer than 40 microseconds. The datasheet of the HD44780 controller chip clearly says 40µs up to 1.64ms, with the latter being common for un-shifting shifted displays. A display taking longer than approx 53µs for executing the home command, erratic behaviour will occur.

As the controller originally used in the Wave 2 does not know about shifting, the problem was solved by using a command to explicitely set the cursor position to 0 (zero) instead of the home command.

Here’s the result:


Jul 092012

Recent HD44780 based LCDs fit directly to Wave2.3s and can easily be installed into Wave 2.2s. By removing the old HD43160A display controller and adding a 7421, a modern display will work just fine. The 2.2 and 2.3 firmware already have the proper intialization procedures and only need to be convinced to use them by a simple jumper wire.

PPGs Wave 2 was excluded from this upgrade so far because the EPROM code can only deal with the original HD43160A LCD controller. So the old chip has to go at first

HD43160 removed from Wave 2 TAS board

Although the addressing and chip enable signals to the TAS board of the Wave 2 are somewhat different from the TAS82/83 in the 2.2 and 2.3, a valid enable signal for the LCD can easily be generated by addition of a 7421 chip as well.

Wave 2 LCD Wiring

But there’s still the problem with the firmware…

Fortunately, the HD43160A as a predecessor of the HD44780 uses a subset of its command set. Assuming the power-on-reset circuitry of the HD44780 on the new display works well, it would require one additional initialization command to be issued and another command to be modified. The space required for this modification including another delay loop was gained by removing the memory size checks for 6kByte and 32kByte borders, as all Wave 2s known to me have 12kBytes of RAM (excepting the sound RAM). So the memory test has been modified to check whether 12kBytes of usable RAM are available, otherwise throw a ‘9’ to the display to indicate an error.

There are two more locations in the firmware causing trouble: the HD43160A obviously needs the cursor to be re-enabled after some other operations, which is a command 04hex for the 43160. For the 44780 this means to write the characters from right to left, so these commands had to be found and were simply removed for now, as it does not seem necessary for the HD44780 to re-enable the cursor anymore.

Finally it was worth the trouble:

Wave 2 with new display




May 042012

A How-NOT-to-do-it guide

This Wave 2 owner decided that his PPG also requires a backlit display.
No problem so far. But the datasheet of the EL foil backlight stating that it need 200 to 250 volts AC obviously led to a very wrong decision:

What we see here is an AWG28 2-wire cable ripped off from some flat cable, soldered to the primary lugs of the mains transformer -or, in other words – directly to the 230 VAC mains.
The other end is connected to the EL foil behind the LCD. Even the cheapest alarm clocks from the 70’s running EL illumination from the mains had at least a protective resistor in series.


Oct 232011

The PPG WAVE2 DRS ADAPTER – demasked

First a short summary of the jacks and switches:
On the left we have 6 phone jacks labelled A to F, one named START/STOP
and a 5pin DIN connector for TAPE SYNC.

Three switches allow to enable a click sound (there’s a small speaker in the DRS box), one to choose between internal or external clock and another to select whether the clock outputs shall be 3 or 4 times the internal timebase.

The phone jacks on the bottom invite the user to feed either a contact-closure or positive voltage trigger signal, the third one labelled INPUT needs to be connected to  the trigger in jack on the Wave 2 – there’s no trigger input pin on the 14pin Amphenol connector, only an output!

Before I start with the description of the 5 right side jacks named CL.1 to CL.5 I’d like to tell all those people who can’t wait to hook this adapter to their Wave 2’s not to have too great expectations, or probably learn some 6809 assembly language.

No, let me start with the bad news instead of the clock outputs. The inputs A-F on the left are not connected within the box. The resistor pack which would close the circuit between the jacks and some port pins of the Wave 2’s VIA chip (which are, for those who really want to hack the firmware, the pins PA4..7 and PB0..1) is not fitted and has never been there.

Furthermore, no known firmware for the Wave 2 – and we know three different versions at the time of writing – has a single line of code that communicates with those port pins in any way.

Now let’s have a look at the circuitry that actually could work.
For understanding it is helpful to know that the Wave 2 has a programmable triple timer chip, a Motorola 6840. Timer #3 generates a clock signal that is normally fed to the clock input of Timer #1 through a 10k resistor. This allows to either tap the internal clock, or to override Timer #3’s output to force an external clock to become the clock source of Timer #1 and thereby control the clock for sequencer, arpeggiator and maybe other functions.

This mixed output/input is connected to the DRS box and directly available on the record out pins of the 5pin DIN jack for tape recorder connection. This allows to record the internal clock to a tape or cassette. In addition the clock signal is routed to two frequency dividers: one, dividing by 8, is selected by the clock switch in the x4 position. By using some advanced mathematics, I was able to calculate that the clock signal generated by Timer #3 is 32 times of … something.
For the x3 position of this switch, Wolfgang and his guys made quite some effort so the x3 clock scaling must have been very important. The clock signal is divided by a binary counter that resets itself when reaching a value of 11, but this would be a little bit too slow to reach 3 times the base clock (32/11 is less than 3, q.e.d.), so the counter is additionally reset whenever the counter of the by-8-divider reaches a value of 32. This way a mean frequency of 3 times something with some jitter is achieved.

Whatever the x3/x4 switch selects is buffered and shows up on the jack CL.1 at 5Vpp. CL.2 to CL.5 carry the clock from CL.1 consecutively divided by 2, 4, 8 and 16. That’s all. It’s up to your imagination what you could do with 3 or 4 times the internal sequencer clock. The CL.4 signal, namely 1/2 or 3/8 of the sequencer clock, makes the speaker click unless told not to do so by the CLICK switch.

If you have recorded some signal to a cassette, you would be able to send it back as the sequencer clock through the DRS box.
The playback pins of the DIN jack are followed by a detector (as simple as a CMOS Schmitt trigger) and a buffer which overrides the clock input of Timer #1 when the switch is set to EXTERNAL.

Finally there’s a START/STOP jack. It’ driven by an inverted version of the CA2 pin of the Wave 2’s VIA chip. When the sequencer is stopped, this pin goes high, disabling all the internal circuity of the DRS box – the counters of the frequency dividers are kept in reset state, and all outputs are forced low, including the tape recording output and the clock jacks.  The START/STOP output is low in this state. It goes high when CA2 becomes low, which is whenever the sequencer is started.

For those who still want to know everything about this little box, here’s the mapping between VIA pins and jacks:

A -> PB0
B -> PB4
C -> PA7
D -> PA4
E -> PA5
F -> PA6