Commit Graph

250 Commits

Author SHA1 Message Date
Bodmer
47895f1e7b Allow RP2040 to read from SPI TFT 2022-01-27 22:15:04 +00:00
Bodmer
3cc1e2e20a Raise version 2022-01-26 23:08:21 +00:00
Bodmer
e61fb8c78d Fix #1547 for RP2040 processor with ST7789 TFT
Add Arduino Nano Connect setup example 62
2022-01-26 22:20:34 +00:00
Bodmer
420165904c Fix #1578 2022-01-26 21:30:52 +00:00
Bodmer
0daee5d502 Add filled rectangles with gradient 2022-01-08 20:01:42 +00:00
Bodmer
73ff86b85b Support external font classes in button class
Original Adafruit button rendering code can be used with an external font class if "textFont" is set to 255.

See #1536
2022-01-08 14:50:44 +00:00
Bodmer
bb2424f168 Raise version 2022-01-08 02:03:49 +00:00
Bodmer
493b1a7fe5 Update RP2040 PIO support
Add example user setup 61
2022-01-05 00:19:19 +00:00
Bodmer
8a2398451b RP2040: add SPI PIO interface option, enhance 8 bit parallel PIO
The RP2040 processors can now drive 8 bit parallel and SPI displays using the PIO hardware.

The PIO offloads the processor by providing:
1. PIO managed setWindow sequence
2. PIO managed block and screen fill
2022-01-02 01:08:22 +00:00
Bodmer
681eb9dfec Raise version for release 2022-01-01 22:49:34 +00:00
Bodmer
4b841c03e3
Update library.json 2021-12-20 11:27:06 +00:00
Bodmer
40cd5bfe7b Bump version 2021-12-19 11:08:23 +00:00
Bodmer
eee56b2cec Add RP2040 8 bit parallel support with DMA
The RP2040 can now be used with 8 bit parallel TFT interface displays. DMA is also supported for both SPI and 8 bit parallel displays.
2021-12-18 17:06:16 +00:00
Bodmer
dd8fc20cb4 Fix 1bpp pushSprite with transparent colour 2021-12-16 01:42:23 +00:00
Bodmer
61608a7ca2 Raise version 2021-12-12 01:34:11 +00:00
Bodmer
52f3186da9 #1314 Re-instate $ symbol with options to replace with £
In setup add:
#define FONT_4_GBP
To replace $ with £ in font 4
2021-12-06 00:41:23 +00:00
Bodmer
5959550dd7 Allow RP2040 SPI 0 or SPI 1 ports to be used
Auto set of CGRAM offset for 135 x 240 ST7789 display
2021-12-05 22:34:37 +00:00
Bodmer
12f9ce8691 Update Read_User_Setup example for RP2040 2021-12-04 16:36:31 +00:00
Bodmer
84a6945716 Updates for ESP32C3 2021-12-01 15:55:15 +00:00
Bodmer
9bf9c0940f Update for GC9A01 display
Correct sprite rendering
GC9A01 expects exact number of pixels to fill setWindow area.
2021-11-28 13:57:15 +00:00
Bodmer
07e77ad051 Fix generic driver
tft_Write_16N was missing.
2021-11-27 23:26:47 +00:00
Ivan Kravets
d73057a39c
Declare header files for PlatformIO 2021-11-19 12:18:36 +02:00
Bodmer
a2822e6d99 Fix VSPI port for ESP32
ESP32 S2 edits caused a problem
2021-11-18 22:03:49 +00:00
Bodmer
9a084839bd Add ESP32 S2 support
Tested with ESP32 board package 2.0.1

