Librairie écran epaper esp32

Bonjour,
je viens de faire l'achat de ce epaper 7 colors de chez waveshare 5.65inch Colorful E-Paper E-Ink Display Module, 600×448 Pixels, ACeP 7-Color (waveshare.com)
Sur leur doc il nous fournisse cette documentation pour installer la librairie :
Module e-Paper 5,65 pouces (F) - Waveshare Wiki
Cependant j'ai un problème, je n'arrive pas à installer la libraire sur l'ide arduino.
Je suis la doc à la lette mais rien ne s'affiche dans mon dossier exemple:
je souhaite le faire fonctionner sur un esp32.
Pourriez vous m'aidez ou m'indiquer la procédure à suivre .
Vous remerciant

Re bonjour,
j'ai réussi à mettre la bibliothèque en mettant esp32-waveshare-epd sous format zip et en l'ajoutant directement via l'ide arduino.
Je ne souhaite pas utiliser les mêmes broche qui sont affichées dans le tuto.
Pourriez vous m'indiquer comment je pourrais changer mes broches dans le programme ?

image

Voici le programme demo :

#include "DEV_Config.h"
#include "EPD.h"
#include "GUI_Paint.h"
#include "imagedata.h"
#include <stdlib.h>

void setup()
{
	printf("EPD_5in65F_test Demo\r\n");
  DEV_Module_Init();

	printf("e-Paper Init and Clear...\r\n");
	EPD_5IN65F_Init();
	EPD_5IN65F_Clear(EPD_5IN65F_WHITE);
	DEV_Delay_ms(100);
  
	UBYTE *BlackImage;			
	UDOUBLE Imagesize = ((EPD_5IN65F_WIDTH % 2 == 0)? (EPD_5IN65F_WIDTH / 2 ): (EPD_5IN65F_WIDTH / 2 + 1)) * EPD_5IN65F_HEIGHT;
	Imagesize = Imagesize*3/4 + 1000;
	printf("Imagesize %d\r\n",Imagesize);
	if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
			printf("Failed to apply for black memory...\r\n");
			while(1);
	}
	Paint_NewImage(BlackImage, EPD_5IN65F_WIDTH, EPD_5IN65F_HEIGHT, 0, EPD_5IN65F_WHITE);
	Paint_SetScale(7);
	
#if 0
	EPD_5IN65F_Display_part(gImage_5in65f, 204, 153, 192, 143);
	DEV_Delay_ms(5000); 
#endif

#if 0
	Paint_Clear(EPD_5IN65F_WHITE);
	printf("Drawing:BlackImage\r\n");
	Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
	Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
	Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
	Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
	Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
	Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
	Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
	Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
	Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
	Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
	Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
	Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
	Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
	Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
	Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
	Paint_DrawString_CN(10, 120, "你好abc", &Font12CN, EPD_5IN65F_BLACK, WHITE);
	Paint_DrawString_CN(10, 140, "你好abc", &Font12CN, EPD_5IN65F_GREEN, WHITE);
	Paint_DrawString_CN(10, 160, "你好abc", &Font12CN, EPD_5IN65F_BLUE, WHITE);
	Paint_DrawString_CN(10, 180, "你好abc", &Font12CN, EPD_5IN65F_RED, WHITE);
	Paint_DrawString_CN(10, 200, "你好abc", &Font12CN, EPD_5IN65F_ORANGE, WHITE);
	
	Paint_DrawString_CN(150, 0, "微雪电子", &Font24CN, WHITE, BLACK);
	Paint_DrawString_CN(150, 40, "微雪电子", &Font24CN, EPD_5IN65F_GREEN, BLACK);
	Paint_DrawString_CN(150, 80, "微雪电子", &Font24CN, EPD_5IN65F_BLUE, BLACK);
	Paint_DrawString_CN(150, 120, "微雪电子", &Font24CN, EPD_5IN65F_RED, BLACK);
	Paint_DrawString_CN(150, 160, "微雪电子", &Font24CN, EPD_5IN65F_YELLOW, BLACK);
	
	EPD_5IN65F_Display(BlackImage);
	DEV_Delay_ms(5000); 
#endif

#if 1
	Paint_Clear(EPD_5IN65F_BLUE);
	EPD_5IN65F_Display(BlackImage);
	DEV_Delay_ms(1000);
