Compass init error или как это лечится?

Пока сбор нового квадра задерживается,а руки чешутся и хочется,чтобы время не прошло зря, я решил попробовать решить проблему с компасом на плате AKM8975.Компас расположен на модуле GPS m8n от readytosky.Выглядит так (компас слева вверху):


Схожие проблемы есть и на других GPS от этого продавана,а после углубления в поиски оказалось,что и вовсе пока существует APM, существует и проблема Bad Compass health,которая в моем случае не решилась ни одним из найденных способов. в Мишн планере был запущен терминал и там я увидел ошибку COMPASS INIT ERROR.Прошивка у меня 3.2.1,оттуда вырезана поддержка CLI,но и этого было достаточно. Значения mx my mz меняются, оффсеты почему-то снова уехали до огромных величин, с металлом рядом компас вроде не держал:(проблем от наводок замечено не было ранее при калибровке. Наткнулся на пост на гитхабе.Там такой же компас, только модуль ГПС другой.И ситуация следующая, ПК у человека SP Racing F3 и там не определяется этот компас из-за отсутствующих драйверов этого компаса в прошивке для ПК. Я не шарю в прошивках, но там в обсуждении пишут фразу " I don’t think this chip is actually an AK8975 if it’s being detected as a HMC5883 .They have different i2c addresses, so there should be no way that it works and detects it when set to HMC5883, yet it does. Also, I just checked and betaflight is detecting it as HMC5883 too."
и ниже следующий пост с фразой:
“With independent program I found out that AKM8975 mag chip is emulating HMC5883 (or strange chip is doing i2c logical translation to HMC5883 registers) so that is why it is detected as HMC5883”.
Если сделать вывод,то оба человека пишут,что компас AKM8975 эмулируется неизвестной платой U1 в компас HMC5883,потом плата U1 упаковывает сигналы с ГПС и компаса и отправляет их в ПК. В итоге у 2х человек решилась проблема с извлечением неизвестного чипа (на моем фото он сверху с маркировкой U1). Вот такой вариант:
…githubusercontent.com/…/35133765-106f31… (1.6 MB)
Вроде правильно понял весь этот пост.
Подводя итог вариантами решения остается софтварный мод прошивки ардукоптер (по аналогии с модом в посте на гитхабе) в части компаса (это для меня вовсе недосягаемо) с не совсем понятными последствиями и железячный мод, с удалением платы U1 и подпаиванием пары проводков.

важный UPD от 11.03.18!!! вариант с отпайкой чипа у меня тоже не заработал!!!в связи с чем едет новый компас.

  • 1887
Comments
cezarepicentr

Отлично! Взял на заметку!

Batkas

Скорее всего модуль Вы покупали на аллиэкспресе, и Вам по ошибке прислали современный GPS модуль, а он настроен\прошит под современные полётные контролёры и их цапы (например Naza или omnibus и тп).
Если же Вы используете полётник позавчерашней эпохи - APM, или вчерашнего дня - PIXHAWK, то конечно Вам не нужен перемодулятор. Просто удалите эту микросхему и соедините перемычками. С прошлыми (медленными\тормозными) контролёрами модуль AKM8975 работает напрямую.
Если требуется быстрая обработка, для скоростного обсчета - оставьте HMC5883 на месте, ибо все современные полетные процессоры не понимают медленных данных от старых датчиков. Они считают, что так медленно элементарный датчик работать не может, соответственно он неисправен и игнорируют его, от чего возникает программный конфликт оборудования.

extrasensi
Batkas;bt158282

Скорее всего модуль Вы покупали на аллиэкспресе, и Вам по ошибке прислали современный GPS модуль, а он настроен\прошит под современные полётные контролёры и их цапы (например Naza или omnibus и тп).
Если же Вы используете полётник позавчерашней эпохи - APM, или вчерашнего дня - PIXHAWK, то конечно Вам не нужен перемодулятор. Просто удалите эту микросхему и соедините перемычками. С прошлыми (медленными\тормозными) контролёрами модуль AKM8975 работает напрямую.
Если требуется быстрая обработка, для скоростного обсчета - оставьте HMC5883 на месте, ибо все современные полетные процессоры не понимают медленных данных от старых датчиков. Они считают, что так медленно элементарный датчик работать не может, соответственно он неисправен и игнорируют его, от чего возникает программный конфликт оборудования.

Борис, громадное спасибо,что подтвердили чьи то догадки на гитхабе.За описанную работу запросили аж 500 рэ 😦

alexeykozin

Уважаемый Борис
Ваш спитч про невероятные и быстрые современные компасы, поколения полетных контроллеров, перемодуляцию и программные конфликты оборудования безусловно имеет художественную ценность, однако совершенно далек от реальности.

AKM8975 это совершенно новый китайский чип, с поддержкой в отдельных сборках программного обеспечения, он стоит на целых 50 центов дешевле чем hmc5883L поэтому предприимчивые китайцы стали его ставить на самые дешевые модели навигационных приемников.
чтобы его поддерживать вкорячили на плату однокристальный контроллер считывающий регистры акм и транслирующий как регистры 5883, но видимо как это обычно бывает накосячили с прошивкой и поэтому нефига не работает как ожидалось.
решение на пару баксов - не использовать тот компас что на плате а взять за пару баксов платку отдельного компаса с нормальным чипом.

что касается поколений полетных контроллеров и поддержки всевозможных компасов

  1. скорости обычного HMC5883L для ориентации более чем достаточно, это не гироскоп чтобы его читать 1000раз в секунду.
  2. то что левый китайский чип не работает с апм, пиксом и назой - не проблема полетных контроллеров и их прошивок,
    помимо акм лично я знаю еще 4 модели разнообразных китайских компасов в той или иной мере похожих на hmc5883
    если авторы бэтафляя и инава оперативно стараются поддерживать все многообразие рынка чипов компасов - это похвально,
    но простите в остальном функционале эти прошивки просто младенцы по сравнению с контроллерами с вашей легкой руки названные “позавчерашней эпохи и вчерашнего дня”

добрый совет, займитесь прозой, вам подойдет стиль женского романа,
там добрый читатель, он легко верит всякой чуши

keks_007

День добрый! Выполнил вышеуказанную процедуру в надежде решить проблему. Точно такая же плата ГПС/компас. Отпаял чип U1, соединил контакты как на картинке ииии…в итоге компас перестал подавать признаки жизни вообще. Раньше были показатели MX.MY.MZ, теперь полная тишина. Компас не работает совсем. Может еще кроме соединения этих дорожек нужно делать?

alexeykozin

Мужики, цена вопроса 100р!!!

ru.aliexpress.com/wholesale?catId=0&SearchText=HMC…
при выборе смотрите чтоб на фотке на чипе было L883

SergDoc

Ещё раз для тех кто с бронепоезда AKM8975 и hmc5883 разные люди… А u1 вообще не человек… В ПО ардупилот не поддерживается компас AKM8975 ( их нет в официальных полетник) а hmc снят с производства - китайцы пошли на хитрость: поставили микроконтроллер, который читает регистры AKM8975 и эмулирует регистры hmc5883, естественно криво. По сей причине с микроконтроллером есть жалобы на плохую жизнь компаса, а без оного компаса вообще нет!!!

extrasensi
alexeykozin;bt158338

Мужики, цена вопроса 100р!!!

ru.aliexpress.com/wholesale?catId=0&SearchText=HMC…
при выборе смотрите чтоб на фотке на чипе было L883

больше чем 100B-)
ссылка раз - самый дешевый вариант
ссылка два - чуть подороже

