Fix CLCD init sequence for WS0010/RS0010 displays #2
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! 😃 )