ESP32-S3 problem z generowaniem sygnału PWM

Witam.
Dostałem płytki ESP32-S3 i właśnie cos tam sobie skrobie przy nich ale napotkałem problem. Nie mogę uzyskać sygnału PWM. Z dokumentacji wynika że PWM można uzyskać na pinach 0 - 33, wybrałem pin 7 ale sygnał nie jest obecny. Mam kartę encji z suwakiem którym można regulować sygnał ale płytka nie reaguje. kombinowałem kilka rozwiązań, bez skutku. Aktualnie mój kod wygląda tak.

output:
  - platform: ledc
    pin:
      number: 7
      mode:
        output: true
#   pin: GPIO7
    id: gpio_7

# Example usage in a light
light:
  - platform: monochromatic
    output: gpio_7
    name: "Kitchen Light"

A reszta YAMLa gdzie jest?
Nie było błędów przy kompilacji?
Korzystałeś z platformy ledc na zwykłych ESP32?

PS sprawdziłem na S3 na przykładzie buzzera (bo nie mam czego podłączyć jako obwód wykonawczy dla ledów) i działa.

Cały kod

esphome:
  name: sterownik-1
  friendly_name: Sterownik 1

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "VwTQ/fTpjeo+zQYyGKd7gF0e49aeA7DzQ3JO5/KTDrQ="

ota:
  password: "44409facbe4c182b7c05f9409647183e"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sterownik-1 Fallback Hotspot"
    password: "yQ7pgXL254H0"
  # Optional manual IP
  manual_ip:
    static_ip: 192.168.1.200
    gateway: 192.168.1.1
    subnet: 255.255.255.0
captive_portal:

binary_sensor:
  - platform: gpio
    pin:
      number: 2
      mode:
        input: true
        pullup: true
    name: "Drzwi wejściowe"
    device_class: window
  - platform: gpio  
    pin:
      number: 3
      mode:
        input: true
        pullup: true
    name: "Drzwi łazienka"
    device_class: window
  - platform: gpio  
    pin:
      number: 4
      mode:
        input: true
        pullup: true
    name: "Drzwi sypialnia"
    device_class: window
  - platform: gpio  
    pin:
      number: 5
      mode:
        input: true
        pullup: true
    name: "Balkon sypialnia"
    device_class: window
  - platform: gpio  
    pin:
      number: 6
      mode:
        input: true
        pullup: true
    name: "Balkon salon"
    device_class: window
# Example configuration entry
output:
  - platform: ledc
    pin:
      number: 7
      mode:
        output: true
#   pin: GPIO7
    id: gpio_7

# Example usage in a light
light:
  - platform: monochromatic
    output: gpio_7
    name: "Kitchen Light"

Nie korzystałem z platformy ledc, jest to moja pierwsza płytka z serii esp32.
miałem też problem z odwróceniem, zanegowaniem stanu pinu, problem został usunięty po dodaniu wpisu

pin:
      number: 4
      mode:
        input: true
        pullup: true

był też problem z WIFI, moduł raz się łączył raz nie, częściej był rozłączony z siecią, pomogło nadanie stałego adresu

manual_ip:
    static_ip: 192.168.1.200
    gateway: 192.168.1.1
    subnet: 255.255.255.0

co do samego kodu, to uprzedzę pytanie, wiem że nie jest zalecane korzystanie z pinu 3 jako wejścia, ale są to wczesne testy. przy kompilacji i wysyłaniu kodu nie było błędów, jedynie ostrzeżenie o pinie 3.

EDIT:

Problem został rozwiązany, tkwił w kablologii.

Pomijam problemy z odwróceniem stanu na wejściu (bo to nie jest problem, chyba że nie rozumiem, co chciałeś powiedzieć) i z WiFi (u mnie nie występuje, ale na podstawie licznych doświadczeń i opisywanych na forum przypadków uważam, że nie ma on nic wspólnego z ESP przynajmniej w 95% przypadków).

W przypadku ESP32-S3 nie należy używać pinów GPIO0, GPIO3, GPIO45 i GPIO46 za wyjątkiem sytuacji, w których wiesz co robisz (tzn. jakie ma skutki uboczne ich wykorzystanie i do jakich sytuacji to może prowadzić), a w szczególności nie wolno zmieniać ich sprzętowych pull-up/pull-down’ów. (przykładowo stan GPIO3 podczas bootowania wpłynie na piny wykorzystywane przez JTAG, więc lepiej nie używać tego jednego GPIO niż czterech innych)

Platforma ledc działa na aktualnym ESPHome 2023.5.2 z frameworkiem arduino (podejrzewałem problemy związane z eksperymentalnym statusem wsparcia S3, ale jest OK), sprawdzałem na GPIO7, tu masz przykładowy kod, który wykorzystałem dla buzzera, jeśli jesteś ryzykantem możesz zamiast niego podpiąć jedną diodę LED, najbezpieczniej białą lub niebieską (a aby na 100% nie puścić niczego z dymem sugeruję użyć szeregowo z LEDem rezystor 200R wtedy może być i czerwona).

EP32-S3 ma 8 generatorów PWM, więc równocześnie możesz wykorzystać maksymalnie 8 GPIO w tym celu (o ile nie zafundujesz mu jakichś konfliktów).

Kliknięcie przycisku powoduje krótki pisk niższej częstotliwości i nieco dłuższy wyższej, jeśli tam zamiast buzzera między GPIO7 a masę będzie wpięta dioda LED, to będzie to krótki błysk i dłuższy błysk, oba na 50% maksymalnej jasności w danym układzie elektrycznym.

# Configure the output
output:
  - platform: ledc
    # One buzzer leg connected to GPIO7, the other to GND
    pin: GPIO7
    id: buzzer

button:
- platform: template
    name: "Buzzer LEDC"
    on_press:
        then:
        # Must be turned on before setting frequency & level
        - output.turn_on: buzzer
        # Frequency sets the wave size
        - output.ledc.set_frequency:
            id: buzzer
            frequency: "1000Hz"
        # level sets the percentage time the PWM is on
        - output.set_level:
            id: buzzer
            level: "50%"
        - delay: 0.5s
        - output.turn_off: buzzer
        - delay: 0.5s
        - output.turn_on: buzzer
        - output.ledc.set_frequency:
            id: buzzer
            frequency: "5000Hz"
        - output.set_level:
            id: buzzer
            level: "50%"
        - delay: 1.5s
        - output.turn_off: buzzer