{"action":"created","issue":{"url":"https://api.github.com/repos/diydrones/ardupilot/issues/3724","repository_url":"https://api.github.com/repos/diydrones/ardupilot","labels_url":"https://api.github.com/repos/diydrones/ardupilot/issues/3724/labels{/name}","comments_url":"https://api.github.com/repos/diydrones/ardupilot/issues/3724/comments","events_url":"https://api.github.com/repos/diydrones/ardupilot/issues/3724/events","html_url":"https://github.com/diydrones/ardupilot/issues/3724","id":139764689,"number":3724,"title":"Compass calibration: Provide feedback so usablility can be improved","user":{"login":"DonLakeFlyer","id":5876851,"avatar_url":"https://avatars.githubusercontent.com/u/5876851?v=3","gravatar_id":"","url":"https://api.github.com/users/DonLakeFlyer","html_url":"https://github.com/DonLakeFlyer","followers_url":"https://api.github.com/users/DonLakeFlyer/followers","following_url":"https://api.github.com/users/DonLakeFlyer/following{/other_user}","gists_url":"https://api.github.com/users/DonLakeFlyer/gists{/gist_id}","starred_url":"https://api.github.com/users/DonLakeFlyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DonLakeFlyer/subscriptions","organizations_url":"https://api.github.com/users/DonLakeFlyer/orgs","repos_url":"https://api.github.com/users/DonLakeFlyer/repos","events_url":"https://api.github.com/users/DonLakeFlyer/events{/privacy}","received_events_url":"https://api.github.com/users/DonLakeFlyer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-03-10T02:30:13Z","updated_at":"2016-03-10T03:43:51Z","closed_at":null,"body":"QGC hand holds the user through compass calibration in a way that:\r\n* Is fairly easy for a user to follow\r\n* Generates very good compass values every time\r\n* Is less error prone\r\n\r\nWe've found that compass cal was a huge problem in getting users to understand what they should do. And also, keeping them from doing it wrong and getting cal values that aren't as good as they could be wasn't possible without providing a high level of visual feedback.\r\n\r\nIf you look at this video: https://www.youtube.com/watch?v=91VGmdSlbo4 and move to the 2:39 point you can see an older version of QGC doing compass cal. It is pretty close to how it works now. Future versions of QGC will even rotate a 3d model to show even better what is needed.\r\n\r\nThe way it works with QGC+PX4 is that the firmware is reponsible for doing the actual calibration, but sends back status message to QGC such that it can drive the ui. Here is the information that comes back from the firmware in the form of specially formatted mavlink status text messages:\r\n* Which orientations have already been completed\r\n* When the vehicle is stationary in one of the incomplete orientations. QGC then signals the use to start rotation and around that axis.\r\n* A progress indicator for rotation around each orientation\r\n* The progress indicator will continue until the firmware has enough good points to form the values for that specific orientation.\r\n* When the orientation is complete it will tell QGC that. Then the whole process moves on to a new orientation.\r\n* The user can choose which of the incomplete orientation they want to do next.\r\n\r\nThis process leads to repeatable excellent compass cal offsets.\r\n\r\nFor QGC+ArduPilot QGC simulates this process all on the ground station side by handling all of calibration itself. So you get the same ui, but QGC ends up in the calibration business which isn't a good thing. Also given the current support, there is no way for QGC to calibrate a third compass. This is due to MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS only support two compasses, in combination with the fact that there is no way to save compass calibration values without using that command.\r\n\r\nIt would be great if ArduPilot could provide feedback similar to PX4 such that QGC could get out of the calibration business and also be able to calibrate all three compasses. \r\n\r\nFYI: In looking at the Mission Planner code you'll see that as far as I can tell MP is also not capable of calibrating three compass. If you look here: https://github.com/diydrones/MissionPlanner/blob/master/MagCalib.cs#L1178 you'll see that for the third compass it just sets params, which will not work if the eeprom device id for compass 3 is 0.\r\n"},"comment":{"url":"https://api.github.com/repos/diydrones/ardupilot/issues/comments/194647897","html_url":"https://github.com/diydrones/ardupilot/issues/3724#issuecomment-194647897","issue_url":"https://api.github.com/repos/diydrones/ardupilot/issues/3724","id":194647897,"user":{"login":"DonLakeFlyer","id":5876851,"avatar_url":"https://avatars.githubusercontent.com/u/5876851?v=3","gravatar_id":"","url":"https://api.github.com/users/DonLakeFlyer","html_url":"https://github.com/DonLakeFlyer","followers_url":"https://api.github.com/users/DonLakeFlyer/followers","following_url":"https://api.github.com/users/DonLakeFlyer/following{/other_user}","gists_url":"https://api.github.com/users/DonLakeFlyer/gists{/gist_id}","starred_url":"https://api.github.com/users/DonLakeFlyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DonLakeFlyer/subscriptions","organizations_url":"https://api.github.com/users/DonLakeFlyer/orgs","repos_url":"https://api.github.com/users/DonLakeFlyer/repos","events_url":"https://api.github.com/users/DonLakeFlyer/events{/privacy}","received_events_url":"https://api.github.com/users/DonLakeFlyer/received_events","type":"User","site_admin":false},"created_at":"2016-03-10T03:43:51Z","updated_at":"2016-03-10T03:43:51Z","body":"Yup, that's mostly it."}}