Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 01:48 25 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : PicoMiteHDMI framebuffer thoughts

     Page 2 of 4    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 05:23pm 15 Aug 2024
Copy link to clipboard 
Print this post

One more question: Does the PicoMiteHDMI support a standard Pico2 or should it be based on the Pimoroni PGA2350? A motherboard for that could be easily designed to include HDMI, USB-A, USB-C, SDcard, RTC, + lot's of I.O. using through hole modules (Mixtel90?). It has the added advantage of 16Mb flash and 8Mb of PSRAM, not especially fast but great for lots of framebuffers like the CMM2.
I could then design a SMD version for when the raw chips become available to be built by JLC
 
PhenixRising
Guru

Joined: 07/11/2023
Location: United Kingdom
Posts: 857
Posted: 05:39pm 15 Aug 2024
Copy link to clipboard 
Print this post

Pimoroni, Pimoroni, Pimoroni. Thing is wicked.

I was also thinking of Mixtel90  
 
Sasquatch

Guru

Joined: 08/05/2020
Location: United States
Posts: 362
Posted: 05:48pm 15 Aug 2024
Copy link to clipboard 
Print this post

My thought was to use the Pi Pico2 with existing VGA board designs and firmware.  Perhaps a re-compile with a few tweaks to use the floating point features and extra RAM.  

When my pico2s arrive, I plan to test the "pin and code compatible" claims with the current PicoMite betas as well as the Doom port etc.

I also have some of the Pimoroni modules "in the mail" as they say!
Edited 2024-08-16 03:49 by Sasquatch
-Carl
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6781
Posted: 05:50pm 15 Aug 2024
Copy link to clipboard 
Print this post

At the moment my design is round a standard Pico, so a Pico 2 should drop in. USB is provided by a little 4-port hub board found on AE and all USB-A sockets. I haven't got room for all four ports though. Not with all the other bits I've squeezed in. :) The Pico's USB-C port isn't accessible from outside the case as the hub plugs into it. There is a USB-C to TTL converter for the 5V and console.

The PGA2350 would be an interesting alternative even though it's almost twice the price. I'll have a look at it.

Yay!! My Pico 2 boards have shipped. :)
Edited 2024-08-16 03:54 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 05:54pm 15 Aug 2024
Copy link to clipboard 
Print this post

This has been useful already. Here is my current thinking

Reserve 640x480x4bits for graphics use (150Kb) allowing significant increase in program size and no constraints on performance optimisations (code in RAM etc.)

This can be used as follows:

Mode 1:
1 x 640x480x2colour framebuffer (1 bit per pixel) with tiles. Tiles can be any one of 256 colours minimum tile size of 2x4 pixels - user selectable - everything defaults to give compatibility with current mode 1

Mode 2:
4 x 320x240x16colour framebuffers (4 bits per pixel) out of a pallet of 256, does away with having to create the extra framebuffer and layer buffers in user memory and gives another general purpose framebuffer - everything defaults to give compatibility with current mode 2.
Existing FRAMEBUFFER CREATE/LAYER commands enable rather than having to create saving big chunks of user variable space.

Mode 3:
1 x 640x480x16colours (4 bits per pixel) out of a pallet of 256 colours

Mode 4:
2 X 320x240x256colour (4 bits per pixel) framebuffers, pages can be swapped, copied or merged, additional framebuffer could be created in user memory - memory allowing (75Kb)

Mode 5:
2 x 640x480x4colour framebuffers (2 bits per pixel) out of a pallet of 256  pages can be swapped, copied or merged, additional framebuffer could be created in user memory - memory allowing (75Kb)



  Quote   I plan to test the "pin and code compatible" claims with the current PicoMite betas


They won't and can't run - need to be re-compiled and variances fixed

Edited 2024-08-16 03:59 by matherp
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4223
Posted: 05:59pm 15 Aug 2024
Copy link to clipboard 
Print this post

At the moment I have no indication tha Peter wants to support VGA on the pico2.
It would be completely logical to keep the 2040 for VGA, and use the 2350 for HDMI applications.

