I simply cannot get this to work and am quite honestly at a point where I do not have any more ideas to try.Īssuming the I2C protocol works, which it does because I get ACKs from the driver after addressing and each byte sent, here is the code I have written to drive the screen. Since the Clk pin is driven as an output of the driver, it's necessary to shift in the data with the clock as HIGH, and then again as LOW. When using PlatformIO, to support float you must add following line in platformio. The most difference to the original LiquidCrystal library from Arduino is a new API and this library supports printf() functionality. As the connections are different I need to de-solder and take out the LCD to make it work with 8 bit LCD library. This library is for the HD47780 LCDs with 4-bit interface for use with Arduino. I thought if we have a 4 bit library that runs under wiring environment it may be easy to use for this board. We really like to see hardware hackers stepping out of the safe and polished boundaries of available Arduino libraries. I soldered the driver to the LCD screen and measured the voltage on each pin as I pass in data after addressing the device with address 0x27 to ensure the correct data is getting to the screen with the correct format. It comes with a LCD with 4 bit connection. Fail Of The Week: Reset Issues With 595 And HD44780. On that same page is a link to the schematic of the I2C device where you can see that 4 data lines (therefore 4-bit), RS, RW, BackLight, and E-CLK are driven from the device output. Here is the specific device that I am using:
The project was originally designed in 2012 and included an option to use USB, so the code for the PICdem FSUSB was used and modified for this application. I have tried countless different sequences that I have found on various websites, different datasheets, and even sequences I just contrived myselfed. HD44780 LCD Driver Operation and Bus Timing I am working on a project that uses a PIC18F4455 and a Lumex 1602D/D dot matrix display using an 8 bit data bus. Anderson LCD117 chips and theyre much better as theyre a single pin interface that works with the BS2, Arduino, or Propeller. Porting the library to a Propeller might be doable. With a BS2 these would be pretty hard to deal with. I have successfully implemented the I2C protocol necessary to communicate with the device, but I am absolutely stumped on the initialization sequence to get it to work. These I2C ports are popular with Arduino users because theres a library that hides all the I2C and 4 bit grunt work.