-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for 256x64 ssd1362 ELW2106AA (#268) #267
Conversation
Have you got a link to the breakout board you’re using? |
Hi Richard,
|
More technical details on the set-up
|
@rm-hull @thijstriemstra : have you seen such kind of patterns similar to the one in the video I pushed ? |
i haven't. |
Well clearly something is happening so you must’ve wired it up correctly and initialized it. I would suggest scrutinizing the code in the display() method against how the datasheet says how to drive the screen. Are there any capacitors on your breakout board as per the datasheet? Also what is the content of your ssd1362.conf file? |
Thanks @rm-hull for your comment, please more technical details below :
Some testing on the decoupling capacitors
|
Firstly I would try reducing the spi bus speed - I have seen other devices not work at higher speeds. Directly copying another display driver is probably the root problem here. The datasheet will give some indication how to address the displays GDRAM, and you would need to sequence the correct commands and data according to what the datasheet spec says. |
void OLED_WriteCmdData(int cmdCnt,int dataCnt)
{
PBYTE ptr;
uint8_t i;
uint8_t data;
cd_lo();
ptr = param;
while(cmdCnt != 0)
{
data = *ptr++;
for(i = 0; i< 8; i++)
{
d1_lo(); // CLK is Lo
if(data & 0x80) d0_hi(); else d0_lo();
data = data << 1;
d1_hi(); // CLK is Hi
}
cmdCnt--;
}
cd_hi();
while(dataCnt != 0)
{
data = *ptr++;
for(i = 0; i< 8; i++)
{
d1_lo(); // CLK is Lo
if(data & 0x80) d0_hi(); else d0_lo();
data = data << 1;
d1_hi(); // CLK is Hi
}
dataCnt--;
}
} <-- Could I follow this write_command() specifications using luma.oled device code ? |
@rm-hull : sorry a display strategy question : while working on the ssd1362 we are prototyping with another screen ssd1322 (well supported by luma.oled), we would to modify some sections of the display while the other remain the same, what should be the best strategy ? Could I follow such an example ? Thanks |
Much thanks for any hints or tests. @rm-hull : would you be interested by a ELW2106AA device for test ? [1] : https://www.waveshare.com/wiki/File:1.5inch_RGB_OLED_Module_Code.7z |
Some updates : below is a picture of another test yesterday where the screen starts to be able to display patterns
test_ssd1351_hack_for_ssd1362.zip At this point, I would to integrate this "working" init sequence into "luma.oled" to work into the "luma" project. Any hints is welcome at this point of the road. |
Closing - I have merged from this fork, but I don't have direct access to make further changes, so will proceed on a branch - track progress in PR #271 |
Hi there,
thanks a lot for your great project and support. I have been adding a basic support for the ssd1362 oled screen (Futaba ELW2106AA) but the result is not great yet.
The screen is connected to a Rpi3 with 3-wire SPI connexion (MOSI, CLK, DC, RST, CS), it is powered with 16V for the OLED power supply and 3V3 for the VCI (Logic Supply).
The screen reacts to "luma.example" but only displaying a white line moving slowly from top to bottom.
Below is a small video of the current rendering (I have tried with two different new screens and same results).
May you guys have an idea of this issue ? Do I need some settings ? Does is seem to similar to previous issues ?
Any hardware/software ideas is testable to possibly quickly add a full support to luma.oled