Axe133 oled

russbow

Senior Member
What a super piece of kit.
Now please a 20x4 OLED display and ability to purchase the PCB as a separate item.

Wee problem though. i use $DF to represent the degree symbol on my LCD displays. Get completely the wrong symbol on the OLED. I can't see any alternative. Ideas and / or pointers would be helpful please.

Russ.
 

russbow

Senior Member
Thanks for that, though I do find datasheets difficult.

My understanding is that default is font table 01 and I need table 00.

Looking at the 18m2 program, the relevant init sequence is

Code:
	; Function set - select only one of these character table modes
	;[COLOR="#FF0000"]let pinsB = %00111000[/COLOR] 	; 8 bit, 2 line, 5x8 , English_Japanese table
	[B]let pinsB = %00111001 	[/B]; 8 bit, 2 line, 5x8 , Western_European table1
	;let pinsB = %00111010 	; 8 bit, 2 line, 5x8 , English_Russian  table
	;let pinsB = %00111001 	; 8 bit, 2 line, 5x8 , Western_European table2
	pulsout enable,1  	;
so I guess I REM out the bold section, and enable the red section ?

R.
 

russbow

Senior Member
Oh dear !!

Reprogrammed and screen gone blank. Went back to original program. 18m2 accepted program ok.
Still blank screen. Supply OK on 18m2 pins 5 and 14.

Suspect dicky soldered joint somewhere but difficult to probe on a piggyback system.

Do we have a circuit diagram anywhere ?
 

marks

Senior Member
hi russbow!
had a quick look at the code i wish had seen this before lol
any way looks like its setup for lcd mode
at the top you also need to define for using oled

so proberly hasnt intialised

they do look good hanging out for a blue one lol technical did show 1 off onetime lol!
goodluck
 

marks

Senior Member
Code:
; AXE133 Serial LCD/OLED using PICAXE-18M2
; Emulates basic serial operation of the popular AXE033 module
; CPS, May 2011

; Supported Commands
; 0-252	normal ASCII characters
; 253, X	display 16 character pre-saved message from EEPROM memory, X can be 0-15
; 254, X	LCD command, X can be 0 to 255 
; 255, X	control outputs C.2, C.1, C.0 (via lower 3 bits of X)
;		So, if using a backlit LCD with the active low transistor driver
;		on output C.2, then 255,%000 switches backlight on and 255,%100 switches off

#picaxe 18M2

#define use_welcome	; display the welcome message upon power up
;#define use_OLED		; enable this line for Winstar OLED modules
this shows the first few lines of code
try enabling the last line shown here
 

Technical

Technical Support
Staff member
You probably forgot to uncomment this line:

;#define use_OLED ; enable this line for Winstar OLED modules
 

russbow

Senior Member
Yes, thanks, just sussed that out looking at the code line by line.
Still blank screen. Will try another m2 chip just in case.
 

Technical

Technical Support
Staff member
BTW you don't need to reprogram the AXE133 firmware to change font set, as that feature is simply a command.

So just use a 254,command as normal

Code:
serout pin,N2400,(254, % 00111000)     ; 8 bit, 2 line, 5x8 , English_Japanese table     
serout pin,N2400,(254, % 00111001)     ; 8 bit, 2 line, 5x8 , Western_European table1     
serout pin,N2400,(254, % 00111010)     ; 8 bit, 2 line, 5x8 , English_Russian  table     
serout pin,N2400,(254, % 00111011)     ; 8 bit, 2 line, 5x8 , Western_European table2
 
Last edited by a moderator:

Technical

Technical Support
Staff member
You need to initialise the OLED, which only occurs on power-up.
20x4's are on order - these will also be yellow on black in kit part AXE134Y
Expected delivery in 3 weeks or so
 

eclectic

Moderator
hi, at technical please O please stock red on black oled night time projects,
rob
Possibly use a filter with the current OLED?

Xmas coming up and big tins of
assorted choccies are on sale.

Free filter material, then
throw away the chocolates. :)

e
 

Paix

Senior Member
Nick12ab, you must be joking . . .

Not getting his own way, so he's going to take his football home. If we can't play my way, then you can't get to play with my ball.

I think that you are taking the proverbial and I'm just feeding in my pair . . . :)

You'll just have to get the Quality Street wrappers out at Christmas. :)
 

Paix

Senior Member
Nah, my thread. Must be yellow / black. If I can't have y / b, I'll take my thread home.
Not an exact quote but contextually accurate - I think . . . :)

@Russbow, “This is a fine mess that you've gotten us into Ollie” (Stan Laurel to Oliver Hardy). I hope you are taking amusement from my discomfort . . . :)