Additional boards manager URL may need to be updated to load the latest ESP32 board package!
2021-11-18 16:44:32 +00:00
Bodmer
0ad6de9161 Fix RP2040 with RPi type display
RPi display requires 16 bit commands and slower DC and CS strobe timings.
2021-11-05 00:09:42 +00:00
Bodmer
9d33b3eac2 RP2040 DMA image copy bug fix
memcpy should be memmove since areas overlap.
2021-11-04 21:44:15 +00:00
Bodmer
e23d8e083b Correct comments 2021-11-03 23:45:16 +00:00
Bodmer
58f457ba97 Raise issue 2021-05-24 12:04:03 +01:00
Bodmer
8efb988cda Over-ride SPI pin defaults for RP2040
See #1188
2021-05-16 13:11:11 +01:00
Bodmer
5a6ef1d05d Fix #1188
Support debugged for ILI9488 TFT with RP2040 processors.
Minor improvements to ESP32 code.
2021-05-15 19:45:33 +01:00
arduino12
e1161c17f4 Add support for SSD1351! (128*128 OLED)
TODO:
Implement read functions as well..
2021-04-26 20:40:18 +03:00
Bodmer
233b98aa05 Implement UTF8 switch #1108 2021-04-23 16:51:18 +01:00
Bodmer
83fd35a6d5 Raise version 2021-04-21 22:49:31 +01:00
Bodmer
fd99db4354 Fix #1094
Allow ESP8266 and RP2040 to use FLASH for pushImage () and 4bpp
2021-04-06 19:38:19 +01:00
Bodmer
f6e90349d8 Add support for Raspberry Pi Pico
Setup file "Setup60_RP2040_ILI9341.h" used for testing with ILI9341 SPI display.
2021-03-30 01:53:27 +01:00
Bodmer
cd025dbc79 Fix #1046
ESP32 DMA did not work if MISO pin is not defined in setup file (affected TTGO T-Display setup 21)
2021-03-13 15:03:21 +00:00
Bodmer
fef40d9c8b Raise version 2021-02-23 22:48:50 +00:00
Bodmer
9f083c0b2d
Update library.json 2021-01-22 01:43:57 +00:00
Bodmer
64239999e4 Fix #893 2020-12-31 19:44:33 +00:00
Bodmer
9fec44b6ea Implement #896 plus minor changes
When rendering a smooth font in a sprite the anti-aliasing will pick up the sprite background colour if the text background colour is not set.
2020-12-31 17:58:28 +00:00
Bodmer
8e75cfa83f Fix #893 2020-12-31 00:15:26 +00:00
Bodmer
1c4860dec3 Fix RPI display issue #892
Prevent 18 bit display serial driver being invoked for RPi display
2020-12-29 13:47:28 +00:00
Bodmer
acdfeb0b36 Fix #873
Minor performance boost to ESP32 block write
2020-12-23 01:10:11 +00:00
Bodmer
2162936b40 Enable ESP32 DMA controlled TFT_CS
ESP32 DMA will hold TFT_CS low automatically.
STM32 will not do this and requires bracketing DMA transfers with startWrite and endWrite as in examples.
2020-12-07 17:43:40 +00:00
Bodmer
ad0130309c Add pushToSprite with transparent colour
New function:
pushToSprite(TFT_eSprite *spr, int32_t x, int32_t y, uint16_t transp)
// Note: The following sprite to sprite colour depths are currently supported:
//    Source    Destination
//    16bpp  -> 16bpp
//    16bpp  ->  8bpp
//     8bpp  ->  8bpp
//     1bpp  ->  1bpp
2020-12-02 13:39:19 +00:00
Bodmer
42e6fc87ff Feature update
Add ILI9225 support
Add viewport feature to Sprites
Rationalise common TFT_eSPI and Sprite functions and variables to use inherited functions width(), height(), rotation(), write(), pivot, cursor, swapBytes.
2020-12-01 20:06:32 +00:00
Bodmer
27216f89cc Raise version 2020-12-01 13:25:08 +00:00
Bodmer
d6e573c230 Fix SPI ILI9481
ILI9481 with 8 bit parallel worked OK but SPI needs an 18 bit colour interface.
2020-11-25 22:54:30 +00:00
Bodmer
f96c42253c Add support for choosing colour order on ST7735
See #639
2020-11-02 17:59:04 +00:00
Bodmer
c8c6317241 Add off-screen support to readRect()
See #803
2020-10-25 15:56:13 +00:00
Bodmer
b1f8cae069 Finalise viewport changes 2020-10-13 13:35:03 +01:00
Bodmer
505ca81a70 Complete viewport update 2020-10-11 22:36:02 +01:00
Bodmer
13d217dc89 Add viewport feature
2 new example sketches added for viewport demonstration
2020-10-06 00:51:41 +01:00
Bodmer
22ca8193c5 Improve RLE font rendering
See #766
2020-10-02 22:00:03 +01:00
Bodmer
ef93dbe687 Make ST7789 drivers consistent
Simplified driver ST7789_2_DRIVER not supports 135 x 240 display.
This will not fix #763 since user specifies alternative ST7789_DRIVER which already supports 135x240 displays.
2020-10-02 20:47:00 +01:00
Bodmer
49cef1f35d Support for SSD1963 and ST7706 SPI read
The SSD1963 support has been tested with a 480x800 pixel display from Buy Display.
Support for reading an ST7796 SPI display has been added.
pushToSprite added to keywords list.
2020-10-02 01:07:15 +01:00
Bodmer
d7fdcc0991 Fix #740 and #704
#740: To avoid ambiguity the pushSprite for writing a sprite to another sprite has been renamed pushToSprite

