Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Paul_B

Pages: 1 ... 9 10 [11] 12 13 ... 17
151
TFTs / Re: NHD-5.7-640480WF-CTXL-T
« on: July 15, 2015, 10:32:31 AM »
Hi Mike!

Please consult the SSD1963 spec for additional timing characteristics  ;)

http://www.newhavendisplay.com/app_notes/SSD1963.pdf

Next, I have attached some example Arduino code:

Code: [Select]
//---------------------------------------------------------
/*
NHD_5_7_640480WF_mega.ino
Program for writing to Newhaven Display 5.7 TFT with NHD-5.7-640480WF-20 Controller Board (SSD1963, 8-bit)

(c)2013 Mike LaVine - Newhaven Display International, LLC.

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
*/
//---------------------------------------------------------

// The 8 bit data bus is connected to PORTA of the Arduino Mega2560
// 5V voltage regulator on Arduino Mega has been replaced with a 3.3V regulator to provide 3.3V logic

int RS  = 30;    // RS signal connected to Arduino digital pin 30
int WR  = 31;    // /WR signal connected to Arduino digital pin 31
int RD  = 32;    // /RD signal connected to Arduino digital pin 32
int RES = 33;    // /RES signal connected to Arduino digital pin 33

// /CS signal tied to GND
// U/D and R/L signals can be either high or low, depending on scan direction preference

//;******************************************************************************
void TFT_Write_Command(unsigned char command)
{
  digitalWrite(RS, LOW);
  PORTA = command;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//;******************************************************************************
void TFT_Write_Data(unsigned char data)
{
  //digitalWrite(RS, HIGH);
  PORTA = data;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//====================================================
void TFT_Command_Write(unsigned char REG,unsigned char VALUE)
{
        TFT_Write_Command(REG);
        digitalWrite(RS, HIGH);
        TFT_Write_Data(VALUE);
}
//======================================================
void WindowSet(unsigned int s_x,unsigned int e_x,unsigned int s_y,unsigned int e_y)
{
TFT_Write_Command(0x2a); //SET column address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_x)>>8); //SET start column address
TFT_Write_Data(s_x);
TFT_Write_Data((e_x)>>8); //SET end column address
TFT_Write_Data(e_x);

TFT_Write_Command(0x2b); //SET page address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_y)>>8); //SET start page address
TFT_Write_Data(s_y);
TFT_Write_Data((e_y)>>8); //SET end page address
TFT_Write_Data(e_y);
}
void disp()
{
unsigned int i, j;
        WindowSet(0,639,0,479);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
for(i=0;i<480;i++)         //fill screen with blue pixels
{
    for(j=0;j<640;j++)
            {
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,639,0,479);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<480;i++)         //fill screen with green pixels
{
    for(j=0;j<640;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,639,0,479);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<480;i++)         //fill screen with red pixels
{
    for(j=0;j<640;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
            }
}
}
//======================================================
void setup()
{
  DDRA = 0xFF;
  PORTA = 0x00;
  DDRC = 0xFF;
  PORTC = 0x00;
  digitalWrite(RD, HIGH);
  digitalWrite(WR, LOW);
  digitalWrite(RES, LOW);
  delay(120);
  digitalWrite(RES, HIGH);
  delay(120);
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xe2);         //set multiplier and divider of PLL
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x1d);
  TFT_Write_Data(0x02);
  TFT_Write_Data(0x04);
  TFT_Command_Write(0xe0,0x01);    //Enable PLL
  delay(1);
  TFT_Command_Write(0xe0,0x03);    //Lock PLL
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xb0); //SET LCD MODE  SET TFT 18Bits MODE
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x0c); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x80); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x02); //SET horizontal size=320-1 HightByte
  TFT_Write_Data(0x7f);         //SET horizontal size=320-1 LowByte
  TFT_Write_Data(0x01); //SET vertical size=240-1 HightByte
  TFT_Write_Data(0xdf); //SET vertical size=240-1 LowByte
  TFT_Write_Data(0x00); //SET even/odd line RGB seq.=RGB
  TFT_Command_Write(0xf0,0x00);         //SET pixel data I/F format=8bit
  TFT_Command_Write(0x36,0x09);         //SET address mode=flip vertical 
  TFT_Write_Command(0xe6);    //SET PCLK freq
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x02);
  TFT_Write_Data(0xff);
  TFT_Write_Data(0xff);
  TFT_Write_Command(0xb4); //SET HBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x02); //SET HSYNC Total=760
  TFT_Write_Data(0xf8);
  TFT_Write_Data(0x00); //SET HBP 68
  TFT_Write_Data(0x44);
  TFT_Write_Data(0x0f);  //SET HSYNC Pulse Width=128=127pixels+1
  TFT_Write_Data(0x00); //SET Hsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Data(0x00); //SET Hsync pulse subpixel start position
  TFT_Write_Command(0xb6); //SET VBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x01); //SET Vsync total
  TFT_Write_Data(0xf8);
  TFT_Write_Data(0x00); //SET VBP=19
  TFT_Write_Data(0x13);
  TFT_Write_Data(0x07);  //SET VSYNC Pulse Width= 8=7lines+1
  TFT_Write_Data(0x00); //SET Vsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Command(0x13); //SET display on
  //TFT_Write_Command(0x38); //SET display on
  TFT_Write_Command(0x29); //SET display on
  delay(10);
}

