Hi!
The Crazyflie has no real notion of its position in space, the on board sensors (accelerometers and gyros) can be used to give a rough idea of its movements but lacks the accuracy for long term position awareness. To be able to hover at a spot without user interaction (autonomous flight) the Crazyflie needs better positioning information. There are several ways to provide this:
1. the easiest (and cheapest) solution is to use the optical flow deck (
https://store.bitcraze.io/collections/d ... ow-deck-v2). It gives information about motion in X and Y, and the absolute distance to the ground. This will help the Crazyflie to understand where it is in relation to its starting point.
2. more complex (and expensive) solutions include absolute positioning systems such as LPS (
https://www.bitcraze.io/products/loco-p ... ng-system/), the light house system or external systems such as mo-cap for instance.
The choice of technology depends on requirements and budget.
When you have a Crazyflie with some form of positioning support, the easiest way to control it is from a python script. There is no need to modify the firmware, unless you find it interesting and fun

. There are example scripts in
https://github.com/bitcraze/crazyflie-l ... r/examples, for instance autonomousSequence.py. This is a good starting point to explore and getting started with autonomous flight. We have just added some step-by-step guides in
https://www.bitcraze.io/documentation/r ... on/master/ that is useful if you decide to use the flow deck.