devicescript icon indicating copy to clipboard operation
devicescript copied to clipboard

RGB Pins occupied by PSRAM

Open hypercreeper opened this issue 1 year ago • 2 comments

Describe the bug My board uses pins 16, 4, 17 for builtin rgb led, but everytime i try to make a custom board for it, it keeps telling me that the pins are used by psram.

To Reproduce Create a new board.json with this code in it:

"led": {
        "rgb": [
            {"pin": "LED0"},
            {"pin": "LED1"},
            {"pin": "LED2"}
        ]
    },

and run npm run build Expected behavior The system should build succesfully and I can flash the firmware to my board. Screenshots If applicable, add screenshots to help explain your problem.

Additional context The board is an ESP32-2432S028R. This is the output of npm run build:

> [email protected] build
> npm run build:devicescript


> [email protected] build:devicescript
> devicescript build src/main.ts

using devs: v2.15.23, runtime: v2.15.23, node: v18.7.0 from C:\Users\hyper\Desktop\DeviceScript\testno2\testno2\node_modules\@devicescript\cli\built
C:\Users\hyper\Desktop\DeviceScript\testno2\testno2\boards\esp32_2432s028r.board.json(1): LED0=17 has 'psram' function
LED2=16 has 'psram' function

board.json file:

{
    "$schema": "https://raw.githubusercontent.com/microsoft/devicescript-esp32/main/boards/esp32deviceconfig.schema.json",
    "devName": "ESP32-2432S028R",
    "productId": "0x3462c836",
    "$description": "Bare ESP32 without any default functions for pins.",
    "archId": "esp32",
    "url": "https://www.espressif.com/en/products/socs/esp32",
    "pins": {
        "P35": 35,
        "P22": 22,
        "P21": 21,
        "P27": 27,
        "LED0": 17,
        "LED1": 4,
        "LED2": 16
    },
    "led": {
        "rgb": [
            {"pin": "LED0"},
            {"pin": "LED1"},
            {"pin": "LED2"}
        ]
    },
    "sd": {
        "pinCS": 5,
        "pinMISO": 19,
        "pinMOSI": 23,
        "pinSCK": 18
    }
}

hypercreeper avatar Dec 27 '23 12:12 hypercreeper

@mmoskal any idea?

pelikhan avatar Jan 02 '24 17:01 pelikhan

Right, 16 and 17 are used by PSRAM if PSRAM is installed. I assume your board doesn't have it. I guess we should have an option in the .board.json to disable PSRAM checking, however the board is unlikely to work very well anyways due to lack of a native USB interface.

From https://microsoft.github.io/devicescript/devices#implementation-status

The ESP32-C3 boards are best supported. The regular ESP32 (without -C3 or -S2) currently have issues with the USB connection (as it's handled by external chip). The ESP32-S2 has limited memory which makes it difficult to use TLS. The ESP32-S3 is very recent and largely untested.

The RP2040 should generally work, but TLS is not supported on Pico-W.

mmoskal avatar Jan 02 '24 17:01 mmoskal