Introduction
I think this is a good example of a couple of current trends: using AI to quickly build things and the explosion of small embedded systems and peripherals aimed at hobbyists.
I recently bought and installed a new home cinema projector . I like simple systems that anyone can use and this should especially apply to domestic equipment. When I use the remote control to turn the TV on, it automatically switches on the amplifier and the projector and everything works just like a TV should. I found out soon after installing this projector that the opposite was not true; when switching off via the remote, the projector stays on. I wanted this to work properly and this article documents how I made it happen.
Explanation
There are three components in my home cinema setup: an Apple TV , an amplifier, and the projector. There are HDMI connections from the Apple TV to the amplifier and then to the projector.
As well as carrying the sound and video signals between the devices, HDMI has a control channel called HDMI-CEC (Consumer Electronics Control) . It is this channel that should inform devices like the projector to switch on or off. My problem is that the projector I bought does not respond to power off .
When I was installing the projector I noticed that it had a 9-pin RS232 serial port on the back panel. This seemed odd to me (although it reinforces some of the points made in my article on serial terminals ). Apparently, there are high-end home cinema installers who like to use the port to control the projector. I looked at the projector’s manual and confirmed that it is possible to send a power-off control via this serial port.
At this point, knowing that it should be possible, I was committed to making it happen.
The Plan
My first thought was to use my home automation knowledge to trigger an action on the Apple TV being switched off. I already have an automation that triggers when the Apple TV is switched on. It closes the blinds and switches the ‘mood’ lights on. To get that to work was quite complicated (thanks Apple!) and recently stopped working altogether for a few weeks because of an Apple software update. The device that sends to the projector’s RS232 port would also have to connect to the house network and Apple Home. A simpler plan was needed.
The Simpler Plan
What if we monitor the HDMI-CEC control line and detect when the Apple TV shuts down? Then send the Power Off command to the projector via RS232. Sounds simple. Presumably, the Apple TV informs via CEC that it is shutting down. We will need to ‘read’ the data on the CEC line.
This plan is helped by the following facts:
- HDMI-CEC is carried on a single wire on a particular pin of the HDMI connector. It is an open and well-documented protocol.
- There are a number of open-source software implementations of HDMI-CEC including this one for a Raspberry Pi Pico .
- I have a spare Raspberry Pi Pico.
Hardware

The Electronics
The Pico is a small single-board microcontroller. It runs on 3.3 volts and can be powered from a micro USB connector. This is convenient as there is a USB power source on the amplifier. HDMI-CEC is a single 3.3V open-drain line with a pull-up that can feed directly into an input port on the Pico. The RS232 connection can be derived using a MAX3232 interface chip . The MAX3232 converts the Pico’s 0 to 3.3V output into the RS232 line levels of -5V and +5V. This wider voltage swing is important for driving the signal over the distance between the amplifier and the projector. I bought a MAX3232 breakout board and an HDMI breakout connector.

