This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

LCD Display Driver

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 not, maybe I can adapt a driver for a similar display. Thanks, Mathias

Parents
  • Hi Mathias

    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.

    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.

    nrf_hd44780.c
    nrf_hd44780.h

    Best regards
    Torbjørn

  • Hi Torbjørn,

    I used the driver you provided, but I haven'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:

    #include <stdbool.h>
    
    #include "nrf_delay.h"
    
    #include "nrf_hd44780.h"
    
    /**
     * @brief Function for application main entry.
     */
    
    
    
    int main(void)
    {
    
    		//nrf_delay_us(1000000);
    
    		lcd_init();
    		
    		lcd_clear_display();
    
    		lcd_write_string("Hello", 0, false);
        while (true)
        {
            // Do nothing.
        }
    }
    

    I don't see any changes though! What am I doing wrong? ps: I'm still using P0.08-P0.15

Reply
  • Hi Torbjørn,

    I used the driver you provided, but I haven'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:

    #include <stdbool.h>
    
    #include "nrf_delay.h"
    
    #include "nrf_hd44780.h"
    
    /**
     * @brief Function for application main entry.
     */
    
    
    
    int main(void)
    {
    
    		//nrf_delay_us(1000000);
    
    		lcd_init();
    		
    		lcd_clear_display();
    
    		lcd_write_string("Hello", 0, false);
        while (true)
        {
            // Do nothing.
        }
    }
    

    I don't see any changes though! What am I doing wrong? ps: I'm still using P0.08-P0.15

Children
No Data
Related