Why I2C used ?

I am implementing an already coded project and it uses this device to communicate with 2 servo motors.

The Arduino board is a Feather Huzzah.
Is there any particular advantage to using this method for controlling the servos ?

In another post, a poster wondered why it was being done this way. The board has a lot of open pins so couldn't I abandon this board and use 2 Arduino pins directly ? What would be the disadvantage to that ?

It depends on what other hardware you are using in your project. So please post a system diagram and/or schematics.

Why I2C used ?

Probably because it's a common-standard way of communicating between chips. And, it only requires a couple of connections.

...Why use USB? Why use Ethernet? Why use RS-232?

If all you're controlling is a couple of servos, then that's only two pins also.

Go for it, unless the processor is really busy - Servo library overheads are low, but not zero.

You would have to ask the sketch author why they chose to use a 16-channel servo driver for just two servos. Maybe they already had it hooked up. Maybe they thought they would expand the project to control more servos than they had spare pins for. Were they using a 3.3V processor? Maybe they thought it would be easier to use a driver than to buy level shifters for two of the Arduino pins.

And the sketch author says this.

To control the two hobby servo motors I started by using the Arduino software servo library.
However, the servos did not move smoothly and the cause turned out to be interference to the
pulse timing by other libraries that lock out interrupts, even briefly. Servo position is directly
related to pulse duration which is sensitive to changes on the order of a few microseconds so it
doesn’t take much timing change to cause unwanted motion. The solution I chose was the 12
channel servo controller from Adafruit. This offloads all the timing from the Arduino and only re
quires a two-wire connection using the I2C bus to issue the desired pulse length for each
channel. It also has the added benefit that the servos actively hold position until a new command is

Sounds like a fair reason to me.

"the cause turned out to be interference to the pulse timing by other libraries that lock out interrupts, even briefly.

Are they using SoftwareSerial? That is a particularly common example of a library that turns off interrupts for far too long. Particularly at low baud rates like 9600.

Yes they are using softwareserial john.

Using WS2812 LEDs is another good reason for going to a PWM generating board.

Yes they are using softwareserial john.

You can probably eliminate the servo jitter and go back to the Servo library by using an Arduino board with a spare hardware serial port, like Leonardo, Micro, or MEGA.