Weather station with esp32 and ePaper waveshare

Hello everyone,

I'm a bit new to the programming world and wanted to try my hand at a finished product.
I came across the following project:

Now I have wired everything up and checked it 3 times, but the display still shows nothing. So I started debugging and came across the following message:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13232
load:0x40080400,len:3028
entry 0x400805e4
Battery voltage: 4212mv
Connecting to 'MeinWLan'...
Waiting for SNTP synchronization........
Friday, March 21, 2025 16:41:19
Attempting HTTP request: ...
200 OK
Attempting HTTP request: ...
200 OK
Reading from BME280... Success
Busy Timeout!
_PowerOn : 20001251
Busy Timeout!
_Update_Full : 20001231
Busy Timeout!
_PowerOff : 20000107
Busy Timeout!
_PowerOff : 20000107
Awake for 87.235s
Entering deep sleep for 1039s

epaper: 7.5" 800×480 ePaper Display HAT für Raspberry Pi, dreifarbig (rot, schwarz, weiß... - kaufen bei BerryBase
Borad: DFRobot FireBeetle ESP32-E IoT Microcontroller (WLAN & Bluetooth) - kaufen bei BerryBase

I bought and connected the components as described in the project.
I really don't understand the error any more. Can anyone help me?

What error are you referring to? Looks like messages from the program as it runs. You can find all the messages and reason for them in the program code.

you can do more with a BME 280 than you may think:

void BME_280_conversions()
{
  temperature_C = (temperature.toInt());
  Serial.print("Temperature C = ");
  Serial.print(temperature_C);
  Serial.println(" *C");
  temperature_F = ((1.8 * temperature_C) + 32); // Convert Celcius temperature to Fahrenheit
  Serial.print("Temperature F = ");
  Serial.print(temperature_F);
  Serial.println( " F" );

  Pressure = (pressure.toInt());
  pressure_hPa = ((Pressure / 100.0F));
  Serial.print("Pressure hPa  = ");
  Serial.print(pressure_hPa);
  Serial.println("  hPa" );
  pressure_inHg = ((pressure_hPa / 100.0F) / 33.864); // Convert hectoPascals to inHg
  Serial.print("Pressure inHG = ");
  Serial.print(pressure_inHg);
  Serial.println( " inHG");

  Humidity = (humidity.toInt());
  Serial.print( "Humidity      = ");
  Serial.print(Humidity);
  Serial.println(" %");

  seaLevelPressure_hPa = pressure_hPa / pow(1.0 - 0.0065 * localElevation / (temperature_C + 273.15), 5.255);
  Serial.print( "Sea Level Pressure hPa  = " );
  Serial.print( seaLevelPressure_hPa );
  Serial.println( " hPa");
  seaLevelPressure_inHg = seaLevelPressure_hPa / 33.864;
  Serial.print( "Sea Level Pressure inHg = " );
  Serial.print( seaLevelPressure_inHg );
  Serial.println( " inHg");

  dewpoint_F = 243.04 * (log(Humidity / 100) + ((17.625 * temperature_F) / (243.04 + temperature_F))) / (17.625 - log(Humidity / 100) - ((17.625 * temperature_F) / (243.04 + temperature_F)));
  Serial.print("Dewpoint = ");
  Serial.print(dewpoint_F);
  Serial.println(" F");
  dewpoint_C = ((temperature_F - 32) / 1.8 ); // Convert Fahrenheit temperature to Celcius
  Serial.print("Dewpoint = ");
  Serial.print(dewpoint_C);
  Serial.println(" C");
  Serial.println();
}```

the variables:


float temperature_C; // Initialize variables to get and save Weather data
float temperature_F;
float pressure_hPa;
float Pressure;
float pressure_inHg;
float Humidity;
float seaLevelPressure_hPa;
float seaLevelPressure_inHg;
float dewpoint_F;
float dewpoint_C;

Unfortunately, I have no display on the ePaper and I have identified this busy timeout as the error description. I can't explain anything else

Ok, but that shouldn't be my problem. I want to see something on the display first and then I want to add these points if necessary.

For a well written program that only means there is a timeout on some operation and that operation is being retried until successful.