Skip to content

e-paper 7.5" (B) v3 doesn't work? #223

@DaAitch

Description

@DaAitch

I have 3 displays for my esp32 e-paper driver board:

  • epd1in54_v2 => worked
  • epd2in13_v2 => worked
  • e-paper 7.5" (B) v3 => doesn't work, i tried all epd7in5_xxx versions

The 7.5inch doesn't work and the program crashes. Does somebody have an idea?

Thank you in advance.

I (473) main_task: Calling app_main()
ets Jun  8 2016 00:22:57

rst:0x8 (TG1WDT_SYS_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:7104
load:0x40078000,len:15576
load:0x40080400,len:4
0x40080400 - _invalid_pc_placeholder
    at ??:??
ho 8 tail 4 room 4
load:0x40080404,len:3876
entry 0x4008064c
I (61) boot: ESP-IDF v5.1-beta1-378-gea5e0ff298-dirt 2nd stage bootloader
I (61) boot: compile time Jun  7 2023 07:48:23
I (64) boot: Multicore bootloader
I (68) boot: chip revision: v1.0
I (72) boot.esp32: SPI Speed      : 40MHz
I (77) boot.esp32: SPI Mode       : DIO
I (81) boot.esp32: SPI Flash Size : 4MB
W (86) boot.esp32: PRO CPU has been reset by WDT.
W (91) boot.esp32: WDT reset info: PRO CPU PC=0x40082f25
0x40082f25 - panicHandler
    at /Users/aitch/Code/esp32_rs/.embuild/espressif/esp-idf/v5.2.2/components/esp_system/port/panic_handler.c:217
W (97) boot.esp32: WDT reset info: APP CPU PC=0x40111236
0x40111236 - panic_handler
    at /Users/aitch/Code/esp32_rs/.embuild/espressif/esp-idf/v5.2.2/components/esp_system/port/panic_handler.c:138
I (103) boot: Enabling RNG early entropy source...
I (109) boot: Partition Table:
I (113) boot: ## Label            Usage          Type ST Offset   Length
I (120) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (127) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (135) boot:  2 factory          factory app      00 00 00010000 003f0000
I (143) boot: End of partition table
I (147) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=2435ch (148316) map
I (209) esp_image: segment 1: paddr=00034384 vaddr=3ffb0000 size=0251ch (  9500) load
I (213) esp_image: segment 2: paddr=000368a8 vaddr=40080000 size=09770h ( 38768) load
I (231) esp_image: segment 3: paddr=00040020 vaddr=400d0020 size=55740h (350016) map
I (358) esp_image: segment 4: paddr=00095768 vaddr=40089770 size=04290h ( 17040) load
I (372) boot: Loaded app from partition at offset 0x10000
I (372) boot: Disabling RNG early entropy source...
I (383) cpu_start: Multicore app
I (392) cpu_start: Pro cpu start user code
I (392) cpu_start: cpu freq: 160000000 Hz
I (392) cpu_start: Application information:
I (395) cpu_start: Project name:     libespidf
I (400) cpu_start: App version:      cf567d5-dirty
I (406) cpu_start: Compile time:     Dec  5 2024 18:26:23
I (412) cpu_start: ELF file SHA256:  000000000...
I (417) cpu_start: ESP-IDF:          v5.2.2
I (422) cpu_start: Min chip rev:     v0.0
I (427) cpu_start: Max chip rev:     v3.99 
I (432) cpu_start: Chip rev:         v1.0
I (437) heap_init: Initializing. RAM available for dynamic allocation:
I (444) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (450) heap_init: At 3FFB3268 len 0002CD98 (179 KiB): DRAM
I (456) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (462) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (469) heap_init: At 4008DA00 len 00012600 (73 KiB): IRAM
I (476) spi_flash: detected chip: generic
I (479) spi_flash: flash io: dio
W (484) pcnt(legacy): legacy driver is deprecated, please migrate to `driver/pulse_cnt.h`
W (492) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`
W (503) timer_group: legacy driver is deprecated, please migrate to `driver/gptimer.h`
I (512) main_task: Started on CPU0
I (522) main_task: Calling app_main()

here is my Rust code for ESP32 driver board with the displays:

type Display = epd_waveshare::epd7in5b_v3::Display7in5;
type Epd<SPI, BUSY, DC, RST, DELAY> =
    epd_waveshare::epd7in5b_v3::Epd7in5<SPI, BUSY, DC, RST, DELAY>;
type Col = TriColor;

fn main() {
    esp_idf_svc::sys::link_patches();
    esp_idf_svc::log::EspLogger::initialize_default();

    let p = Peripherals::take().unwrap();

    let mut device = SpiDeviceDriver::new_single(
        p.spi2,
        p.pins.gpio13,
        p.pins.gpio14,
        Option::<AnyIOPin>::None,
        Some(p.pins.gpio15),
        &SpiDriverConfig::default(),
        &Config::default(),
    )
    .unwrap();

    let mut delay = Ets;

    let busy = PinDriver::input(p.pins.gpio25).unwrap();
    let dc = PinDriver::output(p.pins.gpio27).unwrap();
    let rst = PinDriver::output(p.pins.gpio26).unwrap();

    let mut display = Display::default();
    let mut epd =
        Epd::new(&mut device, busy, dc, rst, &mut delay, None).expect("e-ink initalize error");

    display.clear(Col::White).unwrap();

    draw_text(&mut display, "works!", 0, 0);
    epd.update_frame(&mut device, display.buffer(), &mut delay)
        .unwrap();
    epd.display_frame(&mut device, &mut delay).unwrap();

    epd.sleep(&mut device, &mut delay).unwrap();
}

fn draw_text(display: &mut Display, text: &str, x: i32, y: i32) {
    let style = MonoTextStyleBuilder::new()
        .font(&embedded_graphics::mono_font::ascii::FONT_10X20)
        .text_color(Col::Black)
        .background_color(Col::White)
        .build();

    let text_style = TextStyleBuilder::new().baseline(Baseline::Top).build();

    let _ = Text::with_text_style(text, Point::new(x, y), style, text_style).draw(display);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions