NEW GXP Standard

I’m just updating some boards that I’m making to incorporate the new GXP header. I had previously an “S” an “R” a “G” a “B” and a "AIT"
In rolling all of these into a “GXP” Header I’ve noticed some odd pieces of the puzzle. For instance, comparing it to the cobra 2. The “Touch_XR” and “Touch_YD” Pins are not used. Neither is the backlight pin73 used. How does the display still function without these pins incorporated into the header?

Thanks in advance.

If you take a look at the Newhaven Display board you will likely see how they have implemented to GXP interface. The GXP document itself is not very helpful in indicating which pins are which but this schematic does by reverse engineering it.

https://www.ghielectronics.com/downloads/schematic/Display_NHVN_Module_SCH.pdf

Thanks for pointing out that schematic. I hadn’t found it yet. I’m Still confused comparing these two different schematic’s.

https://www.ghielectronics.com/downloads/schematic/FEZ_Cobra_III_SCH.pdf

https://www.ghielectronics.com/downloads/schematic/Display_NHVN_Module_SCH.pdf

According to the cobra schematic, 24 and 26 are the CAN BUS Lines. But according to the NHVN schematic those to pins need to be Touch_YD and Touch_XR.

This leads me to two theory’s;

  1. Touch_YD and Touch_XR are not important or used.
  2. Or, the GXP Bridge, Cobra 3 and T43 modules would not all work together. Because the Cobra 3 does not utilise Touch_YD and Touch_XR.

It is very confusing what those pins are for and if they’re are used.

Thanks.

@ stotech - https://www.ghielectronics.com/downloads/man/GXP%20Pinout.pdf is the definitive GXP pinout. One thing to keep in mind is that the four touch pins are not defined by GXP. Since touch requires two analog and two GPIO, boards that support touch can use any available GPIO and analogs.

The Display NHVN for example uses pins 24, 26, 28, and 30. The first two have GPIO and the last two are analog so it works fine. For the FEZ Cobra III, only YU and XL are exposed on the GXP header. However, in the latest available SDK, you can choose which pins are used for touch so you can set YD and XR to pin 24 and 26 on the GXP header.

1 Like

Woo Hoo!. New board is here, Got me a Newhaven 4.3 cap touch. Ready to rock and roll. Can you give me an example of how to change the designated pins on 24 and 26. Instead of touch yd and xr I use P0.6 and P2.0. I needed CAN else where. As well as a code example, I’ll need to know what firmware and sdk to install I suppose.

Thanks in advance.

Wait a minute, :-[ Do I need them if I’m using capacitive displays?

Power it up and it appears to be working by the backlight. There is about 200ma of draw on the 5v and 3v3 rails. Seems about right. I can’t draw on it though. Here is my code.


public static void Initilise()
        {
            //4.3" Display with capacitive touch

            Display.Width = 480;
            Display.Height = 272;
            Display.OutputEnableIsFixed = false;
            Display.OutputEnablePolarity = true;
            Display.PixelPolarity = false;
            Display.PixelClockRateKHz = 20000;
            Display.HorizontalSyncPolarity = false;
            Display.HorizontalSyncPulseWidth = 41;
            Display.HorizontalBackPorch = 2;
            Display.HorizontalFrontPorch = 2;
            Display.VerticalSyncPolarity = false;
            Display.VerticalSyncPulseWidth = 10;
            Display.VerticalBackPorch = 2;
            Display.VerticalFrontPorch = 2;
            Display.Type = Display.DisplayType.Lcd;

            
            //7" Display with capacitive touch

            //Display.Width = 800;
            //Display.Height = 480;
            //Display.HorizontalSyncPulseWidth = 48;
            //Display.HorizontalBackPorch = 88;
            //Display.HorizontalFrontPorch = 40;
            //Display.VerticalSyncPulseWidth = 3;
            //Display.VerticalBackPorch = 32;
            //Display.VerticalFrontPorch = 13;
            //Display.PixelClockRateKHz = 30000;
            //Display.OutputEnableIsFixed = false;
            //Display.OutputEnablePolarity = true;
            //Display.HorizontalSyncPolarity = false;
            //Display.VerticalSyncPolarity = false;
            //Display.PixelPolarity = false;
            //Display.Type = Display.DisplayType.Lcd;

            if (Display.Save())
            {
                Tools.FileManagement.Log.Print("Rebooting to configure the display", 1);

                PowerState.RebootDevice(false, 0);
            }

        }

        public static void Test()
        {
            Bitmap TTFT = new Bitmap(SystemMetrics.ScreenWidth, SystemMetrics.ScreenHeight);
            byte red = 0;
            int x = 0;
            
            while (true)
            {
                for (x = 30; x < SystemMetrics.ScreenWidth - 30; x += 10)
                {
                    TTFT.DrawEllipse(ColorUtility.ColorFromRGB(red, 10, 10), x, 100, 30, 40);
                    TTFT.Flush();
                    red += 3;
                    Thread.Sleep(10);
                }
            }
        }

if I go to fez config and try to load the display config. it says “not set” and I can see from the log on my sd card that the reboot never takes place. I’m running stable firmware 4.3.7.10.

Solved, don’t ask me how :-[.

How?

:slight_smile: I said don’t ask.

Like because OK!

OK Then. I forgot to call the initialise from my startup.ini file. It wasn’t running the code at all. :wall: