Modbus - OLED 128x64 Bricklet

This is the description of the Modbus protocol for the OLED 128x64 Bricklet. General information and technical specifications for the OLED 128x64 Bricklet are summarized in its hardware description.

API

A general description of the Modbus protocol structure can be found here.

Basic Functions

BrickletOLED128x64.write
Function ID:

1

Request:
  • data -- uint8[64]
Response:

no response

Appends 64 byte of data to the window as set by new_window.

Each row has a height of 8 pixels which corresponds to one byte of data.

Example: if you call new_window with column from 0 to 127 and row from 0 to 7 (the whole display) each call of write (red arrow) will write half of a row.

Display pixel order

The LSB (D0) of each data byte is at the top and the MSB (D7) is at the bottom of the row.

The next call of write will write the second half of the row and the next two the second row and so on. To fill the whole display you need to call write 16 times.

BrickletOLED128x64.new_window
Function ID:

2

Request:
  • column_from -- uint8
  • column_to -- uint8
  • row_from -- uint8
  • row_to -- uint8
Response:

no response

Sets the window in which you can write with write. One row has a height of 8 pixels.

The columns have a range of 0 to 127 and the rows have a range of 0 to 7.

BrickletOLED128x64.clear_display
Function ID:3
Request:empty payload
Response:no response

Clears the current content of the window as set by new_window.

BrickletOLED128x64.write_line
Function ID:

6

Request:
  • line -- uint8
  • position -- uint8
  • text -- char[26]
Response:

no response

Writes text to a specific line (0 to 7) with a specific position (0 to 25). The text can have a maximum of 26 characters.

For example: (1, 10, "Hello") will write Hello in the middle of the second line of the display.

You can draw to the display with write and then add text to it afterwards.

The display uses a special 5x7 pixel charset. You can view the characters of the charset in Brick Viewer.

Advanced Functions

BrickletOLED128x64.set_display_configuration
Function ID:

4

Request:
  • contrast -- uint8
  • invert -- bool
Response:

no response

Sets the configuration of the display.

You can set a contrast value from 0 to 255 and you can invert the color (black/white) of the display.

The default values are contrast 143 and inverting off.

BrickletOLED128x64.get_display_configuration
Function ID:

5

Request:

empty payload

Response:
  • contrast -- uint8
  • invert -- bool

Returns the configuration as set by set_display_configuration.

BrickletOLED128x64.get_identity
Function ID:

255

Request:

empty payload

Response:
  • uid -- char[8]
  • connected_uid -- char[8]
  • position -- char
  • hardware_version -- uint8[3]
  • firmware_version -- uint8[3]
  • device_identifier -- uint16

Returns the UID, the UID where the Bricklet is connected to, the position, the hardware and firmware version as well as the device identifier.

The position can be 'a', 'b', 'c' or 'd'.

The device identifier numbers can be found here