pacman, rainbows, and roller s

Command Hardware Control – Control OLED Display (SSD1306/SH1106)

HOST send Control OLED Display (SSD1306/SH1106)

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

ID Control

Infor 1

Infor 2

Infor 3

...


 

‘T’

‘O’

PL2

Control OLED Display (SSD1306/SH1106)

12

 

‘0’

O_Start_OLED

 

‘1’

O_Update_and_Display

 

‘2’

O_Clear_Display

 

‘3’

O_Draw_Dot

 

‘4’

O_Draw_Line

 

‘5’

O_Draw_Rect

 

‘6’

O_Draw_Rect_Corner

 

‘7’

O_Draw_Triangle

 

‘8’

O_Draw_Circle

 

‘9’

O_Draw_Elippse

 

‘A’

O_Draw_Character

 

‘B’

O_Draw_Number

 

 


HOST send Control O_Start_OLED

 

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘0’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘0’

 

ID Control : O_Start_OLED

 

 

PL3

INTEGER

0

1

-

-

Type OLED Display

 

0

OLED SH1106 128x64

1

OLED SSD1306 128x64

 

PL4

INTEGER

1

255

-

-

Brighnesss

 

 

PL5

INTEGER

1

255

-

-

Contrast

 

 

PL6

INTEGER

0

1

-

-

Vertical Flip Screen

 

0

No

1

Yes

 

PL7

INTEGER

0

1

-

-

Flag Auto Update Display without using

$ESP_OK|6|T|O|1|*7D26

command (O_Update_and_Display)

 

0

No

1

Yes




ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘0’

 

ID Control : O_Start_OLED

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error : not found OLED Display on I2C port

1

OK : Started OLED success

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|20|T|O|0|1|250|250|0|0|*0509

ACK Respond

$ESP_OK|101|T|O|0|1|Start OLED Success, Type: SSD1306,Brightness = 250,Contrast = 250, Flip = 0 ,Auto Update = 0|*223C

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

HOST send Control O_Update_and_Display

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘1’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘1’

STRING

-

-

1

1

ID Control : O_Update_and_Display

 


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘1’

 

ID Control : O_Update_and_Display

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: (OLED-Updated Success) Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|6|T|O|1|*7D26

ACK Respond

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

HOST send Control O_Clear_Display


<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘2’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘2’

 

ID Control : O_Clear_Display

 

 

PL3

INTEGER

0

127

-

-

X Clear

 

 

PL4

INTEGER

0

63

-

-

Y Clear

 

 

PL5

INTEGER

0

128

-

-

Width Clear

pixel

 

PL6

INTEGER

0

64

-

-

Height Clear

pixel

 

PL7

INTEGER

0

1

-

-

Color clear

 

0

BLACK

1

WHITE


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘2’

 

ID Control : O_Clear_Display

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: OLED-Clear) Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|19|T|O|2|0|0|128|64|0|*3509

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|26|T|O|2|1|(OLED-Clear) Done|*0A5C

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…


 

HOST send Control O_Draw_Dot

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘3’

Infor 1

Infor 2

Infor 3

...

 

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘3’

 

ID Control : O_Draw_Dot

 

 

PL3

INTEGER

-32768

32767

-

-

X

 

 

PL4

INTEGER

-32768

32767

-

-

Y

 

 

PL5

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘3’

 

ID Control : O_Draw_Dot

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Dot done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 

 

Example

 

Message :

HOST Send

$ESP_OK|14|T|O|3|64|32|1|*0271

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|29|T|O|3|1|(OLED-Draw Dot) Done|*0233

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

HOST send Control O_Draw_Line

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘4’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘4’

 

ID Control : O_Draw_Line

 

 

PL3

INTEGER

-32768

32767

-

-

XA

 

 

PL4

INTEGER

-32768

32767

-

-

YA

 

 

PL5

INTEGER

-32768

32767

-

-

XB

 

 

PL6

INTEGER

-32768

32767

-

-

YB

 

 

PL7

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘4’

 

ID Control : O_Draw_Line

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Line Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example


Message :

HOST Send

$ESP_OK|18|T|O|4|5|5|32|20|1|*0976

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|30|T|O|4|1|(OLED-Draw Line) Done|*7C77

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…


HOST send Control O_Draw_Rect

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘5’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘5’

 

ID Control : O_Draw_Rect

 

 

PL3

INTEGER

-32768

32767

-

-

X

 

 

PL4

INTEGER

-32768

32767

-

-

Y

 

 

PL5

INTEGER

-32768

32767

-

-

Width Rect

pixel

 

PL6

INTEGER

-32768

32767

-

-

Height Rect

pixel

 

PL7

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL8

INTEGER

0

1

-

-

Fill object draw

 

0

No

1

Yes


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘5’

 

ID Control : O_Draw_Rect

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Rectangle Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|22|T|O|5|50|20|40|20|1|0|*4F75

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|35|T|O|5|1|(OLED-Draw Rectangle) Done|*1745

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

 

HOST send Control O_Draw_Rect_Corner

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘6’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘6’

 

ID Control : O_Draw_Rect_Corner

 

 

PL3

INTEGER

-32768

32767

-

-

X

 

 

PL4

INTEGER

-32768

32767

-

-

Y

 

 

PL5

INTEGER

-32768

32767

-

-

Width Rectangle Corner

pixel

 

PL6

INTEGER

-32768

32767

-

-

Height Rectangle Corner

pixel

 

PL7

INTEGER

-32768

32767

-

-

Radius Corner

 

 

PL8

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL9

