Main Site Documentation

ChipworkX Display screen: I cant get it to display


#1

Iam currently using the chipworkx board with the tft screen. I am having problems debugging to the screen, I just get the default text

ChipworkX
Version 4.1.3.0
Debug USB1
LCD 480x272
IP: 192.168…
MAC 00.01…
Managed heap size: 59768832
Custom heap size: 1048576

I’ve cleared the tinybooter and reinstalled, updated the firmaware, currently using GHI libary 4.1.3.0 & MMF 4.1.2821. I’ve checked the output window during and no errors thrown

I am at a complete lost!! I know its something small I am missing. Please could someone help before I lose my sanity.

The code I use is below from the “starters guide”


Bitmap LCD = new Bitmap(SystemMetrics.ScreenWidth,SystemMetrics.ScreenHeight);

Font MyFont = Resources.GetFont(Resources.FontResources.NinaB);

//clears the memory and not the display
LCD.Clear();
int i;
for (i = 10; i < 200; i += 4)
{
//draw on memory
LCD.DrawLine(Colors.Green, 1, 10, i, i, 200);
}
// print some text on the screen
LCD.DrawText("Still Amazing!", MyFont, Colors.Red, 100, 20);
LCD.Flush();
}

Many Thanks
Nathan


#2

Does it work on the emulator?


#3

No I get a

An unhandled exception of type ‘System.NotSupportedException’ occurred in GHIElectronics.NETMF.Hardware.dll

But, I alwaty get this when using the emulator with any project, so I dont bother with it.

For got to mention, I’m using VS2010


#4

That may be your problem.
I am using VS2010. The example works fine without any exceptions in the emulator or the chipworkX dev board for me. I have just checked it.


#5

lol seams to work for everyone except me!!

Could you try it in emulator with this code and see if it crashes? Id had this in my code, taken it out and it works minus any display which is exactly what I am getting on my display


 Configuration.LCD.Configurations lcdConfig = new Configuration.LCD.Configurations();

            lcdConfig.Width = 480;
            lcdConfig.Height = 272;


           // // Only use if needed, see documentation.
            lcdConfig.PriorityEnable = false;

            lcdConfig.OutputEnableIsFixed = true;
           lcdConfig.OutputEnablePolarity = true;

            lcdConfig.HorizontalSyncPolarity = false;
            lcdConfig.VerticalSyncPolarity = false;
            lcdConfig.PixelPolarity = false;

            lcdConfig.HorizontalSyncPulseWidth = 41;
            lcdConfig.HorizontalBackPorch = 2;
            lcdConfig.HorizontalFrontPorch = 2;
            lcdConfig.VerticalSyncPulseWidth = 10;
            lcdConfig.VerticalBackPorch = 2;
           lcdConfig.VerticalFrontPorch = 2;


           // NOTE: This is used for ChipworkX, comment if using EMX.
            lcdConfig.PixelClockDivider = 4;

           // Set configs
           Configuration.LCD.Set(lcdConfig);


#6

You can’t use this in the emulator. It is GHI specific feature.


#7

Can you please post here your full Main function as is?


#8

More info please http://www.tinyclr.com/forum/1/1904/


#9

Yeah, that was my fault was getting desperate. I’m thinking maybe theres a clash with the hardware dll. I’m going to strip this project down and see what happens.


using System;
using System.Threading;
using System.IO;

using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Media;


using GHIElectronics.NETMF.Hardware;
using GHIElectronics.NETMF.USBHost;
using GHIElectronics.NETMF.USBClient;


namespace ChipworkXTester
{
    public class Program
    {

        private static Font MyFont = Resources.GetFont(Resources.FontResources.NinaB);

        public static void Main()
        {


            Bitmap LCD = new Bitmap(SystemMetrics.ScreenHeight, SystemMetrics.ScreenWidth);
            //clears the memory and not the display

            //draw on memory
            LCD.Clear();
            int i;
            for (i = 10; i < 200; i += 4)
            {
                //draw on memory
                LCD.DrawLine(Colors.Green, 1, 10, i, i, 200);
            }
            //transfer
            //transfer the bitmap memory to the actual display
            LCD.DrawText("Still Amazing!", MyFont, Colors.Red, 100, 20);
            LCD.Flush();


           
            while (true)
            {

            }


        }

       }
}



#10

dont forget to use the code button :wink:

@ architect, why are you always double posting? There is a edit function, you know :smiley:


#11

What do you mean?

Oh, I got it. I guess wasn’t paying attention some time. And it is not “always”, I do use “modify” button often.

Anyways,will try to pay more attention now. :wink:


#12

Ehh, I wasn’t paying attention either, the “always” wasn’t supposed to be there :smiley:


#13

Did you guys had to do any configuration for you display to work, or did it work straight out the box? I’ve only had the board a couple days!


#14

No configuration changes here. I use default settings.

Robert,

I went back to some of my previous posts and I see, that It happened several times. :o I see your point and I understand that it can be annoying. My apologies.

And thank you for pointing it out. ;D


#15

@ Gus… anything to add? could I have a faulty board? How can I check I dont?

@ Architect Dont worry about it,doesnt matter if you post twice or whatever. You’ve been a great help. Just think Roberts bored!!


#16

Fusioon,

I appreciate it, but Robert is right.

I am sorry that you still have the issue with the display. Can you please remove the font and DrawText call.

Lets bring it to a bare minimum.

Also change your:


            while (true)
            {
 
            }

to:


Thread.Sleep(Timeout.Infinite);


#17

ok, I’m still getting noting.

is Debug USB1 on the display correct?


#18

It is “USB Client” not the “Dual Port USB Host”

see here:

http://www.ghielectronics.com/downloads/ChipworkX/ChipworkX_User_Manual.pdf


#19

sorry, you’ve lost me lol


#20

I am not sure what did you mean by “Debug USB1 on the display”, so I have pointed your to the picture below: