xarklabs / pdq_gfx_libs Goto Github PK
View Code? Open in Web Editor NEWOptimized fork of Adafruit's GFX library (and drivers) for Arduino (AVR).
Optimized fork of Adafruit's GFX library (and drivers) for Arduino (AVR).
stock lib is to slow to draw gif files (draw every frame).
i replaced the folder of the zip with the original folder and renamed it. i placed the adafruit original .h and .cpp files in the folder.
ive done this for gfx and st7735.
Compiler says "cant compile for board esp8266 nodemcu1"
when i now replace all files in the folder with the original adafruit files it runs (slow).
sketch:
#include <SPI.h>
#include <SdFat.h> // SD card & FAT filesystem library
#include <Adafruit_SPIFlash.h> // SPI / QSPI flash library
#include <Adafruit_ImageReader.h> // Image-reading functions
#include "PDQ_GFX.h" // PDQ: Core graphics library
#include "PDQ_ST7735_config.h" // PDQ: ST7735 pins and other setup for this sketch
#include <PDQ_ST7735.h> // PDQ: Hardware-specific driver library
PDQ_ST7735 tft;
Adafruit_Image img; // An image loaded into RAM
int32_t width = 0, // BMP image dimensions
height = 0;
SdFat SD1; // SD card filesystem
Adafruit_ImageReader reader(SD1); // Image-reader object, pass in SD filesys
void setup(void) {
tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
tft.setRotation(1); delay(10);
SD1.begin(SD_CS, SD_SCK_MHZ(10));
}
void loop() {
}
When trying to include FastLED in the same project i use PDQ_GFX.h and PDQ_ST7735.h in i get a lot of warnings and errors like this one:
In file included from /home/user/Arduino/libraries/PDQ_ST7735/PDQ_ST7735.h:62:0,
from /home/user/projects/arduino-project/arduino-project.ino:15:
/home/user/Arduino/libraries/PDQ_ST7735/PDQ_FastPin.h:268:52: error: previous definition of 'class FastPin<17u>'
#define _DEFPIN_AVR(PIN, MASK, L) template<> class FastPin<PIN> : public _AVRPIN<PIN, MASK, _R(PORT ## L), _R(DDR ## L), _R(PIN ## L)> {};
I suspect the Problem lies in your Library already including FastPin.h, but im no expert in C/C++ matters.
I could really use your help. Thank you :)
Is there any chance to get sd and display working togheter at the same time?
Compiling:
\Arduino\libraries\PDQ_ST7735\examples\PDQ_graphicstest\PDQ_graphicstest.ino
I receive this eror:
Arduino:1.7.10 (Windows 7), Scheda:"Arduino Uno"
In file included from PDQ_graphicstest.ino:25:0:
D:\Documents\Arduino\libraries\PDQ_ST7735/PDQ_ST7735.h: In static member function 'static void PDQ_ST7735::drawLine(int, int, int, int, uint16_t)':
D:\Documents\Arduino\libraries\PDQ_ST7735/PDQ_ST7735.h:854:14: error: 'swap' was not declared in this scope
swap(x0, y0);
^
D:\Documents\Arduino\libraries\PDQ_ST7735/PDQ_ST7735.h:860:14: error: 'swap' was not declared in this scope
swap(x0, x1);
^
Errore durante la compilazione
Questo report potrebbe essere più ricco
di informazioni con
"Mostra un output dettagliato durante la compilazione"
abilitato in "File > Impostazioni"
Any chance this library will be updated to support the RP2040?
If you try to compile a Sketch for ATSAMD21 Boards like Arduino Zero or Feather M0 it will Exit with an Error like:
In file included from /home/USER/Arduino/Game/v1/base_w_pdq/base_w_pdq.ino:38:0:
/home/USER/Arduino/libraries/PDQ_ST7735/PDQ_ST7735.h:65:2: error: #error Oops! Currently hardware SPI is required. Bother Xark if you would like USI or bit-bang SPI supported.
#error Oops! Currently hardware SPI is required. Bother Xark if you would like USI or bit-bang SPI supported.
I am not able to implement this but i think there is a way:
https://github.com/FastLED/FastLED/tree/master/platforms/arm/d21
I wanted to replace my adafruit libraries in my current project, which consists of a .ino file and two .h and one cpp file. I replaced the includes of all adafruit libs with the PDQ_GFX libs but then I get compile errors. Btw. my project runs perfect with the adafruit lib but just to slow. Can't imagine what I'm doing wrong. Could you please be so kind and point me in the right direction?
Thanks al ot!!
Compiling 'VFDController' for 'Arduino/Genuino Uno'
Screen.h:In file included from
Screen.cpp:from
PDQ_ILI9340.h:In static member function 'static void PDQ_ILI9340::begin()
PDQ_ILI9340.h:627:2: error: 'SPI' was not declared in this scope
:SPI.begin()
PDQ_ILI9340.h:629:18: error: 'SPI_MODE0' was not declared in this scope
:SPI.setDataMode(SPI_MODE0)
PDQ_ILI9340.h:630:22: error: 'SPI_CLOCK_DIV2' was not declared in this scope
:SPI.setClockDivider(SPI_CLOCK_DIV2); \ 8 MHz (full! speed!) [1 byte every 18 cycles]
Error compiling project sources
@Delph fixed an issue when sharing SPI bus with other devices for ST7735 driver. I believe this change should be made to the other drivers also.
Hello,
thanks for your library. its very fast compared to others, but what about include multifonts?
you could combine your library with this one:
https://github.com/pkourany/Adafruit_ST7735_mfGFX
then it would be the best library
I'm trying to use your library but I can not.
Parallel il9488 TFT and Mcufriend_kbv driver.
M0 arm board.
TFT.ino
https://pastebin.com/Tcf9Wj77
Mcufiend_kbv.h
https://pastebin.com/JP2wG0F8
errors:
https://pastebin.com/Dui9BDHg
Thanks for providing the community with such a good library (have used your library in other hardware several times)!
Hi,
Is possible to use your libs with Arduino Uno / Mega? I can't get to use them properly.
Examples files refuse to compile because their refert to ST7735 that i didn't have installed, and when i modify the sketch by replacing ST7735 with ST7781, it's end to a white screen.
I've see and tried the 2 modes in ST7781_Config, also the commented line about use of original adaGfx lib but i don't have any adafruit driver for st7781, just the mcu friends and the readme only report about ADAGFX installation.
So All of my attempts, results to all kinds of compil error or white screen
Is there anything that i missed ?
Greetings!
When I try to install the zip file using the Arduino IDE I get the following error message.
"Specified folder/zip file does not contain a valid library"
I have installed many other libraries without any issues.
Hi,
First of all I would like to say thank you for the great job, Xark!
I have tried your lib for ili9341 with arduino mega 2560 and it works nice. But then I have tried to connect the same LCD to 1284p arduino-like board (Maniacbug's Mighty) a have got just blank white screen.
Xark, have you tested lib for ili9341 with 1284-based boards? Could you share your experience on that?
Best regards,
Savely Rem
Hello, I tried many times but it hasn't been possible to make it work with the Arduino Mega. My pins wired are like this:
SCK ---- 52
SDA --- 51
DC --- 27
RST --- 25
CS --- 23
I don't get any error the sketch uploaded but just get white screen.
Thank you.
Hi,
I am using an Arduino Mega compatible board with the following LCD.
http://en.startek-lcd.com/IPS024/2015-11-21/22228.chtml
The LCD is driven by a ILI9325C controller.
Unfortunately, I am not able to change the MCU nor the display.
Any chance to support this controller?
When you change parameter ILI9340_SAVE_SPCR from 0 to 1 in test project PDQ_graphicstest/PDQ_ILI9340_config.h like the comment indicates
// <= 0/1 with 1 to save/restore AVR SPI control register (to "play nice" when other SPI use)
the project will no longer compile.
Error:
PDQ_ILI9340.h: In static member function 'static void PDQ_ILI9340::spi_begin()':
PDQ_ILI9340.h:200:23: error: 'swap' was not declared in this scope
swap(save_SPCR, SPCR); // swap initial/current SPCR settings
I haven't been able to make this work with the Mega and LCD touch screen. Anybody had any luck doing that?
Thanks a lot
Hi.
I'm working with esp32 and ST7735, pretty disappointed with adafruit gfx (and spi display) performance I ended up in this repository.
As I see currently only avr architectures are supported.
I've 2 questions.
Can the improvements in this library be ported to ESP32 stack? (how much effort will it require to me to do so?)
Also, as i cannot test it at the moment, do you think it will help with my projject problem which is shown in the next gif
As you can see i'm displaying bitmap animations. The second one runs smoothly because every animation frame only adds more pixels and therefor it is not needed to 'clear' the previous frame. For the first animation i have to draw a black rectangle in order to clear the previous animation frame and it makes the time between frames bigger and flicker. As i cannot test right now i don't know if adapting and using the library will help my animations/printings to be smoother.
Thank you.
I can't get this library to work with my ili9341 tft display. My screen works fine when using the code and circuit from here: https://educ8s.tv/arduino-2-8-ili9341-tutorial/ but the screen stays white when using the example code from this library. All pins are addressed the same and I have even tried code that just changes the screen colour with the two different libraries but it is the same. I am very new to Arduino so I might be doing something stupid but I think the problem might be a lack of logic level converter.
Any help would be appreciated.
Hi,
I am new to Arduino and have a 1.8inch TFT LCD. I want to use the PDQ library, but I'm not able to install it somehow. Can someone please help me out? Mine has an LCD driver ST7735.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.