<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LCD Display Driver</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/10418/lcd-display-driver</link><description>Hello, 
 I bought a SainSmart display which fits on the PCA10028 development board. This display is a 16x2 character display with a HD44780 display contoller (I guess).
Does anybody know if there is a driver available that runs on the nRF51422?
If</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 21 Apr 2017 07:39:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/10418/lcd-display-driver" /><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38694?ContentTypeID=1</link><pubDate>Fri, 21 Apr 2017 07:39:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f357d305-0ef8-42dd-abd4-9480b48c6f74</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;Please open a new question and link to this one if it is relevant. You should also consider adding some more information, what isn&amp;#39;t working?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38692?ContentTypeID=1</link><pubDate>Thu, 20 Apr 2017 19:33:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bec0faef-bc3b-4edd-815c-9e2f2a27049a</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;Hi phob, sorry for delayed response. I forgot my Nordic Dev Zone login info and clicked on &amp;quot;forgot my password&amp;quot;, but Nordic Dev Zone hasn&amp;#39;t been helpful at all to recover my account, so I just created another account to answer your question.&lt;/p&gt;
&lt;p&gt;I highly recommend you use the IO port expander to free up your pins on your board, plus it is really easy to hook up one. The files I have attached here only work with TWI line, but you may be able to change it so it would suite your need.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/4075.nrf_5F00_hd44780.c"&gt;nrf_hd44780.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/7635.nrf_5F00_hd44780.h"&gt;nrf_hd44780.h&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5582.main.c"&gt;main.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cheers, and good luck.&lt;/p&gt;
&lt;p&gt;Mark&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38693?ContentTypeID=1</link><pubDate>Tue, 18 Apr 2017 01:47:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:567fdc50-daa5-456a-918a-d173667a3931</guid><dc:creator>phob</dc:creator><description>&lt;p&gt;Hi,
sorry to open this tread again. I am using the library shared in this thread. But it is not working for me. I am using NRF52DK board.
I dont have IO port exapander to use.
Please suggest something on this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38690?ContentTypeID=1</link><pubDate>Fri, 03 Jun 2016 17:55:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74b12f41-28bc-4301-a411-163f317c833d</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;I was afraid to damage my nRF52 board, so I managed to find another solution to work with HD44780. I&amp;#39;m using an IO Expander(PCF8574A) between the LCD and nRF52 board. Apparently the LCD has to be powered up with 5V input(3.3V didn&amp;#39;t work for me), so I&amp;#39;m using two 2N7000 MOSFETs for voltage level shifting of TWI lines. I&amp;#39;m using the library provided in this link:
&lt;a href="https://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/"&gt;hmario.home.xs4all.nl/.../&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I managed to finally make it work, but I need to learn how to use &amp;quot;TWI events handler&amp;quot; for a more reliable coding practice, and I will create a new topic on how to do it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38689?ContentTypeID=1</link><pubDate>Fri, 03 Jun 2016 12:02:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a28e8ed4-c934-4b78-9093-84b48e3bc414</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;Sorry I must have mixed up the datasheets, it looks like the display can be run from 3.3V. 5V on input pins is higher than spec and will make the esd protection diodes on the pins conduct, so hopefully no harm has happened.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38687?ContentTypeID=1</link><pubDate>Thu, 02 Jun 2016 01:32:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:338b32a9-9387-4bf5-bde0-b5350a020bb0</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;If I hook up the LCD to 5V, that won&amp;#39;t harm my nRF52 micro-controller, right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38688?ContentTypeID=1</link><pubDate>Wed, 01 Jun 2016 14:36:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:278bbd2f-a2c0-430a-99fa-822609fc69b0</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;Hi Mark. We do not have the resources to investigate this problem at the moment. I will ask you to try to find out the problem yourself. I noticed in the nrf_hd44780.h file that the pin definitions actually don&amp;#39;t go up linearly from 0 to 7:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#define LCD_PIN_B4      (LCD_PIN_BASE + 5)
#define LCD_PIN_RW      (LCD_PIN_BASE + 3)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So make sure that all pins are connected correctly. The init sequence should be:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void display_init()
{
    lcd_init();
    lcd_enable_4bit_mode(false, false);
    lcd_clear_display();
    lcd_on_off_control(true, false, false);
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38691?ContentTypeID=1</link><pubDate>Tue, 31 May 2016 15:32:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2b62f9a2-e80d-40fa-bc04-d507bff6149d</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;Sorry, looks like input voltage have to be 5V&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38686?ContentTypeID=1</link><pubDate>Tue, 31 May 2016 09:23:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f382a1f-47d9-4f0d-ae65-e35ecb0089e6</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;You should be able to use 3.3V supply for the display. I will test the code later (have to get hold of the hardware).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38684?ContentTypeID=1</link><pubDate>Tue, 24 May 2016 19:34:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b9285591-c42a-47df-95eb-3f22de3ab3a5</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;I tried the change you suggested but still doesn&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;Do I have to power on HD44780 using 5V or can I use 3.3V? Currently I&amp;#39;m powering HD44780 through VSHLD(3.3V) port.&lt;/p&gt;
&lt;p&gt;Also if you take a look at the HD44780 data sheet, on page 46, a command of 0x03 is sent three times as part of the initialization process, but I don&amp;#39;t see that in files provided by Torbjørn Øvrebekk:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.sparkfun.com/datasheets/LCD/HD44780.pdf"&gt;www.sparkfun.com/.../HD44780.pdf&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38685?ContentTypeID=1</link><pubDate>Mon, 23 May 2016 10:35:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98282346-1370-4bee-a8b2-eead419c1be3</guid><dc:creator>Ole Bauck</dc:creator><description>&lt;p&gt;Pins P0.08 to P0.11 is used for uart communication with the debug chip on nRF51 DK, so it may not work to use those pins. Try to use pins P0.12 - P0.19 instead; change the &lt;code&gt;LCD_PIN_BASE&lt;/code&gt; to 12.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38683?ContentTypeID=1</link><pubDate>Sat, 14 May 2016 00:50:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be86da4f-3f8d-405e-a648-100b4b032d35</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;Hi Torbjørn,&lt;/p&gt;
&lt;p&gt;I used the driver you provided, but I haven&amp;#39;t been able to make it work yet.
Am I supposed to use 5V or 3.3V supply voltage?
I started with a blank template project, and included the path for nrf_hd44780.h and added nrf_hd44780.c to my project. My Main.c file looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;stdbool.h&amp;gt;

#include &amp;quot;nrf_delay.h&amp;quot;

#include &amp;quot;nrf_hd44780.h&amp;quot;

/**
 * @brief Function for application main entry.
 */



int main(void)
{

		//nrf_delay_us(1000000);

		lcd_init();
		
		lcd_clear_display();

		lcd_write_string(&amp;quot;Hello&amp;quot;, 0, false);
    while (true)
    {
        // Do nothing.
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I don&amp;#39;t see any changes though! What am I doing wrong?
ps: I&amp;#39;m still using P0.08-P0.15&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: LCD Display Driver</title><link>https://devzone.nordicsemi.com/thread/38682?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2015 18:34:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cee02801-1609-4fe0-9aff-76fd173c70e1</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi Mathias&lt;/p&gt;
&lt;p&gt;I made a simple bit-banged HD44780 driver for the nRF52 recently, but it uses only the GPIO and delay libraries and should work fine on the nRF51 as well.&lt;/p&gt;
&lt;p&gt;The main limitation at the moment is that it assumes that all the control pins from the nRF5x will be together (ie pins P0.08-P0.15 without any unused pins in between), so you will have to make some changes to the library to get around this limitation.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nrf_5F00_hd44780.c"&gt;nrf_hd44780.c&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nrf_5F00_hd44780.h"&gt;nrf_hd44780.h&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;
Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>