So, with nothing else connected, it seems this is the order of the two internal compasses
1. MPU-9250 IMU
2. HMC5983 dedicated compass chip (internal, on PixRacer PCB)
I say that because:
1. Calibrates with high offsets or sometimes completely fails to calibrate at all.
2. Always calibrates fine (but one axis is usually around +/- 200)
So, in the above case, you would Disable #1 and make #2 the Primary. Personally, I think it's good to try to calibrate just the Internal ones first (even if planning to add an External one). Not only as a preliminary test (find early which are troublesome), but also to help identify them later by extreme axis offsets.
When you connect an external GPS/Compass, it becomes #1, is auto-detected as External, and they all shift one number across.
1. External HMC5883L
2. MPU-9250 IMU
3. HMC5983 compass chip (internal)
It's actually pretty easy to see (watch for similar extreme offsets). So, in this case, I Disable #2 and make #1 the Primary. Coming from APM, I like the idea of having a redundant something if possible (especially something important like a compass). This is my current testing config.
Notice that with the PixRacer and latest ArduCopter, you can calibrate them from MP, but it's actually facilitated by the PixRacer FC itself. I just slowly turned quad on all 3 major axis, and then moved around randomly a little more.
I fixed this old Beitian GPS/Compass combo unit and it works great now (both the Compass and the GPS). I cut-off the old Pico-Blade connectors and soldered on the included PixRacer 6-pin cable.
I used this pic (thanks Gervais from RCGroups) to wire the GPS/Compass cable for the RixRacer and it worked the first time. Basically, you connect:
1. Power (VCC and GND) to Power ... "straight-across".
2. The two compass signals to the same compass signals on PixRacer (again, straight across).
3. It's the GPS's signals (TX and RX) that get criss-crossed to each other (TX-RX and RX-TX).
While new (and possibly a little hard to find) ... I'm really liking the new PixRacer connectors. They are smaller and with a higher pin-density that the old PixHawk-style Molex Pico-Blade connectors. Also, much easier to insert and remove (but still lock-into-place nicely).
Like my APM and full-sized PixHawks, I bind (X6R and/or X8R) RX to TX in Mode-5 D16 (with Telemetry). I setup basic Model Inputs as AETR, and Mixes as AETR5678.