Morph CEC

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)

Morph Detection / Identification

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

Morph OSD remote control

Morph OSD remote control uses a simple "handshake" to establish a remote control connection.

Initiate remote control

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

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:

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

Remote control termination

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