Waveshare 7.5 v2
Yes its my Landroid lawnmower I’m getting the data from the home assistant integration. More to come but I think I really got the picture right on the display for that.
Hello,
I would like to know if it is possible to invert black and white?
(I want a black background and white text).
Thank you.
How long does the device run on battery?
doing an update every minute from 6-22h and every 5 min from 22-6 h:
started 25.3, battery out on: 20.4
…ordered another set of batteries
…but there is a lot of potential to optimize power consumtion… e.g. only update on presence, no screen update in nights…
How do you control the update of these displays? I haven’t found anything except the full_update_every
setting, which doesn’t allow for controlling the update.
@Laurenthu , would mind to share your ESP Easy code? I just got the exact same 4.7 EPD as you, and I’m strugling a bit to make it work on my Home Assistant…
Thanks!
Frankly the code is a mess, but here are the most important pieces:
void showBitmapFrom_HTTP_fubar(IPAddress hass, const char* path, String filename, bool with_color)
{
WiFiClient client;
int port_fub = 8123;
bool connection_ok = false;
bool valid = false; // valid format to be handled
bool flip = true; // bitmap is stored bottom-to-top
uint32_t startTime = millis();
// if ((x >= display.width()) || (y >= display.height())) return;
Serial.println(); Serial.print("downloading file \""); Serial.print(filename); Serial.println("\"");
Serial.print("connecting to "); Serial.println(hass);
if (!client.connect(hass, port_fub))
{
Serial.println("connection failed");
return;
}
Serial.print("requesting URL: ");
String fubar = String("GET ") + "http://" + hass.toString() + path + filename + " HTTP/1.1\r\n" +
"Connection: close\r\n\r\n";
client.print(fubar);
while (client.connected())
{
Serial.println("connected to client");
String line = client.readStringUntil('\n');
if (!connection_ok)
{
connection_ok = line.startsWith("HTTP/1.1 200 OK");
if (connection_ok) Serial.println(line);
}
if (!connection_ok) Serial.println(line);
if (line == "\r")
{
Serial.println("headers received");
break;
}
}
delay(30);
uint32_t width = read32(client);
uint32_t height = read32(client);
int idx = 0;
Serial.print("Width : "); Serial.print(width) ; Serial.print("Height : ");Serial.print(height);
if (width > 960) return;
if (height > 540) return;
for (uint16_t row = 0; row < height; row++) // for each line
{
for (uint16_t col = 0; col < width/2; col++) // for each pixel
{
if (client.available()) {
framebuffer[idx] = client.read();
idx++;
}
}
}
Rect_t area = {.x = 0,.y = 0, .width = width,.height = height};
Serial.print("we received everything, doing a clear and draw now");
if (DrawingSomethingNew)
{
epd_clear();
epd_clear();
epd_clear();
epd_clear();
}
epd_clear();
epd_draw_grayscale_image(area, (uint8_t *) framebuffer);
PreviousScreenNumber = ScreenNumber;
DrawingSomethingNew = false;
}
This is all in Arduino IDE 1.8.13…
And I previously transform BMP files into a 16 grayscale buffer file on the server side!
Hi all,
Is it possible to use a 7.5 waveshare with ESP8266 platform or is it mandatory to have a ESP32 platform ?
I tried same config :
- 7.5 waveshare + ESP8266 → crash and bootloop (v1 640x480)
- 4.2 waveshare + ESP8266 → working and stable
I don’t have any first hand experience (have the b&w 7.5inch waveshare on the way), but esphome docs indicate that the v2 runs out of RAM on ESP8266 devices. I think the main difference between v1 and v2 is increased resolution (640x480 vs. 800x480).
Thanks for your reply.
I have the 7.5 v1 with 640x480
This is my latest project using lilygo t5-4.7 epaper display. This pulls data from HA API and refresh every minute. I’ve used EPDiy framework for this project. Let me know what do you guys think.
Very nice.
This is awesome! Would you care to share your code please?
Thanks I certainly will. Need to add bit of documentation for configurability and after that I will upload it to github.
Having a problem that someone might be able to help me with.
Using some of everyones work I created a display using a 2.90 waveshare and a Lolin D32 Pro board.
Here is the code I am using for the display.
spi:
clk_pin: $gpio_spi_clk_pin #GPIO25
mosi_pin: $gpio_spi_mosi_pin #GPIO26
id: epaper_display
display:
- platform: waveshare_epaper
id: epaper
cs_pin: $gpio_cs_pin #GPIO32
busy_pin: $gpio_busy_pin #GPIO33
reset_pin: $gpio_reset_pin #GPIO27
dc_pin: $gpio_dc_pin #GPIO13
model: 2.90inv2 #269x128
update_interval: 60s
rotation: 90
I had to make one change because of the board the dc_pin was changed from GPIO17 to GPIO13 because the proboard does not show a GPIO17. Where the pin should be just says NC.
The problem is my display. When it first boots up it is great (top pic), then it starts an update (middle pic), then settles down until the next update (bottom pic).
What do I need to look at in order to fix this.
Many thanks who have already figured much of this ou.
I had a similar problem with my 7.5 e-paper Waveshare display with a separate board.
The board was faulty. After switching the board with a new one the picture was perfect.
Thank you @tebra .
I have tried it on thre different models of an esp32 as well as 3 wave share displays.
They all give the same results.
I do not think that three displays would be faulty, but possible.