Menu

The Buttons

Blaupause

The Buttons

On this page:

Basics

The state of the buttons and the scrollwheel is communicated via the button UART. (See pinouts.) To initialize the buttons a certain sequence of bytes is sent to the front panel. After that the panel sends bytes which encode the current button and scrollwheel state in regular intervals.
The interface settings are as follows:

baudrate bits paritybit stopbits
38400 8 even 1

With these parameters it is possible to communicate with the "button part" of the display with an microcontroller or with a PC.

Protocol UART Buttons

Initialization

To initialize the "button part" of the front panel a sequence of bytes is sent to the frontpanel via the button UART. The bytes are sent two bytes at a time, so one command seems to consist of two bytes. The panel acknowledges each sent pair with "0x02".
If the buttons are not initialized the state of the buttons is communicated nevertheless but does not include the state of the scrollwheel.
The bytes are as follows:

command nr. bytes meaning
1 0xFE 0xDC reset UART communication
2 0x02 0x20 ?
3 0x0E 0xFF ?
4 0x0F 0xFF ?
5 0x0D 0x00 ?
6 0x0C 0x1F ?
7 0x03 0x01 ?
8 0x0A 0x19 ?
9 0x0A 0x11 Scrollwheel on
10 0x0B 0x05 Set frequency with which the state of the buttons is sent
11 0x02 0x20 ?
12 0x0E 0xFF ?

Button Codes

The front panel sends two bytes over the button-UART in intervals to communicate the state of the buttons and scrollwheel. Byte 1 expresses the state of the buttons, byte 2 the state of the scrollwheel.

pressed button byte 1 (hex)
none 0xC0
down 0xC1
left 0xC2
gray "diamond" 0xC9
up 0xCA
plus 0xD1
navi 0xD2
minus 0xD9
OK 0xDA
gray "diamond" 0xF1
Home 0xF2
screenkey right 0xF9
screenkey left 0xFA
right 0xE9
back 0xEA

The scrollwheel position seems to use a counter that overflows after 64 steps.

scrollwheel position byte 2 (hex)
0 0x80
... ...
63 0xBF

As can be seen it can be easily distinguished between byte 1 and 2 ( Byte 1 is always >=0xC0, Byte 2<=0xBF )

Power Off

Before power off 0x0E 0xFF 0x0A 0x00 0x00 is sent to the front panel.

Testing The Buttons

To use the buttons 3,3 V is connected to the "power" and "reset" pins, surprisingly GND is connected to ground. ;) After that the following byte sequence is sent to the display as explained above:

0xFE 0xDC 0x02 0x20 0x0E 0xFF 0x0F 0xFF 0x0D 0x00 0x0C 0x1F 0x03 0x01 0x0A 0x19 0x0A 0x11 0x0B 0x05 0x02 0x20 0x0E 0xFF

Every pair of bytes is acknowledge with 0x20 via UART. After that the current button and scrollwheel state can be determined using the table above and the bytes that the panel is sending over UART.


Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.