Hello, I have been working on trying to have an ArduCopter fly autonomously using DroneKit for the past 2 months.
And I need some clarifications/help

First, let me do a summary of all the test I have conducted.

Copter version 2.X/3.6 using Outdoor GPS = Works
Copter version 2.X using Marvelmind as GPS = +/-22cm accuracy
Copter version 3.6 using Marvelmind as GPS = Bad GPS Health Error - does not work (yes, it is aligned north)
Copter version 3.6 using Marvelmind as Beacons = Not able to take off unless GUIDED_NOGPS is set.
Copter version 3.6 using Marvelmind as Beacons and GUIDED_NOGPS = Copter dies mid flight. (unable to say if the marvelmind beacon code is taken into account or not.

Node: these test were made with the latest Marvelmind FW (raw data sent) and the ArdcCopter pull request that enables more accuracy using this raw data.

Now, from these tests it seems that if you are using beacons (either Marvelmind or Pozyx) you still need to set GPS_TYPE: 0 which will make the take off autonomously impossible UNLESS you set the mode to GUIDED_NOGPS, but GUIDED_NOGPS is not a good solution because at this point is like Marvelmind is not needed at all (I can even disconnect Marvelmind and it doesn’t matter).

So, my question is. Is there a way to have GPS_TYPE: NMEA AND BCN_TYPE: 2. So I can obtain a good gps lock + the accuracy of the marvelmind beacons?

So, it seems that Marvelmind is selling an indoor ‘gps’, but ArduCopter forces you to not use it as a GPS which basically is a contradiction. Even in the Pixhawk + Marvelmind guide you clearly see they want you to use NMEA as GPS protocol.

So, at this point I am literally stuck. I have tried every possibility I could find online and no progress.

EDIT: With the latest firmware changed you can ARM without GPS, but it does not take off .

PD. My team is also thinking on moving to Pozyx, but it seems to me that will get stuck in the same issues.

There is a nice post explaining that it works

Maybee @nghiajenius can help you configure your marvelmind. They also use it as a beacon.

That solution does not use Marvelmind. It is a different positioning system.
They are using position hold, not guided.

We want to create scripts. We need guided.

The problems that you are encountering are not related to the Marvelmind device driver.
They are from ArduCopter code. Those guys overcame those problems.
Then… take off in pos-hold and switch to guided in the air.