The Whole Setup
Software
Having sorted out the overall method and the hardware to run it on, it was time to conjure some software. The first thing I had to do was install the Pico toolchain and libraries, etc. I like programming in C and this is slightly more fuss than using MicroPython. This is where AI becomes very useful - it was relatively quick to download and install everything and get some basic firmware running. I had already plugged my laptop into the projector and tested the RS232 port and the Power Off command. Claude took care of implementing the CEC protocol - this is the big deal and could have been quite time-consuming. Once I could receive CEC messages, I logged them out to a laptop via the Pico’s USB connection.
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC AudioSystem -> Playback1 : System Audio Mode Status [00] (raw 54 7E 00)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Playback1 : Give OSD Name [00 00 00] (raw 04 46 00 00 00)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address (raw 0F 84)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Polling (raw 0F)
CEC TV -> Recording2 : Polling (raw 02)
CEC TV -> Recording2 : Polling (raw 02)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC TV -> Tuner1 : Polling (raw 03)
CEC TV -> Tuner1 : Polling (raw 03)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC TV -> Playback1 : Polling (raw 04)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> Tuner2 : Polling (raw 06)
CEC TV -> Tuner2 : Polling (raw 06)
CEC TV -> Tuner3 : Polling (raw 07)
CEC TV -> Tuner3 : Polling (raw 07)
CEC TV -> Playback2 : Polling (raw 08)
CEC TV -> Playback2 : Polling (raw 08)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Recording3 : Polling (raw 09)
CEC TV -> Recording3 : Polling (raw 09)
CEC TV -> Tuner4 : Polling (raw 0A)
CEC TV -> Tuner4 : Polling (raw 0A)
CEC TV -> Broadcast : Polling (raw 0F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC TV -> Playback1 : Polling (raw 04)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC TV -> Specific : Polling (raw 0E)
CEC TV -> Specific : Polling (raw 0E)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC AudioSystem -> TV : Report Audio Status [22] (raw 50 7A 22)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC AudioSystem -> TV : Report Audio Status [20] (raw 50 7A 20)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> TV : Inactive Source [12 00] (raw 40 9D 12 00)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC AudioSystem -> Playback1 : System Audio Mode Status [00] (raw 54 7E 00)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Image View On (raw 40 04)
CEC Playback1 -> TV : Menu Status [00] (raw 40 8E 00)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Playback1 : Give OSD Name [00 00 00] (raw 04 46 00 00 00)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address [00] (raw 0F 84 00)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address [00 00 00] (raw 0F 84 00 00 00)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00] (raw 0F 87 00)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> TV : Report Audio Status [21] (raw 50 7A 21)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> TV : Report Audio Status [20] (raw 50 7A 20)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> TV : Report Audio Status [1B] (raw 50 7A 1B)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> TV : Report Audio Status [18] (raw 50 7A 18)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [42] (raw 45 44 42)
CEC AudioSystem -> TV : Report Audio Status [17] (raw 50 7A 17)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Image View On (raw 40 04)
CEC Playback1 -> AudioSystem : System Audio Mode Request [12 00] (raw 45 70 12 00)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Playback1 : Give OSD Name [00 00 00] (raw 04 46 00 00 00)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address (raw 0F 84)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC AudioSystem -> TV : Report Audio Status [18] (raw 50 7A 18)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Pressed [41] (raw 45 44 41)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC Playback1 -> AudioSystem : User Control Released (raw 45 45)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC AudioSystem -> Playback1 : Report Power Status [01] (raw 54 90 01)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC Playback1 -> TV : User Control Pressed [41] (raw 40 44 41)
CEC TV -> Playback1 : Report Power Status [00] (raw 04 90 00)
CEC Playback1 -> TV : User Control Pressed [41] (raw 40 44 41)
CEC TV -> Playback1 : Report Power Status [00] (raw 04 90 00)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC Playback1 -> TV : User Control Pressed [41] (raw 40 44 41)
CEC TV -> Playback1 : Report Power Status [00 00 00] (raw 04 90 00 00 00)
CEC Playback1 -> TV : User Control Released (raw 40 45)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC TV -> Broadcast : Report Physical Address [00] (raw 0F 84 00)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : Report Power Status [01] (raw 54 90 01)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> Playback1 : Report Power Status [00] (raw 04 90 00)
CEC Playback1 -> TV : User Control Pressed [41] (raw 40 44 41)
CEC TV -> Playback1 : Report Power Status [00] (raw 04 90 00)
CEC Playback1 -> TV : User Control Released (raw 40 45)
CEC Playback1 -> TV : User Control Pressed [41] (raw 40 44 41)
CEC TV -> Playback1 : Report Power Status [00] (raw 04 90 00)
CEC Playback1 -> TV : User Control Released (raw 40 45)
CEC Playback1 -> TV : User Control Pressed [41] (raw 40 44 41)
CEC TV -> Playback1 : Report Power Status [00] (raw 04 90 00)
CEC Playback1 -> TV : User Control Released (raw 40 45)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC AudioSystem -> Playback1 : System Audio Mode Status [00] (raw 54 7E 00)
CEC Playback1 -> TV : Menu Status [00] (raw 40 8E 00)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : System Audio Mode Request [12 00] (raw 45 70 12 00)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC AudioSystem -> Playback1 : Report Power Status [01] (raw 54 90 01)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> Playback1 : Give Physical Address (raw 54 83)
CEC TV -> Broadcast : Report Physical Address [00 00 00] (raw 0F 84 00 00 00)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address (raw 0F 84)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC AudioSystem -> Playback1 : Report Power Status [00 00 00] (raw 54 90 00 00 00)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC TV -> Broadcast : Device Vendor ID [00] (raw 0F 87 00)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC Playback1 -> TV : Inactive Source [12 00] (raw 40 9D 12 00)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC AudioSystem -> Playback1 : System Audio Mode Status [00] (raw 54 7E 00)
CEC Playback1 -> AudioSystem : System Audio Mode Request [12 00] (raw 45 70 12 00)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Playback1 : Give OSD Name [00 00 00] (raw 04 46 00 00 00)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address (raw 0F 84)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC TV -> Playback1 : CEC Version [04 00 00] (raw 04 9E 04 00 00)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC AudioSystem -> Playback1 : Report Power Status [01] (raw 54 90 01)
CEC AudioSystem -> Playback1 : System Audio Mode Status [00] (raw 54 7E 00)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC TV -> Broadcast : Report Physical Address [00 00 00] (raw 0F 84 00 00 00)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Image View On (raw 40 04)
CEC Playback1 -> AudioSystem : System Audio Mode Request [12 00] (raw 45 70 12 00)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> TV : Polling (raw 40)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04 00 00] (raw 05 9E 04 00 00)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC AudioSystem -> Playback1 : Give Physical Address (raw 54 83)
CEC TV -> Broadcast : Report Physical Address [00] (raw 0F 84 00)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC AudioSystem -> Playback1 : Report Power Status (raw 54 90)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC TV -> Playback1 : CEC Version [04] (raw 04 9E 04)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC AudioSystem -> Playback1 : System Audio Mode Status [01] (raw 54 7E 01)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
CEC AudioSystem -> TV : Unknown (raw 50 C0)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC Playback1 -> TV : Standby (raw 40 36)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Physical Address (raw 40 83)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> TV : Give Device Vendor ID (raw 50 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : System Audio Mode Status [00] (raw 54 7E 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC TV -> AudioSystem : CEC Version [04] (raw 05 9E 04)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : System Audio Mode Request [12 00] (raw 45 70 12 00)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC AudioSystem -> Playback1 : Report Power Status [00 00 00] (raw 54 90 00 00 00)
CEC AudioSystem -> Playback1 : Report Power Status [02] (raw 54 90 02)
CEC TV -> Playback1 : Give OSD Name [00 00 00] (raw 04 46 00 00 00)
CEC AudioSystem -> TV : Get CEC Version (raw 50 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC TV -> Broadcast : Device Vendor ID [00] (raw 0F 87 00)
CEC TV -> Broadcast : Report Physical Address (raw 0F 84)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> TV : Polling (raw 40)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Device Power Status (raw 45 8F)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Give Device Vendor ID (raw 45 8C)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Get CEC Version (raw 40 9F)
CEC TV -> Broadcast : Device Vendor ID (raw 0F 87)
CEC AudioSystem -> Playback1 : Report Power Status [00] (raw 54 90 00)
CEC TV -> Playback1 : Give OSD Name (raw 04 46)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC Playback1 -> AudioSystem : Give Physical Address (raw 45 83)
CEC AudioSystem -> Playback1 : Give OSD Name (raw 54 46)
CEC Playback1 -> AudioSystem : Get CEC Version (raw 45 9F)
CEC Playback1 -> AudioSystem : Set OSD Name [41 70 70 6C 65 20 54 56] (raw 45 47 41 70 70 6C 65 20 54 56)
CEC Playback1 -> AudioSystem : Give System Audio Mode Status (raw 45 7D)
CEC Playback1 -> TV : Give Device Power Status (raw 40 8F)
CEC Playback1 -> TV : Give Device Vendor ID (raw 40 8C)
CEC TV -> Broadcast : Device Vendor ID [00 00 00] (raw 0F 87 00 00 00)
CEC AudioSystem -> Playback1 : CEC Version [05] (raw 54 9E 05)
CEC TV -> AudioSystem : Active Source [00 00] (raw 05 82 00 00)
This is one of the first logs made from the exact setup described earlier. The devices are listed as:
- Playback1 - The Apple TV
- AudioSystem - The amplifier
- TV - The projector
From this and subsequent logs, the analysis - mostly performed by Claude - led to an interesting discovery. The Apple TV signals its shutdown in different ways and sometimes does not signal at all.
These are the shutdown signals we detected on the CEC wire:
- “Inactive Source (0x9D)” from the Apple TV
- “Standby (0x36)” from the Apple TV
- Nothing from the Apple TV but “System Audio Mode Status = off (0x7E)” from the amplifier
- Nothing from the Apple TV but “Report Power Status = Standby” from the amplifier
Luckily, the amplifier always shuts down when the Apple TV does. It detects the Apple TV shutdown from the audio or video feed disappearing. The amplifier sends its shutdown messages before it goes.
The result of this analysis is that the firmware on the Pico tracks the various events and maintains an internal model it can use to turn the projector off at the correct time. This is still in the testing stage and there may yet be instances where the shutdown is not detected properly. So far though, it is looking good.
Installing
Installing the hardware is easy. The HDMI ‘monitor’ can plug into any HDMI port on the amplifier. The CEC signal is the same on all the ports. The amplifier provides power to the Pico via its always-on USB port. The only slight problem was getting the RS232 signal up to the projector. I have two runs of CAT5 network cable going between the amplifier location and the projector ceiling mount. These were for sending the video signal to the projector using CAT5 -> HDMI adapters. They are redundant having been replaced by a fibre-optic HDMI wire. To get our signal from amp to projector, I used one of the runs and some RJ45 to RS232 adapters.

RS232 to RJ45 Adapters
To protect the electronics, I 3D printed a case for the Pico and the HDMI breakout.

3D Printed Cases - Open

3D Printed Cases - With Lids
Conclusion
This project solved a problem I really wanted solving (even if no-one else cares). It was cheap, did not take much time, and I learnt a lot along the way. It is very satisfying to use AI to speed up some of the development.