Joined
Mar 23, 2017
Messages
11
Reaction score
5
Location
Poland
Hi,
I would like to share with you my last investigation about the "compasses inconsistent" problem.

It is due to bad orientation of the external compass (one in the leg). There is another one inside the cube which is correctly oriented however differences between them are too big. The problem is in the wrong parameter COMPASS_ORIENT = 38 (meaning Yaw293Pitch68Roll180). Yaw and Pitch looks pretty good but Roll should be 90 instead of 180.

To fix this you should change those parameters:
COMPASS_AUTO_ROT = 0 {avoiding auto change of orientation after compass calibration}
COMPASS_ORIENT = 101 {this is custom orientation for firmware versions 4.2 and later, otherwise use 100}
CUST_ROT_ENABLE = 1
CUST_ROT1_PITCH = 68
CUST_ROT1_ROLL = 90
CUST_ROT1_YAW = 293

Please make sure that your external compass has COMPASS_PRIO1_ID and internal COMPASS_PRIO2_ID. You can check it in Mission Planner:

1680520633119.png

You can check mx my mz value, should be similar for both compasses:

1680521005370.png

I hope this will help at least one person :)

bajba
 
  • Like
Reactions: 渡口玩飞机
Hi,
I would like to share with you my last investigation about the "compasses inconsistent" problem.

It is due to bad orientation of the external compass (one in the leg). There is another one inside the cube which is correctly oriented however differences between them are too big. The problem is in the wrong parameter COMPASS_ORIENT = 38 (meaning Yaw293Pitch68Roll180). Yaw and Pitch looks pretty good but Roll should be 90 instead of 180.

To fix this you should change those parameters:
COMPASS_AUTO_ROT = 0 {avoiding auto change of orientation after compass calibration}
COMPASS_ORIENT = 101 {this is custom orientation for firmware versions 4.2 and later, otherwise use 100}
CUST_ROT_ENABLE = 1
CUST_ROT1_PITCH = 68
CUST_ROT1_ROLL = 90
CUST_ROT1_YAW = 293

Please make sure that your external compass has COMPASS_PRIO1_ID and internal COMPASS_PRIO2_ID. You can check it in Mission Planner:

View attachment 12016

You can check mx my mz value, should be similar for both compasses:

View attachment 12017

I hope this will help at least one person :)

bajba
38 is the correct orientation for the leg compass when it is installed correctly with the smooth side out. It sounds like yours may be in upsidedown.

I have had an issue where the compass_auto_rot was turned on and kept changing the orientation to 29 when it should be 38. Once I disabled the auto rotate and set 38 my problem went away.
 
38 is the correct orientation for the leg compass when it is installed correctly with the smooth side out. It sounds like yours may be in upsidedown.

I have had an issue where the compass_auto_rot was turned on and kept changing the orientation to 29 when it should be 38. Once I disabled the auto rotate and set 38 my problem went away.
Thanks for the reply :)

As I said before the stock compass definitely has 90° roll angle and there is an error in documentation. I am 100% sure about it. This is why your drone does not recognize 38 as correct orientation and change it to 29. I had the same behavior as yours before.

I have four Solo drones and all of them have a stock compass in the leg. All of them had the same problem but using custom angles all works fine. I can arm all of them just after powering. No need to do compass calibration every one and again.

You can check in your drone differences between mx-mx2, my-my2 and mz-mz2 in Mission Planner using 38 parameters and then change to 101 (custom) and 90° roll. You will see that differences are much smaller.

I am working in 3D so it was easy for me to measure those angles from a 3D model I found on the internet. If you watch the leg you can easily see that there is no 180° but 90°. Even without 3D model and CAD software :D

I mentioned this issue on github. I hope they will fix it for newer versions of ArduPilot:
COMPASS_ORIENT 38 · Issue #23392 · ArduPilot/ardupilot

I use custom rotation and do not have any problem now. Do not care if they fix it but I think it would be very helpful for other users of Solo drones which do not want to deal with parameters ;)

YawPitchRoll.JPG

I will show you on photos difrent position of compass starting from Yaw=0 Pitch=0 Roll=0:
Yaw0Pitch0Roll0.jpg

Yaw=293 Pitch=0 Roll=0:
Yaw293Pitch0Roll0.jpg

Yaw=293 Pitch=68 Roll=0:
Yaw293Pitch68Roll0.jpg

Yaw=293 Pitch=68 Roll=90:
Yaw293Pitch68Roll90.jpg

and finaly Yaw=293 Pitch=68 and Roll=180 what is wron:
Yaw293Pitch69Roll180.jpg

As you can see, ArduPiolot thinks that the compass is in a different position than it is in reality. The difference is not so big (90° haha) this is why the drone lets arm (sometimes) but this is not good setup.

I RECOMMEND all of you who use stock compass to change to custom orientation = 101 and angles Yaw293 Pitch68 and Roll90

Would be good to heare who has/had "Compasses inconsistent" problem? I gues many of you.
 
  • Like
Reactions: 渡口玩飞机
Would be good to hear from someone who uses my recommendation and gets improvement arming the drone. Please write.
 
  • Like
