multiple output PWM driver with over 20KHz

I have been searching for a way to drive multiple solenoids with PWM to vary the voltage/force. This project is for piano playing where multiple keys at varying force will need to be pressed. In order to drive my solenoids, I will use a transistor activated by the generated PWM signal.

I will need to control multiple keys (80) and this is where I need advice on the multi PWM driver. Any PWM frequency used to drive the transistor/solenoid under 20KHz will produce an audible noise; I do not want to solve this by adding an inductor+capacitor to all 80 solenoids yet. Voltage: 24V, current: 0.2~3A. Going sub 200Hz causes too much vibrations.


  • Fixed/varying frequency above 20khz
  • Hardware controlled PWM duty cycle for stable PWM signal

A very popular board: Adafruit 16-Channel 12-bit PWM/Servo Driver (PCA9685) I2C

This board controls the frequency and duty cycle very easily. The only down side is that the maximum PWM frequency is 1600Hz!

I have found a driver that may fit my need: PCA9635 LED driver

This chip says that it has a base output PWM frequency of 97KHz! This is perfect for my application.
However, I do not know if after wiring and a proper library that it will still be 97KHz for all 16 channels.
I do not understand the libraries on google for this chip. I am willing to learn.

I want to ask if anyone knows a better or different solution to my need. Is there a driver that I have missed? Or is there a better method to do this.

Thank you.