HobbyKing E-OSD
загадка, логи аналогичны, но мега никак GPS не видит, дата на ногу меги сыплется, правда с уровнем 3.3в, должно хватать по идее, а там в исходниках случаем ничего раскомментить не надо?
а по дефолту в прошивке 4800?
правда с уровнем 3.3в
У меня тоже 3,3В
а там в исходниках случаем ничего раскомментить не надо?
Нет. Нужно прошивку брать, которая находится тут cl-osd.googlecode.com/svn/trunk/E-OSD-GPS/
Подключить Tx модуля к 30 ноге меги, Rx модуля к 31 ноге
а по дефолту в прошивке 4800?
Да. Мой модуль на MT3329 работает с дефолтной прошивкой с теми настройками, что на скринах.
вести с полей…
оказалось что модуль не может работать на 4800 тупо игнорит команду в терминале, остальные скорости переключает, поправил исходники на 9600, скомпилил, залил. толку ноль 😦
а зачем rx модуля заводить на мегу? на всех ссылках только tx на 30
вести с полей…
Максим, кварц на какую частоту запаян?
Просто если в исходниках частота такта написана 24мгц, а вы прицепили кварц отличающийся от 24мгц то все так и будет как вы описали)
gps модуль должен отдавать сообщения $GPRMC и $GPGGA
если все правильно сделано работает с пол тычка.
24 мгц
отдает как положено, лог стандартен
Просто если в исходниках частота такта написана 24мгц, а вы прицепили кварц отличающийся от 24мгц то все так и будет как вы описали)
Есть подозрение что надо кондеры у кварца подобрать, возможно они частоту слишком “уводят”, вообще подумываю на крайний случай прошить заводскую e-osd и проверить на ней, но моя версия лучше изображение дает как оказалось, да и не хочу пока заводскую прошивку гробить
однако не работает, прошил фирменную E-osd тот же результат, в упор не видит gps
заработало, нашел комбинацию параметров при которых можно перевести приемник на 4800, при понижении скорости он тут же определился, на 9600 работает крайне неустойчиво буду дотачивать
Вот такие логи.
Выяснилось, что если сделать как в том посте на рцгрупс, то только 2D-fix доступен - не хватает данных предложения GSA.
покопался в исходниках, кроме RMC и GGA прошивка больше ничего не парсит, так что просто обязано этого хватить на весь функционал.
Так что если кому пригодится кратенько помечу миниFAQ по сопряжению GPS модуля и e-osd:
- в GPS приемнике включить RMC и GGA, остальное выключить.
настройки файла config.h - для повышения частоты обновления экрана (и данных от датчиков) до 2 гц нужно в исходниках поправить параметр #define SCREEN_AND_SENSOR_UPDATES_PER_SEC 2
- Можно прописать позывной выводимый в правом верхнем углу экрана, буквы понимает только заглавные
#define TEXT_CALL_SIGN “здесь пишем что хотим” - Как оказалось режим NTSC нужно принудительно включать, раскомментируем строчку //#define COLORSYSTEM_NTSC (убрать //)
- Скорость порта по умолчанию 4800, что бы перевести на 9600 нужно изменить параметр #define GPS_BAUD 4800
у меня на этой скорости начинают сыпаться данные, либо сказывается уход кварца по частоте, либо просто не хватает времени атмеге на обработку. - Некторые (а может быть все) GPS приемники не дают поставить низкую скорость если объем данных превышает возможности порта, поэтому что бы перейти с 9600 на 4800 мне пришлось сначала снизить частоту обновления и уменьшить количество выдаваемых параметров что бы загрузка по данным GPS util стала меньше 50%, до этого приемник ругался на не поддерживаемый режим. Что бы не думать, можно просто отключить все снизить скорость и потом включить.
Остался не понятный вопрос:
при инициализации приемника на osd передается данные, нормально горит индикатор приемника, при этом постоянно мигает надпись no home pos. То есть начальную точку он не цепляет. Это баг или фича? Судя по исходникам зацепить хоум он должен в случае если
#define HOME_AUTO_SET //Home position is set when a certain speed is exceeded.
превышена минимальная скорость
#define HOME_SET_WITH_BUTTON //Home position is set when the little button on OSD is long pressed.
произошло длинное нажатие на кнопку
#define HOME_SET_FIX_COUNT 10 //Config for _SET_AT_FIX: After 10 successfully fixes, home is set.
вот это я не понял, расшифруйте плз
#define HOME_FIX_MIN_SPEED 10 //Config for _AUTO_SET: More than 10 km/h sets home.
здесь задаем числовое значение минимальной скорости фикса точки старта для п. define HOME_AUTO_SET
#define HOME_SET_MIN_SATS 4 //Config for _SET_AT_FIX: Set home only when more than 4 satellites.
это доп условие ставить фикс при наличии не менее 4х спутников
#define HOME_SET_FIX_COUNT 10 //Config for _SET_AT_FIX: After 10 successfully fixes, home is set.
вот это я не понял, расшифруйте плз
это кол-во принятых актуальных данных с координатами
то есть он должен поймать фикс через 10 пакетов с координатами, почему не ловит?
Координаты идут не совсем одинаковые, меняются последние цифры.
нашел, для того что бы фиксил home на месте нужно раскомментировать
//#define HOME_SET_AT_FIX // Home position is set when GPS gets satellited fix.
Всем спасибо за помощь и советы!
Подскажите, какой купить gps чтобы точно заработал с e-osd?
какой купить gps чтобы точно заработал с e-osd?
Пользую dealextreme.com/…/em-411-gps-engine-board-module-w… спутники ловит быстро
Олег, а можете дать краткую инструкцию для идиотов, как этот модуль подключить?
а то G-osd у меня вся скачет по экрану как припадочная… и родной ЖПС спутники ищет минут по пять… трэш короче
Подскажите, какой купить gps чтобы точно заработал с e-osd?
любой кто может выдавать данные в NMEA
а то G-osd у меня вся скачет по экрану как припадочная… и родной ЖПС спутники ищет минут по пять… трэш короче
родной gps дает избыточную дату и вовсе не лучший вариант, можно поднастроить либо заменить, но настраивать придется все равно
любой кто может выдавать данные в NMEA
Если это шутка, то здесь она неуместна 😦
да ладно, в этой шутке лишь доля шутки. при общем протоколе не прикручиваемых датчиков не бывает
тогда лучше просто писать - любой, что бы понятнее было
я думаю все таки “любой кто может выдавать данные в NMEA…”