Good small display recommendations anyone?

Anything related to hardware, devices, drivers and how to use them with Ultibo.
Gavinmc42
Posts: 1656
Joined: Sun Jun 05, 2016 12:38 pm
Location: Brisbane, Australia

Re: Good small display recommendations anyone?

Postby Gavinmc42 » Thu Mar 28, 2019 1:35 am

And not as cheap as the generic 5 inch HDMI LCD screens.

What are they like those 5" 1920x1080 HDMI displays? only seem pictures.

Seems like lots of Chinese supplies of the 5+" display/HDMI converter PCB kit are around now.
hansotten
Posts: 64
Joined: Thu Feb 04, 2016 7:07 am

Re: Good small display recommendations anyone?

Postby hansotten » Thu Mar 28, 2019 9:11 am

Gavinmc42 wrote:
And not as cheap as the generic 5 inch HDMI LCD screens.

What are they like those 5" 1920x1080 HDMI displays? only seem pictures.

Seems like lots of Chinese supplies of the 5+" display/HDMI converter PCB kit are around now.


For 1920x1080 prices go up to over US$120. Reviews on amazon indicate quality is not bad, viewing angle can be small, build quality mediocre, as they are used a portable monitor for video equipment.

For the OP's question 800x480 HDMI may be enough, price and quality matches small size.
Gavinmc42
Posts: 1656
Joined: Sun Jun 05, 2016 12:38 pm
Location: Brisbane, Australia

Re: Good small display recommendations anyone?

Postby Gavinmc42 » Thu Mar 28, 2019 11:42 am

Those Sharp based 5.9" are 1920x1080 IPS. IPS have 150? viewing angle, but touch probably make it worse.
Kits with the PCB seem to be about $40USD (in qty?) but do I trust the Chinese sources?
Wish I was visiting Shenzhen, Hong Kong was great in the old days but Shenzhen is the place to be now.

I have yet to buy anything on Alibaba etc.
If I ever win lotto I'm moving there, geek heaven :D

Anyway I want to make a Pi laptop so need bigger display.
Recycle dead battery laptop screen?
5.5" would be good Pi tablet screen ;)
Poi
Posts: 36
Joined: Mon Jan 07, 2019 11:57 pm

Re: Good small display recommendations anyone?

Postby Poi » Thu Mar 28, 2019 10:27 pm

I have been looking at more of these things and I think I know what I want now, the problem is I am not sure it exists.

I have seen a few HDMI displays that can be connected directly to the Pi through the GPIO pins for power, that would be very useful, because I really would like to avoid having to connect 2 power adapters, one for the Pi and another one for the display seems very bulky. The problem is that all the displays that have this functionality, don't have a headphone jack or audio connectors for that matter. So any audio data coming from the HDMI port of the Pi is pretty much lost. That is less than ideal.

I have seen HDMI displays which do have a headphone jack and/or audio connectors, but those can't be connected to the Pi for power, they need their own power adaptor.

Have you guys seen an HDMI display that can be connected to the power pins of the Pi and also have audio output capabilities? Maybe what I really need to do is get one of the Pi models that come with a headphone jack and be done with the problem :P
hansotten
Posts: 64
Joined: Thu Feb 04, 2016 7:07 am

Re: Good small display recommendations anyone?

Postby hansotten » Fri Mar 29, 2019 9:55 am

Poi wrote: Maybe what I really need to do is get one of the Pi models that come with a headphone jack and be done with the problem :P


All Pi's have analog audio out (PCM, acceptable mediocre quality) . Except for the Zero its on the combined video/audio jack. Even the Zero can have audio out if you solder on some resistors/capacitors.
Poi
Posts: 36
Joined: Mon Jan 07, 2019 11:57 pm

Re: Good small display recommendations anyone?

Postby Poi » Fri Apr 05, 2019 10:46 pm

I just got a new HDMI display and it's pretty cool, getting it up and running was painless and the refresh rate is really good! Can do a regular while loop to update the whole framebuffer effortlessly.

Still no vsync support thought, which is a bit of a bummer, have to set a fixed wait time between updates to simulate 60 FPS, it looks like it works just fine, so it's no biggie.

I did check the values of all the framebuffer flags, just to see what it looked like compared to the other display I have, and there is one thing which I find a little bit puzzling.

FRAMEBUFFER_FLAG_VIRTUAL outputs True, but FRAMEBUFFER_FLAG_OFFSETX and FRAMEBUFFER_FLAG_OFFSETY output False.

What is the deal with that? I can set a virtual size, but can't use offsets? What is the point then? Given the small test I did updating the whole screen and animating a moving box, it doesn't seem like I am going to need a back buffer anyway, but I still found those results a little bit odd.
User avatar
Ultibo
Site Admin
Posts: 2280
Joined: Sat Dec 19, 2015 3:49 am
Location: Australia

Re: Good small display recommendations anyone?

Postby Ultibo » Sat Apr 06, 2019 3:42 am

Poi wrote:Still no vsync support thought, which is a bit of a bummer, have to set a fixed wait time between updates to simulate 60 FPS, it looks like it works just fine, so it's no biggie.

I did check the values of all the framebuffer flags, just to see what it looked like compared to the other display I have, and there is one thing which I find a little bit puzzling.

