APM Code for Collective Pitch Quad

I am working on a collective pitch quad, using a single motor to turn all 4 of the rotors, and servos to control the pitch of each individual rotor. I am using tail rotor components from helicopters for the rotors. The mechanical systems are coming together and now I am thinking about how to control it. I have an APM (without the GPS unit), and I have used arduinos before so I thought it would not be too bad to try to modify the ArduCopter code for this. But having looked at the code I do not even know where to start.

The changes that I know will be needed are:
Rather than changing the motor speed from 0-max (0 - 255 pwm value?) will be controlling a servo, and the servo is centered at the midway point (128 pwm?)

It will need to take into consideration negative pitch. Negative pitch will cause the thrust to be in the opposite direction, but the drag moment of the blade will be in the same direction.

I am looking for any advise, I’m not even sure where to start.

You’ll probably want to write a new AP_Motors class. AP_MotorsSingle is the latest vehicle to be added and it uses servos so that might be useful to look at. The AP_MotorsMatrix class does most of the work for the multicopter types like Quad, Hexa, etc. You’ll find that it has a pretty complex “stability patch” in the code which makes it more complex than you might expect (this helps deals with the situation where the attitude controllers are asking for more than what the motors can actually do).
As a first step, it might be a good idea to get the copter flying upright first, so the servos + motors don’t do anything better than a regular quad. After that’s done you’ll probably have enough experience to deal with more interesting cases like making it accelerate downwards or fly upside-down, etc.
You should also feel free to bring this up on drones-discuss mailing list. Rob Lefebvre who is responsible for the trad heli code probably has good advice to give as well.