New boards Wishlist

Guition-ESP32-S3-JC3248W535 support

govidoSuggested this wish ·

Hi,

i tinkered a little with my JC3248W535 display. It has the same resolution as the Waveshare 3.5", but provides QSPI display and PSRAM with 16MB storage. So far I could get it to boot and show the new tessera logo 😃 Display works, dimming is fine, the only blocker is the display prompting me to update the add-on because of config problems. https://www.guition.com/esp32-display-module/3-5-inch-esp32s3-display-module

My testing config:

esphome:
  name: esp-screen-test
  friendly_name: "35 Display Test"

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf
  flash_size: 16MB

logger:
  tx_buffer_size: 2048
  hardware_uart: UART0

text_sensor:
  - platform: template
    name: "Guition screen type"
    entity_category: diagnostic
    update_interval: never
    lambda: 'return {"guition"};'

substitutions:
  FONT_DIR: "https://raw.githubusercontent.com/MaxGramser/homeassistant_espscreen/main/fonts"
  PANEL_W: "480"
  PANEL_H: "320"
  DISPLAY_DPI: "165"
  DEVICE_FRIENDLY_NAME: "Guition 35 Display"
  LVGL_BUFFER_SIZE: "25%"
  BACKLIGHT_FREQUENCY: "150Hz"
  ROTATION_LANDSCAPE: "90"
  GRID_COLS: "2"
  GRID_ROWS: "2"
  GRID_COLS_PORTRAIT: "1"
  GRID_ROWS_PORTRAIT: "3"

external_components:
  - source:
      type: git
      url: https://github.com/MaxGramser/homeassistant_espscreen.git
      ref: main
      path: components
    refresh: 0s
    components: [smart_display]

packages:
  tessera_core:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/core.yaml
    refresh: 0s
  hardware:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/hardware/esp32s3-rgb.yaml
  cells:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/cells/4.yaml
  look:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/looks/standard.yaml
  touch:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/features/capacitive-touch.yaml
  backlight:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/features/backlight.yaml
  camera:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/features/camera.yaml
  self_test:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/features/self-test.yaml
  snapshot:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    file: packages/features/snapshot.yaml

sensor:
  - platform: adc
    pin: GPIO5
    name: "Battery Voltage"
    id: battery_voltage
    icon: mdi:battery
    entity_category: diagnostic
    attenuation: 12db
    update_interval: 30s
    samples: 16
    filters:
      - multiply: 1.72

spi:
  - type: quad
    clk_pin: 47
    data_pins: [21, 48, 40, 39]

i2c:
  sda: 4
  scl: 8
  frequency: 400kHz

touchscreen:
  - platform: axs15231
    id: ts_touch
    display: my_display
    update_interval: 30ms

display:
  - platform: mipi_spi
    model: JC3248W535
    id: my_display
    data_rate: 40MHz
    update_interval: never
    auto_clear_enabled: false

output:
  - platform: ledc
    id: gpio_backlight_pwm
    pin: GPIO1
    frequency: ${BACKLIGHT_FREQUENCY}
    min_power: 0.01
    zero_means_zero: true

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret esp_screen_test__encryption_key
ota:
  - platform: esphome
    encryption:
Image It even gets recognized by the software and I can control the screen options, brightness, flipping, but I am not allowed to push a single button to the screen. Is this a limitation of the add-on that only allows supported screens? Or did I mess up something else? 🫨

Originally shared on GitHubOriginal authors and dates are preserved.

View original

Discussion 3

Add a comment
MaxGramser

Thanks for trying this, and for sharing your config! It helped a lot.

Why no tiles reached your screen. Your YAML is missing two substitutions that a board file normally sets:

  • DEVICE_NAME: the shared core reports it in the Device name sensor. Without it the sensor reads the literal text ${DEVICE_NAME}, so Tessera can't find the screen's message action and never gets an answer from it. That is why the editor kept saying it was waiting for the screen to reconnect, while the settings still worked (they go through normal Home Assistant entities).
  • BOARD_ID: without it Tessera fell back to your "Guition screen type" sensor and treated the screen as the 4-inch 480 x 480 Guition. Please remove that sensor.

The JC3248W535 is now an experimental board in release 0.3.25. Update the Tessera Screen Manager app, then choose Guition · 3.5 inch (JC3248W535) in New screen. If you'd rather keep your own YAML, include the package instead of the separate parts:

substitutions:
  DEVICE_NAME: esp-screen-test        # the same as esphome: name:
  DEVICE_FRIENDLY_NAME: "35 Display Test"

packages:
  tessera:
    url: https://github.com/MaxGramser/homeassistant_espscreen
    ref: main
    files: [packages/jc3248w535.yaml]
    refresh: 0s

That sets BOARD_ID for you. It uses ESPHome's own JC3248W535 display model and the axs15231 touch, with your pins. It also enables the octal PSRAM, so camera tiles and pictures work on this board. The layout is the same as the Waveshare 3.5-inch: two by two lying down, one by three standing up. Your battery sensor on GPIO5 isn't in the board file, so keep that in your own YAML.

It builds and passes our rendered self test, but we don't have this board ourselves. Could you tell us:

  1. Do taps land in the right place, lying down and standing up? If they come out mirrored or swapped, TOUCH_MIRROR_X, TOUCH_MIRROR_Y or TOUCH_SWAP_XY in your YAML fixes it. Tell us which one, and we'll make it the default.
  2. Does the backlight dim evenly over the whole range at 150 Hz?
  3. After a few minutes with a full layout, what is the value of the Heap Free sensor?

docs/JC3248W535.md has the details.


Got a screen running? Tell others which board you have and what works on the Tessera website. It helps everyone pick a screen that works.

Like my work? Consider buying me a coffee, much appreciated!

Original on GitHub

govido

I updated the app and installed the screen fresh from scratch, it works perfectly fine, no changes needed.

Image Image

I previously tinkered with the screen and board IDs, but even with waveshare35 it didn't accept the config. Super cool to have this screen working now 🥳

Original on GitHub

MaxGramser

That's great to hear, thanks a lot for testing it and for the screenshots! The numbers look healthy: about 142 KB of heap free after 16 minutes with a camera tile on the page is plenty of room.

Because of your report, the JC3248W535 is now marked as new instead of experimental, as of release 0.4.7, so others can pick it with a bit more confidence.

If you run into anything else, for example standing the screen up or the backlight dimming, just let us know here.


Got a screen running? Tell others which board you have and what works on the Tessera website. It helps everyone pick a screen that works.

Like my work? Consider buying me a coffee, much appreciated!

Original on GitHub

Add your thoughts, a screenshot or a useful link.

Markdown & basic HTML
Paste or drop images · URLs on their own line become previews0 / 10,000
Sign in with GitHub to commentYour draft stays in this browser tab.