Friday, 25 October 2013

BigCrystal and BigCrystalTWI v1.0.0 released

I've made a some of updates to the BigCrystal and BigCrystalTWI Arduino libraries for displaying double height characters on Liquid Crystal Displays.

I've created version 1.0.0 releases for both projects. This is because I have made a breaking change to the BigCrystal library immediately after the 1.0.0 release to support more hardware.

In order to expand the range of hardware under which BigCrystal operates, I've made the library compatible with either the standard LiquidCrystal library or the New LiquidCrystal library. The New LiquidCrystal library replaces the standard LiquidCrystal in your Arduino library folder and supports:
  • Four bit parallel interface
  • Eight bit parallel interface
  • I2C interface using the PCF8574 expander
  • Shift register interface
If you're using LiquidCrystal after version 1.0.0, the way in which a BigCrystal instance is created has changed. Previously, a BigCrystal instance would be instantiated directly with the IO pins, but now a LiquidCrystal instance needs to be created first, and this instance passed to the BigCrystal constructor.

 #include <BigCrystal.h>  
 #include <LiquidCrystal.h>  
 // Set up according to your LCD pins  
 LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32);  
 BigCrystal bigCrystal(&lcd);  

There are other methods of instantiating a LiquidCrystal instance if connecting via I2C or shift register. These are documented in the New LiquidCrystal library and there are examples in the BigCrystal library.

The methods for writing double height characters has not changed. They are:

  • widthBig() for determining the width of a character
  • writeBig() for displaying a double height character
  • printBig() for displaying a double height string
In addition, all BigCrystal delegates all LiquidCrystal methods are delegated through to the underling instance. This means that you can use the BigCrystal instance for all LiquidCrystal methods, such as displaying normal height characters, or displaying the cursor.

There have been no changes to BigCrystalTWI. This library still supports the MCP230008 I2C expander, as this is not supported in the New LiquidCrystal library. If I get my hands on one of these again, I might try to port it to the New LiquidCrystal library and then retire the BigCrystalTWI library.