I've heard that dronekit can work on many different drones. Is this correct? How does the API achieve this? Is it using a protocol to communicate with the main drone microcontroller?
Any insight would be appreciated
Dronekit is based on Mavlink. Any Mavlink based flight controller is supported (Pixhawk, Cube, etc).