Cluttering the 2350 with VGA will make debugging a long story, especially with the potential new modes and backward compatibility and concersions under the hood.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Sasquatch

Guru

Joined: 08/05/2020
Location: United States
Posts: 362
Posted: 06:07pm 15 Aug 2024
Copy link to clipboard 
Print this post

  matherp said  This has been useful already. Here is my current thinking

Reserve 640x480x4bits for graphics use (150Kb) allowing significant increase in program size and no constraints on performance optimisations (code in RAM etc.)

This can be used as follows:


WOW! This exceeds my wish-list by a large margin!

I expect things may evolve or adapt as required during implementation.
-Carl
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6781
Posted: 06:22pm 15 Aug 2024
Copy link to clipboard 
Print this post

My latest design uses VGA, but it will probably be a minor change to make this one HDMI. That's how I think I've designed it anyway. :) It couldn't do both, it's either one or the other. At the moment anyway...........

If the Pico 2 isn't going to support VGA then I think we need something doing to the version numbering of MMBasic so that it isn't attempted. Especially by me 'cos I'm very easily confused nowadays...  :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2350
Posted: 06:36pm 15 Aug 2024
Copy link to clipboard 
Print this post

  matherp said  720x400 is an old vesa standard and I can find no evidence that it has ever been supported over hdmi. Lots of posts from people who want vga to hdmi converters for 720x400 and no solutions


works fine for me, on a relatively new 27" philips 1080p monitor over an HDMI connection:



the mode predates VESA, and is a part of the VGA and original BIOS specifications, accessible as modes 2 and 3. i suspect many motherboards would have required it to be supported to use a textmode bios setup.

but, a width of 720 pixels may still be beyond the abilities of the RP2350, and i am just offering it as a suggestion without any expectations; likely i'd be the only person who would use the mode!


cheers,
rob   :-)
Edited 2024-08-16 04:43 by robert.rozee
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 07:19pm 15 Aug 2024
Copy link to clipboard 
Print this post

  Volhout said  At the moment I have no indication tha Peter wants to support VGA on the pico2.
It would be completely logical to keep the 2040 for VGA, and use the 2350 for HDMI applications.

Cluttering the 2350 with VGA will make debugging a long story, especially with the potential new modes and backward compatibility and concersions under the hood.

Volhout

I think making the 2350 vrrsion HDMI only is fine, if you only have a monitor that supports VGA, you can always use a HDMI to VGA dongle, very cheap & work perfectly, I use one on one of my Pies, where the monitor only had DVI or VGA, & DVI was already in use.

Otherwise Peters proposed options a couple of posts back, look good to me, especially as it gives more RAM to MMbasic, but still allows an extra, optional  framebuffer; might even be able to get that Chess program working better, from a couple of years back, seem to remember it was running out of stack, with deeper searches, speed will still be an issue, plus the originator seemed a bit sticky.
Regards Kevin
Edited 2024-08-16 05:31 by Bleep
 
al18
Senior Member

Joined: 06/07/2019
Location: United States
Posts: 205
Posted: 12:40am 16 Aug 2024
Copy link to clipboard 
Print this post

Peter,
I really like the 5 modes you defined. These resolutions line up well with retro computer from the 80’s. The 640 x 480 x 16 color mode should work well for ANSI graphics terminal.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9306
Posted: 01:45am 16 Aug 2024
Copy link to clipboard 
Print this post

The five modes Peter suggests above gets my vote, for what it's worth.

I also agree that the new beast should be HDMI only, and drop the VGA.
As mentioned, you can continue to use the 2024 ports if you need VGA, and HDMI-to-VGA adaptors are easy to find and cheap.

The ONLY question I have about using HDMI, is the licensing.
VGA is free for anyone to use, but any product or PCB that uses HDMI, usually requires a license from the HDMI association, if you are going to SELL the boards.

Has that changed?
I have not looked it up for a few years now, but if that rule is still in effect, then I would not be able to sell the new beast, if the HDMI output is NOT licensed, and also last time I looked, the HDMI license is VERY expensive.

