1.68-inch nv3007 using mipi spi access issue

When I connected the 1.68-inch NV3007 to ESPHome using MiPi SPI, there were two issues(build esphome 2025.6.3)

  1. Cannot use width of 142
    2. Configuring YAML cannot be used in ESPHome 2025.10.5(ok)

Remove instruction 3a from initialization code

my yaml

esphome:
  name: nv3007-test
  friendly_name: nv3007 test

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf

spi:
  clk_pin: GPIO5
  mosi_pin: GPIO4

display:
  - platform: mipi_spi
    model: custom
    cs_pin: GPIO7
    dc_pin: GPIO6
    reset_pin: GPIO20
    dimensions:
      height: 428
      width: 168
    rotation: 0
    color_order: rgb
    color_depth: 16
    update_interval: 1s
    #data_rate: 8MHz
    init_sequence:
      - [ 0xff, 0xa5]
      - [ 0x11]
      - delay 150ms
      - [ 0xff, 0xa5]
      - [ 0x9a, 0x08]
      - [ 0x9b, 0x08]
      - [ 0x9c, 0xb0]
      - [ 0x9d, 0x17]
      - [ 0x9e, 0xc2]
      - [ 0x8f, 0x22, 0x04]
      - [ 0x84, 0x90]
      - [ 0x83, 0x7B]
      - [ 0x85, 0x4F]
      - [ 0x6e, 0x0f]
      - [ 0x7e, 0x0f]
      - [ 0x60, 0x00]
      - [ 0x70, 0x00]
      - [ 0x6d, 0x39]
      - [ 0x7d, 0x31]
      - [ 0x61, 0x0A]
      - [ 0x71, 0x0A]
      - [ 0x6c, 0x35]
      - [ 0x7c, 0x29]
      - [ 0x62, 0x0F]
      - [ 0x72, 0x0F]
      - [ 0x68, 0x4f]
      - [ 0x78, 0x45]
      - [ 0x66, 0x33]
      - [ 0x76, 0x33]
      - [ 0x6b, 0x14]
      - [ 0x7b, 0x14]
      - [ 0x63, 0x09]
      - [ 0x73, 0x09]
      - [ 0x6a, 0x13]
      - [ 0x7a, 0x16]
      - [ 0x64, 0x08]
      - [ 0x74, 0x08]
      - [ 0x69, 0x07]
      - [ 0x79, 0x0d]
      - [ 0x65, 0x05]
      - [ 0x75, 0x05]
      - [ 0x67, 0x33]
      - [ 0x77, 0x33]
      - [ 0x6f, 0x00]
      - [ 0x7f, 0x00]
      - [ 0x50, 0x00]
      - [ 0x52, 0xd6]
      - [ 0x53, 0x04]
      - [ 0x54, 0x04]
      - [ 0x55, 0x1b]
      - [ 0x56, 0x1b]
      - [ 0xa0, 0x2a, 0x24, 0x00]
      - [ 0xa1, 0x84]
      - [ 0xa2, 0x85]
      - [ 0xa8, 0x34]
      - [ 0xa9, 0x80]
      - [ 0xaa, 0x73]
      - [ 0xAB, 0x03, 0x61]
      - [ 0xAC, 0x03, 0x65]
      - [ 0xAD, 0x03, 0x60]
      - [ 0xAE, 0x03, 0x64]
      - [ 0xB9, 0x82]
      - [ 0xBA, 0x83]
      - [ 0xBB, 0x80]
      - [ 0xBC, 0x81]
      - [ 0xBD, 0x02]
      - [ 0xBE, 0x01]
      - [ 0xBF, 0x04]
      - [ 0xC0, 0x03]
      - [ 0xc4, 0x33]
      - [ 0xc5, 0x80]
      - [ 0xc6, 0x73]
      - [ 0xc7, 0x00]
      - [ 0xC8, 0x33, 0x33]
      - [ 0xC9, 0x5b]
      - [ 0xCA, 0x5a]
      - [ 0xCB, 0x5d]
      - [ 0xCC, 0x5c]
      - [ 0xCD, 0x33, 0x33]
      - [ 0xCE, 0x5f]
      - [ 0xCF, 0x5e]
      - [ 0xD0, 0x61]
      - [ 0xD1, 0x60]
      - [ 0xB0, 0x3a, 0x3a, 0x00, 0x00]
      - [ 0xB6, 0x32]
      - [ 0xB7, 0x80]
      - [ 0xB8, 0x73]
      - [ 0xe0, 0x00]
      - [ 0xe1, 0x03, 0x0f]
      - [ 0xe2, 0x04]
      - [ 0xe3, 0x01]
      - [ 0xe4, 0x0e]
      - [ 0xe5, 0x01]
      - [ 0xe6, 0x19]
      - [ 0xe7, 0x10]
      - [ 0xe8, 0x10]
      - [ 0xe9, 0x21]
      - [ 0xea, 0x12]
      - [ 0xeb, 0xd0]
      - [ 0xec, 0x04]
      - [ 0xed, 0x07]
      - [ 0xee, 0x07]
      - [ 0xef, 0x09]
      - [ 0xF0, 0xD0]
      - [ 0xF1, 0x0E]
      - [ 0xF9, 0x56]
      - [ 0xf2, 0x26, 0x1b, 0x0b, 0x20]
      - [ 0xec, 0x04]
      - [ 0x35, 0x00]
      - [ 0x44, 0x00, 0x10]
      - [ 0x46, 0x10]
      - [ 0xff, 0x00]
      - [ 0x3a, 0x06]
      - [ 0x11]
      - delay 200ms
      - [ 0x29]
      - delay 150ms
      #- [ 0x2a, 0x00, 0x0c, 0x00, 0x99]
      #- [ 0x2b, 0x00, 0x00, 0x01, 0xab]
      #- delay 20ms

