OLED scrolling pecularity and full command code list request.

rextal

New Member
Right, after reading several threads about scrolling displays I can achieve scrolling of individual lines by using the indexing counter method or the both lines in unison using the scroll command code.

However yo me it looks like using the indexing counter method appears to increase in speed as it moves across the display and from that point of view looks a little...well silly.

I was wondering if there is a way to make the control command scrolling apply to just one line of the display rather than both as that's consistent.

Also like others I'd like to have the 'big print version' or 'dummies guide' equivalent of the the control commands for the serial LCD/OLED. I know it says for a full list refer to www.picaxe.com/docs/led008.pdf however looking at that means little to me and I'd just like it in a simple to understand numeric list such as below

serout pin, baud (254, XXX) where XXX is a numeric

24 = scroll left 1 digit
28 = scroll right 1 digit
128 = move to first digit of line one
etc etc ...

I'm using the standard Serial OLED module AXE133 and a 18m2 to drive that. On a breadboard whilst I'm testing things out on it prior to using it on a project.

Regards, Rex
 

nick12ab

Senior Member
See the WS0100 datasheet for the full command list. You can only shift the entire display, not just one line. If you want to shift one line you have to rewrite all of the characters on the display each time you want to shift it.
 

srnet

Senior Member
I know it says for a full list refer to www.picaxe.com/docs/led008.pdf however looking at that means little to me and I'd just like it in a simple to understand numeric list such as below

serout pin, baud (254, XXX) where XXX is a numeric

24 = scroll left 1 digit
28 = scroll right 1 digit
128 = move to first digit of line one
etc etc ...
The Winstar OLED data sheet does have the commands listed;

WS0010 CURSOR/DISPLAY SHIFT INSTRUCTION
This instruction is used to shift the cursor or display position to the left or right without writing or reading
the Display Data. This function is used to correct or search the display. Please refer to the table below.

The binary values are, DB7 to DB0, with DB3 being S/C and DB2 being R/L;

0 0 0 1 S/C R/L 0 0

Then for instance to shift the entire display to the left the table says S/C = 1 and R/L = 0, so putting these values into DB3 and DB2 gives you in binary, DB7 to DB0;

0 0 0 1 1 0 0 0 = 24
 

jims

Senior Member
This thread prompted me to do some experimenting with the AXE133Y OLED display. I put together the two simple attached files (a PE program routine & a VSM circuit). If you have VSM this might be a good way to simulate putting the OLED through its paces. My program routine is simple & only tests scrolling. It would be quite easy to modify it to test more of the OLED functions.
One thing that I noticed while doing this is that the PE simulation does not handle OLED scrolling while the VSM simulation does scroll. Maybe scrolling, etc could be added with the next PE update to make PE simulation compatible with the AXE133Y serial OLED. Jims
 

Attachments

rextal

New Member
The Winstar OLED data sheet does have the commands listed;

WS0010 CURSOR/DISPLAY SHIFT INSTRUCTION
This instruction is used to shift the cursor or display position to the left or right without writing or reading
the Display Data. This function is used to correct or search the display. Please refer to the table below.

The binary values are, DB7 to DB0, with DB3 being S/C and DB2 being R/L;

0 0 0 1 S/C R/L 0 0

Then for instance to shift the entire display to the left the table says S/C = 1 and R/L = 0, so putting these values into DB3 and DB2 gives you in binary, DB7 to DB0;

0 0 0 1 1 0 0 0 = 24
I was afraid you'd say that. I looked at those codes and couldn't figure out how to determine the S/C or R/L into a binary. I thought I could eventually work it out but it would take me some time and was hoping someone had created a normal integer equivalent list for those like myself.
 

srnet

Senior Member
You could volunteer.

Understanding how binary stuff like this works is important, a lot of microcontroller and PICAXE stuff is based on the same principals, so very worthwhile persevering.
 

hippy

Technical Support
Staff member
I looked at those codes and couldn't figure out how to determine the S/C or R/L into a binary. I thought I could eventually work it out but it would take me some time and was hoping someone had created a normal integer equivalent list for those like myself.
You don't need to convert to integer as the PICAXE allows numbers to be expressed as binary, just prefix with a % sign. So the shift command would be %0001sr00 then just drop the desired 1 or 0 into where 'r' and 's' are; %00011000 for example.

Then you just use them ...

SerOut OLED, N2400, ( 254, %00011000 )
 

rextal

New Member
I agree with both your responses. Knowing how binary works is indeed important. And I can use the binary input syntax, agreed (that seems to have slipped my attention).

As a programmer in other languages where binary is never seen any more I've simply become spoiled with Integer (or translated) equivalents and I think to some extent my brain has trained itself to store and cross reference these. I find debugging typos I've made in binary to be particularly difficult to resolve, thoroughly frustrating me in the process.

My main interest was to make a macro rail and there were projects on many platforms, Arduino, PIC's etc. In the end the bottom line is that I chose to use picaxe because it had a form of basic, which meant for me there was a lesser learning curve. I freely admit looking at Binary makes my poor old brain hurt, though I feel a tinge of pride when I succeed in sorting it out.
 
Top