I would like to drive (mainly for text) one of two GLCD 240X128 ( 1. AGM2412A-NLW-BBW-HB....2. DEM240128D SBH-PW-N ), both with T6963C controller...is it possible to drive them with GCB ? is there some demo code for PIC16 xxxx or PIC18xxxx ? I use Version 1.0 2017-09-10 ..is that the last udate ? as I saw there is no .h file for above controller...any idea on how to drive above GLCD ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The library was tested using a WG24064A-TMI-TZ# Device. You need to check the datasheet for the memory configuration - but the default in the library should work for every device.
Great Cow BASIC LCD and GLCD commands are now supported, with OLED, BigFonts and standard GCB fonts, exendeded Greek Fonts.
The demo show the ability to mix LCD and GLCD capabilties.
This specific device has some very interesting capabilities - you can create, manage and show multiple pages of GLCD/LCD - which means logos, screen layouts, messages etc can all be preloaded into seperate pages then switched during the run time program.
Enjoy
Last edit: Anobium 2019-02-09
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Great Cow BASIC GLCD commands support page swapping. This short video shows creation, updating and swapping graphical pages - these methods enable high speed updates to the user interface, in terms of fixed graphics, and the microcontroller can focus on other operations.
This video shows the capabilities.... nothing fancy. The pages can be BMP or created with Great Cow BASIC GLCD methods, see the other videos. Pages can be copied from one page to another with no microcontroller overhead.
This specific device has some very interesting capabilities - you can create, manage and show multiple pages of GLCD/LCD - which means logos, screen layouts, messages etc can all be preloaded into separate pages then switched during the run time program.
Enjoy
Last edit: Anobium 2019-02-08
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Great Cow BASIC LCD commands support page swapping. This short video shows creation, updating and swapping graphical pages - these methods enable high speed updates to the user interface, in terms of the LCD characters, and the microcontroller can focus on other operations.
This video shows the capabilities.... nothing fancy. The pages can be created with Great Cow BASIC LCD methods. Pages can be copied from one page to another with no microcontroller overhead.
Great Cow BASIC LCD commands support BMP loading and page swapping. This short video shows creation, updating and swapping graphical pages - these methods enable high speed updates to the user interface, in terms of the LCD characters, and the microcontroller can focus on other operations.
The library supports 240 x 64 and 240 x 128. The constant defines the type.
The memory map in the demos is for a 32kb device.
Adjust the memory map to suit needs - devices with larger or smaller memory will require adjustment.
The memory map in the demos supports:
- 11 LCD pages
- 3 GLCD pages
- Custom fonts
- The configuration can be easily changed to increase the number of GLCD pages, or, to increase the number of LCD pages - just calculate the memory map and change one constant.
The library assumes (safely) that the LCD pages are from memory location 0x0000 upwards to the botton of the GLCD pages. This is a best practice that is shown in the Application Guide.
There are no methods to support 'copy' or 'peek' but the primitive methods can support this.
The is no demonstrations for custom fonts but we can use GLCD fonts.
The library uses 'or' as the operating mode, not AND or XOR.
The library uses direct device addressing, not double buffered, as double buffering would required 3940bytes of RAM per GLCD page. As the device has 32kb RAM the implemented method is faster and efficient.
The library support Extended fonts (including Greek), OLED fonts and GCB fonts.
The library can be optimised (maybe)... I will let someone else to this. I have done the heavy work.
Lots of demonstration in the demo folders/GitHub.
Enjoy
Last edit: Anobium 2019-02-08
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Library can be found here in the code section. See the T6963.h library. Requires glcd.h and glcd_ILI9486L.h as prerequisites. See https://sourceforge.net/p/gcbasic/code/
Last edit: Anobium 2019-02-08
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Question: How easy is it to instantly switch pages , and, therefore can scrolling be accomplished the same way?
The "Set Graphic Home Address" and "Set Text Home Address" accomplishes this.
The key is to establish what you want your memory map to look like. Below is a map for one of my 240 x 64 pixel G/LCD project. You can see I've set it up for 10 screen pages (some newer LCD's may have more RAM for more screens). If you write the appropriate value (0x1000, or 0x11b0, or 0x1360, etc) to the text home address, the display will instantly change to that screen.
You can write your screens "ahead of time", in my case during the "splash screen" delay interval, and instantly change to them later as desired. You can do this by setting current_grh_home_addr to the appropiate page. And, then execute the GLCD commands you would normal use.
Ten pages are automatically created but the number of pages available is constrained by the memory configuration.
To use add the following to you user program. See the demonstration programs for more detailed usage. After calling the SelectGLCDPage or SelectLCDPage methods all GLCD or LCD commands will be applied to the current GLCD or LCD page.
'Select the GLCD page 1 memory
SelectGLCDPage ( GLCDPage1_T6963 )
'Select the LCD page 2 memory
SelectLCDPage ( LCDPage2_T6963 )
And, the graphic and text screens are independant but can be overlaid for a variety of useful effects.
Although, not tested, the LCD text screens can be scrolled 1 full text line at a time, while the GLCD screens can be scrolled 1 pixel row at a time, provided you've set up your memory map accordingly with adequate RAM for the graphic area.
'
'*******************************************************
'
' LCD MEMORY MAP
'
'*******************************************************
'
'
'
' --------------------
' | | 0x0000
' | |
' | TEXT RAM AREA | Each page has the numnbers of bytes + extra
' | ( 10 SCREENs ) | few bytes need to attributes. This is
' | | mentioned in the datasheet but imperical
' | | testing shows... you need the extra bytes
' --------------------
' | |
' | xx bytes unused |
' | |
' --------------------
' | | 0x3fff
' | |
' | |
' | GCLD RAM AREA |
' | ( 10 SCREENS ) |
' | |
' | |
' | |
' --------------------
' | | 0x77ff
' | CG RAM AREA | (Sacrosanct)
' | |
' -------------------- 0x7ffff
'
Last edit: Anobium 2019-02-09
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Update the library to 8bit data bus using 1) A full port or, 2) 8 pins. Demos and Help all updated.
So, either use GLCD_DATA_PORT or GLCD_DB0 ..GLCD_DB7. This is the same as other GLCD devices.
Code example is shown below.
'*************************************************************************
'define the connectivity - the 8bit port
#define GLCD_DATA_PORT PORTD 'Library support contigous 8-bit port
' or
' #define GLCD_DB0 PORTD.0 'chip specific configuration where the ibrary supports 8-bit port defined via 8 constants
' #define GLCD_DB1 PORTD.1 'chip specific configuration
' #define GLCD_DB2 PORTD.2 'chip specific configuration
' #define GLCD_DB3 PORTD.3 'chip specific configuration
' #define GLCD_DB4 PORTD.4 'chip specific configuration
' #define GLCD_DB5 PORTD.5 'chip specific configuration
' #define GLCD_DB6 PORTD.6 'chip specific configuration
' #define GLCD_DB7 PORTD.7 'chip specific configuration
Enjoy
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I would like to drive (mainly for text) one of two GLCD 240X128 ( 1. AGM2412A-NLW-BBW-HB....2. DEM240128D SBH-PW-N ), both with T6963C controller...is it possible to drive them with GCB ? is there some demo code for PIC16 xxxx or PIC18xxxx ? I use Version 1.0 2017-09-10 ..is that the last udate ? as I saw there is no .h file for above controller...any idea on how to drive above GLCD ?
UPDATE: The driver has now been released.
See below.
AGM2412A no driver existing. The Help shows the currently support devices.
The AGM2412A is circa 2009. The T6963C is circa 1997. This device will require 12 ports (an 8 bit data bus).
I would look at the current alternatives - I would recommed use an existing library but you can always start with the KS0108 and adapt.
Last edit: Anobium 2019-02-08
Code deleted
Last edit: Anobium 2019-02-08
Operational library.
The library was tested using a WG24064A-TMI-TZ# Device. You need to check the datasheet for the memory configuration - but the default in the library should work for every device.
Great Cow BASIC LCD and GLCD commands are now supported, with OLED, BigFonts and standard GCB fonts, exendeded Greek Fonts.
The demo show the ability to mix LCD and GLCD capabilties.
See https://www.youtube.com/watch?v=rCSIhmty7yM&feature=youtu.be if you have any issue with the embedded link.
This specific device has some very interesting capabilities - you can create, manage and show multiple pages of GLCD/LCD - which means logos, screen layouts, messages etc can all be preloaded into seperate pages then switched during the run time program.
Enjoy
Last edit: Anobium 2019-02-09
Operational library.
Great Cow BASIC GLCD commands support page swapping. This short video shows creation, updating and swapping graphical pages - these methods enable high speed updates to the user interface, in terms of fixed graphics, and the microcontroller can focus on other operations.
This video shows the capabilities.... nothing fancy. The pages can be BMP or created with Great Cow BASIC GLCD methods, see the other videos. Pages can be copied from one page to another with no microcontroller overhead.
See https://www.youtube.com/watch?v=VPlGRHupdrQ if you have any issue with the embedded link.
This specific device has some very interesting capabilities - you can create, manage and show multiple pages of GLCD/LCD - which means logos, screen layouts, messages etc can all be preloaded into separate pages then switched during the run time program.
Enjoy
Last edit: Anobium 2019-02-08
Great Cow BASIC LCD commands support page swapping. This short video shows creation, updating and swapping graphical pages - these methods enable high speed updates to the user interface, in terms of the LCD characters, and the microcontroller can focus on other operations.
This video shows the capabilities.... nothing fancy. The pages can be created with Great Cow BASIC LCD methods. Pages can be copied from one page to another with no microcontroller overhead.
See https://www.youtube.com/watch?v=t7r8ELIGFsI if you have any issue with the embedded link.
Last edit: Anobium 2019-02-08
Great Cow BASIC LCD commands support BMP loading and page swapping. This short video shows creation, updating and swapping graphical pages - these methods enable high speed updates to the user interface, in terms of the LCD characters, and the microcontroller can focus on other operations.
See https://www.youtube.com/watch?v=C6J0NFfh2nM if you have any issue with the embedded link.
Last edit: Anobium 2019-02-08
Library notes
The library supports 240 x 64 and 240 x 128. The constant defines the type.
The memory map in the demos is for a 32kb device.
Adjust the memory map to suit needs - devices with larger or smaller memory will require adjustment.
The memory map in the demos supports:
- 11 LCD pages
- 3 GLCD pages
- Custom fonts
- The configuration can be easily changed to increase the number of GLCD pages, or, to increase the number of LCD pages - just calculate the memory map and change one constant.
The library assumes (safely) that the LCD pages are from memory location 0x0000 upwards to the botton of the GLCD pages. This is a best practice that is shown in the Application Guide.
There are no methods to support 'copy' or 'peek' but the primitive methods can support this.
The is no demonstrations for custom fonts but we can use GLCD fonts.
The library uses 'or' as the operating mode, not AND or XOR.
The library uses direct device addressing, not double buffered, as double buffering would required 3940bytes of RAM per GLCD page. As the device has 32kb RAM the implemented method is faster and efficient.
The library support Extended fonts (including Greek), OLED fonts and GCB fonts.
The library can be optimised (maybe)... I will let someone else to this. I have done the heavy work.
Lots of demonstration in the demo folders/GitHub.
Enjoy
Last edit: Anobium 2019-02-08
Demonstrations can be found here:
https://github.com/Anobium/Great-Cow-BASIC-Demonstration-Sources/tree/master/GLCD_Solutions/GLCD_T6963_Solutions
Library can be found here in the code section. See the T6963.h library. Requires glcd.h and glcd_ILI9486L.h as prerequisites. See https://sourceforge.net/p/gcbasic/code/
Last edit: Anobium 2019-02-08
Help is here https://github.com/Anobium/Great-Cow-BASIC-Help/blob/master/source/t6963controllers.adoc
I have attached the Help as a PDF.
Reference material. I used this lot when writing the library.
They include source code, datasheets, application notes, PCB and lots more great information.
Question: How easy is it to instantly switch pages , and, therefore can scrolling be accomplished the same way?
The "Set Graphic Home Address" and "Set Text Home Address" accomplishes this.
The key is to establish what you want your memory map to look like. Below is a map for one of my 240 x 64 pixel G/LCD project. You can see I've set it up for 10 screen pages (some newer LCD's may have more RAM for more screens). If you write the appropriate value (0x1000, or 0x11b0, or 0x1360, etc) to the text home address, the display will instantly change to that screen.
You can write your screens "ahead of time", in my case during the "splash screen" delay interval, and instantly change to them later as desired. You can do this by setting current_grh_home_addr to the appropiate page. And, then execute the GLCD commands you would normal use.
For GLCD memory addressing
Ten pages are automatically created but the number of pages available is constrained by the memory configuration.
For LCD memory addressing
Ten pages are automatically created but the number of pages available is constrained by the memory configuration.
To use add the following to you user program. See the demonstration programs for more detailed usage. After calling the SelectGLCDPage or SelectLCDPage methods all GLCD or LCD commands will be applied to the current GLCD or LCD page.
And, the graphic and text screens are independant but can be overlaid for a variety of useful effects.
Although, not tested, the LCD text screens can be scrolled 1 full text line at a time, while the GLCD screens can be scrolled 1 pixel row at a time, provided you've set up your memory map accordingly with adequate RAM for the graphic area.
Last edit: Anobium 2019-02-09
Update the library to 8bit data bus using 1) A full port or, 2) 8 pins. Demos and Help all updated.
So, either use
GLCD_DATA_PORT
orGLCD_DB0 ..GLCD_DB7
. This is the same as other GLCD devices.Code example is shown below.
Enjoy