FRAMEBUFFER_FLAG_VIRTUAL outputs True, but FRAMEBUFFER_FLAG_OFFSETX and FRAMEBUFFER_FLAG_OFFSETY output False.

What is the deal with that? I can set a virtual size, but can't use offsets? What is the point then?

I'm not quite sure that I understand your results, if the display is HDMI then it should be using the BCM270x framebuffer driver (which uses the VC4 built in framebuffer) which always supports Vertical Sync, Offset X and Offset Y.

Can you provide some more information to help clarify what you are seeing?
Ultibo.org | Make something amazing
https://ultibo.org
Poi
Posts: 36
Joined: Mon Jan 07, 2019 11:57 pm

Re: Good small display recommendations anyone?

Postby Poi » Sat Apr 06, 2019 11:14 am

I printed out to a console window all the properties of the default framebuffer device to see what was available in this new display. I used this program. Commented next to each console write line are the values I get.

Code: Select all

program test;

{$mode delphi}{$H+}

uses
   RaspberryPi,
   GlobalConfig,
   GlobalConst,
   GlobalTypes,
   Platform,
   Threads,
   SysUtils,
   Classes,
   Ultibo,
   Devices,
   Framebuffer,
   Console;

var
   ConsoleHandle:THandle;
   FramebufferDevice:PFramebufferDevice;
   FramebufferProperties:TFramebufferProperties;
begin
   FramebufferDevice:=FramebufferDeviceGetDefault();
   FramebufferDeviceGetProperties(FramebufferDevice, @FramebufferProperties);

   ConsoleHandle:=ConsoleWindowCreate(ConsoleDeviceGetDefault,CONSOLE_POSITION_FULLSCREEN,True);

   ConsoleWindowWriteLn(ConsoleHandle, 'Hello');

   ConsoleWindowWriteLn(ConsoleHandle, 'DEPTH: ' + FramebufferDepthToString(FramebufferProperties.Depth)); // FRAMEBUFFER_DEPTH_32
   ConsoleWindowWriteLn(ConsoleHandle, 'ORDER: ' + FramebufferOrderToString(FramebufferProperties.Order)); // FRAMEBUFFER_ORDER_RGB
   ConsoleWindowWriteLn(ConsoleHandle, 'MODE: ' + FramebufferModeToString(FramebufferProperties.Mode)); // FRAMEBUFFER_MODE_ENABLED
   ConsoleWindowWriteLn(ConsoleHandle, 'ROTATION: ' + FramebufferRotationToString(FramebufferProperties.Rotation)); // FRAMEBUFFER_ROTATION_0

   ConsoleWindowWriteLn(ConsoleHandle, 'DMA: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_DMA), True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'MARK: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_MARK), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'COMMIT: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_COMMIT), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'BLANK: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_BLANK), True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'CACHED: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_CACHED), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'SWAP: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_SWAP), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'BACKLIGHT: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_BACKLIGHT), True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'VIRTUAL: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_VIRTUAL), True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'OFFSETX: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_OFFSETX), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'OFFSETY: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_OFFSETY), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'SYNC: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_SYNC), True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'CURSOR: ' + BoolToStr(Boolean(FramebufferProperties.Flags and FRAMEBUFFER_FLAG_CURSOR), True)); // False

   ThreadHalt(0);
end.


The display is this one https://www.waveshare.com/4inch-hdmi-lcd.htm and I am using a Pi Zero W.
User avatar
Ultibo
Site Admin
Posts: 2280
Joined: Sat Dec 19, 2015 3:49 am
Location: Australia

Re: Good small display recommendations anyone?

Postby Ultibo » Sat Apr 06, 2019 11:13 pm

Poi wrote:I printed out to a console window all the properties of the default framebuffer device to see what was available in this new display. I used this program. Commented next to each console write line are the values I get.

Okay I see, the Framebuffer flags is a LongWord (32 bit) value and Boolean is declared as a byte (8 bits) so casting the result of a logical AND to a Boolean will produce a pretty much undefined result.

The better option is to use an expression that produces a boolean result like this:

Code: Select all

   ConsoleWindowWriteLn(ConsoleHandle, 'DMA: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_DMA) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'MARK: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_MARK) <> 0, True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'COMMIT: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_COMMIT) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'BLANK: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_BLANK) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'CACHED: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_CACHED) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'SWAP: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_SWAP) <> 0, True)); // False
   ConsoleWindowWriteLn(ConsoleHandle, 'BACKLIGHT: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_BACKLIGHT) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'VIRTUAL: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_VIRTUAL) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'OFFSETX: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_OFFSETX) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'OFFSETY: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_OFFSETY) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'SYNC: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_SYNC) <> 0, True)); // True
   ConsoleWindowWriteLn(ConsoleHandle, 'CURSOR: ' + BoolToStr((FramebufferProperties.Flags and FRAMEBUFFER_FLAG_CURSOR) <> 0, True)); // True

That should give you the results shown in the comment at the end of each and matches with the framebuffer flags value which is 0x00000FDD
Ultibo.org | Make something amazing
https://ultibo.org
Poi
Posts: 36
Joined: Mon Jan 07, 2019 11:57 pm

Re: Good small display recommendations anyone?

Postby Poi » Sun Apr 07, 2019 7:35 pm

Ah, my mistake, still need to practice with pascal a bit more.

Return to “General”

Who is online

Users browsing this forum: No registered users and 0 guests