the first line of 'Function set' on page 25 is 000010XXXX so I call setdata and send it 000010 (which is 2 binary or 0x02 hex), then the next line and the next line then a delay. I believe that function set for the LCD should be set.....Again this is how I read it, I hope this is correct.

First of all, to understand what is going on you should first read an explanation of the initialization routine which you can find by following the LCD Initialization link at http://web.alfredstate.edu/weimandn. This explanation is for the Hitachi chip but the Instruction Set is the same and the initialization appears to be the same except that this chip may not need the reset sequence at the beginning.

I am not sure what you are questioning as far as the 'Function set' on page 25 is concerned. I did take a look at the rest of the flowchart on page 25 and have found an error which you have faithfully followed. The second line of the Display ON/OFF Control should be shown as: 0 0 1 D C B X X X X

Thank you all for your responses, it is greatly appreciated! I will have to go through and follow recommendations, I will post follow ups on my results. I do have to start at the beginning now because I removed the LCD altogether and just put it to a 3.3V then 5V supply and trim the pot up and down, down to zero and could not get anything out of it.

floresta, Thank you very much for the link and for the correction on the datasheet! How did you figure that out? Very bad for beginners :~I was trying to give an example of how I was doing the initialization and just used 'Function Set' as an example, I wasn't questioning it. Also, I cannot use an UNO I have to have everything hooked up to the Pro-Mini. Its not me, I am just following the protocol.

Thanks Again!

PS I went through the initialization process again and the output from the analyzer and myself and a co-worker are certain that it the correct sequence.

Thank you all for your responses, it is greatly appreciated! I will have to go through and follow recommendations, I will post follow ups on my results. I do have to start at the beginning now because I removed the LCD altogether and just put it to a 3.3V then 5V supply and trim the pot up and down, down to zero and could not get anything out of it.

This is absolutely the best way to go about doing things, but assuming that this controller reacts like the HD44780U you absolutely must get the contrast working properly before you try running any code.

I recommend that you start by using just a 5V supply, a 10K potentiometer, and the LCD module.

Connect pins 1, 2, and 3 as shown in the diagram on page 4 of the datasheet.

You should be able to vary the voltage at pin 2 from 0 to 5 volts (with respect to GND).

The display should be blank with 5 volts and you should see one row (or possibly both rows) of blocks at 0 volts.

When you adjust the potentiometer so that a single row of blocks is visible and not too dark you should find the voltage at pin 2 to be about 0.6 volts.

If this doesn't work you should call NHD because either the device is faulty or else it doesn't work like all of the others (which is certainly possible).

If this does work then you should substitute a 3.3v supply and see if you can still get the single row of blocks.

If you can't then you probably need a negative voltage for pin 2 as we discussed earlier. You may want to ask NHD about this as well.

Don't even think about running any code until you get this part resolved.

Quote

Thank you very much for the link and for the correction on the datasheet! How did you figure that out?

I have been using these devices in my courses and since retirement for more than 20 years with the 8080, 8085, 68HC11, various PICs, and now AVRs almost exclusively programming them in assembly language. The first thing I look at in a new program is its initialization routine and until recently they have almost invariably been wrong. The current LiquidCrystal library, for example, does not completely comply with the HD44780U recommendations.

raviolidon,What is your goal/requirement?Is it to write you own low level LCD code or to just use the LCD as part of some other project?The reason I ask is because from looking at the datahsheet, the display should work with theLiquidCrystal library.If the goal is not to write your own low level code, then, as a few others have mentionedit would be easier to use the LiquidCrystal library.Wire it up as noted in the LiquidCrystal example sketch and it should work.

Bring up the IDE and click on:[File]->[Examples]->[LiquidCrystal]->[HelloWorld]The code will show up and you can wire up the pins accordingly.

The biggest value of using Arduino, is the ability to take advantage of the manyavailable libraries.

Thanks for your response, I will definitely take a look at the example! I really hope that I could use it!!! My project is only in the beginning/preliminary stage but in the end I will have 3 of these Displays on the front of a power supply. I have to use this LCD and have to use the 3.3V Pro-mini; there is no room for change here. I have the initialization code (first page) that I wrote by following the datasheets and I do indeed get the correct output (according to my analyzer) I just cant get the LCD to work. I am still playing around with it and will post what I find.

I called Newhaven Display this morning and talked to an application engineer. He said that particular display would be usable at 3V3 and about 0.1V on V5. He also said that to extend the viewing angle you could apply a negative voltage to V5, for example, around -1V with respect to ground.

If the chip on OP's 3.3V Mini-Pro is an ATmega328P-AU like shown on Sparkfun's page, it is rated to 5.5V.