INTEGER

0

1

-

-

Fill object draw

 

0

No

1

Yes


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘6’

 

ID Control : O_Draw_Rect_Corner

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Rectangle Corner Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|24|T|O|6|12|20|40|20|5|1|0|*050B

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|42|T|O|6|1|(OLED-Draw Rectangle Corner) Done|*1354

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

HOST send Control O_Draw_Triangle

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘7’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘7’

 

ID Control : O_Draw_Triangle

 

 

PL3

INTEGER

-32768

32767

-

-

XA

 

 

PL4

INTEGER

-32768

32767

-

-

YA

 

 

PL5

INTEGER

-32768

32767

-

-

XB

 

 

PL6

INTEGER

-32768

32767

-

-

YB

 

 

PL7

INTEGER

-32768

32767

-

-

XC

 

 

PL8

INTEGER

-32768

32767

-

-

YC

 

 

PL9

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL10

INTEGER

0

1

-

-

Fill object draw

 

0

No

1

Yes


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘7’

 

ID Control : O_Draw_Triangle

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Triangle Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|28|T|O|7|10|10|40|10|25|30|1|0|*470F

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|34|T|O|7|1|(OLED-Draw Triangle) Done|*7B6A

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

 

HOST send Control O_Draw_Circle

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘8’

Infor 1

Infor 2

Infor 3

...

 

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘8’

 

ID Control : O_Draw_Circle

 

 

PL3

INTEGER

-32768

32767

-

-

X Center circle

 

 

PL4

INTEGER

-32768

32767

-

-

Y Center circle

 

 

PL5

INTEGER

-32768

32767

-

-

Circle radius

pixel

 

PL6

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL

INTEGER

0

1

-

-

Fill object draw

 

0

No

1

Yes

 

ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘8’

 

ID Control : O_Draw_Circle

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Circle Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 

 

Example

 

Message :

HOST Send

$ESP_OK|19|T|O|8|64|32|20|1|0|*360A

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|32|T|O|8|1|(OLED-Draw Circle) Done|*6E08

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

 

HOST send Control O_Draw_Elippse

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘9’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘9’

 

ID Control : O_Draw_Elippse

 

 

PL3

INTEGER

-32768

32767

-

-

X Elippse’s Center

 

 

PL4

INTEGER

-32768

32767

-

-

Y Elippse’s Center

 

 

PL5

INTEGER

-32768

32767

-

-

Width Radius

pixel

 

PL6

INTEGER

-32768

32767

-

-

Height Radius

pixel

 

PL7

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL8

INTEGER

0

1

-

-

Fill object draw

 

0

No

1

Yes


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘9’

 

ID Control : O_Draw_Elippse

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|22|T|O|9|64|32|40|20|1|0|*4770

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|33|T|O|9|1|(OLED-Draw Elippse) Done|*0A33

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

HOST send Control O_Draw_Character

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘A’

Infor 1

Infor 2

Infor 3

...

 

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘A’

 

ID Control : O_Draw_Character

 

 

PL3

INTEGER

-32768

32767

-

-

X String

 

 

PL4

INTEGER

-32768

32767

-

-

Y String

 

 

PL5

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL6

STRING

-

-

1

1000

Data draw as text string format

 

 

ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘A’

 

ID Control : O_Draw_Character

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Char Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 

 

Example

 

Message :

HOST Send

$ESP_OK|59|T|O|A|80|2|1|Hello\nESPrtk\nOLED\nTest\nDraw\nString\nDone|*5478

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|30|T|O|A|1|(OLED-Draw Char) Done|*1F77

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…

 

 

 

HOST send Control O_Draw_Number

<Header> +

<Payload_length>

<Payload>

PL0

PL1

PL2

PL3

PL4

PL5

$ESP_OK|xx|

‘T’

‘O’

‘B’

Infor 1

Infor 2

Infor 3

...


 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘B’

 

ID Control : O_Draw_Number

 

 

PL3

INTEGER

-32768

32767

-

-

X

 

 

PL4

INTEGER

-32768

32767

-

-

Y

 

 

PL5

INTEGER

0

2

-

-

Font text draw number string

 

0

ASCII_5x7

1

CASIO_12x16

2

STYLE_16x16

 

PL6

INTEGER

0

1

-

-

Color Display

 

0

BLACK

1

WHITE

 

PL7

STRING

-

-

-

-

Data draw as text number format

 


ESPrtk Respond

 

Payload

Index

 

Type value

Min

Value

Max

Value

Min Length

Max Length

Describe

Unit

PL2

‘B’

 

ID Control : O_Draw_Number

 

 

PL3

INTEGER

-1

1

-

-

Status Control

 

-1

NACK: Invalid input /wrong format / out of range …?

0

Error: OLED Display was not started yet.

1

OK: Draw Done

 

PL4

STRING

-

-

-

-

Describe status respond control as text

 


Example

 

Message :

HOST Send

$ESP_OK|18|T|O|B|5|2|0|1|123|*7B38

$ESP_OK|20|T|O|B|5|12|1|1|-2.3|*7244

$ESP_OK|19|T|O|B|5|32|2|1|0.3|*566E

$ESP_OK|6|T|O|1|*7D26

( need add this command to update display if Flag Auto Update Display is turn off )

ACK Respond

$ESP_OK|32|T|O|B|1|(OLED-Draw Number) Done|*0513

$ESP_OK|27|T|O|1|1|(OLED-Update) Done|*6010

NACK Respond

 

Other NACK

$ESP_ER|… or $ESS_ER|… or $AES_ER|…