Reactions: 渡口玩飞机
Would be good to hear from someone who uses my recommendation and gets improvement arming the drone. Please write.
All mine work fine with 38 but I'll give it a try. I have a dozen Solos with various firmware versions and mods. If it helps I'll include it in the APJ files I make for the Solex scripts people use. I have already turned off compass_auto_rot among other param changes like in 4.3.x it needs SERIAL1_PROTOCOL 1 for the imx6 to connect.
 
  • Like
Reactions: bajba
Would be good to hear from someone who uses my recommendation and gets improvement arming the drone. Please write.
I just got a Solo new out of the box and updated the firmware to Open Solo 4 with the 4.3.2 version of ArduCopter. Had a problem calibrating the compass and after several tries I tried your fix and was able to successfully calibrate the compass. I wonder if the orientation angles have changed in the later versions. I can change the APJ file that is available in Solex to have these parameters preset.
 
Hi,
I would like to share with you my last investigation about the "compasses inconsistent" problem.

It is due to bad orientation of the external compass (one in the leg). There is another one inside the cube which is correctly oriented however differences between them are too big. The problem is in the wrong parameter COMPASS_ORIENT = 38 (meaning Yaw293Pitch68Roll180). Yaw and Pitch looks pretty good but Roll should be 90 instead of 180.

To fix this you should change those parameters:
COMPASS_AUTO_ROT = 0 {avoiding auto change of orientation after compass calibration}
COMPASS_ORIENT = 101 {this is custom orientation for firmware versions 4.2 and later, otherwise use 100}
CUST_ROT_ENABLE = 1
CUST_ROT1_PITCH = 68
CUST_ROT1_ROLL = 90
CUST_ROT1_YAW = 293

Please make sure that your external compass has COMPASS_PRIO1_ID and internal COMPASS_PRIO2_ID. You can check it in Mission Planner:

View attachment 12016

You can check mx my mz value, should be similar for both compasses:

View attachment 12017

I hope this will help at least one person :)

bajba

Just wanted to say I got my old Solo out on stock firmware 1.3.2 and upgraded it to OpenSolo 4.4.0 via Solex and ran into this issue. I could not arm the drone, compasses inconsistent.

Inputting your new values into the params through Solex solved the issue and allowed me to arm the drone. Firmware package should maybe have a script to configure these params.
 
Just wanted to say I got my old Solo out on stock firmware 1.3.2 and upgraded it to OpenSolo 4.4.0 via Solex and ran into this issue. I could not arm the drone, compasses inconsistent.

Inputting your new values into the params through Solex solved the issue and allowed me to arm the drone. Firmware package should maybe have a script to configure these params.
I do several of these each week and I am not seeing this problem. That's why the script has the parameters it has. I uploaded them using what has been working for me day in and day out for years.
 
I appreciate the work you’ve done for the Solo. It seems that it’s more of a niche issue but there are 3 instances in this thread where the new params solved the issue. I think the root cause is not 100% understood yet but the OP did a good job documenting the reason those values fix the symptom.

Could have a script to auto detect this issue and try these new param sets. Otherwise just leave as is I guess, as long as this thread remains up people that have this issue should be able to find the fix.
 
Hi,
I would like to share with you my last investigation about the "compasses inconsistent" problem.

It is due to bad orientation of the external compass (one in the leg). There is another one inside the cube which is correctly oriented however differences between them are too big. The problem is in the wrong parameter COMPASS_ORIENT = 38 (meaning Yaw293Pitch68Roll180). Yaw and Pitch looks pretty good but Roll should be 90 instead of 180.

To fix this you should change those parameters:
COMPASS_AUTO_ROT = 0 {avoiding auto change of orientation after compass calibration}
COMPASS_ORIENT = 101 {this is custom orientation for firmware versions 4.2 and later, otherwise use 100}
CUST_ROT_ENABLE = 1
CUST_ROT1_PITCH = 68
CUST_ROT1_ROLL = 90
CUST_ROT1_YAW = 293

Please make sure that your external compass has COMPASS_PRIO1_ID and internal COMPASS_PRIO2_ID. You can check it in Mission Planner:

View attachment 12016

You can check mx my mz value, should be similar for both compasses:

View attachment 12017

I hope this will help at least one person :)

bajba

Thanks for your help!

Noting the requirement to install Open Solo 4.0 to enable using the BMSONE V2 PLUG AND PLAY, I began the process of updating a functioning system from Open Solo 3.0 to 4.0 (4.4.3 COOPTER).

I have a stock cube Solo with a Drotek GNSS inserted to replace the stock GPS board. Overall, the whole system appeared to be working up to attempting to launch.

One thing I noticed was a large increase in the number or parameters. The other was the "compass inconsistencies" message, and the audible response from the controller when pressing the Fly button was a two-tone sound, second tone lower than the first.

Initially, the following was displayed by Solex:

COMPASS_AUTO_ROT = 0.0
COMPASS_ORIENT = 0.0
COMPASS_ORIENT2 = 0.0
COMPASS_ORIENT3 = 38.0
CUST_ROT_ENABLE = 0.00
CUST_ROT1_PITCH = (not displayed)
CUST_ROT1_ROLL = (not displayed)
CUST_ROT1_YAW = (not displayed)

I guessed and updated COMPASS_ORIENT3 from 38.0 to 101.0.

Then I updated this parameter setting from zero to 1:
CUST_ROT_ENABLE = 1

After some attempts, Solex finally displayed the other three parameters, and I updated their values as recommended:
CUST_ROT1_PITCH = 68
CUST_ROT1_ROLL = 90
CUST_ROT1_YAW = 293

Unfortunately, I continue to get the "compass inconsistencies" message and cannot launch.

That's when I discovered that "install" does not mean "complete install and ready to fly". You have to also go to this page: Post Install Instructions. So I did, and carefully followed the instructions on that page. I continue to get the "compass inconsistencies" message and cannot launch.

(Side note 1: The last step in the Install 4.0 instructions may be more clear after you watch this YouTube video by Jon Brotherton:
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
)
(Side note 2: ArduCopter page listing common prearm safety checks and potential resolutions: Pre-Arm Safety Checks — Copter documentation )

Any suggestions for resolving my Solo problem?
 
Problem solved!
I made an incorrect guess and should have changed COMPASS_ORIENT from 0.0 to 101.0.
I also changed COMPASS_ORIENT3 from 38.0 back to the default 0.0.

Side note: Months ago I had set button A to Alt Hold, and button B to Position Hold. When I tapped button A to select Alt Hold, the Fly button flashed and the motors started up as expected. (If I had added props, the next tap of the Fly button would have caused a launch.)
 
Thanks for your help!

Noting the requirement to install Open Solo 4.0 to enable using the BMSONE V2 PLUG AND PLAY, I began the process of updating a functioning system from Open Solo 3.0 to 4.0 (4.4.3 COOPTER).

I have a stock cube Solo with a Drotek GNSS inserted to replace the stock GPS board. Overall, the whole system appeared to be working up to attempting to launch.

One thing I noticed was a large increase in the number or parameters. The other was the "compass inconsistencies" message, and the audible response from the controller when pressing the Fly button was a two-tone sound, second tone lower than the first.

Initially, the following was displayed by Solex:

COMPASS_AUTO_ROT = 0.0
COMPASS_ORIENT = 0.0
COMPASS_ORIENT2 = 0.0
COMPASS_ORIENT3 = 38.0
CUST_ROT_ENABLE = 0.00
CUST_ROT1_PITCH = (not displayed)
CUST_ROT1_ROLL = (not displayed)
CUST_ROT1_YAW = (not displayed)

I guessed and updated COMPASS_ORIENT3 from 38.0 to 101.0.

Then I updated this parameter setting from zero to 1:
CUST_ROT_ENABLE = 1

After some attempts, Solex finally displayed the other three parameters, and I updated their values as recommended:
CUST_ROT1_PITCH = 68
CUST_ROT1_ROLL = 90
CUST_ROT1_YAW = 293

Unfortunately, I continue to get the "compass inconsistencies" message and cannot launch.

That's when I discovered that "install" does not mean "complete install and ready to fly". You have to also go to this page: Post Install Instructions. So I did, and carefully followed the instructions on that page. I continue to get the "compass inconsistencies" message and cannot launch.

(Side note 1: The last step in the Install 4.0 instructions may be more clear after you watch this YouTube video by Jon Brotherton:
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
)
(Side note 2: ArduCopter page listing common prearm safety checks and potential resolutions: Pre-Arm Safety Checks — Copter documentation )

Any suggestions for resolving my Solo problem?
Open Solo is not required at all for using the BMSOne. The very first V1 version of the BMSOne firmware had a bug that made it not work with Stock Solo Firmware. But that was fixed 3 or 4 years ago.
 
  • Like
Reactions: CharlieKeck
Open Solo is not required at all for using the BMSOne. The very first V1 version of the BMSOne firmware had a bug that made it not work with Stock Solo Firmware. But that was fixed 3 or 4 years ago.
Good to know that upgrading to Open Solo of any version is not required. I was interpreting the How-To Instructions which include in the Prerequisite section to have a Solo upgraded to Open Solo 4.0. Maybe someone can update the instructions file. "Click here for the complete information on requirements and for how-to instructions."
 
  • Like
Reactions: jonbrotherton
Good to know that upgrading to Open Solo of any version is not required. I was interpreting the How-To Instructions which include in the Prerequisite section to have a Solo upgraded to Open Solo 4.0. Maybe someone can update the instructions file. "Click here for the complete information on requirements and for how-to instructions."
Yes that is from the first version BMSOne with its earliest firmware. I will fix that. The BMSOne has come a long way since then haha. Thank you for pointing that out.

The BMSOne V2 is far simpler to program and flash firmware now. A new tutorial will be very short.
 
Last edited:

New Posts

Members online

Forum statistics

Threads
13,095
Messages
147,750
Members
16,063
Latest member
No idea