#704: Change to 18 bit colurs for SSD1963 with SPI interface

Remove outdated TFT_SPIFFS_Jpeg example
2020-09-07 22:04:42 +01:00
Bodmer
731228d13a Fix deleteSprite
Fixes #736 and also delete color map even if the sprite has not been created.
2020-08-28 21:18:26 +01:00
Bodmer
1c66d306d5 Add SSD1963 for #704
Remove setWindow optimisation clash with TFT_eFEX
2020-08-15 00:19:03 +01:00
Bodmer
a8cd5c5d91 Correct TFT_eFEX issue 24 2020-08-06 12:51:10 +01:00
Bodmer
dc114db01b Srite class updates + others
Add 2 new pushSprite functions:
1. Sprite to sprite
2. windowed are of sprite to screen
Examples to follow
Bug fixes to sprite class
2020-08-05 20:06:44 +01:00
Bodmer
90cabab91a Update to aid use of ESP32 with multiple displays #687
Fix issue when using ESP32 & using multiple TFT displays & not defining TFT_CS.

Note: Future support for multiple displays in all possible hardware combinations may not be practical.
2020-07-09 14:20:34 +01:00
Bodmer
a6d50ea5ef #682 Add created() function for sprites
New function added:
  bool created(void);
to check if sprite has been rotated. Example:

if ( !spr.created() ) Serial.println("Sprite has not been created");
2020-07-07 00:52:55 +01:00
Bodmer
af5aba3aae
Raise version 2020-06-19 10:07:08 +01:00
Bodmer
24750c605d Add option to use STM32 SPI port 2
See new #define options in "Setup29_ILI9341_STM32.h"
2020-06-13 21:05:47 +01:00
Bodmer
284f52b009 Allow partially of screen RLE fonts 2020-06-11 22:34:22 +01:00
Bodmer
fb86ae4d1b Update Read_User_Setup add #648
Read_User_Setup now includes backlight settings
2020-06-06 14:55:02 +01:00
Bodmer
b5826586fc Allow 4bpp Sprites to be rotated
4bpp Sprites can now be pushed to the TFT with a rotation
2020-06-05 16:05:04 +01:00
Bodmer
cd10a92f11 Allow ESP32 SPI pins to be undefined
See #618
2020-05-13 18:28:44 +01:00
Bodmer
1314a34c3d Fix #625
pushRect() reinstated to pair with readRect() so swapBytes does not need to be changed from true to false before calling.
2020-05-13 16:33:12 +01:00
Bodmer
7e4566f3f2 Raise version to 2.2.6 2020-05-10 00:19:12 +01:00
Bodmer
cc4f35f8c1 ESP32 DMA update
dmaBusy() checks and is no longer blocking
pushImageDMA() faster if setAddrWindow is not built into transaction list.
2020-05-08 21:25:38 +01:00
Bodmer
f6748bf906 Add ESP32 SPI DMA capability
DMA test examples now work on ESP32
2020-05-05 21:21:28 +01:00
Bodmer
fb2e669d37 1,4,8 bpp Sprites requite different default swapBytes settings 2020-05-01 22:38:14 +01:00
Bodmer
90af737fa1 Fix #606 inconsistency + others
TFT_eFEX also needs updating so Rotated_Sprite_3 example renders correctly.

pushImage for FLASH images updated so partly off-screen images are correctly rendered.
2020-04-26 17:05:19 +01:00
Bodmer
e937a3496f Diagnostic sketch update + others
Read_User_Setup updated to be compatible with STM32 and new structure format.
Reduction in compiler warnings
Update Sprite destructor
Update version to 2.2.1
2020-04-16 14:33:42 +01:00
Bodmer
875b451590 Fix Sprite 1bpp scroll bug
Sprite scroll function fixed for 1bpp
readPixelValue() updated

Performance of circle drawing functions improved.

