Autotakeoff hand lauch direction question

I’m slowly getting used to Ardu and the more I fly the new questions arise.
This time:
How is the take off direction controlled when there is no compass available? I know it first uses gyros and then GPS to keep heading but:
3 launches, same plane, same wind direction, same throw direction. In one case it went straight forward, in second it turned about 30° and continued in that direction in 3rd case it turned a bit and then returned to the launch direction.
On OSD I noticed that the compass at power up starts with N, rotates then according to plane rotation but only after takeoff throw it changes values to the real ones. I know it needs gps to move to get the sense of direction but maybe it could do it already at disarmed state? This might help in keeping the launch direction.

https://ardupilot.org/plane/docs/common-compassless.html#compass-less-operation

https://ardupilot.org/plane/docs/automatic-takeoff.html#basic-instructions

I’ve made it a practice (when possible) to have the plane pointing roughly in the direction I plan to take off when I power it up and it does it’s initialization. I don’t know if it really makes a difference, but it’s easy enough and it seems to work so I don’t have any dramatic direction changes after I throw the plane.

I think that the takeoff direction is the direction it points when the takeoff sequence is started using auto mode.

Yes, you’re correct. My ideas is that by having the plane initialize in the same direction it will minimize any corrections or aggressive turns after takeoff.

Okay, but last time I noticed that although I initialized and threw in the same directiion the launches varied. I always enable tkoff when holding plane in hand so I don’t shake it to wake accidentally.

I need to do some more tests.