is it possible to use the 18-channel pwm led driver to send commands to 18 different servos? I would assume the timing will have to be done on my end.
Just set one up, the short answer is no. The long answer;
It’s not designed for PWM control, so there would be two things to overcome;
First, it’s an open-collector device- so it sits on the Ground side of the LED and pulls them down. This is problematic with Servos and means you would need a pull up resistor on every single channel to get your HIGH state. I used a 10k resistor.
Second, it has absolutely no calibration for the frequency. In fact I can’t see any mention of frequency in the datasheet at all. This doesn’t matter directly, but if the frequency isn’t such that you can get pulses from around 500us to 3500us wide then you’ve got little chance of driving a servo from them.
Having set it up and tested, the best I can get is a full sweep from one end of its range to another- ie when I set the PWM register to 10 it sweeps clockwise, and to about 240 it sweeps counter-clockwise. There’s absolutely no sign of positional control in between though.
If you really want to control 18 servos without committing to a single purpose servo driver- take a look at Propeller HAT!
Even if I create a library with interrupts to turn on/off a channel to create a pulse width as needed?
I’d have to stick a logic analyser or a scope on it to really know what the prognosis is, but I’d wager it’s impossible to get one to drive a servo, no matter what you do. There just isn’t enough control over the PWM.