Announcement

Collapse
No announcement yet.

µVGA-II GFX

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • µVGA-II GFX

    is there any plans for a GFX firmware for the µVGA-II

  • #2


    It's been available for a while now in the downloads area http://www.4dsystems.com.au/downloads/micro-VGA/uVGA-II(GFX)/PmmC/

    The 'front office' guys are a bit behind
    Mark

    Comment


    • #3


      What does the GFX firmware do for the uVGA II ? I'm a bit confused with all the mixing and matching of modules and firmware, but this should be no surprise due to the large number of products.

      Also, can the uVGA II serial module be programmed to act like a mini embedded computer, so to speak. Since it's got some I/O pins and video, I thought maybe the firmware could be replaced with such a program that makes the module nonreliant on a microcontroller connect to the serial header. Just a project idea.
      --
      Roger Taylor

      Comment


      • #4


        Also, can the uVGA II serial module be programmed to act like a mini embedded computer, so to speak.
        Well, in a nutshell that's what GFX is
        Mark

        Comment


        • #5


          I'm having fun with the uVGA II and am swapping out the GFX and SGC firmwares to explore the differences.

          It looks like the GFX configured module boots up to whatever 4DGL program you have loaded into Flash memory, and the SCG mode only runs from commands sent through the serial connection?

          I originally bought the uVGA II to add a 2nd monitor to a vintage computer that has limited graphics, but if I can make the module boot up with a custom 4DGL program that listens and responds using the 8/16 I/O pins plus the 5-pin header serial lines, I can have some real fun with this thing.

          It seems that even without using the VGA port, a mean system can be made using the 16 I/O lines.

          What speed (in MHZ or MIPS) does the Picaso run? I'd like to try to write an emulator for a 2mhz 80's computer and have the uVGA II boot up pretending it's the computer.
          --
          Roger Taylor

          Comment


          • #6


            is there any manual for this?

            How do I change the Resolution via 4DGL

            Can I2C be used like the displays?

            Karl

            Comment


            • #7


              The manual is effectively the standard 4DGL manual (i.e. I2C works 'as normal')

              There should be a few examples, one of them that shows changing the resolution. I'll try and get them put up.
              Mark

              Comment


              • #8


                That would be great - can you reply with a link when its sorted?

                Comment


                • #9


                  Any Info? - need to change resolution - Help Please

                  Comment


                  • #10


                    I want to get this to you ASAP, but I don't have a uVGAII handy so I can't test what I'm typing just now.

                    The following is missing from the current FNC files and will be needed
                    #CONST
                    //--------------------------------------------------------------------------//
                    // SSD1963 Driver Registers
                    //--------------------------------------------------------------------------//
                    SOFT_RESET 0x01
                    SET_DISPLAY_OFF 0x28
                    SET_DISPLAY_ON 0x29
                    SET_COLUMN_ADDRESS 0x2a
                    SET_PAGE_ADDRESS 0x2b
                    WRITE_MEMORY_START 0x2c
                    READ_MEMORY_START 0x2e
                    SET_ADDRESS_MODE 0x36
                    SET_SCROLL_START 0x37
                    SET_LCD_MODE 0xb0
                    SET_HORZ_PERIOD 0xb4
                    SET_GPIO_CONFIG 0xb8
                    SET_VERT_PERIOD 0xb6
                    SET_GPIO_VALUE 0xba
                    SET_POST_PROC 0xbc
                    SET_PWM_CONFIG 0xbe
                    SET_PLL 0xe0
                    SET_PLL_MN 0xe2
                    SET_LSHIFT_FREQ 0xe6
                    SET_PIXEL_DATA_INTERFACE 0xf0
                    #END
                    #CONST
                    SCREEN_RES 32
                    DISPLAY_PAGE 33
                    READ_PAGE 34
                    WRITE_PAGE 35
                    #END


                    The 'inbuilt' resolutions are:-
                    gfx_Set(SCREEN_RES,0) ; // 320x240, initial setting
                    gfx_Set(SCREEN_RES,1) ; // 640x480
                    gfx_Set(SCREEN_RES,2) ; // 800x480

                    To set a custom resolution the following is required
                    // longhand resolution changes
                    disp_WriteControl(SET_DISPLAY_OFF) ;
                    disp_WriteControl(SET_LSHIFT_FREQ) ;
                    disp_WrGRAM(0x03) ;
                    disp_WrGRAM(0x93) ;
                    disp_WrGRAM(0x89) ;
                    disp_WriteControl(SET_LCD_MODE) ;
                    disp_WrGRAM(0x00) ;
                    disp_WrGRAM(0x20) ;
                    disp_WrGRAM(0x03) ;
                    disp_WrGRAM(0x1F) ;
                    disp_WrGRAM(0x01) ;
                    disp_WrGRAM(0xDF) ;
                    disp_WrGRAM(0x00) ;
                    disp_WriteControl(SET_HORZ_PERIOD) ;
                    disp_WrGRAM(0x04) ;
                    disp_WrGRAM(0x1F) ;
                    disp_WrGRAM(0x00) ;
                    disp_WrGRAM(0xD8) ;
                    disp_WrGRAM(0x7F) ;
                    disp_WrGRAM(0x00) ;
                    disp_WrGRAM(0x00) ;
                    disp_WrGRAM(0x00) ;
                    disp_WriteControl(SET_VERT_PERIOD) ;
                    disp_WrGRAM(0x01) ;
                    disp_WrGRAM(0xFB) ;
                    disp_WrGRAM(0x00) ;
                    disp_WrGRAM(0x1B) ;
                    disp_WrGRAM(0x03) ;
                    disp_WrGRAM(0x00) ;
                    disp_WrGRAM(0x00) ;
                    pause(50) ;
                    disp_WriteControl(SET_DISPLAY_ON) ;
                    gfx_Set(X_MAX,799) ;
                    gfx_Set(Y_MAX,479) ;
                    gfx_Cls() ;
                    gfx_Set(SCREEN_MODE, PORTRAIT);
                    If you want to create custom resolutions and would like to avoid the brain failure inherent in trying to work it all out from the driver docs, do the following:-

                    Download DISP and the uVGAII header file for SGCLoad it up and go to the 'Resolutions' TabCreate the resolution you want to try, ideally from a sample you have found somewhere, all figures in in Pixels (or Lines)Save the file.Edit the resulting header file and navigate after SYSDATA7, the first line is the file comment, then comes the X resoultions as Text, then the Y, then the data we need to send to the display.Find the line that correspods to the resolution you just entered (They are in the same order as the X and Y resolutionsIgnore the first 8 bytesThe next 3 bytes are the SET_LSHIFT_FREQ parameters aboveThe next 4 bytes are parameters 3-6 of SET_LCD_MODE (i.e. parameters 1, 2 and 7 are unchanged)The next 5 bytes are parameters 1-5 of SET_HORZ_PERIODThe next 5 bytes (also the last 5) are parameters 1-5 of SET_VERT_PERIODUpdate X_MAX and Y_MAX valuesAnd you should be ready to go. IF you want to do a lot of fiddling you might like to consider swapping to SGC until you get it 'right' (as long as the learding curve doesn't faze you).

                    If you want to create a 'crazy' resolution, say 640x225, I'd start with 640x480, reduce the Y pixels to 225 and increase the Y back and front porches to keep the sum the same. What it ends up looking like, well there's only one way to find out. Some monitors look pretty ugly until you press the 'optimize' button, some move the image around on the screen thinking they know better, you just have to experiment a bit.

                    Remember to try putting a pixel in each corner to make sure that the monitor is showing what it is supposed to.
                    Mark

                    Comment


                    • #11


                      Do you have an example I can try - I can't even get "Hello" to work

                      Do i need to turn display on / anything with the pages ?

                      Comment


                      • #12


                        Um, not with you, as is it would work in 320x240 out of the box.

                        gfx_Set(SCREEN_RES,1) ; should 'just work' (the screen will be blank)

                        The custom stuff is more complicated.

                        Which one are you haviny trouble with?
                        Mark

                        Comment


                        • #13


                          Updated firmware to GFX
                          expected to see version number like LCD's
                          tried a simple print("Hello")

                          got nothing - had it working on the SGC firmware so guess screen / lead are OK

                          Comment


                          • #14


                            So that was the PmmC from here?

                            http://www.4dsystems.com.au/downloads/micro-VGA/uVGA-II(GFX)/PmmC/

                            You should see version number like LCDs

                            I'll check the PmmC first thing in the morning
                            Mark

                            Comment


                            • #15


                              reloaded PMMC and I do now - but only for the about 5 seconds and nothing on a reset - will try again :-)

                              Comment

                              Working...
                              X