Great news – we have decided to open source this project! It can be downloaded for free from GitHub – please follow this link.
Previous customers may continue to use the project under the embedded-code.com licence they purchased under, or apply the new MIT licence we have now released the project under.
Please note this driver has been superseded by our Universal Graphic Display Driver. This driver is still suitable for applications where small memory size is important, but for other applications the Universal Graphic Display Driver is often more suited due to its wider range of features.
Graphic screens look impressive and allow you to display images that a simple character based screen can’t provide. However this improvement comes at the cost of a great deal of complexity. This screen driver removes much of that complexity for you and allows you to simply display bitmaps of any size and ASCII text strings using user adjustable fonts anywhere on a screen. Once you have this capability using a graphic screen is easy and it’s a simple matter to add any special features you need for your application, such as menus, animated graphics, graphs and more.
This driver provides complete bitmap and string display capabilities on any standard mono graphic display, such as LCD, E Ink, LED, OLED and Vacuum Fluorescent monochrome screens. Once configured, the driver removes you from all of the problems of byte updating of displays. There is no requirement to use bitmaps sized in 8 bit multiples or located at 8 bit positions on the screen – display any bitmap of any size wherever you want. The driver can use the screen / display driver IC memory buffer for the display data rather than processor memory, resulting in a small RAM memory requirement for the driver, or a microcontroller / processor ram buffer for faster output or for when using screens that don't proide the means to read back display data.
The included PC bitmap converter application will read all of your source .bmp bitmap files, created in a standard graphics package, and convert them into the selected format ready for use in your application. It will also convert special font .bmp bitmap files you can create to be used to display ASCII text strings. Options allow you to rotate your bitmap images and fonts before converting, allowing you to use a screen in any of the 4 possible orientations.
As well as displaying ASCII text strings in standard ‘monospace’ fixed pitch mode (each character takes the same horizontal space regardless of its actual width), this driver also allows you to display text in proportional mode. This makes lines of text much more attractive and natural to read and typically allows you to fit additional characters across a screen, as each character only uses as much width as is required to display it. Left, centre or right alignment and scrolling functions provides the complete toolbox of text display capabilities.
Once you have all these capabilities using a graphic screen is easy and it’s a simple matter to add any special user interface features you require for your application, such as menus, animated graphics, graphs and more. One of the great advantages of this driver is that it provides you with very simple but very powerful control over everything you display on the screen, allowing you to implement your display, and any user interface, exactly as you want it down to the individual pixel.
This driver can’t quite remove all of the complexity for you as you will still need to configure the screen access functions to suit the particular screen you’re using. This has been made as simple as possible, and some sample screen models are included for you to copy and modify as required. See the technical manual for more details.
- Display bitmaps of any size anywhere on the screen without having to worry about 8 bit size multiples or 8 bit boundaries.
- Use your display in any of the 4 possible orientations.
- Display monospace or proportional width text anywhere on the screen.
- Left, centre or right text alignment and scrolling options.
- Use the included PC Bitmap Converter Application to convert your source bitmap (.bmp) files ready for use with the driver. Create your bitmaps using a standard graphics application.
- Create your own fonts simply by creating a line of characters in a single bitmap file.
- Output your bitmap source files as a C compliant header file or as a binary file using the Bitmap Converter Application. Use the header file to include all of your bitmaps as part of the program memory – convert the files and they are immediately ready to use. Use the binary file option to store your bitmaps as a single data block in external flash memory and provide the driver with a function to read the binary data byte by byte. Use both methods if desired to split storage between on chip and external.
- No requirements to use your display in pre-defined ways – use your display exactly as you want with your user interface implemented exactly as you want it, down to the individual pixel.
- Use display memory instead of microcontroller / processor memory to buffer the display data, resulting in a very low ram requirement. Alternatively use a local ram buffer for displays with no read capability or to improve speed.
- Very fast optimised code but with a small program memory requirement.
- No reliance on compiler specific libraries.
- Full source code supplied for you to use and modify as required.
The driver is designed to support 8 bit parallel or serial screen interfaces.
For full specifications please see the project technical manual.
This source code product is written in C and has been designed to be used with any ANSI compliant C compiler on any platform. Direct compatibility has been tested with the compilers and processors / microcontrollers listed below. Using the driver with other ANSI compliant C compilers and devices should not present significant problems.
Tested with the Microchip C18 MPLAB C Compiler for PIC18 family of 8 bit microcontrollers with sample project included. Free version of the compiler available from Microchip.
Tested with the Microchip C30 MPLAB C Compiler for PIC24 family of 16 bit microcontrollers and dsPIC digital signal controllers with sample project included. Free version of the compiler available from Microchip.
Tested with the Microchip C32 MPLAB C Compiler for PIC32 family of 32bit microcontrollers with sample project included. Free version of the compiler available from Microchip.