#endif

	printf("e-Paper Clear...\r\n");
	EPD_5IN65F_Clear(EPD_5IN65F_WHITE);
	DEV_Delay_ms(1000); 
  
	printf("Sleep...\r\n");
	EPD_5IN65F_Sleep();

	free(BlackImage);
	BlackImage = NULL;	
}

/* The main loop -------------------------------------------------------------*/
void loop()
{
  //
}

Bonjour,

Tu ne nous dit pas quel est ton système d'exploitation. On va supposer que c'est Windows.

Les librairies spécifiques pour l'esp32 ne se trouvent pas (ou plus?) dans le répertoire \hardware\espressif\esp32\libraries folder sous le répertoire d'installation comme indiqué dans le wiki mais dans Users\xxx\AppData\Local\Arduino15\packages\esp32...

Mais le plus simple est de copier le répertoire "esp32-waveshare-epd" dans le répertoire des librairies utilisateur "documents\Arduino\libraries"
Tu trouveras les exemples dans l'ide sous examples\waveshare-e-paper

Edit: ma réponse à croisé ton deuxième message, je vois que tu as trouvé la solution tout seul.

Niquel merci, oui c'est windows :slight_smile:

Donc après quelque recherche pour changer mes broches j'ai ouvert le fichier DEV_Config.h , j'y retrouve les broches que je souhaite modifier , j'ai le droit de modifier un .h sans risque ? je l'ouvre avec wordpadd quand je souhaite l'ouvrir avec arduino, j'ai un message qui me dit impossible d'ouvrir ce type de fichier

Avant de vouloir changer, tu as vérifié que ça fonctionne bien avec le câblage proposé?

Nn le truc c'est que j'ai acheté cette écran epaper en remplacement de mon écran tft .
Mes autres broches sont déjà utilisé donc j'aimerais prendre les broche de mon écran tft sans avoir besoin à dessouder la moitié de mes composants :slight_smile:

La configuration est dans DEV_Config.h

#define EPD_SCK_PIN  13
#define EPD_MOSI_PIN 14
#define EPD_CS_PIN   15
#define EPD_RST_PIN  26
#define EPD_DC_PIN   27
#define EPD_BUSY_PIN 25

Mais je te conseille quand même d'essayer la configuration proposée avant de modifier (sur un autre esp32 éventuellement) car sur l'esp32 toutes les pins ne sont pas équivalentes et tu risques de galérer.

Super merci
Je n'en ai qu'un pour le moment je n'ai pas encore reçu mon autre esp32.
Il est possible d'ouvre dev.config.h par l'ide arduino ? j'ai réussi en le faisant glissé :wink:
J'ai une question busy pin signifie quoi ? C'est miso ? l'epaper fonctionne en spi pourquoi je ne vois pas miso ?
et RST il a besoin d'une broche en particulier ou je peux le mettre sur la broche que je souhaite (I/O)

N'utilise pas wordpad qui va t'ajouter des caractères de formatage, utilise notepad (ou mieux télécharge notepad++)
Mais si ça fonctionne avec l'ide tu peux l'utiliser (je n'ai jamais essayé)
S'il n'y a pas miso, c'est sans doute que l'écran ne répond rien. Il utilise busy pour signaler que la commande est finie de traiter.

D'accord merci de ton aide j'utilise cette esp32 ESP32 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials
si je met RST en broche 32 et BUSY en 19 , ya pas de problème tu penses c'est des I/O ?

Je pense que c'est ok, mais c'est à vérifier.
De toute façon tu peux toujours essayer. Si ça fonctionne du premier coup ce sera bien, mais si ça ne fonctionne pas ce sera difficile de voir d'ou ça vient.

1 Like

Je viens d'essayer ta méthode de tirer le fichier .h dans l'ide arduino.
Ca ne va pas fonctionner, il crée une copie locale et c'est cette copie qui va être modifiée. Le .h de la librairie va resté inchangé (à moins de recopier le fichier local dans la librairie)

1 Like

D'accord bah merci de tte ton aide , j'ai réussi à faire fonctionner en changeant avec notepadd++ , avec l'ide arduino ça ne fonction pas :frowning: