Morph uses CEC to identify itself to HDMI sources, because the EDID on it's input can be changed by the user.
CEC is also used to implement Morph OSD remote control from an HDMI source.
CEC access to specific Morph configuration options might be added in the future.
For debugging CEC messages, I highly recommend this website: www.cec-o-matic.com (Examples are using the default notation used on this website; hex values with colon separator)
After successful (physical/logical) address allocation (and physical address broadcast), the HDMI source should broadcasts it's vendor id.
Examples are assuming the HDMI sink has the logical address 4
(playback 1)
Source broadcasts it's vendor id using the Device Vendor ID
opcode (0x87
)
4F:87:F4:31:49
Morph then replies with a Vendor Command
opcode (0x89
) and a single byte 0xBF
(Vendor Specific Data
)
04:89:BF
This also marks the HDMI sink connected to be known to the Morph to send other (vendor) commands later.
Notes
F4:31:49
)Morph OSD remote control uses a simple "handshake" to establish a remote control connection.
Source requests remote control by sending a Vendor Command
opcode (0x89
) and Vendor Specific Data
0xA0
40:89:A0
Morph grants remote control by repliying with a Vendor Command
opcode (0x89
) and Vendor Specific Data
0xA1
04:89:A1
This enables the OSD on the Morph and enables receiving remote control commands.
Remote control messages are send by the HDMI source to Morph by using Vendor Remote Button Down
opcode (0x8A
).
40:8A:<menu_button>:00:<is_repeat>:00:00
With:
<menu_button>
:
NONE = 0x00,
MENU = 0x01,
UP = 0x02,
DOWN = 0x03,
LEFT = 0x04,
RIGHT = 0x05,
OK = 0x06,
CANCEL = 0x07,
SPECIAL_1 = 0x08, // triangle / c-up / green-on-morph-rc
SPECIAL_2 = 0x09, // cross / c-down / red-on-morph-rc
SPECIAL_3 = 0x0A, // square / c-left / yellow-on-morph-rc
SPECIAL_4 = 0x0B, // circle / c-right / blue-on-morph-rc
OTHER = 0xFE,
<is_repeat>
:
0x00 // non-repeated button
0x01 // button repeated
Instead of a Vendor Remote Button Up
, the source sends a "NONE
" menu button to indicate all buttons are released.
40:8A:00:00:00:00:00
Morph terminates an OSD remote control session by sending a Vendor Command
opcode (0x89
) and Vendor Specific Data
0xA2
after it's menu was closed
04:89:A2