How to control servo 17 and 18 on the 2040 Servo Controller

Hi, I’m using the 2040 servo controller with micropython, the first 16 servos work well but the last two when addressed actually move number 0 (should be servo 17) and 1 (should be servo 18). Do I need to set some flag or treat servos beyond #16 somehow differently? I enable them like this:

Just updated the firmware from 1.19 to 1.20 (micropython) and pico 1.20.2: same behaviour.

Got an anwer from Chris Perrot: Yes, that is a hardware limitation of the RP2040 only having 16 PWMs. You need to use the ServoCluster class for pins 17 and 18 (or the whole lot), which uses PIO. pimoroni-pico/ at main · pimoroni/pimoroni-pico · GitHub

1 Like