You can, naturally, use HDMI on your own boards and designs without worrying about that, but the moment someone like myself wants to SELL boards with an HDMI connector on them, that licensing comes into affect.

I'm just hoping that I am out of touch, and perhaps the HDMI association have relaxed the rules in that department in recent years.

Can anyone comment on that?
Smoke makes things work. When the smoke gets out, it stops!
 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2350
Posted: 02:06am 16 Aug 2024
Copy link to clipboard 
Print this post

the RP2350 will output DVI over the physical HDMI connection, which attracts no licensing requirements. the only limitation is that you can not label it as HDMI or use the "HDMI" logo. calling it 'DVI over HDMI' should be fine.

DVI is free, and signal compatibility with DVI is a part of the HDMI specifications. ie, an HDMI monitor needs to also support a DVI signal if presented with it.


cheers,
rob   :-)
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9306
Posted: 02:10am 16 Aug 2024
Copy link to clipboard 
Print this post

Ahhhh - that sounds OK then.  I had forgotten about the DVI standard being backwards-compatible with HDMI.  Good to know.  
Smoke makes things work. When the smoke gets out, it stops!
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1113
Posted: 11:44am 16 Aug 2024
Copy link to clipboard 
Print this post

Just a thought for the resolutions with high memory requirements to save the memory for a 2nd framebuffer and layer:

How about an extended classic sprite routine (or Gui Bitmap)where you can specify a mask at the same time (binary 1 pixel remains visible, 0 for deleting the pixel) , so when called, the background of the sprite would then be saved away, Mask would be logically gated to then the area on the screen with AND and then the actual sprite data would be ORed with it.  
If the sprite is deleted or moved, the originally saved memory is written back to the screen.
Sprite:

Mask:


Background:


Background AND Mask


OR ing the Sprite





just an idea
Edited 2024-08-16 22:24 by Martin H.
'no comment
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 04:49pm 16 Aug 2024
Copy link to clipboard 
Print this post

Demo of the five video modes on youtube
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 509
Posted: 05:08pm 16 Aug 2024
Copy link to clipboard 
Print this post

Looks great, thanks Peter, the colours used can be any of the 255 possible ie rgb332, so somewhere you have to define the mapping, of say the 16 colours to 16 of the 255 possible?
When will there be a alpha, ;-) looks like my new shiny pico will arrive tomorrow, (or the next day) depending on postie. ;-)
Regards Kevin.
 
vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1109
Posted: 05:29pm 16 Aug 2024
Copy link to clipboard 
Print this post

I've found that uneven numbers of bits per pixel colour to be a bit of a pain, particularly with respect to grey scale.

rgb332 does not work well for shades of grey.

rgbi2222 is much nicer, if possible. The 2 i bits are added as the 2 lowest bits to all three colours. So the 4 bits of red = rrii, green = ggii and blue = bbii. Is that possible to implement?
Visit Vegipete's *Mite Library for cool programs.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4223
Posted: 06:12pm 16 Aug 2024
Copy link to clipboard 
Print this post

Hi Pete,

In essence that is in line with what I proposed. RGB222 (64 colors) is good for greyscale. The ii bits are a nice bonus.

I am actually creating a hardware "pallette" for the VGA mite that is RGBI 1111.
3x390 ohm from GP18,20,21 to RGB, and 3x820 ohm from RGB to combined GP19.
That gives (a very close approximation of) the Windows 95 16 color palette.

Using jumpers right now, but I like it so much I may use a small DPDT relay, controlled fro pin GP25. On the VGA pico that pin is useless, since the audio and video outputs pull so much current the power supply is in continuous mode -or- in my case I use a linear regulator.

Regards,

Volhout
Edited 2024-08-17 04:19 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9110
Posted: 07:16pm 16 Aug 2024
Copy link to clipboard 
Print this post

I can do RGB222 but nothing more complex

 
     Page 2 of 4    
Print this page
© JAQ Software 2024