void loop()
{
  disp();
  delay(1000); 
}

Hope this helps!

152
OLEDs / Re: Mouser Oled
« on: July 15, 2015, 09:27:33 AM »
Hi Joseph,

I'm sorry, unfortunately we do not have a public schematic available for this display.

Sorry for the inconvenience.
 

153
OLEDs / Re: Mouser Oled
« on: July 14, 2015, 10:15:37 AM »
Hi Joseph!

There are plenty of user created Arduino Libraries written for the SSD1351 controller. I recommend searching in google for "SSD1351 Arduino library".

Hope this helps, feel free to contact me if you have any questions!

154
OLEDs / Re: NHD-0216CW-AB3 3D Model
« on: July 10, 2015, 08:52:19 AM »
Hello,

I'm sorry, unfortunately at this time we do not have a 3D model available for NHD-0216CW-AB3.

Please note we do have a 2D drawing which can be viewed on page 3 in the displays datasheet:

http://www.newhavendisplay.com/specs/NHD-0216CW-AB3.pdf

Have a good one!

155
OLEDs / Re: Mouser Oled
« on: July 09, 2015, 07:47:18 AM »
Hi Joseph,

Below is some example code for that display written for the Arduino  ;)

https://github.com/NewhavenDisplay/NHD-1.5-128128UGC3-Example-Code

Regarding the pin out, please see page 4 in the displays datasheet:

http://www.newhavendisplay.com/specs/NHD-1.5-128128UGC3.pdf

You will need to select a interface that best supports your needs. Finally the example code can be configured to support multiple interfaces (See line 48).

Enjoy your new display!


156
OLEDs / Re: NHD0420CW-A*3 tHREE LINE MODE, MIDDLE LINE DOUBLE HEIGHT
« on: July 01, 2015, 09:49:46 AM »
Finally, please see the example Double Height Arduino Sketch below, before proceeding download NHD's US2066 Arduino Library and place the Sketch in the example folder:

https://github.com/NewhavenDisplay/NHD_US2066

Code: [Select]
//---------------------------------------------------------
/*

DoubleHeight.ino

Program for writing to Newhaven Display Slim OLEDs based on US2066 controller.

Pick one up today in the Newhaven Display shop!
------> http://www.newhavendisplay.com/oled-slim-character-oleds-c-119_825.html

This code is written for the Arduino Mega.

Copyright (c) 2015 - Newhaven Display International, Inc.

Newhaven Display invests time and resources providing this open source code,
please support Newhaven Display by purchasing products from Newhaven Display!

*/
//---------------------------------------------------------

#include <SPI.h>
#include <Arduino.h>
#include <Wire.h>
#include <avr\io.h>

#include "NHD_US2066.h"
unsigned char text1[]   = {"Newhaven Display    "};
unsigned char text2[]   = {"International       "};
unsigned char text3[]   = {"123456789           "};
unsigned char text4[]   = {"ABCDEFGHI           "};

unsigned char text5[]   = {"New Slim Profile    "};
unsigned char text6[]   = {"2 or 4 Lines        "};
unsigned char text7[]   = {"16 or 20 CHAR       "};
unsigned char text8[]   = {"OLED Modules        "};


unsigned char text9[]   = {"2.8V or 5V Power    "};
unsigned char text10[]  = {"Built-in Reg        "};
unsigned char text11[]  = {"Parallel or         "};
unsigned char text12[]  = {"Serial Interface    "};
unsigned char text13[]  = {"3 Font Tables       "};
unsigned char text14[]  = {"===================="};
unsigned char text15[]   ={"***   Built-in   ***"};
unsigned char text16[]  = {"--------------------"};