@Nick12ab, I hope that things are a little clearer now and that you are amused at the amount of squirming that I'm having to do to explain what I thought was a throwaway comment . . . :) I surrender!
 

MearCat

Member
Back on track...

Using one of the four different tables is fine but how do you store / create a custom character (in the AXE133 code) that's NOT in one of the embedded tables? I assume it would be stored in CGRAM.
 
Last edited:

hippy

Ex-Staff (retired)
@ MearCat : Correct, custom characters are in CGRAM.

From an external serial controller you'd send the 'CGRAM address' command ( preceded by 254 ) and followed by 8 bytes of pixel data ( one byte per line, 5-bit with msb set ). From within the AXE133 itself you'd do similar during OLED/LCD initialisation, send the command, then 8 bytes of data.

I'd have to create examples to demonstrate both; don't have any to hand.
 

Janne

Senior Member
Hi,

I have a question about the "traditional" serial interface module AXE034. If used in i2c mode, will the PIC keep the i2c bus at a busy state(keeping the signal low) while processing commands? Or is it necessary to always wait for the recommended 10ms between sent bytes? I don't have such a module at hand right now, so not possible to test it myself, and I need to figure out if it will be suitable for my application.
 

Technical

Technical Support
Staff member
We assume you mean the AXE033, it does not use clock stretching, so the bus is idle after the data is sent (and for the delay whilst the data is being processed).
 

hippy

Ex-Staff (retired)
..or just use the Serial LCD CGRAM Wizard from the PICAXE menu....
Which gives us ...

Code:
' Wait for LCD / OLDED to initialise
Pause 5000

' Clear Screen
SerOut B.7, N2400, ( 254, 1 )
Pause 500

' Define CGRAM character 0
SerOut B.7, N2400, ( 254, 64, 36, 42, 36, 63, 36, 42, 49, 32 )
Pause 500

' Move the character back and forth along the top line
SerOut B.7, N2400, ( 254, $80, 0 )
Do
  For b0 = $80 To $8E
    Pause 1000
    b1 = b0 + 1
    SerOut B.7, N2400, ( 254, b0, " ", 254, b1, 0 )
  Next
  For b0 = $8F To $81 Step -1
    Pause 1000
    b1 = b0 - 1
    SerOut B.7, N2400, ( 254, b0, " ", 254, b1, 0 )
  Next
Loop
And if you want to define the character within the AXE133Y code itself, add it to the 'LCD_init:' code as ...

Code:
low rs
let pinsB = 64 : pulsout enable,1
high rs
let pinsB = 36 : pulsout enable,1
let pinsB = 42 : pulsout enable,1
let pinsB = 36 : pulsout enable,1
let pinsB = 63 : pulsout enable,1
let pinsB = 36 : pulsout enable,1
let pinsB = 42 : pulsout enable,1
let pinsB = 49 : pulsout enable,1
let pinsB = 32 : pulsout enable,1
Then you can take out the CGRAM initialisation from the master PICAXE code.
 

MearCat

Member
Thanks. In regards to the CGRAM address ('64' after the '254' command in the post above)... Having a look at the Set CGRAM Address command in the Winstar datasheet shows that this command is the bit "1", followed by 6 bits which define the CGRAM address. These 6 bits provides only 64 memory locations for the custom characters are therefore only 8 custom characters in CGRAM (each character defined by 8 bytes of data). First address 1000000 (64) and last address 1111000 (120).

However in the AXE133 code, it states on one of the lines that :
Code:
; Supported Commands
; 0-7, 8-15	CGRAM characters
Where is the other section (ie. how do I access it) of CGRAM to store custom characters 8 to 15?
 

hippy

Ex-Staff (retired)
They're the same as 0 to 7. On the character map in the datasheet, it will show that.
To be generous to Winstar, "some of their datasheets have been ambiguous in places", and I must admit that the first impression I got was that the OLED supported 16 rather than 8 CGRAM characters. It does, like most LCD, only support 8 CGRAM characters, which are mapped to character codes 0-7 and 8-15.

By using the 'graphics mode' of the OLED it is possible to set or clear any of the pixels for each character block displayed so this provides a means of having the equivalent of the same number of CGRAM characters as number of characters displayed but that will require writing driver code to do that.
 

rob nash

Senior Member
hi tech, before russbow takes his thread home,could you please tell us how long we got to wait for the 20 x 4 screen?. this may have been asked before but will the oled 20x4 work on the axe033?

cheers rob
 

nick12ab

Senior Member
hi tech, before russbow takes his thread home,could you please tell us how long we got to wait for the 20 x 4 screen?. this may have been asked before but will the oled 20x4 work on the axe033?

cheers rob
By the looks of the picture, the same AXE133 board is used with the 20x4 OLED. it would work anyway.
 
Top