I called Newhaven Display this morning and talked to an application engineer. He said that particular display would be usable at 3V3 and about 0.1V on V5. He also said that to extend the viewing angle you could apply a negative voltage to V5, for example, around -1V with respect to ground.

That's good news and is just what I expected.

Did you happen to remember to ask them the other question, whether we can expect to see a row of blocks on a powered but not properly initialized display?

Quote

If the chip on OP's 3.3V Mini-Pro is an ATmega328P-AU like shown on Sparkfun's page, it is rated to 5.5V.

It would be nice to know all of his constraints at once rather than getting them piecemeal. We know that for some reason he has to use an Arduino pro mini but we don't know which one he has. We also don't know if he is limited to running at 3.3V for some other reason. According to the Arduino website (http://arduino.cc/en/Main/ArduinoBoardProMini) there are two versions:"There are two version of the Pro Mini. One runs at 3.3V and 8 MHz, the other at 5V and 16 MHz." and this may be a concern for him.

The 3.3V version runs at 8 MHz because it has to. The 5V version runs at 16 MHz because it can, and this also makes it more compatible with other Arduinos. I doubt that there is any difference in the voltage rating of the components on the two versions so I suspect the 3.3V version can be run at 5V as long as one tells the IDE that it is running at 8 MHz.

Well it looks like I am at a block. I have not been able to get this display to give me any feedback whatsoever. I have put a 5V supply to it and a 10k pot (also switched the pot out for resistors) and cannot get blocks of anything. I have played with the voltage, played with the resistance, I have tried a few different displays, I have measured the current and resistance, I have spoken to Newhaven engineers and it is supposed to work Maybe it really does need to be initialized and newhaven doesn't know because they have never tried? They assured me it should work.

Quote

It would be nice to know all of his constraints at once rather than getting them piecemeal. We know that for some reason he has to use an Arduino pro mini but we don't know which one he has. We also don't know if he is limited to running at 3.3V for some other reason. According to the Arduino website (http://arduino.cc/en/Main/ArduinoBoardProMini) there are two versions: "There are two version of the Pro Mini. One runs at 3.3V and 8 MHz, the other at 5V and 16 MHz." and this may be a concern for him.

I think you are talking about me, so I will elaborate. I am using the 3.3V 8MHz Pro-Mini and I have to run 3.3V because I am told to do so. There is no way around that. I will be using this Arduino and three of these LCD's to display voltages (from another source) on a power supply (front panel). I have no control over what I was given and so I am trying to make it all work. The reason I posted this message in the beginning was to see if anyone else has ever used this combination and if so could help me on my merry way, but it seems no one has used this combination before.

Thank you all for all of your help and all the brainstorming, I really do appreciate this forum!

I am using the 3.3V 8MHz Pro-Mini and I have to run 3.3V because I am told to do so. There is no way around that. I will be using this Arduino and three of these LCD's to display voltages (from another source) on a power supply (front panel). I have no control over what I was given and so I am trying to make it all work.

But from your earlier photo, you do have an UNO.So while the UNO can't be used in the final project/product it could be used to verify if the LCD is working or not.It would only take a few minutes to hook up the uno to the LCD and run the "hellworld" LiquidCrystal library example sketch.This would verify that the LCD is working.

Then, once the display is known to be working, you can go back to your pro-mini environment.

I am using the 3.3V 8MHz Pro-Mini and I have to run 3.3V because I am told to do so. There is no way around that. I will be using this Arduino and three of these LCD's to display voltages (from another source) on a power supply (front panel). I have no control over what I was given and so I am trying to make it all work.

But from your earlier photo, you do have an UNO.So while the UNO can't be used in the final project/product it could be used to verify if the LCD is working or not.It would only take a few minutes to hook up the uno to the LCD and run the "hellworld" LiquidCrystal library example sketch.This would verify that the LCD is working.

Then, once the display is known to be working, you can go back to your pro-mini environment.

--- bill

I believe that liudr mentioned something like this before and I certainly agree. By running your device from a 5V UNO you will be removing several variables leaving primarily just the difference between the NT7605 and the HD44780U controllers.

Quote

I have put a 5V supply to it and a 10k pot (also switched the pot out for resistors) and cannot get blocks of anything.

We still have not established that you should get a row of blocks from an NT7605 controller. This is the way an HD44780U (and most of the others) responds to being improperly initialized but this controller could be different.

Back in May I requested an evaluation kit from New Haven. I explained that questions about their devices were becoming more common on these forums and that since they differ somewhat from the traditional LCDs it was hard to provide reliable answers. Their response:"You can purchase these right from our website."