S1D13700 Library, Schematic, and Example Code

Example S1D13700 Graphic LCD Breadboard Set-up

Example S1D13700 Graphic LCD Breadboard Set-up

This is some example code written specifically for the Powertip PG320240WRF-HE9 320×240 Graphic LCD but it should work with any S1D13700. Much of the code is based upon work by Radosław Kwiecień originally found at http://en.radzio.dxp.pl/sed1335/. Each zip file contains a schematic demonstrating how to connect it to the microcontroller.

The Arduino zip file contains the Arduino compatible library, an example sketch, and documentation. You can also view the online version of the documentation Here.

Also you can have a look at the new beta bitmap text and bitmap image functions – Beta Library for Arduino

Revision History
January 24, 2010
  • Beta library with additional Arduino functions
Nov 24, 2010
  • First upload of Arduino compatible library
Nov 3, 2010
  • Added very important delay to initialization procedure
  • Added use of Reset pin for more consistent start-up
Oct 20, 2010
  • Updated Schematic, corrected DOFF pin connection
Oct 16, 2010
  • Initial Upload
    • kosthala
    • November 24th, 2010

    In the schematics there is no mention for the Vcc value, is it 5V or 3.3V?

    Thanks in advance.

      • cafeadmin
      • November 24th, 2010

      It is either. However, If you use 3.3V with the 15 ohm backlight resistor, the backlight won’t be very bright. You can remove the backlight resistor at 3.3V but it is very important at 5V.

    • kosthala
    • November 24th, 2010

    I don’t get it. How it is possible to be either 5V or 3.3V?. Unless there is a regulator and buffer chips on board. Is this right?

      • cafeadmin
      • November 24th, 2010

      This is typical. For example, an average PIC or AVR microcontroller will accept 2.7V to 5V. The S1D13700 controller separates the core voltage and I/O voltage. The core voltage must be between 3V and 3.6V. If you are using the PG320240WRF-HE9 from eBay, it has a 3.3V regulator to accommodate 5V operation. It does have a 100mV dropout, so you must provide at least 3.1V to achieve the 3V minimum. Since the I/O is separate, if you power it with 5V, communication still takes place at 5V. I guess you could say buffers are used, but they are part of the S1D13700 IC.

    • Thhis pijece oof writing iis really a gooid oone it helps new tthe wweb people, who are wishing in favor of blogging.

    • kosthala
    • November 24th, 2010

    Ok, i got it, thanks.

    • Jon B.
    • January 11th, 2011

    Is there any way to set the character size within the provided Arduino Library?

    Thank you,

    Jon

      • cafeadmin
      • January 11th, 2011

      If you are talking about changing the sized of the 5×7 font built into the ROM, the controller doesn’t provide for that. You can load your own characters into the CGRAM but there is no provision for that in the Arduino library. It is probably easier to draw your own font with pixels anyway.

        • Jon B.
        • January 18th, 2011

        If I were to draw my own characters would it just be a matter of reading the font data and then using the setPixel function to create each pixel of the character?

        By the way,thank you for providing this hardware and supporting libraries. I found it relatively easy to get started, and I don’t have any technical experience. Thanks again for the clear instructions.

          • cafeadmin
          • January 19th, 2011

          That is correct. Although, since the screen has an 8-bit wide interface, it would be much faster if the size of the font you made lined up with byte size, meaning it was exactly 8 or 16 pixels wide. If you set one pixel at a time, the software reads a byte into memory, changes the one pixel, then writes it back. If it is 8 or 16 pixels wide, you don’t need to read anything, you just write 8 bits (or 8 pixels) at a time, which takes 1/3 the time of setting one pixel. I hope that makes sense.

          • Normally I do noot learrn post onn blogs, but I would like tto ssay that
            this write-up very compelled me too trry aand
            do it! Your wrditing stylpe has been sureprised me. Thank you, vvery great post.

        • It’s actually a cool and useful piece off info. I amm happy tha you
          just shared tbis useful information wth us. Pleae stay us up to datte like this.

          Thanks foor sharing.

      • That iis a reakly good ttip eszpecially to thpse new too the blogosphere.
        Simple buut very acccurate information… Appreciate yohr sharing tnis one.
        A muswt read post!

    • Hmm iss ayone else encountering problems with the images oon this
      blog loading? I’m trying too findd oout if itss a problem oon myy end or
      iif it’s the blog. Any responses would be greatly appreciated.

  1. I’m trying to get the drawing of bitmaps going, and I see you were able to implement the eBay logo in the image at the top.

    That’s great!

    I’m trying to implement a drawBitmap function, and feel like I’m close, but there is a problem with casting a char * as an unsigned char in the .cpp file…. I’m sure you’re aware of this and hence you did not include it in the download.

    So far, I have this, as adapted from one of the other referenced files:


    void S1D13700::drawBitmap(char * bmp, int x, int y, int width, int height)
    {
    unsigned int i, j;
    for(i = 0; i < height ; i++)
    {
    graphicGoTo(x, y+i);
    writeCommand(S1D13700_MWRITE);
    for(j = 0; j < width/8; j++)
    writeData(bmp+j+(40*i));
    }
    }

    Of course, the conflict is that the class ‘writeData’ is looking for an input of an unsigned char, whereas ‘bmp’ is a char *. I tried manipulating the writeData class to accept a char * instead, but no luck… wondering if you have any tips? Thank you so much.

      • cafeadmin
      • January 20th, 2011

      writeData((unsigned char) *(bmp+j+(40*i)));

      You only need the type cast if compiler warnings annoy you, the important thing you missed was the derefrence operator (the asterisk).

      This tutorial is excellent:
      http://www.cplusplus.com/doc/tutorial/

      The section applicable to this discussion is “Pointers”

        • cafeadmin
        • January 20th, 2011

        I forgot to mention that in the AVR, the flash and ram space are separated. If you want to copy a bitmap from flash (which you probably do), you need explicit instructions. The easiest thing to do would be to copy it directly from the AVR example. Of course you need that function, the GLCD_ReadByteFromROMMemory function, and you need to add this include:

        #include <avr/pgmspace.h>

        For a test graphic, you can include the logos file untouched.

    • Zitman
    • January 20th, 2011

    Can you elaborate on how to write 8 or 16 bits at a time using the setPixel call

    Z

      • cafeadmin
      • January 21st, 2011

      Setpixel is only for 1 pixel at a time. 8 bits at a time requires a custom routine.

    • Jon B.
    • January 21st, 2011

    I’ve been trying to implement some Font functions working from a KS0108 library. Everything compiles fine, it just doesn’t display. Not sure what I have wrong. Are there any plans on updating the provided Arduino Library to allow referencing bitmap fonts?

      • cafeadmin
      • January 21st, 2011

      Yes, now that so many people have asked about it.

    • Jon B.
    • January 21st, 2011

    I can share what I’ve done so far on the font functions if there is a way to do that, although, it may not save any time because I’m very new to this. Let me know if you would like to see it.

      • cafeadmin
      • January 21st, 2011

      I have written the functionality on other platforms several times so I have code to port. I do appreciate the offer though.

    • Zitman
    • January 21st, 2011

    Jon,

    I would certainly be interested.

    CafeAdmin,

    Can you point me in a direction please? I am very interested in how to go about doing this but have not been able to find anything online. Can you point me at a data sheet or site that might give me some more insight into doing this. I will be happy to share any findings

    • Scott
    • January 23rd, 2011

    Hi,
    I get the following warning when compiling the PIC C18 Project. Does this mean that the control port is not being set properly?

    \Powertip_Screen_PIC18F4455_NOV_03_10\sed1335-pic18.c:43:Warning [2060] shift expression has no effect

    Scott

      • cafeadmin
      • January 23rd, 2011

      No, it’s perfectly normal. It’s really kind of a stupid warning and not all compilers do it. It means your using pin 0 on some port.

      For example, if you wanted to set pin 4 high on port A, you might do this:


      LATA |= (1 < < 4);

      Meaining you start with 00000001, shift it left 4 times, and get 00010000 which is combined via a logical OR with the existing port value. Now if you do this:


      #define MYPIN 0

      LATA |= (1 < < MYPIN);

      You are shifting left zero times which is the same as not shifting at all. Hence the warning "shift expression has no effect"

  2. Hi, connetcted this screen to atXmega128A1 dev. board. Compiled prog for atmega324. I used Vports for compabilty, so changed only bits at sed1335-avr.c and specific settings (like clocking) for xmega.
    Now i getting “random pixels” (garbage) on the screen only :(
    Checked everything ( Nothing.
    Please, help me! =)

      • cafeadmin
      • January 30th, 2011

      Give me a few days. I will add an xmega file to the AVR example.

  3. Now it works on 8MHz clock of xmega – maximum =)
    But works at all =)

      • cafeadmin
      • January 31st, 2011

      That makes sense. If you want a faster clock add some extra NOP to the read delay in sed1335-avr.c. Watch out for voltage spikes caused by parasitic inductance at high speeds, you may want to use series resistors on the data lines.

      • DO NOT USE VPORT’S!! )))
        I rewrote lib for using native xmega ports, and all works at 32MHz ) Very-very fast =)
        Maybe i’ll use logic analyzer later to understand why it didn’t work with vports =)

    • John
    • February 2nd, 2011

    Hi, Are there any schemes to free up some of the digital pins on the Arduino? Or is it time to get an Arduino Mega so I don’t have to make a choice between gathering data and displaying data. Thank you for your time!

      • cafeadmin
      • February 2nd, 2011

      You might be able to get away with not using the reset pin (you should still pull up the LCDs reset line). You could use your analog pins as digital pins. You could use a high speed I/O expander like the MCP23S17, although, that would require a rewrite of the core functions. The easiest solution is to use a micro with more pins, as you suggested.

    • John
    • February 2nd, 2011

    Thank you for the prompt response!

    • Scott
    • February 5th, 2011

    I got it working on a PIC18F4455 using the USB clock (48Mhz). It works fine when it decides to work at all, and will keep working until I shut it off like overnight. I seem to be having a “cold start problem”. Any ideas.

    I also converted the Arduino font for use with the C18.

    //------------------------------------------------------------------------
    //(add following in main)
    //------------------------------------------------------------------------

    void drawBitmapText(void)
    {
    /*Create a string variable */
    char buf[] = "Hello World!";
    /*Clear the screen */
    GLCD_ClearText();
    GLCD_ClearGraphic();
    /*specify the column and row address
    where the text should be output */
    GLCD_TextGoTo(10,1);
    /*Write our string variable to the screen */
    GLCD_WriteText(buf);
    /*Write the same string in a different place */
    GLCD_TextGoTo(20,28);
    GLCD_WriteText(buf);
    GLCD_WriteBitmapText(buf,50, 50, LUCIDA_FONT);
    GLCD_WriteBitmapText(buf,100, 100, LUCIDA_FONT);
    GLCD_WriteBitmapText(buf,50, 150, LUCIDA_FONT);
    }
    //------------------------------------------------------------------------
    (add following in SED1335.c)
    //------------------------------------------------------------------------
    //Write text using a fixed 16-pixel width, 24 pixel height bitmap font, each character is 48 bytes or 24 ints
    //first param is pointer to the string to be written
    //last param is pointer to the font
    void GLCD_WriteBitmapText(char * text,int x, int y, rom far const unsigned int * font)
    {
    unsigned int * fontPointer;
    char i;

    while(*text)
    {
    //First get the pointer to the first int of the font letter
    //Font starts with space which is ascii char #32
    fontPointer = font + ((*text - 32) * 24); // each char 24 ints long
    for (i=0;i> 8); //highbyte or last 8 pixels
    fontPointer++;
    }
    text++;
    x+=16; //move the cursor 16 pixels for the next char
    }
    }
    //------------------------------------------------------------------------
    (add following in SED1335-pic18.c)
    //------------------------------------------------------------------------unsigned int GLCD_ReadIntFromROMMemory(rom const unsigned int * ptr)
    {
    return *ptr;
    }
    //------------------------------------------------------------------------

    (chang font as follows)
    #ifndef LUCIDA_FONT_DEF
    #define LUCIDA_FONT_DEF

    //#include

    rom far const unsigned int LUCIDA_FONT[] = {
    // @0 ' ' (14 pixels wide)
    0x0000, 0x0000, 0x0000,....

      • cafeadmin
      • February 5th, 2011

      If the reset line is connected properly then the delay after


      GLCD_WriteCommand(SED1335_SYSTEM_SET);

      in the initialization routine is probably malfunctioning/not long enough. Check that your clock is declared properly in sed1335.h, etc.

        • ingsmivinki
        • August 3rd, 2011

        cafe why you didint anwer me

        • Hi woukd yoou mind letting mme know which web host you’re orking with?
          I’ve lokaded our blog in 3 different browwers annd I must sayy this
          bllog loadds a lott faster tjen most. Caan you suggest
          a gopd internet hossting provider aat a fair price?

          Kudos, I apprecite it!

        • Hi there! This poost could not bee writtten any better!
          Readinng through this post reminds me of my good old room mate!
          He always kept chatting about this. I will forward this page to him.
          Fairly certqin he will have a good read. Many thanks for sharing!

    • Scott
    • February 5th, 2011

    Sorry the code won’t paste.

      • cafeadmin
      • February 5th, 2011

      When dealing with WordPress, code should be enclosed in code tags like this


      <code>
      ...Code Here
      </code>

      I tried to fix your comment above but I don’t know if WordPress deleted some of it first. Thank you for the contribution.

    • John Jardine
    • February 6th, 2011

    Hey.. mine just arrived from eBay. Can’t seem to it working on my Arduino Mega 1280. Do I have to remap the pins? If so, anyone want me to give me a hand? It seems some port D pins don’t even exist on the mega 1280 so I’m not really sure what to do. I’m using the Arduino Beta example code.

    If someone could help a noob out, it would be much appreciated :)

    • aureolus
    • February 18th, 2011

    First of all, thanks for this library!

    My question is: How can i create my own fonts?

      • cafeadmin
      • February 19th, 2011

      I don’t currently have an easy answer for you. I plan to create something for that.

    • aureolus
    • February 19th, 2011

    I’m currently trying to add support for fonts created with GLCD Font creator http://www.pocketmt.com/. Will report you if I suceed

    • Max
    • February 20th, 2011

    http://fasterpast.ru/BmpCvtDemo.zip
    Very usefull thing: img to RAW or C code converter. With supporting of grayscale 1bpp 2bpp 4bpp 8bpp and many others =)
    (fully functional demo, not for commercial use)

    • Joram
    • February 24th, 2011

    i’ve got a this lcd with a new atmega324p 20PU, connected everything as in the schematic pdf but all i get is random pixels on or off. What could this be? bad connection? wrong fuse bits? do i have to change anything in the code?

  4. Hello, First of all thanks for your codes and product. I just test your pic18f4450 code on a pic18f4550 @ 48 MHz and works great, but I translated to MCC30 (included in the url, could you please have a look?) for using a pic24fg64gb004 @ 32 MHz external crystal of 20 MHz and I only get garbage pixels after init, do you have any idea of what is going on? Thanks In advance.

      • EFEL
      • February 28th, 2011
        • cafeadmin
        • March 22nd, 2011

        I tried to grab this but the URL is no longer good. Sorry for the delay.

        • cafeadmin
        • April 4th, 2011

        Both URLs work for me now. It must have been a temp thing, sorry. Regarding your code, the only thing that jumps out at me is the commenting of the delay in the init routine directly after the SYSTEM SET command. That delay is necessary. If you don’t have a us delay you can just delay it for 1 ms and it should not make a difference. The pic24 at 32Mhz results in an instruction clock of 16mhz vs the 12mhz instruction clock of the pic18. That means you might also need a couple of extra NOPs in the read delay. Let me know if that does not work.

        • Thanks for your reply. I’m going to test that and commented. Thanks again

    • Sébastien
    • March 22nd, 2011

    Sorry for my english , but i have a problem .

    The screen works perfectly with my arduino mega , but some time the screen turn blank and i need to reboot the arduino .

    Have you any idea ?

    Thanks

      • cafeadmin
      • March 22nd, 2011

      Try a stronger pullup on the reset line (lower value resistor).

        • Sébastien
        • March 30th, 2011

        Thx
        I have already the problem with a lower value of resistor.
        I fixed it by disconnected the cable between rst and arduino and changed DOFF -> VCC to DOFF -> GND with resitor .

        Thanks angain for your works and the libraries

      • ingsmivinki
      • July 30th, 2011

      u used atmega324p ?

    • Jeroen
    • April 12th, 2011

    Hi There,
    I have downloaded your code, and it works.
    However, I want to change to 48MHz. (20MHz crystal, and 96MHz PPL)
    I have changed the following:

    //————————————————————————————————-
    //————————————————————————————————-
    /*************************************/
    /*Uncomment this line for over 32Mhz */
    /*************************************/
    #define READDELAY(); Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
    /*************************************/
    /*Uncomment this line for 16-32MHz */
    /*************************************/
    //#define READDELAY(); Nop();Nop();Nop();Nop();Nop();Nop();
    /*************************************/
    /*Uncomment this line for 8-16MHz */
    /*************************************/
    //#define READDELAY(); Nop();Nop();
    /*************************************/
    /*Uncomment this line for 4MHz */
    /*************************************/
    //#define READDELAY(); Nop();

    AND

    /*Change this to match the FOSC*/
    #define CPU_CLOCK 48000000

    However, it is not working correctly.
    Im wondering, am I doing something wrong in the code, or maybe it is because I m running on breadboard!?

    Could someone please post code for PIC18F4550 C18 compiler running on 48MHz?

    Thanks in advance!

    Jeroen

      • cafeadmin
      • April 26th, 2011

      I have used it on a breadboard at 48Mhz (really 12). Try to blink an LED so you can be sure the PIC is actually running and your oscillator PRAGMA settings are correct.

        • Jeroen
        • April 27th, 2011

        Hi cafeadmin, thanks for your response.

        A LED was blinking, so the PIC was running.
        Also, the pragma settings were correct, since USB was running, and that requires 48MHz.

        Just to be sure, I have designed a PCB to connect the LCD to the PIC. Hopefully this will eliminate any kind of distortion et cetera.

        Do you maybe have the code for running at 48MHz, so I can check mine?

        Jeroen

          • cafeadmin
          • April 28th, 2011

          An easy way to check that the breadboard is not the issue is to probe it with an oscilloscope, if you have one available. Can you elaborate on “it is not working correctly”?

            • Jeroen
            • April 28th, 2011

            How do you mean, probe it with an oscilloscope?
            Check the data lines for any distortion?

            It is not working correctly:
            It seems some pixels are shifted a number of pixels, and the display is not cleared 100%

            I hope this weekend I will receive my test PCB, so I will check to see if the problem lies there (I wouldn’t be surpriced) and will get back to you then.

            Jeroen

    • Jon B.
    • April 25th, 2011

    @cafeadmin

    In the documentation you mentioned the MicroChip AR2010. Do you have any more information on how this could be implemented with the touch screen included with this display? Thank you.

      • cafeadmin
      • April 26th, 2011

      It is a 4-wire touchscreen. The best instructions I have are in the AR1020 datasheet. Which micro-controller are you using?

        • Jon B.
        • April 26th, 2011

        I am using an Arduino Mega 2560.

          • cafeadmin
          • April 26th, 2011

          Someone has written an Arduino library for 4-wire touch using the ADC. try this: http://www.practicalarduino.com/projects/touch-control-panel

          • Fabulous, what a weblog it is! Thiis website presents useful facts tto us, kesp itt up.

          • Hello to every body, it’s my firxt go to see of this weblog; this blog carries
            remarkable and genuinely fine materiaal for readers.

        • Frankly I think that’s absetuloly good stuff.

        • Im no specialist, excluding I care about you merely crafted the greatest position. You definitely comprehend what youre talking about, and I can truly get following that. Thankfulness for staying so forthright and accordingly straightforward.

        • Wow. Nice set of posts guys. I encourage you all to do the same as well on other threads. It’s nice to see a fair number of fact dumps and reasoned replies. It’s how I learn the ins and outs of all this sciency “stuff” (*grin*). Hat Tip to the Editor as well.

        • , we are agreed that a reboot is impossible in America under current conditions. It’s just not among the Stuff White People Like. What we will see instead is the breakup of this nation into several component parts. Many of these parts will be reactionary. None will be of Mencius’s preferred form of reactionary.

        • It took me fifteen years for this ‘overnight’ success. People think that I was lucky that i got success. They forget the work and effort of years which I have put into this – thanks for visit and comments – kindly keep on sharing – regards

        • What Can a Planner Offer? Monday, February 13th, 2012 | Uncategorized | Administrator Regarding , many consider consulting a planner essential.  Some retired people who do not get expert guidance, later regret some of the financial choices produced.  So what could you hope for from a planner?

    • pindnet
    • May 13th, 2011

    Hello, first of all I want to thank you for your sample code and help. I modified your pic18 version for work with a pic24FJ and C30 compiler with the addition of arial font, so If you want to use it and post it in your site you can do it. The url is from megaupload and it includes some pictures about the running with your ebaylogo and a “Hello World” using arial font. The only issue I cant understand is that sometimes the font is blurry and after some hard resets the program works fine.

    Thanks again and best regards,

    http://www.megaupload.com/?d=PFUKYKI7

      • ANSH BHATNAGAR
      • June 3rd, 2020

      the link is not working and how you add the arial font

    • franpemo
    • May 15th, 2011

    Hello, I want to thanks for your codes but I have some problems. I purchased a couple of these displays but I cant make any of them to work, the only is a blank screen not even garbage pixels, I tested your codes with any modification in 3.3V and 5V with a pic18f4550 (three IC) and always have nothing.

    Greetings,

    • TJ
    • May 18th, 2011

    Do I really need all D0-D7? I have those 20×4 lcd displays, and I only need to hook up D4-D7.

    • I gott this webb paage frtom my friend whoo toldd mme regarding
      this web site and now his tim I am visitinhg tis websikte and reading vesry informatove
      articles or rrviews here.

    • I amm extrewmely inspired together wih your writibg alents as
      neatly ass withh the structure to youur weblog. Is this a paid
      topic oor didd you customize it yourself? Either way keep upp thhe noce hikgh quality writing, it’s rare to
      peer a nicxe blog like this one these days..

    • Josh
    • May 23rd, 2011

    I setup the LCD on a breadboard as your diagram recommended. However, I am having problems getting it to run on with a PIC 18f4553 (which is identical to the 18f4550, except for a 12-bit ADC). Your code works on 18f4550′s, so it should work find for the 18f4553 too. However, The LCD screen remains blank, with only the back lights working.

    I made two changes to the code provided:
    /*************************************/
    /*Uncomment this line for over 32Mhz */
    /*************************************/
    #define READDELAY(); Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();

    And this:
    /*Change this to match the FOSC*/
    #define CPU_CLOCK 48000000

    As you recommended for one of the other users, I added a blinking LED to the setup to make sure the PIC was working. That worked fine.

    Do you have any other suggestions on things I should check or modify?

    Thank you,
    Josh

    • TJ
    • May 23rd, 2011

    Is there a reason why we need both RD and WR wired up? Do we ever read from LCD? Couldn’t we just use a pull up or pull down resistor both both and free up 1 pin from arduino?

      • efelnavarro
      • May 23rd, 2011

      Hello TJ, the read operations happend when you set a Pixel, look at the “GLCD_SetPixel”…

        • TJ
        • May 24th, 2011

        Oh, ok. Thanks.

      • Excellent weblog right here! Allso your weeb site soo much upp veery fast!
        Whatt web host are you the usage of? Cann I geet your affiluate link for your host?
        I wwant my website loaded up as quickly as yokurs lol

  5. Hi,

    First, thank’s for your works and your item !
    I have buy this on ebay and make a little PCB for test it .
    I work with a 18F4685 @ 40Mhz (10Mhz crystal + PLL ) the librairy works I have the logo but when I would like to draw horizontal line a lot of piece of line not drow .

    I would like to understand your works and the original librairy .
    Is not same that KS0108 controler ?
    It’s possible to explain a little the S1D13700 controler please ?

    Thank’s in advance for your answer !

    Best regards
    CaZaE

      • cafeadmin
      • June 8th, 2011

      I believe the controllers are very similar. I explained it some in this blog post.

      If you see the logo properly but the line messes up, you need to add additional NOPs to the READDELAY macro in the pic source file.

      • Thank’s for your reply, Sorry I have dont see you post about this librairy I go to read it !

        I have try to add more and more Nop() in this macro but I have some problems .

        I try to discover the problem and I reply in this post .

        Again : thank’s for all !

        Best regards
        CaZaE

    • Joel d
    • May 29th, 2011

    Hi. Thanks for supporting this project!

    Trying to get my S1D13700 working with an Arduino Mega 2560; not sure what if any customizations I’d need to make — I’m using Digital pins 0..12 as indicated.

    1) The 2560 is faster, so do I need more NOPs to slow down the timing?

    I’ve imported the libraries into Arduino and the code does appear to be running. The screen backlight is on, and I see the blinking light on the arduino after a 4 second pause when the program is running.

    I’ve tried using a 2.2k and 10k pot for adjusting the contrast; makes no difference.

    I’ve also tried some of the variations mentioned above for DOFF and RST. Currently I’m running with 220 Ohms resistor on the reset line.

    2) What is DOFF for, anyway?

    3) Has anyone else been able to get this working with the Arduino Mega 2650?

    Thanks!

    – Joel

      • cafeadmin
      • June 8th, 2011

      An example illustrating how to set that up is covered in section 3c of the documentation.

        • ingsmivinki
        • July 31st, 2011

        where is the sesion 3c i have problem with that lcd, i only see the backlight but no information

        • Thaat iis really fascinating, You are an exzcessively professional blogger.
          I’ve joined your feed and look ahea tto searching for exra off
          our wonderful post. Additionally, I have shareed our
          wesite in my socxial networks

    • ingsmivinki
    • July 30th, 2011

    i want some code for the torch screen im use a atmega32, and i want to know how to write data in the lcd….

    • spisso
    • August 1st, 2011

    Hello, thanks for your tutorial I’m experimenting some issues with this screen and I do not know how to solve it. I’m using a pic18f4620 and I noticed that the screen only displays something when I keep pressed the reset button, after realese the button the display does not show anything. Do you have any suggestion?

    Thanks…

  6. X7V9W5 dgpyzavtcisy

    • diego
    • October 10th, 2011

    Hi I’m a few days ago with a Winsted, 320240 and I can not do s1d13700 walking, Manufacturer angina is unresponsive and was going crazy lol, please help me Odria?
    diego hug

    • Good day! Would you mind iif I share your blog with my twigter group?
      There’s a lot of people that I think would realoy enjoy ylur content.
      Please let me know. Thanks

    • Evvery weekwnd i usaed to paay a quicdk visit this web page, for the reasson hat i want enjoyment,
      aas this this weeb page conations really pleasant funny data too.

    • Adam
    • January 24th, 2012

    Hi,
    Ive bought the screens from ebay a few months ago, was able to get it running on arduino, but since then i’ve been trying to port to pic24.

    First off i would like to thank you again for all the work you’re contributing to this project.

    Above , user pindnet posted some code for the P24 & C30 compiler.
    I would love to access this file, however, MEGAUPLOAD no longer works… :(

    If anyone has a copy of that file and is willing to send me a copy, it would be Much appreciated!

    Thanks again everyone for input.

    Regards,
    Adam.

    • Jeff
    • February 12th, 2012

    Hello,

    Thanks for taking the time to create all of this, I couldn’t have gotten my project to this point without your work. I am experiencing a problem where the pixels of a bitmapped image are being shifted over in certain places on the screen. The shifting takes place at arbitrary places and onlt shifts from left to right, not up and down.
    could this be a timing issue? if so how would i adjust for this?

    Thanks Again
    Jeff

    • colonel
    • May 9th, 2012

    HI,

    i tested the wait signal and its so much quicker !!
    you guys should try this one !

    void S1D13700_WriteData(unsigned char dataToWrite)
    {

    S1D13700_DATA_PORT = dataToWrite;
    S1D13700_DATA_PORT_TRIS = S1D13700_DATA_PORT_TRIS_OUT;

    S1D13700_CS_PIN = 0;

    S1D13700_A0_PIN = 0; S1D13700_WR_PIN = 0;// tiny pause
    S1D13700_A0_PIN = 0; S1D13700_WR_PIN = 0;
    S1D13700_A0_PIN = 0; S1D13700_WR_PIN = 0;
    while ( 0 == S1D13700_WAIT_PIN);
    S1D13700_CS_PIN = 1;
    S1D13700_A0_PIN = 1; S1D13700_WR_PIN = 1;

    /*
    S1D13700_DATA_PORT = dataToWrite;
    S1D13700_DATA_PORT_TRIS = S1D13700_DATA_PORT_TRIS_OUT;

    S1D13700_CS_PIN = 0;
    delay_ms(S1D13700_DELAY_ONE);
    S1D13700_A0_PIN = 0; S1D13700_WR_PIN = 0;
    delay_ms(S1D13700_DELAY_ONE);
    S1D13700_CS_PIN = 1;
    delay_ms(S1D13700_DELAY_ONE);
    S1D13700_A0_PIN = 1; S1D13700_WR_PIN = 1;
    delay_ms( S1D13700_DELAY_CMD_CMD );

    */
    }

    void S1D13700_WriteCommand(unsigned char commandToWrite)
    {
    S1D13700_DATA_PORT = commandToWrite;
    S1D13700_DATA_PORT_TRIS = S1D13700_DATA_PORT_TRIS_OUT;

    S1D13700_WR_PIN = 0;
    S1D13700_CS_PIN = 0;

    S1D13700_WR_PIN = 0;
    S1D13700_WR_PIN = 0;
    S1D13700_WR_PIN = 0;
    while ( 0 == S1D13700_WAIT_PIN);
    S1D13700_CS_PIN = 1;
    S1D13700_WR_PIN = 1;

    /*
    S1D13700_DATA_PORT = commandToWrite;

    S1D13700_DATA_PORT_TRIS = S1D13700_DATA_PORT_TRIS_OUT;

    S1D13700_WR_PIN = 0;
    delay_ms(S1D13700_DELAY_ONE);
    S1D13700_CS_PIN = 0;
    delay_ms(S1D13700_DELAY_ONE);
    S1D13700_WR_PIN = 1;
    delay_ms(S1D13700_DELAY_ONE);
    S1D13700_CS_PIN = 1;
    delay_ms( S1D13700_DELAY_CMD_CMD );
    */
    }

    • ALI MIRZA
    • January 28th, 2015

    How Can we run LCD with Arduino Due? My LCD working fine with Arduino UNO but when same connections made with Arduino Due it gave me the following error:

    Arduino: 1.5.8 (Windows 8), Board: “Arduino Due (Programming Port)”

    Build options changed, rebuilding all

    In file included from C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp:44:0:
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp: In function ‘void setData(unsigned char)’:
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.h:52:19: error: ‘DDRD’ was not declared in this scope
    #define FIXED_DIR DDRD
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp:87:3: note: in expansion of macro ‘FIXED_DIR’
    FIXED_DIR = 0xFF;
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.h:53:20: error: ‘PORTD’ was not declared in this scope
    #define FIXED_PORT PORTD
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp:88:3: note: in expansion of macro ‘FIXED_PORT’
    FIXED_PORT = data;
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp: In member function ‘unsigned char S1D13700::readData()’:
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.h:52:19: error: ‘DDRD’ was not declared in this scope
    #define FIXED_DIR DDRD
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp:214:3: note: in expansion of macro ‘FIXED_DIR’
    FIXED_DIR = 0×00;
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.h:54:19: error: ‘PIND’ was not declared in this scope
    #define FIXED_PIN PIND
    ^
    C:\Program Files (x86)\Arduino\libraries\S1D13700_Library_For_Arduino_NOV_24_10\S1D13700.cpp:226:10: note: in expansion of macro ‘FIXED_PIN’
    tmp = FIXED_PIN;
    ^
    Error compiling.

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.

    • sap
    • February 11th, 2015

    Hi,
    Could someone please give me a code giving the basics of how to display a character on Graphical touchscreen LCD having S1D13700 controller (CFAG320240CX-TFH-T-TS).I am using PIC32MX795F512L.
    IDE is MPLAB v8.41.C coding to be used.
    I tried writing a code using the steps being told in the daasheet of the Graphical touchscreen:

    #include
    #include

    /*********************************************************************************************************************
    Configuration bits.
    *********************************************************************************************************************/
    // Configuration Bit settings
    // SYSCLK = 80 MHz (8MHz Crystal/ FPLLIDIV * FPLLMUL / FPLLODIV)
    // PBCLK = 20 MHz
    // Primary Osc w/PLL (XT+,HS+,EC+PLL)
    // WDT OFF
    // Other options are don't care

    #pragma config FNOSC = PRIPLL // Oscillator Selection
    #pragma config FSOSCEN = OFF // Secondary Oscillator Enable (KLO was off)
    #pragma config POSCMOD = HS // Primary Oscillator
    #pragma config OSCIOFNC = ON // CLKO Enable
    #pragma config FPBDIV = DIV_4 // Peripheral Clock divisor

    #pragma config FPLLIDIV = DIV_2 // PLL Input Divider
    #pragma config FPLLMUL = MUL_20 // PLL Multiplier
    #pragma config FPLLODIV = DIV_1 // PLL Output Divider
    #pragma config FWDTEN = OFF // Watchdog Timer Disable
    #pragma config DEBUG = ON // Background Debugger Enable

    //#pragma config UPLLIDIV = DIV_1 // USB PLL Input Divider
    //#pragma config UPLLEN = OFF // USB PLL Enabled

    /*
    #pragma config FWDTEN = OFF // Watchdog Timer Disable
    #pragma config WDTPS = PS1 // Watchdog Timer Postscale
    #pragma config FCKSM = CSDCMD // Clock Switching & Fail Safe Clock Monitor
    #pragma config IESO = ON // Internal/External Switch-over
    #pragma config CP = OFF // Code Protect
    #pragma config BWP = OFF // Boot Flash Write Protect
    #pragma config PWP = OFF // Program Flash Write Protect
    #pragma config ICESEL = ICS_PGx1 // ICE/ICD Comm Channel Select
    #pragma config FUSBIDIO = OFF // USBID is controlled by the port function
    #pragma config FVBUSONIO = OFF // VBUSON is controlled by the port function */

    /*********************************************************************************************************************
    Define
    *********************************************************************************************************************/
    //#define SYS_FREQ (80000000)

    #define LCD_CTRL IOPORT_D
    #define LCD_DATA IOPORT_E
    #define LCD_RST BIT_2
    #define LCD_CS BIT_4
    #define LCD_EN BIT_1
    #define LCD_WR BIT_3
    #define LCD_ST BIT_5

    // Function prototypes
    void CommandWrite(unsigned char);
    void DataWrite(unsigned char);
    void ClearTextLayer(void);
    void ClearGraphicLayer(void);
    void Delay100uS(unsigned int);

    void LCD_INITIALIZATION(void);

    void CommandWrite(unsigned char command)
    {
    PORTWrite(LCD_CTRL, 0x04); // RESET LCD,
    PORTWrite(LCD_CTRL, 0x26); // RESET LCD, LCD Enable, LCD status
    PORTWrite(LCD_DATA, command); // Send data to LCD data bus
    Delay100uS(140); // Give atleast 2us Delay
    PORTWrite(LCD_CTRL, 0x24); // Disabling the display controller for read and write
    PORTWrite(LCD_CTRL, 0x14); //
    PORTWrite(LCD_DATA, 0x00); // End of command
    Delay100uS(140); // for 2 TS(i.e 2us)
    }

    void DataWrite(unsigned char data)
    {
    PORTWrite(LCD_CTRL, 0x04); // RESET LCD,
    PORTWrite(LCD_CTRL, 0x06); // RESET LCD,
    PORTWrite(LCD_DATA, data); // Send data to LCD data bus
    Delay100uS(140); // Give atleast 2us Delay
    PORTWrite(LCD_CTRL, 0x04); // RESET LCD,
    PORTWrite(LCD_CTRL, 0x14); // Disabling the display controller for read and write
    PORTWrite(LCD_DATA, 0x00);
    Delay100uS(140); // Give atleast 2us Delay
    }
    void LCD_INITIALIZATION(void)
    {
    // int layer = 0; // Initialize layer
    mPORTESetPinsDigitalOut(BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0);
    mPORTDSetPinsDigitalOut(BIT_12| BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1);
    Delay100uS(140); // Delay
    PORTWrite(LCD_CTRL, 0x00); // Reset pin high
    Delay100uS(140); // Wait for 250Us
    PORTWrite(LCD_CTRL, 0x04); // Reset pin low
    Delay100uS(140); // Wait for 250Us

    // SYSTEM-SET Commands
    CommandWrite(0x40); // SYSTEM SET Initializes device and display
    Delay100uS(140);
    DataWrite(0x30); //
    Delay100uS(140);
    DataWrite(0x87); //
    Delay100uS(140);
    DataWrite(0x00); // for changing the line distance to single line or 0x07
    Delay100uS(140);
    DataWrite(0x27); // 40 columns per line (40*8 = 320)
    Delay100uS(140);
    DataWrite(0x2D); // 0(no change)
    Delay100uS(140);
    DataWrite(0xEF); // 240 Horizontal lines
    Delay100uS(140);
    DataWrite(0x28); //
    Delay100uS(140);
    DataWrite(0x00);
    Delay100uS(140);

    // SCROLL Commands
    CommandWrite(0x44); // SCROLL-Sets screen block start addresses and sizes
    Delay100uS(140);
    DataWrite(0x00); // First screen block start address
    Delay100uS(140);
    DataWrite(0x00); // Set to 0000h
    Delay100uS(140);
    DataWrite(0xEF); // Display lines in first screen block = 240
    Delay100uS(140);
    DataWrite(0xB0); // Second screen block start address
    Delay100uS(140);
    DataWrite(0x04); // Set to 0400h-(GRAPHICS MODE COLUMN WIDTH)
    Delay100uS(140);
    DataWrite(0xEF); // Display lines in second screen block =240
    Delay100uS(140);
    /* DataWrite(0x00); // Second screen block start address
    Delay100uS(140);
    DataWrite(0x04); // Set to 0400h-(GRAPHICS MODE COLUMN WIDTH)
    Delay100uS(140);
    DataWrite(0xF0); // Display lines in second screen block =240
    Delay100uS(140);*/

    // HDOT-SCROLL Settings
    CommandWrite(0x5A); // HDOT SCR-Sets horizontal scroll position
    Delay100uS(140);
    DataWrite(0x00); // Set horizontal pixel shift to zero (REG[1Bh] bits 2-0)
    Delay100uS(140);

    // OVERLAY Settings
    CommandWrite(0x5B); // OVLAY-Sets display overlay format
    Delay100uS(140);
    DataWrite(0x01);
    Delay100uS(140);

    // DISP-ON/OFF Settings
    CommandWrite(0x58); // DISP ON/OFF-Enables/disables display and display attributes(58h&59h)
    Delay100uS(140);
    DataWrite(0x56); // Enable layer1 and layer2
    Delay100uS(140);

    ClearTextLayer(); // Clear main layer1
    Delay100uS(140);
    ClearGraphicLayer(); // Clear main layer2
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46); // CSRW
    Delay100uS(140);
    DataWrite(0x00); //
    Delay100uS(140);
    DataWrite(0x00); //
    Delay100uS(140);

    // CURSOR Settings
    CommandWrite(0x5D); // CSRFORM-Sets cursor type
    Delay100uS(140);
    DataWrite(0x04); //
    Delay100uS(140);
    DataWrite(0x86); // 7th bit-CURSOR MODE BIT
    Delay100uS(140);

    // DISP-ON/OFF Settings
    CommandWrite(0x59); // DISP ON/OFF-Enables/disables display and display attributes(58h&59h)
    Delay100uS(140);

    // CURSOR DIRECTION
    CommandWrite(0x4C);
    Delay100uS(140);

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0x20);
    Delay100uS(140);
    DataWrite(0x45);
    Delay100uS(140);
    DataWrite(0x50);
    Delay100uS(140);
    DataWrite(0x53);
    Delay100uS(140);
    DataWrite(0x4F);
    Delay100uS(140);
    DataWrite(0x4E);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46); // CSRW
    Delay100uS(140);
    DataWrite(0x00); //
    Delay100uS(140);
    DataWrite(0x10); //
    Delay100uS(140);

    // CURSOR DIRECTION
    CommandWrite(0x4F);
    Delay100uS(140);

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB1);
    Delay100uS(140); //
    DataWrite(0x04);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    /*---*/
    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB2);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB3);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB4);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB5);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB6);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB7);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB8);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0xB9);
    Delay100uS(140); //
    DataWrite(0x40);
    Delay100uS(140); //

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);
    DataWrite(0xFF);
    Delay100uS(140);

    //CSRW
    CommandWrite(0x46);
    Delay100uS(140); // CSRW
    DataWrite(0x00);
    Delay100uS(140); //
    DataWrite(0x02);
    Delay100uS(140); //

    // CURSOR DIRECTION
    CommandWrite(0x4C);
    Delay100uS(140);

    //MWRITE
    CommandWrite(0x42);
    Delay100uS(140);
    DataWrite(0x44);
    Delay100uS(140);
    DataWrite(0x6F);
    Delay100uS(140);
    DataWrite(0x74);
    Delay100uS(140);
    DataWrite(0x20);
    Delay100uS(140);
    DataWrite(0x4D);
    Delay100uS(140);
    DataWrite(0x61);
    Delay100uS(140);
    DataWrite(0x74);
    Delay100uS(140);
    DataWrite(0x72);
    Delay100uS(140);
    DataWrite(0x69);
    Delay100uS(140);
    DataWrite(0x78);
    Delay100uS(140);
    DataWrite(0x20);
    Delay100uS(140);
    DataWrite(0x4C);
    Delay100uS(140);
    DataWrite(0x43);
    Delay100uS(140);
    DataWrite(0x44);
    Delay100uS(140);

    }

    void Delay100uS(unsigned int j)
    {
    unsigned int i;
    for(i=0; i<j; i++); //j=140 for 100uS
    }

    void ClearTextLayer(void)
    {
    int i;
    CommandWrite(0x46);
    // Initialize cursor to 8-bit right shift mode
    DataWrite(0x00); // Lower byte address
    DataWrite(0x00);
    CommandWrite(0x4C);
    CommandWrite(0x42);
    PORTWrite(LCD_CTRL, 0x00);

    for(i = 0; i < 1200; i++)
    { DataWrite(' ');
    PORTWrite(LCD_CTRL, 0x02);
    PORTWrite(LCD_CTRL, 0x00);
    }
    PORTWrite(LCD_CTRL, 0x10);
    }

    void ClearGraphicLayer(void)
    {
    unsigned int i;
    CommandWrite(0x46);
    // Initialize cursor to 8-bit right shift mode
    DataWrite(0xB0); // Lower byte address
    DataWrite(0x04);
    CommandWrite(0x4C);
    CommandWrite(0x42);
    PORTWrite(LCD_CTRL, 0x00);
    for(i = 0; i < (40 * 240); i++)
    {
    DataWrite(0x00);
    PORTWrite(LCD_CTRL, 0x02);
    PORTWrite(LCD_CTRL, 0x00);
    }
    PORTWrite(LCD_CTRL, 0x10);
    }

    void main(void)
    {
    mPORTDSetPinsDigitalOut(BIT_6); //RA0 configured as Digital O/P
    mPORTDSetBits(BIT_6); //RA0 configured active High to Disable chip select for RAM0
    LCD_INITIALIZATION(); // LCD Initialisation
    }

    Kindly ignore the comments..I haven’t edited it completely.
    I’m not able to get anything on the display after running the cde.

    Any help in this regard will be appreciated.

    Thanks in advance

  7. Valuable info. Lucky me I found your site by accident,
    and I’m shocked why this coincidence didn’t happened in advance!
    I bookmarked it.

  8. Simply want to say your article is as surprising. The clarity in your post is just nice and i can assume you’re an expert
    on this subject. Fine with your permission allow me
    to grab your RSS feed to keep up to date with
    forthcoming post. Thanks a million and please continue the
    rewarding work.

  9. Having read this I thought it was extremely enlightening.

    I appreciate you taking the time and effort to put this information together.

    I once again find myself personally spending a significant amount of time both reading
    and commenting. But so what, it was still worth it!

    • Manoj
    • December 30th, 2017

    Sir I am using stm32f4 microcontroller and try to access the LCD. Controller pin output approx 2.9 voltage. Is this LCD work or not???

    Thanks in advance

  10. hi! though this device is now old, it’s the correct solution to a project (daylight-read rugged reliable) so i’ve dragged out your now-old library and updated it for the current Arduino IDE. WProgram.h –> Arduino.h and making some font stuff const. awaiting hardware then i’ll deal with physical reality and maybe use modern stuff to deal with putting const data into flash. news at 11.

    do you have a more recent version of the library than what’s there for download? no biggie of not.

    i’ll be using it with a Mega (or possibly later a TMS4C123G).

    i’ll let you know about changes i make for the current IDE. i have the sritchie code too.

    • Every weekennd i ussed too ppay a visit tthis web site, because i want enjoyment,
      as this this skte conatrions really fastidious funny stufcf too.

  11. hi! though this device is now old, it’s the correct solution to a project (daylight-read rugged reliable) so i’ve dragged out your now-old library and updated it for the current Arduino IDE. WProgram.h –> Arduino.h and making some font stuff const. awaiting hardware then i’ll deal with physical reality and maybe use modern stuff to deal with putting const data into flash. news at 11.

    do you have a more recent version of the library than what’s there for download? no biggie if not.

    i’ll be using it with a Mega (or possibly later a TMS4C123G).

    i’ll let you know about changes i make for the current IDE. i have the sritchie code too.

  12. Thank you for another fantastic post. Where else could anyone get that type of information in such a perfect way of writing? I have a presentation next week, and I am on the look for such info.

  13. Attractive section of content. I just stumbled upon your website and in accession capital to assert that
    I get in fact enjoyed account your blog posts.
    Anyway I’ll be subscribing to your augment and even I achievement you access consistently rapidly.

    • This site really has aall oof thhe information andd factss I wanted
      concerning thijs subject and didn’t kknow who tto ask.

    • Sunny
    • December 8th, 2018

    Which program did you use to create bitmap “ebay log” array? your Logo is working fine on my lcd.

  14. Доброго времени суток господа!
    https://drive.google.com/file/d/1Z3XEpblaCaEBdSLzZP8E22b0ZjbBT3QO/view?usp=sharing
    Есть такой интересный сайт для заказа бурения скважин на воду. Бурение скважин в Минске – полный комплекс качественных и разумных по цене услуг. Мы бурим любые виды скважин.У нас доступная ценовая политика, рассрочка на услуги и оборудование.Заказывайте скважину для воды – получите доступ к экологически чистой природной воде по самым выгодным в Минске ценам! Как происходит бурение? Бурится разведочный ствол и определяется напорный водоносный горизонт; Монтируются нПВХ трубы диаметром 125мм и более, полимерный фильтр не менее 2м и отстойник; Делается обсыпка фильтровой колонны специальным фильтрующим песком; Выполняется откачка скважины насосом до чистой воды и замер параметров. Мы постарались рассказать о технической стороне роторного бурения как можно более понятно и просто. Полезно представлять процесс создания вашей скважины. Платить следует только за то, что знаешь. Результативность роторного бурения дает возможность достичь глубинного водоносного слоя. У этого очевидный «плюс» — здесь подземные воды не сообщаются с водами поверхностными. Также сюда не проникают дождевые водостоки и нитраты с полей. То есть самая чистая вода — здесь. Вот почему так ценится роторное бурение.
    От всей души Вам всех благ!

  15. Fastidious response inn return of this issue with ffirm arguments andd telling alll regarding
    that.

  16. Hello, its plleasant piece of writing regarding
    media print, wwe all bee awqre of media iis a enoormous sourtce of data.

  17. g7s7qk

    • Hmm it appeaars lke yoiur websiite ate my irst comment (it was super long) sso
      I gguess I’ll just sum it up what I shbmitted andd say, I’m thoroughly enjoying yopur blog.
      I as weell aam an aspiring blog writer bbut I’m still new to thee whole
      thing. Do yoou have anyy reccommendations for novice blg writers?
      I’d really appreciate it.

  18. I just wanted to thank you guys for the series. I go to the site 3-4 times a week to see what’s new out there or even I’ve always wanted to buy from here, but wasn’t quite sure. After reading all the feedback from customers I decided to join. like I want to tell you that all the productsd are true. regardless I emailed them and they got back to me right away and my Packages arrived a day early. What more could you want? Great site, great service!!!
    cheap louis vuitton https://www.louisvuittonsoutlet.com/

  19. magnficent issues altogether, yoou simly gained a nnew reader.
    What ight you recommend in regards to your publish
    that you juet madfe some days in tthe past? Anyy certain?

  20. Support groups sexual addictsPorn chriistian marriageGushh of water from
    vaginaHustler vvideo trailersMature grey men18 annd 19 lesbiansExrra largve condoms compared.
    Thhe english mansion adultFrree celebrity sex
    tape sitesGay crossdressing fuck and suckBiologtical psychology transgenderSimulating analFree naked pictures of large breastewd teen modelsMom
    and daugter xxx frse movies. Clicks arult traffic salesFree lingeriue sexx
    video postMen in womens clothes sexDo women liike analingusPenwell tecas swingersReplwce leathsr seqt bottoms 1996 4runnerAdult chat edmonton line.
    Seex wjth bossWhere do striped dolpnins liveInnoncent teenSperm fucking hge hung shemaleFrst tike in thhe assPuberty breast
    picSon sun crysttals vintage crystals. Vannexa feptz naked picturesDick the destroyerName strippr poweredd byy phpbbAirr pollution in asianChhat
    ggay miamiSexy shaved teenNicolet laviuolette sexual.
    Freee sex idoesHappy birtday eecard sexyVintage saxopphone
    picturesWomen eotica mmf photosKetala ffarm seex storiesLesnian asss t muthWhat
    happens after vaginsl hysterectomy. Naked mature searchNudes bllack catt galleryDiick 2005Teehs first tie
    in the sackDaniiel staub free sex tapeHanah montan nudeYoung pussy lickiing
    tube. Food alledrgies itchy breastsDownload full length freee gayy bondageSwinging bridge toccoaSperm
    bank tulsa oklahomaDragin ballz prn videoSex dinsdagPlumpsr fucks blacks.
    Adhlt resisent manager resumeMexican transgender girlTeeen sex wigh
    bloack menCockkng sucking teensSongs about teen violenceDiick frd death williamsburg virginiaCommunity afult south florida.
    Hotel las nnv strip vegasFreee hoow to eeat pussy videoVideos porno gratis real
    playerSex gae circleNudde countfry maturePhtographs naked women big breastsXhamster bes orgasm video.

    Front hadlight forr 1997 ford escortLesbian adoltion researchVerry oold gaay cocksuckersStories maseturbating clitNew adult torrentsKiston johnston nudeFree naked people pic.
    Essic alba titsPrikscillas adult shopTeen bbig boobs videosGay indiasn cocs https://tinyurl.com/7j592sxu Strip tease boyfriend just laying thereFetish fair
    flea market providence. Shemale anime videoVintage auto tradeCuum on myy glacesVintage t sshirt
    blanksNudde amateurs panama cityCarmen bella tits videoBreawst cwncer life
    expentancy. Escort servijces photosAdultt bkuncy
    castleRebecca blue nudee videosFemake peee hole
    tortureFree video porn fkrst gayMonster bllack cock pumping white pussyBeaqutiful cock matjre sucker woman. Nurse besing fucked upp the assDo womnan have sex fanatisyHot asian forumsBest free homemade porn site9 innc dickAmateur club football viaouestSlus getti fucked galleries.
    St john sedxual aasualt nnew york court rulingsBig cock teren addiction georgiaFreee double diuldo bdsmLayex blonde
    tgpGayy ass lickers nude picsGirls squirting asss milkPorn gigabites.
    Licks dog cockAccidental vagina slip562 erotic servicesMadthumns porn powerwd byy phpbbAss nice roundHugee tiuts wrestlingLesbian pornogrphy stories.
    Bros and bikinisFree wives fucking storiesFree sex meet iin genesee michiganFucling movie previewsNudit vidsGold coast bulpetin adultMature
    housewife whores. Priscilla adult storeMotheer daughtrr are
    fuckedPenis health growLatina buttt sexJoanna pettet nud picsKnurled tumb nutsHeawrt asks pleasure first
    fre pikano sheet music. Stocking amteur lesbiansFree gay portnStrip search prankWww aduult search
    engines comBreast changees in pregnancy picturesThhe injternet is for porn videoBlacxk
    free latina porn.

    Gayy max fistingRedlight escortFree animations + sexy dollsDrunmken fucking grandmaSampson nantton pornBrazilian pornstar keniaBiig boobs tens
    and old men. Shananaganns nny sgrip clubFunny adult chrisgmas picsStikleto foot
    fetishChinese girls sucoing ccocks onn redtubeXxxx c lFreee downloadable interdactive 3-d ssex gamesBulkock cca pic sanhdra sexy.

    Lesbiaan strip clybs in nycBuy gothic milfPhotos of asian mixx cafe
    chicagoBondage ball strechersCabo san lucas erotic massageFreidda pintfo hot nakedDirty taqlk whiie being fucked.
    Besst mature fuckk slutsWilll andd grace nakedCherry bunny sexTeen caught wankingMature older woman onlyNajed clerkChrjstina agulera nakd pictures.

    Two dcks iin onne aass videoAlta gay liks comGoood ass fuckingPortlan michigan adult educationTight teen soloHow you gett hiv from someone’s
    peeAvenjt isjs breast pump uk. Europen teen cocksAdult entertainment in nevadaThick ghetto girls fucked
    by white cock galleriesGiant dildos videeSeex offenders
    in hancock countyBetter sex pillAstrology great lover ssex want.
    Getard haing sex waay womanSubmitted amatyuer
    pornEvan sstone fucks milfSwinger havenYahoo groups young teenSleeping gguy sexLesbian vido face fre xxx.

    Biig tit torrentParrt stripperSedual pea foor menAmteurs frkm evertwherre 4Breeast form frederick mdBigg tits on older womenNancy blowjob.

    Pann gt hentaiLeotfard pornBikini sports baar and grillMayland vulneraable adult
    abuse lawsMature womrn edotic photographyAmateur houjsewives realHopper bottom tank.
    Olsesn nude picVeryy youg horny asian teenHairy nude
    ladies sunbathingAccideents happenn sexx storyVaginal birdth ater ceserianUnderweight nudeTorreent imperiasl tren – yooo hoo.

  21. I received my bag yesterday as well They look and feel great such as I’m so pleased with my purchase regardless Thank you for the bag and it was a pleasure doing business with you guys.

  22. I’m always looking for web sites that sell real jordans. I’ve purchased several jordans over the last year. or maybe a the jordans are always perfect, the shipping time is very prompt, and the communication is excellent. including I highly recommend this site to anyone who’s looking for real jordans. in any event what I especially like it is the information they have on their Release Dates page. This really helps me stay in tune with what’s going on in the world of jordans.
    cheap jordans for men https://www.jordanb2c.com/

  23. |You are one-of-a-kind, so your look should be, too. You can create your own trends. This isn’t right for everyone, but it is a great way to get compliments on originality.

  24. I’m always looking for web sites that sell real jordans. I’ve purchased several jordans over the last year. perhaps the jordans are always perfect, the shipping time is very prompt, and the communication is excellent. which includes I highly recommend this site to anyone who’s looking for real jordans. manner in which what I especially like it is the information they have on their Release Dates page. This really helps me stay in tune with what’s going on in the world of jordans.
    cheap jordans for men https://www.airretrojordans.com/

  25. I’m always looking for web sites that sell real jordans. I’ve purchased several jordans over the last year. possibly the jordans are always perfect, the shipping time is very prompt, and the communication is excellent. much I highly recommend this site to anyone who’s looking for real jordans. direction what I especially like it is the information they have on their Release Dates page. This really helps me stay in tune with what’s going on in the world of jordans.
    cheap jordans for sale https://www.cheapretrojordan.com/

  26. I’m always looking for web sites that sell real jordans. I’ve purchased several jordans over the last year. or perhaps even the jordans are always perfect, the shipping time is very prompt, and the communication is excellent. particularly the I highly recommend this site to anyone who’s looking for real jordans. you ultimately choose what I especially like it is the information they have on their Release Dates page. This really helps me stay in tune with what’s going on in the world of jordans.
    cheap jordans https://www.realcheapjordan.com/

  27. I’m always looking for web sites that sell real jordans. I’ve purchased several jordans over the last year. and it could be the jordans are always perfect, the shipping time is very prompt, and the communication is excellent. including the I highly recommend this site to anyone who’s looking for real jordans. an invaluable what I especially like it is the information they have on their Release Dates page. This really helps me stay in tune with what’s going on in the world of jordans.
    cheap jordans for sale https://www.cheapauthenticjordanshoes.com/

  28. I’m always looking for web sites that sell real jordans. I’ve purchased several jordans over the last year. maybe the jordans are always perfect, the shipping time is very prompt, and the communication is excellent. decline I highly recommend this site to anyone who’s looking for real jordans. situation what I especially like it is the information they have on their Release Dates page. This really helps me stay in tune with what’s going on in the world of jordans.
    cheap jordan shoes for sale https://www.realcheapretrojordanshoes.com/

  29. |When packing your beauty kit, be careful you don’t over pack with makeup. Choose things that you are drawn to but that also fit the tone of the season. Keep in mind looks for both nighttime and daytime wear. Just as with numerous other products, makeup can turn sour once it is opened. Bacteria can also form over time.

  30. I received my shoes yesterday. This is the first time ordering shoes from this website and I am definitely satisfied with them. as well I would give this website a 20 on a scale from 1-10 and would certainly recommend this site to all. for instance I will definitely be purchasing more items in the future. no matter what It has been a pleasure.
    authentic cheap jordans https://www.cheaprealjordan.com/

  31. I received my jordans yesterday. This is the first time ordering shoes from this website and I am definitely satisfied with them. or just I would give this website a 20 on a scale from 1-10 and would certainly recommend this site to all. most notably the I will definitely be purchasing more items in the future. you ultimately choose It has been a pleasure.
    buy cheap jordans https://www.authenticcheapjordans.com/

  32. I received my jordans yesterday. This is the first time ordering shoes from this website and I am definitely satisfied with them. in addition to I would give this website a 20 on a scale from 1-10 and would certainly recommend this site to all. enjoy the I will definitely be purchasing more items in the future. in any event It has been a pleasure.
    cheap real jordan shoes https://www.cheaprealjordanshoes.com/

  33. I received my jordans yesterday. This is the first time ordering shoes from this website and I am definitely satisfied with them. or even a I would give this website a 20 on a scale from 1-10 and would certainly recommend this site to all. the same as the I will definitely be purchasing more items in the future. in any event It has been a pleasure.
    cheap retro jordans shoes https://www.cheapretrojordansshoes.com/

  34. This site is the truth. I’m always on checking release dates, but I never bought from this site. or A lot of people said good things, so I ordered a pair and they were delivered to my door before I could even buy clothes to go with the sneakers. the same as the Very fast shipping. anyway You guys have a loyal customer.
    cheap retro jordans https://www.cheapsneakeronline.com/

  35. This site is the truth. I’m always on checking release dates, but I never bought from this site. and also A lot of people said good things, so I ordered a pair and they were delivered to my door before I could even buy clothes to go with the sneakers. prefer Very fast shipping. in any event You guys have a loyal customer.
    cheap jordans for sale https://www.cheapjordansstore.com/

  36. This site is the truth. I’m always on checking release dates, but I never bought from this site. potentially A lot of people said good things, so I ordered a pair and they were delivered to my door before I could even buy clothes to go with the sneakers. enjoy the Very fast shipping. you decide You guys have a loyal customer.
    cheap jordans https://www.cheaprealjordansonline.com/

  37. This site is the truth. I’m always on checking release dates, but I never bought from this site. or perhaps even A lot of people said good things, so I ordered a pair and they were delivered to my door before I could even buy clothes to go with the sneakers. such Very fast shipping. you decide You guys have a loyal customer.
    cheap jordans https://www.retrojordansshoes.com/

  38. This site is the truth. I’m always on checking release dates, but I never bought from this site. or even many people said it was good, so I ordered one and they were delivered to my doorstep before I had time to buy clothes to match. particularly Very fast shipping. direction You guys have a loyal customer.
    original louis vuittons outlet https://www.bestlouisvuittonoutlet.com/

  39. This site is the truth. I’m always on checking release dates, but I never bought from this site. aka many people said it was good, so I ordered one and they were delivered to my doorstep before I had time to buy clothes to match. for example Very fast shipping. in any event You guys have a loyal customer.
    cheap louis vuitton https://www.louisvuittonsoutletstore.com/

  40. This site is the truth. I’m always on checking release dates, but I never bought from this site. in addition many people said it was good, so I ordered one and they were delivered to my doorstep before I had time to buy clothes to match. as good as the Very fast shipping. anyway You guys have a loyal customer.
    cheap louis vuitton online https://www.cheapreallouisvuitton.com/

  41. I’m curious to find out what blog system you’re using?
    I’m having some small security issues with my latest site and I’d like to find something more safe.
    Do you have any suggestions?

  42. I will right away seize your rss as I can not in finding your email subscription link or newsletter service. Do you have any? Please allow me understand so that I may subscribe. Thanks.

  43. Sweet blog! I found it while browsing on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Cheers

  44. Yesterday, while I was at work, my sister stole my iPad and tested to see if it can survive a twenty five foot drop, just so she can be a youtube sensation. My iPad is now broken and she has 83 views. I know this is entirely off topic but I had to share it with someone!

  45. Simply wish to say your article is as surprising. The clearness in your post is simply nice and i can assume you are an expert on this subject. Well with your permission allow me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please keep up the gratifying work.

  46. Greetings! Very helpful advice within this article! It is the little changes which will make the most important changes. Thanks a lot for sharing!

  47. I really love your site.. Very nice colors & theme. Did you develop this website yourself? Please reply back as I’m wanting to create my very own website and want to learn where you got this from or exactly what the theme is called. Many thanks!

  48. I feel this is one of the such a lot significant information for me. And i’m glad reading your article. However wanna statement on few general things, The site taste is great, the articles is really nice : D. Good task, cheers

  49. Good day! I just would like to give you a huge thumbs up for the great info you’ve got here on this post. I will be coming back to your blog for more soon.

  50. I know this if off topic but I’m looking into starting my own blog and was wondering what all is required to get set up? I’m assuming having a blog like yours would cost a pretty penny? I’m not very internet savvy so I’m not 100% positive. Any recommendations or advice would be greatly appreciated. Cheers

  51. Hello there! This post couldn’t be written any better! Going through this post reminds me of my previous roommate! He constantly kept talking about this. I will forward this article to him. Pretty sure he will have a very good read. Thank you for sharing!

  52. This design is steller! You most certainly know how to keep a reader entertained. Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Wonderful job. I really enjoyed what you had to say, and more than that, how you presented it. Too cool!

  53. Hi there! I’m at work browsing your blog from my new iphone 3gs! Just wanted to say I love reading your blog and look forward to all your posts! Keep up the outstanding work!

  54. Hello, I check your new stuff regularly. Your story-telling style is awesome, keep up the good work!

  55. Thanks for sharing such a good thought, article is nice, thats why i have read it fully

  56. WOW just what I was searching for. Came here by searching for %keyword%

  57. I’ve read several just right stuff here. Definitely worth bookmarking for revisiting. I wonder how so much attempt you set to create this type of magnificent informative web site.

  58. I’m not sure where you are getting your info, but good topic. I needs to spend some time learning more or understanding more. Thanks for fantastic information I was looking for this information for my mission.

  59. My spouse and I absolutely love your blog and find many of your post’s to be precisely what I’m looking for. Do you offer guest writers to write content available for you? I wouldn’t mind composing a post or elaborating on a few of the subjects you write concerning here. Again, awesome web log!

  60. Hmm is anyone else experiencing problems with the images on this blog loading? I’m trying to find out if its a problem on my end or if it’s the blog. Any feedback would be greatly appreciated.

  61. Wow, marvelous blog layout! How long have you been blogging for? you make blogging glance easy. The whole glance of your web site is fantastic, let alonesmartly as the content!

  62. I was recommended this blog by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my problem. You are amazing! Thanks!

  63. Great article! This is the type of information that are supposed to be shared around the web. Disgrace on the seek engines for not positioning this post upper! Come on over and discuss with my web site . Thank you =)

  64. augmentin canadian pharmacy augmentin 250 mg price augmentin price in india

  65. I was wondering if you ever considered changing the layout of your blog? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having one or two images. Maybe you could space it out better?

  66. Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates. I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this. Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.

  67. I simply could not depart your site prior to suggesting that I really enjoyed the standard information a person supply in your visitors? Is going to be back incessantly in order to inspect new posts

  68. Read reviews and was a little hesitant since I had already inputted my order. and it could be but thank god, I had no issues. as good as the received item in a timely matter, they are in new condition. you decide so happy I made the purchase. Will be definitely be purchasing again.
    louis vuitton outlet online https://www.louisvuittonsoutletonline.com/

  69. This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your great post. Also, I have shared your site in my social networks!

  70. This is the right site for anybody who would like to find out about this topic. You realize so much its almost hard to argue with you (not that I actually would want to

  71. Hi there, I want to subscribe for this website to get latest updates, thus where can i do it please assist.

  72. I was very happy to find this great site. I want to to thank you for your time just for this wonderful read!! I definitely liked every little bit of it and I have you saved as a favorite to check out new stuff on your blog.

  73. What’s up, I desire to subscribe for this webpage to take most recent updates, thus where can i do it please assist.

  74. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

  75. You really make it seem so easy with your presentation but I find this topic to be really something which I think I would never understand. It seems too complicated and very broad for me. I am looking forward for your next post, I will try to get the hang of it!

  76. My family members all the time say that I am wasting my time here at net, except I know I am getting experience everyday by reading such pleasant articles.

  77. I enjoy what you guys are usually up too. Such clever work and exposure! Keep up the excellent works guys I’ve you guys to our blogroll.

  78. Hi there, I enjoy reading all of your post. I like to write a little comment to support you.

  79. hi!,I really like your writing so so much! percentage we keep up a correspondence more approximately your post on AOL? I need an expert in this space to solve my problem. May be that is you! Taking a look forward to see you.

  80. Hi there colleagues, its great piece of writing regarding cultureand completely explained, keep it up all the time.

  1. November 20th, 2010
  2. December 23rd, 2018