Fix CLCD init sequence for WS0010/RS0010 displays#2
Open
dwhinham wants to merge 1 commit intomidibox:masterfrom
Open
Fix CLCD init sequence for WS0010/RS0010 displays#2dwhinham wants to merge 1 commit intomidibox:masterfrom
dwhinham wants to merge 1 commit intomidibox:masterfrom
Conversation
Remove commands that appear to be an incomplete duplicate the of commands that immediately follow (display off, display clear). This fixes compatibility with modern OLED character displays based on the Winstar WS0010 or Raystar RS0010 controller. Tested with Raystar REC002004AYPP5N00000.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi! 😄
Recently I've been building a MB6582 and wanted to use a modern Raystar OLED (part number REC002004AYPP5N00000).
This display doesn't work out-of-the-box unless the user jumpers the MB6582 PCB to use 8-bit mode, and then selects the Custom LCD driver by setting the PIC ID bits (see forum thread: http://midibox.org/forums/topic/20408-midibox-mb6582-newhaven-oled-finally-working-d/?page=1).
I thought I'd try to figure out why this display doesn't work with the standard 4-bit CLCD driver, and found that because an odd number of nybbles is sent to the controller, it doesn't function.
I compared the code with page 46 of the HD44780 datasheet and found that the init sequence doesn't quite match up. Obviously this has not been a problem for older LCDs as MIDIbox has existed for many years now and people have been using this startup code for a long time! But perhaps modern screens are fussier about the initialization:
This patch simply removes the extra nybble and duplicated Display Off command, and the OLED is now 100% fully functional:
The only issue is I don't have any older traditional LCD screens to double-check that this change doesn't break them - I was hoping you might be able to test this patch with some of your MIDIbox builds to verify the LCDs still work.
Thanks! (and also thankyou so much for the MIDIbox project, I've been wanting to build a SID synth for many years now and although I'm late to the party, I'm really enjoying it so far! 😃 )