new Liquid Crystal Library

I am an absolute beginner trying to use an SI1145 detector to measure and display UV light intensity. I have cobbled together examples of serial monitor display of the data, but cannot move the output to a LCD. I am unable to obtain the "New Liquid Crystal Library" from GitHub. The link goes nowhere. Can anyone help me with this?

larryboxt:
I am unable to obtain the "New Liquid Crystal Library" from GitHub. The link goes nowhere. Can anyone help me with this?

Please post the link. Where did you find this link?

Do you absolutely have to have the New Liquid Crystal Library? Which version?

If you can use a different LCD library there are newer and better libraries available in the IDE. The best way to install libraries is through the IDE library manager. There it a LiquidCrystal library available there and also the much better hd44780 library.

the reference to the library is in a dronebotworkshop.com tutorial "Build an Arduino UV Index Meter", posted on

DroneBot Workshop, dated September 5, 2018. The library referred to contained in "the repository on BitBucket. The link goes to a blank page (bitbucket.org) with a message "That link has no power here". Now what? Thanks.

Use the hd44780.h library installed from the library manager.

The drone robot code will be very simple to modify for the different library. In fact, the hd 44780.h library will self configure for the specific pin arrangements for the chip used and the i2c address.

If I found the right project (this one here), here are the only changes that you should need to make to the code to use the hd44780 library. You must, of course, install the library first (use the library manager).

Change this part:

// Include Wire Library for I2C
#include <Wire.h>
 
// Include NewLiquidCrystal Library for I2C
#include <LiquidCrystal_I2C.h>
 
// Include Adafruit SI1145 Library
#include <Adafruit_SI1145.h>
 
 
// Define LCD pinout
const int  en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl = 3;
 
// Define I2C Address - change if reqiuired
const int i2c_addr = 0x3F;
 
// Define object lcd
LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, bl, POSITIVE);
 
// Define object uv
Adafruit_SI1145 uv = Adafruit_SI1145();

To this:

#include <Wire.h>
#include <hd44780.h>                       // main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header

// Include Adafruit SI1145 Library
#include <Adafruit_SI1145.h>

// declare lcd object: auto locate & auto config expander chip
hd44780_I2Cexp lcd;

// Define object uv
Adafruit_SI1145 uv = Adafruit_SI1145();

Note that the I2C address and the pin mapping are not specified in the code with the hd44780 library. Those are automatically determined by the library.

Thanks. I'm working on this. It's flaky (finding the correct port, etc), but I think I'm on the right track.

larryboxt:
the reference to the library is in a dronebotworkshop.com tutorial "Build an Arduino UV Index Meter", posted on

DroneBot Workshop, dated September 5, 2018. The library referred to contained in "the repository on BitBucket. The link goes to a blank page (bitbucket.org) with a message "That link has no power here". Now what? Thanks.

The repository on bitbucket for newLiquidCrystal has been deleted (removed).

I talked with fm about it a few weeks ago.
fm, didnt remove it and was not happy to see it gone.
Apparently the repository was done with SVN or mercurial and bitbucket removed it as they are now only supporting git.
(another one of those great atlassian changes forced on everyone)
fm had a git based repository for it on github but it was old and a bit out of date and so it was missing some updates.
If your REALLY REALLY want it, the repository is here: GitHub - fmalpartida/New-LiquidCrystal: Clone of the new liquid crystal library from: https://bitbucket.org/fmalpartida/new-liquidcrystal

The last release on bitbucket that I had was 1.3.5 which I think was the latest tagged release.
The main purpose of it was to correct a long standing licensing issue by correcting the license to be GPL v3 vs CC BY SA since the code could not legally be licensed under creative commons and even it could, if it were licensed as CC BY SA, it could not be used with non CC BY SA code which makes CC BY SA a useless license.
Basically CC BY SA is not a usable license for s/w that needs to work with other s/w.

But 1.3.5 was an odd release in that it had some updates but I'm guessing it must have committed from a slightly out of date tree as there were some regressions that were lost from the 1.3.4 release.

The github repository has no tag yet for 1.3.5 but the code on the master branch that is currently on github appears to be somewhere between the 1.3.4 and 1.3.5 from what was on bitbucket.

I prefer the hd44780 library as it can be installed using the IDE library manager directly from the GUI rather than having to import using a zip file and can auto configure itself.
But of course I'm also the author.... :wink:

--- bill

FWIW, I swapped from the New LiquidCrystal library when I found it was no longer there and the hd44780 works fine as a replacement with minimal code changes.