Version raised to 2.2.0
2020-03-30 21:51:26 +01:00
Bodmer
732bdd32eb Port A+B and BRR update
PortA and Port B direction control now works on all STM processors.
Correct BRR to BSRR to support all STM processors.
2020-03-27 21:59:18 +00:00
Bodmer
89bf0ce6c1 Fix #581 plus
Update 4 bit Sprite code
Update Animate_Dial example to use italic font with minimised character set, add original jpeg graphic.
Raise to 2.1.8
2020-03-25 14:27:38 +00:00
Bodmer
7f7cc24b00 Add new animated dial example
See Sprite "Animated_dial" example.
2020-03-20 00:30:12 +00:00
Bodmer
ac8845d589 Fix #566 plus others
Fix image rendering issue.
Deprecate use of pushColors.
Improve ES8266 image rendering performance for ESP8266 and ILI9488.
Add getTextPadding().
2020-03-07 16:26:44 +00:00
Bodmer
65ccbf0139 STM32 update
Boost performance for ILI9488 display with STM32 processors.
Enable smooth fonts in setup files (smooth fonts for STM32 processors is now supported with fonts in program memory)
2020-03-02 22:25:39 +00:00
Bodmer
ed160f6476 Raise version 2020-03-01 18:42:01 +00:00
Bodmer
8d163618bb Add parallel TFT readRectRGB(), fix #548 2020-02-17 21:43:13 +00:00
Bodmer
da9de94fb1 Raise version 2020-02-16 17:07:55 +00:00
Bodmer
0fd8803ba2 Add smooth fonts in program memory for ESP32/8266
The 4 new smooth font  "Font_Demo_1/2/3/4_Array" examples now work on ESP32 and ESP8266.
2020-02-15 23:58:21 +00:00
Bodmer
c689b4211d Add FLASH based anti-aliased fonts
Processors (such as STM32) that are not supported by a SPIFFS library can now use anti-aliased (smooth) fonts stored in FLASH (program) memory.
2020-02-14 23:54:37 +00:00
Bodmer
443be934a7 Add PSRAM switch
Typical use to disable use of PSRAM for the sprite storage:
sprite.setAttribute(PSRAM_ENABLE, false); // true to enable
Minor update for recent button class update
2020-02-06 20:34:36 +00:00
Bodmer
15c137633a Raise version add comments for button update 2020-02-06 13:38:03 +00:00
Bodmer
c8530d7ae4 4 bpp Sprite bug fix
OR has precedence over AND so brackets needed.
Remove unused varaible.
2020-02-01 01:43:16 +00:00
Bodmer
8209c00316 Add new alphaBlend functions
Added 24 bit colour handling alphaBlend to reduce precision loss in multiple blend stages (e.g. in 2D colour gradients). Added option for alpha dither to reduce colour banding in gradients with 16 bit colours.

Get rid of compile warnings.
2020-01-30 16:01:36 +00:00
Bodmer
0e0fd75277 Raise to version 2.0.0
The library has been cleaned up as it has got a bit untidy due to the large number of small incremental changes.

4bit Sprite examples renaed to be consistent with others.

alphaBlend example moved to generic folder (alphaBlend fn was moved to TFT_eSPI class).
Added sections + explanatory comments to functions prototypes.

Temporary comments added for potential gotchas for noobs when using DMA.

spi_begin/end functions renamed to reflect functionality. Old fns  retained for backwards compatibility with user setup.h files.
2020-01-26 21:17:49 +00:00
Bodmer
04eacf56c9
Update library.json 2020-01-19 23:55:20 +00:00
Bodmer
d129512a2c
Update library.json 2020-01-19 23:50:15 +00:00
Bodmer
b6a8f6a8a4
Update library.json 2020-01-14 01:45:02 +00:00
Bodmer
7f53a571f4 Add STM32 and generic processor support 2020-01-11 23:32:10 +00:00
Bodmer
1476da56ba Restructured code, added ST7796
RPi MHS-4.0 inch Display-B type display now supported.
2020-01-11 00:58:38 +00:00
Bodmer
5bb14ba2d8 Add new callback for smooth font antialiasing
Callback allows anitaliased fonts to be rendered over colour gradients
or images.
"Smooth_font_reading_TFT" example added
"Smooth_font_gradient" example added
Minor changes to avoid signed/unsigned comparison warnings.
2019-11-10 02:23:22 +00:00
Bodmer
27b6509f27 Raise version 2019-10-22 23:02:41 +01:00
Bodmer
e9d405ea1f Fix image cropping bug plus minor update
Images/sprites overlapping both sides of the display were not correctly
cropped.
Option added to allow RGB<>BGR colourr swap option to be used.
ESP8266 Wemos D1 R1 pin numbering difference accomodated.
TTGO T4 setup changed to use HSPI port.
2019-10-21 22:56:35 +01:00