At the moment we support following PWM hardware:
You need to add some definitions inhardware.h for your hardware setup.
include\hardware.h:
// e.g.: "LED-UP1-6x24V"#defineLEDMODULE_DIMMER_PCA9685// Use PCA9685 dimmer implementation#defineLEDMODULE_WIRE Wire1// I2C interface to talk to PCA9685#defineLEDMODULE_WIRE_SDA14u// Use GPIO14 as I2C1 SDA | UP1 RP2040#defineLEDMODULE_WIRE_SCL15u// Use GPIO15 as I2C1 SCL | UP1 RP2040#defineLEDMODULE_WIRE_CLOCK_FREQ1000000// I2C clock speed to be used after initialization#defineLEDMODULE_MAX_LIGHT_CHANNELS6// Defines how many channels the hardware has
include\hardware.h:
// e.g. "LED-UP1-4x24V"#defineLEDMODULE_DIMMMER_RP2040// Use RP2040 dimmer implementation#defineLEDMODULE_MAX_LIGHT_CHANNELS4// Defines how many channels the hardware has#defineLEDMODULE_PWM_PINS10,11,12,13// GPIO pins to be used for PWM
To use RP2040 PWM peripherals for dimming, OFM-LedModule defines an array with your GPIO pins to be used as dim channels inLedModuleConfig.cpp:
// e.g. "LED-UP1-4x24V"uint8_t dimPins[LEDMODULE_MAX_LIGHT_CHANNELS] = {LEDMODULE_PWM_PINS};These GPIOs are then automatically initialized and used for dimming.