Kurzweil K2000R display retrofit

After a long break I’ve decided to retrofit my K2000R. I still had a few white-on-black displays on the shelf, purchased from artronic.eu:

http://artronic.eu/pl/p/LCD-AG-240064A-DIW-WKK-E6/1035

The process was actually really easy. The new display has a 1-1 pin layout. No additional pull-up or down wires or resistors were required.

using a desoldering tool to remove the tin from the pin
almost done..

I desoldered the ribbon connector from the old display, and resolderded it onto the new display.

On the backlight driver board, I desoldered the Q1 driver transistor and transformer. The supply voltage to the backlight driver board is an odd 7V. I decided to use an 100Ohm resistor in series. At 80mA the drop voltage will be around 4V, leaving 3V for the LED backlight.

I shorted the VCC to a (former) transformer pin, from which the resistor guides the current to the backlight LED.

The contrast was quite a bit of after replacement, but the range in the menu is quite large, so dialing it down from +14 to -20 did the trick.

end result

On the pictures the image looks white on blue, but it actually is white on black. I’m very happy with the result!

Roland D70 LCD Display Upgrade

Next one in line to receive the much deserved LCD display upgrade is my Roland D70. As with most others I’ve previously overhauled, this synth has the ‘standard’ 240×64 dot-matrix graphics LCD black-on-green display with EL-foil, which ofcourse is failing after being 25+ years of age.

The new display is pin-compatible with the orignal display. Even the font select pin is already pulled up to Vdd, which mostly is not the case 🙂 The contrast control circuit provides large enough range for the new display. The flatcables may be resoldered to the new display.

Care must be taken to desolder the flatcable from the original display, as the metal wires break easily. I ended up having to cut and strip a a small piece of both flatcables.

img_20160912_230813img_20160917_233719img_20160918_133243

 

As the new display is somewhat thicker, it will push the window rather far out when mounted in the original way. A solution is to mount the display ‘behind’ the mounts, see below picture. I added a few plastic washers to rise the mount off the PCB a little bit, else the LCD unit would be very close to the the larger PCB.img_20160918_153954

As the space between the LCD and PCB is still very tight, I covered the back of the LCD unit with electrical tape so nothing will short out if the boards touch each other.

img_20160918_132918

Don’t forget to peel of the protective sheet!

et voila!

 

 

Kawai K5 display upgrade & cleaning

Earlier this year I did some work on my Kawai K5, including (ofcourse) replacement of the LCD display with a new white-on-black(ish) LED backlight type. Additionally updated the firmware ROM to the latest version, and I cleaned all the tactile buttons which became almost non-responsive.

Display

The old display had an EL-foil backlight which was barely emitting light, just like all synths with the 240×64 dot matrix display from that era.IMG_20160225_215432

I bought a couple of 240×64 displays white on black with LED backlight (from the polish company artronic, but similar to the Newhaven’s white on blue which seem to be popular) which are pin-compatible with the original display.

The flat cable is to be desoldered from the old display, and soldered onto the new display. IMG_20160225_220629

One addition needs to be made: Font Select pin needs to be pulled up to VDD, this is done using a small wire soldered directly on the display board between pin’s 19 and 3.  On the PSU board the inverter can be desolderded, and replaced by a 100-Ohm resistor (between pins IN and OUT). See schematic below:

psu
snippet of Kawai K5 PSU schematic

 

The contrast-control gives a large enough range for the new display, so no modifications in resistor values needed here! See below the result:

IMG_20160225_230951

 

 

Buttons

Now the synth is opened up, we can take a look at the tactile buttons. You need to press pretty hard to get some response. To clean them, you need to take them apart.

With long pliers you gently pull the inner part out of the switch.

IMG_20160302_214035

Inside the casing you will find small copper discs. These need to be taken out.

IMG_20160302_214145

By soaking a q-tip in alcohol, and pushing it in the casing, you can pull the disc out.

IMG_20160302_215303

Placing them a piece of foam, you can thoroughly clean the ‘hollow’ side of the dish. Also you need to thoroughly clean the small metal contacts inside of the plastic casing.

IMG_20160302_215617

This way I’ve cleaned all buttons, and the results are remarkable! Buttons all became very responsive, as new! (Presumably, as I have never owned a brand new K5 🙂 )

Firmware upgrade

As I do with all my synths which I open up, I check if they are running the latest (available) firmware, and if not.. I replace the ROM with a freshly burned EEPROM. I purchased a couple of cheap 27SF512 DIP-28 package EEPROM’s of ebay, which are roughly pin-compatible with the original 27C512, and.. most importantly: programmable using an EEPROM programmer 🙂