П.С. не зря тот китайский магаз зовут редиской (readytosky). проблема с компасом более недели назад была озвучена продавану, но он затихарился напрочь, на сообщения не отвечает!!!
ну а спор поздно открывать, уже 2 месяца прошло, жаль не сразу занялся проверкой 😦

буду заказывать по 2й ссылке скорее всего.
Прошу прощения у keks_007, что подставил его. Сам надеялся до последнего и планировал в субботу разобраться с чипом.

upd: как быть, если есть на фото L883, а в комментариях пишут, что модуль не HMC5883l,а QMC5883L c другой адресацией шины I2C?

alexeykozin

сняли с производства то оригинальный HMC5883L он и стоил то прилично в свое время, то что мы покупаем на ли по доллару за чип это давно поставленная в серию китайская точная копия, хорошая китайская копия. и ее снимать с производства никто не собирается.
кроме того производители зачастую перезапускают выпуск серий микросхем втч устаревших в случае получения крупной заявки.

у QMC5883L другой адрес устройства, без изменения кода тоже не будет работать. если продавец обманывает на фото товара L883 а вреале Q883 но надо писать жалобу и требовать возврата денег прилагая фото

extrasensi
alexeykozin;bt158365

сняли с производства то оригинальный HMC5883L он и стоил то прилично в свое время, то что мы покупаем на ли по доллару за чип это давно поставленная в серию китайская точная копия, хорошая китайская копия. и ее снимать с производства никто не собирается.
кроме того производители зачастую перезапускают выпуск серий микросхем втч устаревших в случае получения крупной заявки.

у QMC5883L другой адрес устройства, без изменения кода тоже не будет работать. если продавец обманывает на фото товара L883 а вреале Q883 но надо писать жалобу и требовать возврата денег прилагая фото

очень надеюсь, что изменения в коде будут не шибко большие,если их придется вносить. Я итак решил посмотреть библиотеки ардукоптера под компас АК8975 и есть библиотека под АК8963. На просторах гитхаба нарыл еще и библиотеки под АК8975. Пока не хватает духа их соединить,к тому же в клоне ардукоптера с гитхаба на комп есть только библиотека под 5883 😦