void output()
{
int i;
       
        command(0x2E);
        command(0x1C);
        command(0x2C);
       
        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text1[i]);
        }
        delay(5);
       
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
       
        delay(7000);
       
        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text3[i]);
        }
        delay(5);
       
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
       
        delay(7000);
       
        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text5[i]);
        }
       
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
       
        delay(7000);
       
        command(0x28);
        delay(5);
       
        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text6[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text7[i]);
        }
        delay(5);
       
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text16[i]);
        }
       
        command(0xE0);
        delay(5);
        for(i=0;i<20;i++){
          data(text16[i]);
        }
       
        delay(7000);

        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text9[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text10[i]);
        }
        delay(5);
       
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
        delay(5);
       
        command(0xE0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
       
        delay(7000);
       
        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text11[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text12[i]);
        }
        delay(5);
       
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
        delay(5);
       
        command(0xE0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
       
        delay(7000);
       
        command(0x01);
        delay(5);
        for(i=0;i<20;i++){
          data(text13[i]);
        }
        delay(5);
       
        command(0xA0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
        delay(5);
       
       
        command(0x2E);
        command(0x10);
        command(0x2C);
       
     
        command(0xC0);
        delay(5);
        for(i=0;i<20;i++){
          data(text15[i]);
        }
        delay(5);
       
        command(0xE0);
        delay(5);
        for(i=0;i<20;i++){
          data(text14[i]);
        }
   
         delay(7000);
         
}


void blocks()
{
int i;

        command(0x01);
        delay(5);

        for(i=0;i<20;i++){
          data(0x1F);
        }

        command(0xA0);
        for(i=0;i<20;i++){
          data(0x1F);
        }
}

void setup()
{
init_oled();
}

void loop()

  while(1)
  {
    output();
    //blocks();
    delay(2000);
  }
}

157
OLEDs / Re: NHD0420CW-A*3 tHREE LINE MODE, MIDDLE LINE DOUBLE HEIGHT
« on: July 01, 2015, 09:36:54 AM »
Hello,

Our Slim OLED character displays are available in 2x16, 2x20, and 4x20 character formats.

When you send the Double Height command you are doubling the size of the text. i.e Combining the rows (see picture attached).


I recommend looking at our Graphic OLED displays if a standard character display will not fit your requirements:

http://www.newhavendisplay.com/oled-graphic-oled-c-119_577.html


Hope this helps!








158
OLEDs / Re: NHD-0216CW module using SPI - Question
« on: June 29, 2015, 04:18:49 PM »
Afternoon Fred,

Thank you for sharing your code  8)

Regarding the delay for the /RES line, you will need to follow the sequence below:

Power on
Wait at least 1ms
Bring reset low
Wait at least 3us
Bring reset high
Wait at least 200ms before sending commands

Finally, the .1 second delay listed in the example code was used during mock-up and is in no way the min value. For specific delay times please refer to the US2066 datasheet:

http://www.newhavendisplay.com/app_notes/US2066.pdf

Hope this helps!

159
TFTs / Re: NHD-1.8-128160EF-CTXI#
« on: June 26, 2015, 07:42:40 AM »
Hello,

NHD-1.8-128160EF-CTXI# only supports a 8‐bit Parallel interface.

Have a great weekend!

160
Morning,

Correct, this VFD display has a 14 pin connection (see picture attached). The 5-wire cable is soldered to Pin NO. 1,2,3,4,6

Pin-Out:

1. GND
2. Vcc
3. SI/SO
4. STB
5. SCK

Please let me know if you need any additional help  ;)

161
OLEDs / Re: NHD-0216CW module using SPI - Question
« on: June 22, 2015, 07:50:33 AM »
Morning Fred,

Below is some example code written for the Arduino  ;)

https://github.com/NewhavenDisplay/NHD_US2066

Next, (IS, RE and SD) will need to be configured correctly in order for the controller to correctly identify which command the user wishes to execute. Take a look at the initialization sequence (File: NHD_US2066.cpp). The code is heavily commented and should clear up any questions.

Please keep us posted on your progress!


162
Hello,

To answer your question, yes you can use the linker cable as long as the pin-out matches your motherboards serial header.

Please see page 16 in the displays datasheet regarding the pin-out and how to configure the jumper settings.

http://www.newhavendisplay.com/specs/M0220SD-202SDAR1-S.pdf

Hope this helps!


163
Character LCDs / Re: NHD-0212WH-ATMI-JT# on 3.3V
« on: June 10, 2015, 02:00:01 PM »
Hi Dave,

Glad to hear, thank you for posting an update  :)

164
OLEDs / Re: NHD-0420CW-AG3 Pixel Test
« on: June 05, 2015, 07:39:57 AM »
Not a problem, have a good one!

165
OLEDs / Re: NHD-0420CW-AG3 Pixel Test
« on: June 04, 2015, 08:39:08 AM »
Hello,

Burn-in (as in ghostly image) is a more susceptible to OLED displays, however it can still occur with standard LCD's.

The length of time required for noticeable screen burn to develop varies due to many factors. It can take as little as only a few weeks for noticeable ghosting to set in, especially if the screen displays a certain image (example: a menu bar at the top or bottom of the screen) constantly, and displays it continually over time.

Please note that screen burn-in can easily be avoided, you may want to think of a plan to reduce long-term display in the same place on the screen.

Below are a few simple steps you can take to prevent burn-in:

E.g. In your case maybe install a PIR sensor to turn off the display when no one is in proximity of the unit.

E.g. Enable the OLED's built-in scroll feature.


Finally, Karma points are given by members to other members for any reason, usually for answering or posting a helpful question  8)

Pages: 1 ... 9 10 [11] 12 13 ... 17