Problemi con la gestione di client HTTP su scheda Waveshare e-paper ESP32

Buongiorno a tutti.
Sto sviluppando un applicativo per un display e-paper della Waveshare, basato su una versione di ESP32 su IDE Arduino. La direttiva consiste nel visualizzare sulla Waveshare un immagine bitmap fornita da un web server a uno specifico indirizzo. Essendo alle prime armi, non mi è chiarissimo come utilizzare la libreria GxEPD per stampare la bitmap, ma questo problema è secondario.
Innanzitutto sto provando a recuperare il contenuto di una risorsa web più “semplice”, ossia un text/plain HTML fornito da un ESP8266 che ho programmato in modo tale da fare da web server “base”. In questa circostanza, l’ESP32 deve acquisire questo breve testo di prova e poi visualizzarlo sul display.
C’è però un inconveniente che non riesco a risolvere. Il primo tentativo di GET della risorsa da parte del ESP32 fallisce sempre; al secondo tentativo, invece, riesce a prendere la risorsa e stamparla sul serial output, ma prima di stamparla sul display Waveshare, il sistema crasha e si riavvia.
L’output seriale è questo:

Avvio completato!

Display initialized!

HTTP began!
Error on HTTP request

HTTP communication ended


HTTP began!
HTTP GET accepted!
200
Welcome! This is a test page of the ESP8266 Web Server.
.
.
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x4015ea54  PS      : 0x00060430  A0      : 0x800d4856  A1      : 0x3ffb1ea0  
A2      : 0x3ffb1f10  A3      : 0x00000000  A4      : 0x00000625  A5      : 0x3ffc8eb8  
A6      : 0x00000001  A7      : 0x00000175  A8      : 0x00000000  A9      : 0x3ffb1e80  
A10     : 0x3ffafe88  A11     : 0x00000000  A12     : 0x00000002  A13     : 0x0000ff00  
A14     : 0x00ff0000  A15     : 0xff000000  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x00000010  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xffffffff  

Backtrace: 0x4015ea54:0x3ffb1ea0 0x400d4853:0x3ffb1ec0 0x400d48c5:0x3ffb1ee0 0x400d1946:0x3ffb1f00 0x400d8d05:0x3ffb1fb0 0x40088b9d:0x3ffb1fd0

Rebooting...

L’esp32 quindi si riavvia e riparte con la prima richiesta che fallisce, seguita dalla seconda che va a buon fine e subito però lo fa crashare e riavviarsi di nuovo.

Il codice che viene flashato sull’esp32 è il seguente:

#include <GxEPD.h>
#include <GxGDEW075T8/GxGDEW075T8.h>


#include <Fonts/FreeMonoBold9pt7b.h>
#include <Fonts/FreeMonoBold12pt7b.h>
#include <Fonts/FreeMonoBold18pt7b.h>
#include <Fonts/FreeMonoBold24pt7b.h>

#include <GxIO/GxIO.h>
#include <GxIO/GxIO_SPI/GxIO_SPI.h>
#include <WiFi.h>
#include <HTTPClient.h>

GxIO_Class io(SPI, /*CS=5*/ 15, /*DC=*/ 27, /*RST=*/ 26); // arbitrary selection of 17, 16
GxEPD_Class display(io, /*RST=*/ 26, /*BUSY=*/ 25); // arbitrary selection of (16), 4

const char* ssid = "joan";
const char* password = "joan1q2w";

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Avvio completato!\n");
  // setup the display
  display.init();
  Serial.println("Display initialized!\n");

  /* ISTRUZIONI SPECIALI PER IL NOSTRO MODELLO DI ESP32 WAVESHARE */
  SPI.end(); // release standard SPI pins, e.g. SCK(18), MISO(19), MOSI(23), SS(5)
  SPI.begin(13, 12, 14, 15); // map and init SPI pins SCK(13), MISO(12), MOSI(14), SS(15)
  /*  FINE ISTRUZIONI SPECIALI */

  WiFi.begin(ssid, password);
  
 
}

void loop() 
{
  HTTPClient httpclient;

  httpclient.begin("http://172.16.0.104/welcome");
  Serial.println("HTTP began!");
  
  int httpCode = httpclient.GET();  // Questo in realtà serve per verificare il codice della richiesta e fare error handling. non è la richiesta vera e propria!

  if (httpCode > 0)   // Se la GET va a buon fine, posso fare effettivamente l'acquisizione
  {
    Serial.println("HTTP GET accepted!");
    String payload = httpclient.getString();  // ritorna una String con la risposta.
    Serial.println(httpCode);
    Serial.println(payload);
  }
  else
  {
    Serial.println("Error on HTTP request");
  }

  httpclient.end();

  Serial.println("HTTP communication ended");

  delay(15000);
  
}

Volevo inoltre agigungere che ho provato diverse risorse web, e l’esp32 si comporta sempre in questo modo; la prima get fallisce, la seconda va a buon fine ma fa crashare la scheda.
Ho esaurito le idee e non riesco a fare ulteriore troubleshooting del codice…

>tHe_giafra_sHoW: in conformità al REGOLAMENTO della sezione Italiana del Forum, punto 13, il cross-posting è proibito ([u]anche tra lingue diverse[/u]) e tu hai già posto la stessa/simile domanda QUI.

Non solo, in quel thread ti stanno già rispondendo ed è veramente poco cortese abbandonare una discussione e chi ti stava aiutando, per venire di qua a porre la stessa/simile domanda … ::)

Poi, NON avendolo tu ancora fatto, ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto ;)) e di leggere con MOLTA attenzione il REGOLAMENTO.

Infine, [u]per rispetto verso chi ti stava già aiutando nell'altro thread[/u], questo tuo thread viene chiuso e ti prego di continuare dove avevi cominciato. Grazie.

Guglielmo