The latest 1.3 firmware can be found on the K5synth file section on yahoo groups.

TODO: Output modification

The last upgrade/fix I was planning to perform was an output modification to lift the output level further above noise-floor, an issue which is inherent to the K5.

The mod consists of replacing R33, R34, R35, R36, R37, R38, R39, R40 by 15kOhm-resistors.

 

This is an updated mod, as the original mod seemed to filter the high end frequencies on the output single, making it sound less ‘brilliant’. The mod is described in this groups.yahoo.com post and more thoroughly in this (German) thread: http://www.sequencer.de/synthesizer/viewtopic.php?f=3&t=108837

This new method obsoletes the old modification described here: http://herbert-janssen.de/k5.html

However I could not find any reports of this modification apart from the author itself.

As I found the low s/n ratio not particulary disturbing i decided to hold the modification off for now.

 

 

 

OLED display for Alpha JUNO 2

In my endeavor to replace and upgrade my synths failing displays juno-2 original displaywith more modern counterparts I decided to replace the 1×16 character LCD, EL backlight (and whining inverter) with a nice white OLED display.

I purchased the display through Comet, a european (Bulgarian to be precise) company. It is clamed the OLED display is HD44780 compatible, on which the original Sharp display is based.. and as most of the character LCD’s are. For reference, see the datasheet of the original Sharp LM16155 display, and the new Winstar OLED display. Here a sheet with additional data for the OLED controller.

I desoldered the flatcable connector from the original display and soldered it onto the OLED display. Tjuno-2 OLED-first 8 charshe contrast pin is unused, and the backlight pins are missing, but apart from this the new display is indeed pin compatible with the original one. But.. as you can see, only the first 8 characters are visible. After some reading and searching I learned about the various adressing modes these displays have.

 

 

It seems the original Sharp display is not addressed as a 1 line with 16 character, but as a 2 lines of 8 characters display, being the first line the first 8, and the bottom line the second eight characters. Line 1 starts at address 0h, line 2 at 40h. Below tables from the datasheets show the difference more clearly:

HD44780-addressing
HD44780 addressing

OLED-addressing
Winstar OLED addressing

 

I was hoping the Winstar controller would be able to support this ‘older’ addressing mode, by setting a jumper.. or something.

N=Number of Lines Displayed – N=”1″: 2-Line Display – N=”0″: 1-Line Display

I did find the display would accept a ‘number of lines displayed’ setting in the Function Set setup command. I made a small test-setup using an Arduino controlling the display, so I could experiment with different setup commands and addressing modes. Setting N to 0 or 1 did however not influence the addressing mode. All characters written from address 40h are not visible. No way will this OLED 1×16 display be a direct replacement for a legacy HD44780 based 1×16 LCD display, without altering the way the display is controlled.

The only way to do this is to hack hack the Juno’s firmware, which is not the road I wanted to go down. I do have some microcontroller assembly programming experience, but there was no source available of the Juno’s software, I never disassembled existing binaries like this, and also I did not own an eeprom programmer.

I did however find a binary available from a guy who performs firmware hacks on the JUNO and other synths. After fiddling around with 8051 (which is the Juno’s CPU) tools like dis51, d52 and the as31 assembler I was able to create an readable asm file, and assemble it back to a bin file which was the same as the original bin. This gave me confidence to give it a try.

I purchased a nice cheap Chinese EEPROM programmer (thanks to Dave’s excellent review on EEVblog), and a couple of EEPROM’s of ebay. The original EPROM is a 128kbit NEC D27128D. The EEPROM’s I purchased were Winbond W27E257, which are pin compatible with the NEC’s. Being EEPROM’s, they’re easy to reprogram, which I expected to be doing a lot in the process of testing changes made in the software. The Winbond’s have a capacity of 256kbit, which were the smallest I could find being pin-compatible and in DIP-28-pin package. The software then has to be uploaded in the upper 128kbit of the Winbond EEPROM, from 4000h, to be addressable for the Juno’s CPU.

 

I spend a lot of time finding the pieces of code where data was written to the display. Below is a subroutine which was easy to find, and also easy to alter. Setting address 0 (first character on first line) is writing 80h to the display, address 40h (first character, second line equivalent to 9th character on 1×16 display) is writing 0Ch. Cutout from the Winstar sheet:Winstar OLED set address

In stead of jumping the 40h in addressing we only jump 8h.

writeLCD_16_chars_17BC:
        MOV A, #80h
        ACALL writeLCD_8chars_DPTR_17AD
        ACALL delay_3_R0to0_17A6
;       MOV A, #0C0h            ; Go to second row of 8 characters
        MOV A, #88h
        ACALL writeLCD_8chars_DPTR_17AD
        ACALL delay_3_R0to0_17A6
        RET

