From fd550fd104bea87cfebd2fe37c3bc7e6285e35ef Mon Sep 17 00:00:00 2001 From: Scott Date: Sun, 23 Jan 2022 13:14:19 -0500 Subject: [PATCH] PCA9685 (driver15) - Allow the "ALL" virtual pin 61 for pwm values The datasheet shows register 250 is "ALL" pins, which corresponds to virtual pin 61 (61*4+6=250). Pin 61 was already allowed with PWM command for OFF and ON, but not specified pwm values. This update allows virtual pin 61 to be assigned pwm values for all channels. Example usage to set all channels to 2500: `driver15 pwm,61,2500` --- tasmota/xdrv_15_pca9685.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasmota/xdrv_15_pca9685.ino b/tasmota/xdrv_15_pca9685.ino index f5249a03a..9f6cee154 100644 --- a/tasmota/xdrv_15_pca9685.ino +++ b/tasmota/xdrv_15_pca9685.ino @@ -181,7 +181,7 @@ bool PCA9685_Command(void) return serviced; } uint16_t pwm = atoi(ArgV(argument, 3)); - if ((pin >= 0 && pin <= 15) && (pwm >= 0 && pwm <= 4096)) { + if ((pin >= 0 && pin <= 15 || pin==61) && (pwm >= 0 && pwm <= 4096)) { PCA9685_SetPWM(pin, pwm, pca9685_inverted); Response_P(PSTR("{\"PCA9685\":{\"PIN\":%i,\"PWM\":%i}}"),pin,pwm); serviced = true;