On Sat, Apr 1, 2023 at 3:17 AM Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > > On 31/03/2023 22:23, Shawn Lindberg wrote: > > On Wed, Mar 29, 2023 at 2:56 PM Shawn Lindberg <shawn.lindberg@xxxxxxxxx> wrote: > >> > >> On Tue, Mar 28, 2023 at 2:58 AM Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > >>> > >>>> cec-ctl -d0 --tv --cec-version-1.4 > >>> > >>> That's wrong, the RPi is a Playback device, not a TV. So use --playback instead. > >>> > >>> You should also add this line to the config.txt: > >>> > >>> hdmi_ignore_cec=1 > >>> > >>> otherwise the RPi's firmware tries to process CEC messages as well. > >> > >> Oh, I thought that the TV/playback command was indicating what sort of > >> device the connected device is. This wasn't clear from the man page, > >> either. Thank you for that. I made the change to config.txt and > >> strangely when the RPi rebooted (I have it set to do this > >> automatically once a day) the projector automatically turned on. I > >> have never experienced this before. > > > > Further update on this. I continue to see the projector automatically > > power on every time the RPi does its daily reboot, so I think I may > > have to remove the hdmi_ignore_cec from the config.txt. Especially > > since I can't figure out how to reliably shut the projector back off > > again. > > From what I can tell, the Raspberry Pi doesn't transmit anything over CEC > at boot time, regardless of whether hdmi_ignore_cec is present or not. > That's with a Raspberry Pi 4B. It might be different for an RPi 3. That is strange. I am also using a Raspberry Pi 4B. I do have the following changes to my config.txt: # uncomment if hdmi display is not detected and composite is being output hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) hdmi_group=1 hdmi_mode=16 # Additional line added to prevent firmware from processing CEC messages. hdmi_ignore_cec=1 > >>>> During this time, if I try to poll the projector, it will succeed. > >>>> However, if I monitor events, after a significant amount of time > >>>> (appears to be greater than 20 minutes, although this is difficult to > >>>> verify because of how long it takes) I go will eventually see the > >>>> following: > >>>> > >>>> Event: State Change: PA: 1.0.0.0, LA mask: 0x0000, Conn Info: yes > >>>> Timestamp: 30981.428s > >>> > >>> Now it appears to be able to read the EDID again and it has a valid > >>> physical address. > >>> > >>>> Transmitted by Specific to Specific (14 to 14): POLL > >>>> Tx, Not Acknowledged (4), Max Retries > >>>> Sequence: 21 Tx Timestamp: 30981.561s Tx, Not Acknowledged (4), Max Retries > >>>> > >>>> Event: State Change: PA: 1.0.0.0, LA mask: 0x4000, Conn Info: yes > >>>> Timestamp: 30981.561s > >>>> Transmitted by Specific to all (14 to 15): REPORT_PHYSICAL_ADDR (0x84): > >>>> phys-addr: 1.0.0.0 > >>>> prim-devtype: tv (0x00) > >>>> Sequence: 22 Tx Timestamp: 30981.696s > >>>> Transmitted by Specific to all (14 to 15): DEVICE_VENDOR_ID (0x87): > >>>> vendor-id: 3075 (0x00000c03) > >>>> Sequence: 23 Tx Timestamp: 30981.835s > >>>> Received from TV to Specific (0 to 14): FEATURE_ABORT (0x00): > >>>> abort-msg: 132 (0x84, REPORT_PHYSICAL_ADDR) > >>>> reason: invalid-op (0x03) > >>>> Sequence: 0 Rx Timestamp: 30981.949s > >>>> Received from TV to Specific (0 to 14): GIVE_OSD_NAME (0x46) > >>>> Sequence: 0 Rx Timestamp: 30982.026s > >>>> Transmitted by Specific to TV (14 to 0): SET_OSD_NAME (0x47): > >>>> name: TV > >>>> Sequence: 24 Tx Timestamp: 30982.137s > >>>> > >>>> After this point in time the standby command will succeed and the > >>>> projector will turn off. It's quite inconvenient to have to wait over > >>>> 20 minutes to turn the projector back off again. Any idea how I can > >>>> shorten this delay? > >>> > >>> There is something weird about your setup and EDID. I can't really tell > >>> what it is. > >> > >> After making the above changes and retesting, the behavior didn't > >> change. I still get the device not connected message and the invalid > >> physical address when I try to do standby. I should also note that one > >> way around this issue is to reboot the RPi. For some reason that seems > >> to get around the long delay in getting the physical address. > >> > >> I don't know what would be strange about my set up other than the > >> projector itself and a couple of lines I uncommented in the config.txt > >> to set the RPi to use HDMI even if the projector is not on at the time > >> of booting. Is there more information I can provide that would allow > >> us to figure out what's going on? If you are correct that for some > >> reason it is just not reading the EDID, is there a way to manually > >> provide that? I don't know much about it, but it's a static property > >> of the device (the projector in this case), right? > > > > Since I noticed that the physical address is populated properly when > > the RPi is booted while the projector is turned on, I did that and > > then tried using the get-edid utility to see if I could read the EDID > > block and save it to a file. Unfortunately, this didn't work, as the > > utility reports that there was no EDID available on any of the buses. > > So once again I am out of ideas. > > The EDID also appears in /sys: > > /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-1/edid > /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-2/edid > > get-edid works fine on my RPi 4B, so if that doesn't work, then it really > looks like there is something weird going on with your projector. Thank you for that. Based on this information with the projector on during boot, I was able to get the following output from parse-edid. I did not copy the entire output, just a snippet to indicate that it is able to get a valid EDID at boot time. cat /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-1/edid | parse-edid Checksum Correct Section "Monitor" Identifier "LG PROJECTOR" ModelName "LG PROJECTOR" VendorName "GSM" # Monitor Manufactured week 33 of 2017 # EDID version 1.3 # Digital Display DisplaySize 1600 900 Gamma 2.20 Option "DPMS" "false" Horizsync 30-83 VertRefresh 58-62 # Maximum pixel clock is 160MHz #Not giving standard mode: 640x480, 60Hz In summary, it seems that at boot time and after waiting an extended amount of time after turning on the projector using the image-view-on command, the EDID file is available and valid. So although my projector may be strange, I am guessing that there must be a way to manually provide the EDID file, force the physical address, or some other workaround/solution. However, I'm certainly no expert in this area so I would defer to those of you who are. Thanks, Shawn