Unfortunately there are a LOT of pieces of code scattered all over the place which all write data to the display, and the jumps of 40h are not always very obvious. To make things even more complicated, there is some shifting going on: When pressing the ‘Write’ button the existing text is ‘shifted’ away and new text is written on addresses 88h and 0C8h respectively. Text will shift ‘home’ when the Write button is released, and original text will re-appear. To make this work with the new OLED addressing this shifting code had to be altered so it doesn’t shifts two lines by 8, but 1 by 16.

After a couple of nights of tinkering I’ve gotten all display output correct. I’m not going to bore you with more details, but feel free to drop me a line if you’re interested.. or  wish to view my annotated assembly code. See attached to final .bin file. I can burn the EEPROM for you if you want.

In the the final step I desoldered the electronics from the PSU board used to power the EL backlight. No more whining, and the result is simply beautiful!

juno2-OLED3 juno2-OLED1 juno2-OLED2

 

One remark: the output of dis51 won’t assemble straight away in as31, it requires some syntax fixup. I hacked dis51 so it does produce direct usable output, and made it include the pointer address in the labels it produces. I can share this if you want.

–UPDATE–

sorry for my late response, at popular request I’ve uploaded the binary and (annoted) assembly file:

The anoted Assembly file: http://www.visuanetics.nl/ju2-2_5-modified-b.asm
The binary, ready for programming: http://www.visuanetics.nl/ju2-2_5-modified-for-OLED-final.hex

Korg Wavestation A/D LCD display upgrade

This week I started a project in which I want to replace the LCD screens in some of my synths. Most of them suffer from the well known decaying Electroluminescence (EL) backlight problem, resulting in a barely visible screen, and a annoying high-pitched sound from the transformer powering the backlight.

 

IMG_20151222_220406[1]

