Pi4 composite Video output

Hi
We are trying to drive some older TVs with info Beamer stand-alone. I can enable the output (which disables HDMI) and I can see the boot logo coming up nicely. After that info-Beamer crashes saying no usable display found. The OS keeps running, I can ssh in and I see a constant black and burst image coming from the jack connector.
Can you please look into this? Is it possible to use this output?

Can you provide a log with info-beamer started while INFOBEAMER_LOG_LEVEL=4 is set?

This is the output: https://pastebin.com/MADtUFKb
I’ve tried older versions, all of them crashed with the same error.

It seems info-beamer tries to open dispmanx display 2 instead of 3. Can you try adding INFOBEAMER_TARGET_D=3?

CRITICAL ERROR: Invalid display, use 4-6 or lcd/tv/other

Tried with 4-6, basically the same error as the first one with the display number changed.

Ok. I’ll take a look at this tomorrow and keep you updated.

Can you try the 1.0.3 prerelease and INFOBEAMER_TARGET_D=3?

Now, it’s unsupported: https://pastebin.com/5FEVQqVZ

Whoops. Can you try again with 1.0.3.c4dcd7?

[surface.c] default display is 2
[surface.c] opening display 3
[surface.c] DRM device /dev/dri/card1
[surface.c] connectors: 1
[surface.c] encoders: 1
[surface.c] crtcs: 1
[surface.c] found 1 attached devices
[surface.c] Connector 0:
[surface.c] detected Composite display 3 device Unk Composite dis
[surface.c] 720x576@50.000 DMT 1
[surface.c] physical size 0x0mm
[surface.c] property: EDID: 0
[surface.c] property: DPMS: 4
[surface.c] property: link-status: 2
[surface.c] property: non-desktop: 2
[surface.c] property: left margin: 2
[surface.c] property: right margin: 2
[surface.c] property: top margin: 2
[surface.c] property: bottom margin: 2
[surface.c] property: Broadcast RGB: 3
[surface.c] vv— T = tvservice match, D = drm match
[surface.c] D 0, 720x576: 25.02Hz name: FIXED_MODE, clock: 13513 (flag:0x15 phsync pvsync interlace)
[surface.c] No usable mode found
[surface.c] No usable display found!
CRITICAL ERROR: Cannot setup DRM device(s)

It went further now, I have no idea if I’d have to change modes to make this work.

Can you add INFOBEAMER_PRIMARY_MODE=0? The reason this doesn’t work automatically is that dispmanx says 50Hz, while DRM sees 25Hz and the matching doesn’t work. I guess that’s due to interlacing.

Yep, it starts now, however a totally unrelated error causes the node to fail:

[fsp-node] runtime error: kernel:0: attempt to reference missing global ‘load_audio’ aborted
stack traceback:
[C]: in function ‘__index’
kernel: in function ‘create_sandbox’
kernel: in function kernel:0

Then it throws a ton of errors, because gl.setup can’t run.
I didn’t touch the lua stuff for… 6 months(?), unless you changed the API it should work.

Just checked, I don’t use load_audio anywhere.

Hm. That’s unrelated. 1.0.3 wasn’t really ready for release, so that’s another bug. Fixing now…

1.0.3.7d2023 should now work. You should also be able to get rid of INFOBEAMER_PRIMARY_MODE=0 again. Can you try that too?

Both pis became unreachable over ssh… I’ll test this as soon as I can, because I have no 4 pin jacks or displays with composite input at home.

Sounds like a firmware lockup. Do you happen to know the config.txt values you are using to force analog video output?

I think they were unplugged, got broken pipe errors while trying to type.
My slack messages also confirm this.

Ok. I wanted to suggest you use the INFOBEAMER_WATCHDOG=10 parameter next time. That would at least rebooted the device after 10 seconds even if being completely locked up. But that won’t help with that :slight_smile:

It looks like everything’s fine, started up without errors, however I can’t see the screen over ssh, so I’ll just assume it works properly. Thanks!

Nice. Did you also remove the INFOBEAMER_PRIMARY_MODE=0 environment variable?