Hi guys,
I'm currently developing some ESP-IDF code to drive an epaper display (GDE021A1) based on the spi_master for SPI communications. It seems to work as I could draw 'something' on screen but I need some basic 2D graphic library for working on an array buffer (lines, .., draw text) before pushing it to the the display through SPI commands.
If you have any graphic libs you've already used with ESP-IDF, I would be delighted to dive in
Thanks for your help,
Nicolas
2D graphic lib for ESP-IDF ?
Re: 2D graphic lib for ESP-IDF ?
Howdy,
I for one have been using the Adafruit-GFX-Library running on the ESP32 to achieve a number of driver displays ... see:
https://github.com/adafruit/Adafruit-GFX-Library
I for one have been using the Adafruit-GFX-Library running on the ESP32 to achieve a number of driver displays ... see:
https://github.com/adafruit/Adafruit-GFX-Library
Free book on ESP32 available here: https://leanpub.com/kolban-ESP32
Re: 2D graphic lib for ESP-IDF ?
Hello Kolban,
do you have ported the Adafruit GFX Lib to esp-idf? If yes can you post it? It would save me some redundant work.
Regards
Peter
do you have ported the Adafruit GFX Lib to esp-idf? If yes can you post it? It would save me some redundant work.
Regards
Peter
Re: 2D graphic lib for ESP-IDF ?
I'm also interested on this topic, to get both Adafruit GFX and fonts working, in a Epaper new component I'm trying to make.
https://github.com/martinberlin/cale-id ... /README.md
I just started with IDF a few months ago. My idea is to make something the way GxEPD is doing on espressif32-arduino but only using IDF (No arduino as a component)
This is also a nice example made in IDF 2.0:
https://github.com/loboris/ESP32_ePaper_example
I could see functions to draw lines and shapes in the library. But I could not compile it since I want to stick to 4.0 now.
https://github.com/martinberlin/cale-id ... /README.md
I just started with IDF a few months ago. My idea is to make something the way GxEPD is doing on espressif32-arduino but only using IDF (No arduino as a component)
This is also a nice example made in IDF 2.0:
https://github.com/loboris/ESP32_ePaper_example
I could see functions to draw lines and shapes in the library. But I could not compile it since I want to stick to 4.0 now.
epdiy collaborator | http://fasani.de Fan of Espressif MCUs and electronic design
Re: 2D graphic lib for ESP-IDF ?
Yesterday night I found some time to port this library and make the Fonts part work in IDF.
This is part of my intent to port an existing Epaper espressif32-arduino Firmware into ESP-IDF. You can find it here and unless I'm missing something it can be already added as a git submodule in existing projects.
https://github.com/martinberlin/Adafrui ... ry-ESP-IDF
When linking a component like this from other components do not forget to add in the CMakeLists file:
idf_component_register(SRCS ${srcs}
REQUIRES "Adafruit-GFX"
)
So your component can extend this class. Soon I will add an Epaper driver example implementing this if someone shows interest.
Please be aware that I'm quite new to C++ OOP (About 1 and half years experience)
So my classes and OOP may not be perfect. Other than that Adafruit uses the Print namespace of Arduino, due to that, I was forced to add some classes that I didn't wanted to add. So please check the README before using this.
Is working for geometries and print/println tests this are my demo images
This is part of my intent to port an existing Epaper espressif32-arduino Firmware into ESP-IDF. You can find it here and unless I'm missing something it can be already added as a git submodule in existing projects.
https://github.com/martinberlin/Adafrui ... ry-ESP-IDF
When linking a component like this from other components do not forget to add in the CMakeLists file:
idf_component_register(SRCS ${srcs}
REQUIRES "Adafruit-GFX"
)
So your component can extend this class. Soon I will add an Epaper driver example implementing this if someone shows interest.
Please be aware that I'm quite new to C++ OOP (About 1 and half years experience)
So my classes and OOP may not be perfect. Other than that Adafruit uses the Print namespace of Arduino, due to that, I was forced to add some classes that I didn't wanted to add. So please check the README before using this.
Is working for geometries and print/println tests this are my demo images
- Attachments
-
- epaper_demo1.jpeg (78.18 KiB) Viewed 8685 times
epdiy collaborator | http://fasani.de Fan of Espressif MCUs and electronic design
Re: 2D graphic lib for ESP-IDF ?
If you are looking for library to draw graphical primitives and want to get rid of Arduino stuff check HAGL. It is still work in progress but API should be 80% stable. You need to provide it with HAL which has putpixel function for your e-paper display.
https://github.com/tuupola/hagl
https://github.com/tuupola/hagl
Re: 2D graphic lib for ESP-IDF ?
Nice one! You just have one star more
Please note that my fork does not include Arduino.h at all. I just had to include Print & Printable headers since Adafruit extends them.
But could be changed if possibly by someone's pull request that understands better than me how a GFX library works.
My assumption is that Adafruit GFX extends Print just to re-use the print/println/printf methods but it would be a lot nicer if that methods are directly inside the library.
Actually I could add just print / println as methods and get rid of Print and Printable for the good
This methods should just do a for...loop and send each char to the Adafruit_GFX write function:
Please note that my fork does not include Arduino.h at all. I just had to include Print & Printable headers since Adafruit extends them.
But could be changed if possibly by someone's pull request that understands better than me how a GFX library works.
My assumption is that Adafruit GFX extends Print just to re-use the print/println/printf methods but it would be a lot nicer if that methods are directly inside the library.
Actually I could add just print / println as methods and get rid of Print and Printable for the good
This methods should just do a for...loop and send each char to the Adafruit_GFX write function:
Code: Select all
size_t Epd::write(uint8_t v){
Adafruit_GFX::write(v);
return 1;
}
void Epd::print(const std::string& text){
for(auto c : text) {
write(uint8_t(c));
}
}
void Epd::println(const std::string& text){
for(auto c : text) {
write(uint8_t(c));
}
write(10); // newline
}
epdiy collaborator | http://fasani.de Fan of Espressif MCUs and electronic design
Who is online
Users browsing this forum: Google [Bot] and 122 guests