I decided to start with the Wavestation A/D. It contains a 240×64 pixels dot matrix display with T6963 compatible controller. This type of display is used in A LOT of synths from that era. There are some equivalent LED-backlit displays available from various (Chinese) vendors. A lot of people replacing their displays use the white-on-blue version, which looks really awesome. After some searching I decided to go with a white on black display, available from ARTRONIC (http://www.artronic.eu/pl/p/LCD-AG-240064A-DIW-WKK-E6/1035). I find that it better matches the faceplates of most synths, (white on black), and it less bright in the studio without trading in readability.

I used this guide (http://www.tellun.com/wavestation/wavestation.html) as a starting point. I did however want to cut as little cables and add additional components as possible. First I desoldered the flatcable PCB connector from the old Optrex display and re-soldered it to the new LED display. Using an external power supply i powered the backlight LED as a test. The pinouts of both displays were identical so I was pretty convinced the new display wouldn’t burn out. Powering the unit on I found the contrast signal range was way too high (as mentioned in the tellun.com guide), and the font size was off (also mentioned in the guide, suggesting Pin 19 / font selection should be actively pulled high). The latter I find strange as the original Optrex display also has font selection on Pin 19. The pin is open on the mainboard, maybe it is internally pulled high on the Optrex. I bridged pin 3 (+5V) and 19 on the display.

IMG_20151223_000804[1]

 

Next issue is contrast. The tellun guide suggest adding an additional resistors as a voltage divider to lower the contrast control voltage range. Doing a little reverse-engineering on the contrast control of the Wavestation reveals it is build around a potentiometer and two resistors (VR1, R2 and R3), a sort of voltage divider fed by -12V. Sort of, because there is no connection to ground, making it just a variable resistor in the range of 0,7k to 2k5 between the LCD contrast pin and the -12V rail.

IMG_20151225_120916[1]contrast

I found that (while adding additional resistors in series) a resistance of 3.6kOhm gives ideal contrast. So ideally the contrast control circuit should work in the range of 2k5 and 4k5. I determined (using some obscure math) values of 6k8 and 3k9 for resp the resistors R2 and R3 give me approximately this range. While most of the electronics on the mainboard are surface mount, the contrast control is located on the front-panel PCB which is fully through-hole. So, replacing the resistors is an easy job and voids the need of cutting a wire or adding resistors to the display.

All whats left to do is remove the transformer feeding the EL backlight on the old Optrex display, to eliminate the high pitched noise. I reused the wires from the EL feed to power the LED backlight from the mainboard, adding a 100 Ohm resistor from the +5V rail, as described in tellun’s guide.

 

Et voila:

IMG_20151225_164732[1]

Excellent result with little costs and a few minor alterations. All steps I performed summarized:

  • make photo’s of the screws mounting components and boards, these will be useful when screwing everything back together 🙂
  • desolder 20-pin ribbon cable PCB connector and EL backlight power leads from old Optrex display
  • solder them back on the new display
  • connect connector pin 19 to pin 3 on the display
  • remove the front PCB, and desolder resistors R2 and R3
  • replace resitors R2 and R3 with new resitors valued 3k9 and 6k8
  • remove mainboard and desolder the EL transformer TR1
  • solder an 100Ohm resistor from the + lead of C49 to the pin feeding the EL backlight (see http://www.tellun.com/wavestation/WS_R3.jpg)
  • replace the battery if possible 🙂
  • put everything together and close the unit up

I have a Kurzweil K2000R, Kawai K5, Korg 01/W, Yamaha TG/77  and a Roland D70 which all have the same type of (failing) 240×64 display, wating for a overhaul 🙂 The D70 is in the worst shape with the annoying whine audible in the output signal.. so I´ll think this one will be next in line. Also I have an alpha Juno-2 with an 1×16 charachter LCD displayfor which I found a really nice OLED replacement 🙂 Stay tuned for the report on these!

Little light of Love

Last night I watched the movie ‘Fifth Element’ from Luc Besson again. This movie has a great soundtrack by Eric Serra, espacially the track ‘Little Light of Love’. Watch/listen it here: http://www.youtube.com/watch?v=k5PFsP-Bux4

After doing a little searching on the internet it seems a lot of people believe this track is produced by Peter Gabriel and Thomas Dolby. I also remember having this track in a bundle of Thomas Dolby songs I’ve downloaded some years ago.
Here is one of these downloadsites: http://beemp3s.org/download.php?file=757024&song=Little+Light+of+Love
One source which is cited a lot is: http://www.moviemistakes.com/film472/questions

So where does this come from?
The voice in the song does have a few aspects in comon with that of Peter Gabriel.. and the whole atmosphere is in the line of what both Peter Gabriel and Thomas Dolby produce.
Also discussed here: https://petergabriel.com/forum/3/peter-gabriel/topic/350036/aint-that-peculiar-by-peter-gabriel-rare-unavailable-on-cd/
and here: http://forum.thomasdolby.com/viewtopic.php?p=36700#p36700
And a mention of it here on Andy J’s Guide to Thomas Dolby (search for ‘fifth element’ here)

So we can conclude Peter Gabriel and Thomas Dolby didn’t have any involvement in this track. It is a track produced and performed by Erric Serra himself (credited as R.X.R.A.. which is ‘Eric Serra’ phoneticallt). It seems someone (hunkydorey2) had a bunch of tracks, among which ‘little light of love’ assuming it must be Peter Gabriel´s voice and put it ip for download in the early years of internet. Since then it has gone viral. Anyone who has more insight on this perhaps?

Serial console connection Foundry Bigiron <-> Sun Fire Vxxx

At a remote location I have a Foundry Bigiron 4000 router. I put up a cheap Sun Fire V100 sparc-based server to which I wanted to connect the serial console of the BigIron.
The Sun Fire v100 has a RJ45 serial connector, and the Bigiron a DB9 (male) serial connector. So the first thing I tried is to use a standard Cisco console cable which fits right in between the two devices.

Unfortunately this didn’t work.. As a reference I tried to connect to a HP Procurve switch which also has a DB9 male connector. This did work!
Now the difference between de DB9 ports on the HP and the Foundry is that the Foundry is a DCE based port, and the HP a DTE.
This means you should setup the connection to the HP (from a PC) as straight cable, and to the Foundry as a null-modem.
As the cisco cable was a straight-cable, I needed to fix my own DB9 to RJ45 foundry cable. I had a few DB9-to-RJ45 adapters lying around, with which you can make your own adapter.

I couldn’t find the right layout on the internet.. so I figured it out myself using the pinouts of both connectors. See below. The colors mentioned are from the RJ45->DB9 adapter you can buy at any radio shack.


    Sun Fire serial RJ45              Foundry BigIron console DB9  
     S/GND  5 (green)  ---------------------  5  S/GND
     TXD    3 (black)  ---------------------  3  RXD
     RXD    6 (yellow) ---------------------  2  TXD
     CTS    8 (white)  ---------------------  8  RTS
     RTS    1 (blue)   ---------------------  7  CTS

For reference.. here the Foundry DB9 pinout:

DirectAdmin SpamAssassin update

For some reason Directadmin doesn’t do a periodic update of the SpamAssassin filter rules.

here’s a short howto to run the sa-update command on Directadmin machines, with FreeBSD.

# cpan
cpan> install LWP::UserAgent
cpan> install Archive::Tar
# sa-update --nogpg -D
# killall spamd
# /usr/bin/spamd -d -c -m 5