lvgl:

When the width is set to 142, display

When compiling esphome 2025.10.5, it displays

Already OK

esphome:
  name: nv3007-test
  friendly_name: nv3007 test

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf

spi:
  clk_pin: GPIO5
  mosi_pin: GPIO4

display:
  - platform: mipi_spi
    model: custom
    cs_pin: GPIO7
    dc_pin: GPIO6
    reset_pin: GPIO20
    dimensions:
      height: 428
      width: 142
      offset_width: 12  # Vendor window starts from X=12, must keep
    rotation: 0
    color_order: rgb
    color_depth: 16
    data_rate: 20MHz
    init_sequence:
      # ========== NV3007 Vendor Specific Configuration Sequence ==========
      - [ 0xff, 0xa5]           # Vendor specific command mode entry
      - [ 0x9a, 0x08]           # Vendor specific configuration A
      - [ 0x9b, 0x08]           # Vendor specific configuration B
      - [ 0x9c, 0xb0]           # Vendor specific configuration C
      - [ 0x9d, 0x17]           # Vendor specific configuration D
      - [ 0x9e, 0xc2]           # Vendor specific configuration E
      - [ 0x8f, 0x22, 0x04]     # Vendor specific configuration F (dual byte parameter)
      - [ 0x84, 0x90]           # Vendor specific configuration G
      - [ 0x83, 0x7B]           # Vendor specific configuration H
      - [ 0x85, 0x4F]           # Vendor specific configuration I
      - [ 0x6e, 0x0f]           # Vendor specific configuration J
      - [ 0x7e, 0x0f]           # Vendor specific configuration K
      - [ 0x60, 0x00]           # Vendor specific configuration L
      - [ 0x70, 0x00]           # Vendor specific configuration M
      - [ 0x6d, 0x39]           # Vendor specific configuration N
      - [ 0x7d, 0x31]           # Vendor specific configuration O
      - [ 0x61, 0x0A]           # Vendor specific configuration P
      - [ 0x71, 0x0A]           # Vendor specific configuration Q
      - [ 0x6c, 0x35]           # Vendor specific configuration R
      - [ 0x7c, 0x29]           # Vendor specific configuration S
      - [ 0x62, 0x0F]           # Vendor specific configuration T
      - [ 0x72, 0x0F]           # Vendor specific configuration U
      - [ 0x68, 0x4f]           # Vendor specific configuration V
      - [ 0x78, 0x45]           # Vendor specific configuration W
      - [ 0x66, 0x33]           # Vendor specific configuration X
      - [ 0x76, 0x33]           # Vendor specific configuration Y
      - [ 0x6b, 0x14]           # Vendor specific configuration Z
      - [ 0x7b, 0x14]           # Vendor specific configuration AA
      - [ 0x63, 0x09]           # Vendor specific configuration AB
      - [ 0x73, 0x09]           # Vendor specific configuration AC
      - [ 0x6a, 0x13]           # Vendor specific configuration AD
      - [ 0x7a, 0x16]           # Vendor specific configuration AE
      - [ 0x64, 0x08]           # Vendor specific configuration AF
      - [ 0x74, 0x08]           # Vendor specific configuration AG
      - [ 0x69, 0x07]           # Vendor specific configuration AH
      - [ 0x79, 0x0d]           # Vendor specific configuration AI
      - [ 0x65, 0x05]           # Vendor specific configuration AJ
      - [ 0x75, 0x05]           # Vendor specific configuration AK
      - [ 0x67, 0x33]           # Vendor specific configuration AL
      - [ 0x77, 0x33]           # Vendor specific configuration AM
      - [ 0x6f, 0x00]           # Vendor specific configuration AN
      - [ 0x7f, 0x00]           # Vendor specific configuration AO
      
      # ========== Timing Parameter Configuration ==========
      - [ 0x50, 0x00]           # Window start position setting
      - [ 0x52, 0xd6]           # HBP (Horizontal Back Porch): 214
      - [ 0x53, 0x04]           # HFP (Horizontal Front Porch): 4
      - [ 0x54, 0x04]           # VBP (Vertical Back Porch): 4
      - [ 0x55, 0x1b]           # VFP (Vertical Front Porch): 27
      - [ 0x56, 0x1b]           # VFP continued: 27
      
      # ========== Display Control Parameters ==========
      - [ 0xa0, 0x2a, 0x24, 0x00]  # Vendor specific display control A
      - [ 0xa1, 0x84]           # Vendor specific display control B
      - [ 0xa2, 0x85]           # Vendor specific display control C
      - [ 0xa8, 0x34]           # Vendor specific display control D
      - [ 0xa9, 0x80]           # Vendor specific display control E
      - [ 0xaa, 0x73]           # Vendor specific display control F
      - [ 0xAB, 0x03, 0x61]     # Vendor specific display control G (dual byte parameter)
      - [ 0xAC, 0x03, 0x65]     # Vendor specific display control H (dual byte parameter)
      - [ 0xAD, 0x03, 0x60]     # Vendor specific display control I (dual byte parameter)
      - [ 0xAE, 0x03, 0x64]     # Vendor specific display control J (dual byte parameter)
      - [ 0xB9, 0x82]           # Vendor specific display control K
      - [ 0xBA, 0x83]           # Vendor specific display control L
      - [ 0xBB, 0x80]           # Vendor specific display control M
      - [ 0xBC, 0x81]           # Vendor specific display control N
      - [ 0xBD, 0x02]           # Vendor specific display control O
      - [ 0xBE, 0x01]           # Vendor specific display control P
      - [ 0xBF, 0x04]           # Vendor specific display control Q
      - [ 0xC0, 0x03]           # Power control A
      - [ 0xc4, 0x33]           # Power control B
      - [ 0xc5, 0x80]           # Power control C
      - [ 0xc6, 0x73]           # Power control D
      - [ 0xc7, 0x00]           # Power control E
      - [ 0xC8, 0x33, 0x33]     # Power control F (dual byte parameter)
      - [ 0xC9, 0x5b]           # Power control G
      - [ 0xCA, 0x5a]           # Power control H
      - [ 0xCB, 0x5d]           # Power control I
      - [ 0xCC, 0x5c]           # Power control J
      - [ 0xCD, 0x33, 0x33]     # Power control K (dual byte parameter)
      - [ 0xCE, 0x5f]           # Power control L
      - [ 0xCF, 0x5e]           # Power control M
      - [ 0xD0, 0x61]           # Power control N
      - [ 0xD1, 0x60]           # Power control O
      - [ 0xB0, 0x3a, 0x3a, 0x00, 0x00]  # Pixel format etc (5 byte parameter)
      - [ 0xB6, 0x32]           # Display control A
      - [ 0xB7, 0x80]           # Display control B
      - [ 0xB8, 0x73]           # Display control C
      
      # ========== Color Correction Parameters ==========
      - [ 0xe0, 0x00]           # Gamma correction A1
      - [ 0xe1, 0x03, 0x0f]     # Gamma correction A2 (dual byte parameter)
      - [ 0xe2, 0x04]           # Gamma correction A3
      - [ 0xe3, 0x01]           # Gamma correction A4
      - [ 0xe4, 0x0e]           # Gamma correction A5
      - [ 0xe5, 0x01]           # Gamma correction A6
      - [ 0xe6, 0x19]           # Gamma correction A7
      - [ 0xe7, 0x10]           # Gamma correction A8
      - [ 0xe8, 0x10]           # Gamma correction A9
      - [ 0xe9, 0x21]           # Gamma correction A10
      - [ 0xea, 0x12]           # Gamma correction A11
      - [ 0xeb, 0xd0]           # Gamma correction A12
      - [ 0xec, 0x04]           # Gamma correction A13
      - [ 0xed, 0x07]           # Gamma correction A14
      - [ 0xee, 0x07]           # Gamma correction A15
      - [ 0xef, 0x09]           # Gamma correction A16
      - [ 0xF0, 0xD0]           # Gamma correction B1
      - [ 0xF1, 0x0E]           # Gamma correction B2
      - [ 0xF9, 0x56]           # Gamma correction B3
      - [ 0xf2, 0x26, 0x1b, 0x0b, 0x20]  # Gamma correction B4 (5 byte parameter)
      - [ 0xec, 0x04]           # Gamma correction B5 (repeated setting)
      
      # ========== Window and Display Control ==========
      - [ 0x35, 0x00]           # Enable TE (Tearing Effect)
      - [ 0x44, 0x00, 0x10]     # TE line setting (dual byte parameter)
      - [ 0x46, 0x10]           # TE mode setting
      
      # ========== Exit Vendor Mode and Enable Display ==========
      - [ 0xff, 0x00]           # Exit vendor specific mode
      - [ 0x11]                 # Sleep Out (exit sleep mode)
      - delay 200ms             # Wait for stability
      # ========== Vendor provided core window setting (must keep) ==========
      - [ 0x2a, 0x00, 0x0c, 0x00, 0x99]  # Set column address window: X 12-153 (142 pixels)
      - [ 0x2b, 0x00, 0x00, 0x01, 0xab]  # Set row address window: Y 0-427 (428 pixels)
      - [ 0x29]                 # Display ON
      - delay 150ms             # Wait for display stability

lvgl: