Version 2.5.0, 25th May 2013

Added support for the Nokia E73 2.4" panel via an implementation of the MC2PA8201 controller. See the write-up at my website for details. Following the pattern established by the other panels you just need to include the correctly named driver include file: #include "NokiaE73.h" and use the similarly named driver, for example: NokiaE73_Portrait_262K.

Integrated the source code for a driver for the ILI9325 (Adafruit shield) developed by Colin Irwin (http://aethersdr.org). Documentation and examples to follow.

Version 2.4.0, 26th January 2013

Added support for the Nokia N93 2.4" panel via an implementation of the MC2PA8201 controller. See the write-up at my website for details. Following the pattern established by the other panels you just need to include the correctly named driver include file: #include "NokiaN93.h" and use the similarly named driver, for example: NokiaN93_Portrait_262K.

At the time of writing, hardware scrolling is not supported by the N93 driver. Drivers are provided for 64K, 262K and 16M colour modes however the actual modes supported can depend on the manufacturer of the panel that you have. "Original Nokia" panels tend to support all modes. Clone panels may only support a subset of modes.

The source code to the bm2rgbi, FontConv and LzgFontConv utilities is now included in the distribution.

Version 2.3.1, 2nd December 2012

Added support for "Type B" Nokia N95 screens. Type B screens differ from Type A screens in their co-ordinate mapping system in portrait mode. Columns and row addressing are inverted. See the write-up on my blog for a brief summary and example driver declaration.

Version 2.3.0, 3rd November 2012

Now supporting the Nokia N95 8Gb 2.8" panel via an implementation of the LDS285 controller. See the write-up at my website for details.

Support TrueType fonts exported from the PC as LZG compressed bitmaps. A forthcoming blog article will explore the details of this new feature but if you want to get ahead of the game then see the TrueType example and the LzgFontConv utility program included in the zip file.

Made the default backlight for GPIO builds on a non-mega device use pin #10 for PWM output. This makes sense because pins 0..9 are used for IO.

Modified the font converter (FontConv.exe) to write out a .cpp and .h file instead of everything in a .h file. This allows for a multi-file project that references fonts from more than one .cpp file to work without getting duplicate symbol issues.

Version 2.2.0, 23rd September 2012

Major internal refactoring to change the implementation style from template methods to template classes. This was necessary to make it possible to support even more screens (yes, more are to come...) and also to add support for another type of 6300 and N82 screen found out there in the wild. This will be known as the "Type C" screen. The API differences due to this refactoring are minimal:

Version 2.1.0, 19th August 2012

Support for the Nokia N82 2.4" QVGA display. The N82 is the same pinout and command set as the 6300. See my website for a full write-up and schematics for a development board.

I'm pleased to announce support for decoding and displaying JPEG images. JPEG images may stored in flash or streamed over the serial port. The documentation has been updated with sample code and demonstration videos.

Version 2.0.0, 28th July 2012

Support for a GPIO interface for using the Nokia 6300 on the 32Kb 'standard' Arduino boards. See my website for full details.

Speed improvements to the XMEM interface that result from inlining much of the core TFT access code.

Version 1.1.0, 7th July 2012

Extensive internal changes to support Nokia 6300 panels that have slightly different behaviour. This is achieved through the use of a traits support class that abstracts the differences away from the core implementation. This is largely invisible to the user but see below.

Changed the default colour mode from 16M to 262K in the examples to maximize compatibility across all the panels that I've seen so far.

API Changes

setScrollArea and setScrollPosition no longer have a template parameter. The arguments are the same as before, e.g:

// old style: tft->setScrollPosition<PORTRAIT>(10);
tft->setScrollPosition(10);   // new style does not have a template parameter
	

Notes for Type B screens

'Type B' screens differ from the type A screens only in the hardware scrolling implementation. A scroll position of 1 on a type B screen will scroll up by one line, whereas on a type A screen it will scroll down one line. Anyone who has obtained a development board from me will be informed if they have a type B screen.

If you have a type B screen and want to use the hardware scrolling APIs then I recommend that you use the classes that have a _TypeB postfix. e.g.

Nokia6300_Landscape_262K_TypeB
Nokia6300_Landscape_64K_TypeB
	
and similarly for the terminal classes in portrait mode where it is more important because the terminal needs to know how to scroll up one line using the hardware accelerated API.
typedef Nokia6300_Terminal_Portrait_262K_TypeB TerminalAccess;
	

Version 1.0.1, 23rd June 2012

Some internal optimisations are added to increase the speed of graphics library functions that need to repeatedly call writePixel(). The primary beneficiary is text output where, on average, there is a 25% performance increase.

Fix bug in graphics library big demo. Font was not selected for the stream operators to use in the part of the text demo that displays PI.

API Changes

gradientFillRectangle has changed and now takes start and end colours as parameters (previously it would use foreground and background colours). Apologies for the breaking change but the internal optimisations made it necessary. The new method signature is:

void gradientFillRectangle(const Rectangle& rc,Direction dir,COLOUR first,COLOUR last) const;