Well, difficult to explain the problem.
I bought two pilots.
Two laptops, each of them is connected to one pilot. Both laptops are duplicating their screen into the hdmi signal.
Laptop 1 has 1920 x 1080, Laptop 2 has 1920 x 1056.
Laptop 1 is displayed perfectly as expected. It uses in chrome (app mode or normal) the full screen ratio.
Laptop 2 is not using the full ratio - instead the screen is blurry, smaller and very tiny. The scaling settings are similar.
Why is that and how can this be fixed?
Regards
- T@tinyuser2022
Addition - i just saw that laptop 2 has a render size of 1280 x 720 while laptop 1 has almost 1440 x 830. Why do they render differently?
- In reply totinyuser2022⬆:David @david2022-11-23 12:17:59.576Z
Hi @tinyuser2022, sorry that you have this display issue across different laptops.
Can you post a screenshot of the problem display? It would be good to see what the issue is before I try and determine the issue.
And are the two laptops identical?
- TIn reply totinyuser2022⬆:@tinyuser2022
HP Elitebook and Lenovo T14
HP is great only Lenovo isnt. - T
- David @david2022-11-24 12:27:11.596Z
Thanks for the screenshots!
It could be that the HP and Lenovo laptops negotiated different display settings with your TinyPilots. Can you go into the Windows display settings and try to change the resolution and refresh rate on the Lenovo (using the connected TinyPilot)? 1920x1080 at 30Hz is a good option.
I took a look at the configuration options of the Lenovo T14 and there is one config that comes with a higher-resolution display (2560x1440). If your model has this display, the cause might be fractional scaling carrying over to the TinyPilot.
- TIn reply totinyuser2022⬆:@tinyuser2022
I changed to settings so that i close the notebook and only the external display "tinypilot" is connected. When i change the resolution to a higher version i see this:
- T@tinyuser2022
So i debugged a little bit around - the scrollbars are still visible when i just open the streaming link inside of the html page. I found an article about
remote-screen-img size but it seems like this article is somehow outdated. So why is the tinypilot streaming in a smaller window with scrollbars?
How can this behavior be changed?- David @david2022-11-28 12:49:58.674Z
Thanks for the info! This behaviour is quite odd - I haven't seen it before.
Can I ask what browser you're using? Could you try a different browser to see if the behaviour is the same?
Could you also share a log from your TinyPilot with the Lenovo connected for me to review? On your TinyPilot's web interface, navigate to System > Logs and then click Get Shareable URL. Then paste the link in your reply.
- TIn reply totinyuser2022⬆:@tinyuser2022
i tested it also with another browser - basically i am using chrome. Same result.
- TIn reply totinyuser2022⬆:@tinyuser2022
i tried on a MAC and on a Windows system - same. The scrollbars are coming from the tinybox - the jpeg stream does already included the scrollbar.
- TIn reply totinyuser2022⬆:@tinyuser2022
This link: https://x.x.x.x/stream?advance_headers=1 is already with a scrollbar. There is no image width or height on the browser which i can change. Therefore this stream is generated on the tiny and need to be "fixed/changed" on the box itself. I guess that the CSS for the output stream is wrong. But i dont know how to check it - what is the real input size versus the output size.
- David @david2022-11-28 19:53:38.216Z
Thanks for the logs and for trying a different browser / clients.
It looks like the TinyPilot display could be 'stuck' at 720p. Your log suggests that the output from the target machine is 720p, and TinyPilot's display looks to be 720p in those images you shared too.
Is it possible to manipulate the scroll bars to scroll up and down the screen? And are the scroll bars part of the target machine's UI? I understand that they're part of the image from https://tinypilot.local/stream, but TinyPilot doesn't alter the image or add any scrollbars, so I just want to check that they're part of the target machine's UI.
Can you tell me what the output resolution is from the target machine from it's display settings? I wonder if there is a mismatch? e.g. the target machine outputs at 1080p with scrollbars to a 720p display (the TinyPilot). If that's the case, completely disconnect the TinyPilot, power off both machines, and then reconnect & power on. That should get both devices to renegotiate their display preferences and hopefully help with this issue.
- TIn reply totinyuser2022⬆:@tinyuser2022
Reboot no success - laptop screensize is 1920 x 1056.
- TIn reply totinyuser2022⬆:@tinyuser2022
no there is no way to change the behavior on the browser side. The scrollbar is not created by the browser itself. Dont know how it works.... If i change the padding it stretches the but it doesnt change the scrollbar itself. So the scrollbar is part of the created from the tiny.
- TIn reply totinyuser2022⬆:@tinyuser2022
yes i can use the scrollbars to scroll the windows up and down or left to right and no they are not part of the original screen.
- TIn reply totinyuser2022⬆:@tinyuser2022
Update: you are right - on the laptop is running oracle and the windows is a vm of oracle. That means the scrollbox is coming from that oracle hypervisor. But the scrollbox is only coming on the tiny. When i plugin a regular screen i see the correct size. So the negotiation between the tiny and the laptop is not correct. The laptop things it is a small screen connected to the hdmi port.
- David @david2022-11-29 12:37:35.673Z
Thanks for the update! A virtual machine adds an extra layer of complexity.
I suspect the issue is that TinyPilot and the target computer are negotiating 720p - not TinyPilot and the VM. So changing the resolution of the VM doesn't trigger TinyPilot to update its display size. The solution here is to change the display settings on the laptop (instead of the VM).
Are you able to change the display settings on the laptop to 1080p? It's unclear from your posts which operating system the laptop is running, but here are the instructions for Windows 10. Other operating systems are similar. I recommend 1080p at 30Hz if that option is available.
- TIn reply totinyuser2022⬆:@tinyuser2022
Its a Linux Hypervisor - no you can not change the settings it is autodetecting the monitor. As i wrote - connecting an external monitor will bring up a larger resolution. So how can i force the tiny to run with a larger resolution?
- David @david2022-11-29 16:28:10.473Z
I think changing your TinyPilot's EDID will help here.
This new EDID's preferred resolution is 1080p. So when you connect to the laptop, TinyPilot should negotiate to use 1080p instead of 720p.
Can you SSH into your TinyPilot, and then run the following commands:
EDID="/home/ustreamer/edids/tc358743-edid.hex" # Back up original EDID cp --no-clobber "${EDID}" ~/tc358743-edid.hex.bak # Set the new EDID echo -ne "" | sudo tee "${EDID}" && \ echo '00ffffffffffff0052628888008888882d1e0103' | sudo tee -a "${EDID}" && \ echo '800000781aee91a3544c99260f50547fef8081c0' | sudo tee -a "${EDID}" && \ echo '8140810081809500a9c081406140271f80f07138' | sudo tee -a "${EDID}" && \ echo '164038c0350040442100001eec2c80a070381a40' | sudo tee -a "${EDID}" && \ echo '3020350040442100001e000000fc0054696e7950' | sudo tee -a "${EDID}" && \ echo '696c6f740a202020000000fd003b3d0f2e100000' | sudo tee -a "${EDID}" && \ echo '000000000000014702031c734c010204139f2021' | sudo tee -a "${EDID}" && \ echo '223c3d3e3c2066030c00300080e2007f00000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000006b' | sudo tee -a "${EDID}" && \ sudo v4l2-ctl --device=/dev/video0 --set-edid=file="${EDID}" --fix-edid-checksums
If you need to revert to the previous EDID, you can run these commands:
EDID="/home/ustreamer/edids/tc358743-edid.hex" sudo cp ~/tc358743-edid.hex.bak "${EDID}" && \ sudo chown ustreamer:ustreamer "${EDID}" && \ sudo v4l2-ctl --device=/dev/video0 --set-edid=file="${EDID}" --fix-edid-checksums
- TIn reply totinyuser2022⬆:@tinyuser2022
Getting this - somthing wrong ?
pilot@tinypilot:~$ EDID="/home/ustreamer/edids/tc358743-edid.hex"
pilot@tinypilot:~$ cp --no-clobber "${EDID}" ~/tc358743-edid.hex.bak
pilot@tinypilot:~$ echo -ne "" | sudo tee "${EDID}" && \ echo '00ffffffffffff0052628888008888882d1e0103' | sudo tee -a "${EDID}" && \ echo '800000781aee91a3544c99260f50547fef8081c0' | sudo tee -a "${EDID}" && \ echo '8140810081809500a9c081406140271f80f07138' | sudo tee -a "${EDID}" && \ echo '164038c0350040442100001eec2c80a070381a40' | sudo tee -a "${EDID}" && \ echo '3020350040442100001e000000fc0054696e7950' | sudo tee -a "${EDID}" && \ echo '696c6f740a202020000000fd003b3d0f2e100000' | sudo tee -a "${EDID}" && \ echo '000000000000014702031c734c010204139f2021' | sudo tee -a "${EDID}" && \ echo '223c3d3e3c2066030c00300080e2007f00000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000000000000000' | sudo tee -a "${EDID}" && \ echo '0000000000000000000000000000006b' | sudo tee -a "${EDID}" && \ sudo v4l2-ctl --device=/dev/video0 --set-edid=file="${EDID}" --fix-edid-checksums
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: echo: command not found
-bash: sudo: command not found - TIn reply totinyuser2022⬆:@tinyuser2022
ok it works! All is good now. Why is that?
- David @david2022-11-30 12:29:38.228Z
Fantastic!
So the issue was that the VM's output resolution didn't affect the laptop's output resolution. When you changed the resolution of the VM (to 1080p for example), the output from the laptop stayed at 720p - which is why the scroll bars appeared.
When TinyPilot connects to a target machine, it shares its display capabilities. By default, TinyPilot's preferred resolution is 720p, but you can typically change the resolution in the target machine's display settings. Since you couldn't adjust the resolution manually to 1080p, I gave you a new EDID which set TinyPilot's preferred resolution to 1080p. Then, when the laptop and TinyPilot negotiated the output, they agreed on 1080p.
I hope that clears it up! Please let me know if you have any other questions.