microsoft / devicescript-esp32

Jacdac wired protocol implementation for ESP32
MIT License
23 stars 5 forks source link

Unable to use screen on LILYGO TTGO T-Display #16

Open xPapla opened 10 months ago

xPapla commented 10 months ago

I wanted to use DeviceScript to play with TTGO T-Display. I have created a custom .board.json file (see below) and assigned pins as specified in board's pinmap and schematic. However it is not possible to use pins 16 and 17, because they have been assigned psram function here https://github.com/microsoft/devicescript-esp32/blob/main/boards/esp32/arch.json#L18-L19, yet pin 16 is required for screen to work.

This board is based on ESP32-D0WDQ6 which specifies in datasheet that it is not recommended to use those two pins, yet it uses them.

Would it be possible to change the mentioned arch.json so that pins 16 and 17 can be used? Or is there some other way around this issue?

2024-01-15 at 23 53 11@2x

2024-01-15 at 23 53 45@2x

❯ yarn build
yarn run v1.22.19
$ npm run build:devicescript

> my-proj@0.0.0 build:devicescript
> devicescript build src/main.ts

using devs: v2.16.1, runtime: v2.16.1, node: v20.9.0 from <redacted>/my-proj/node_modules/@devicescript/cli/built
<redacted>/my-proj/boards/ttgo_display.board.json(1): GP17=17 has 'psram' function
GP16=16 has 'psram' function
boards/ttgo_display.board.json ```json { "$schema": "https://raw.githubusercontent.com/microsoft/devicescript-esp32/main/boards/esp32deviceconfig.schema.json", "devName": "ttgo-display", "productId": "0x3a7ec069", "$description": "LILYGO TTGO T-Display", "archId": "esp32", "url": "https://www.lilygo.cc/products/lilygo%C2%AE-ttgo-t-display-1-14-inch-lcd-esp32-control-board", "pins": { "SDA": 21, "SCL": 22, "GP17": 17, "GP2": 2, "GP15": 15, "GP13": 13, "GP12": 12, "GP36": 36, "GP37": 37, "GP38": 38, "GP39": 39, "GP32": 32, "GP33": 33, "GP25": 25, "GP26": 26, "GP27": 27, "MOSI": 19, "SCK": 18, "CS": 5, "GP16": 16, "GP23": 23, "GP4": 4, "GP34": 34, "PWR": 14 }, "services": [ { "service": "button", "name": "button1", "pin": 0 }, { "service": "button", "name": "button2", "pin": 35 } ] } ```