HobbyKing E-OSD
собрал на кучу клон e-osd и GPS на базе eb-270, возникла куча вопросов
Как вообще проверить что e-osd “понимает” что GPS работает?
Поясню вопрос, подключил пока на столе без антенны, модуль гонит по уарту дату на OSD на скорости 9600, на экране при этом нули и пустые значения от координат. Антенна GPS не подключена. Как понять что все работает? Данные начнут меняться только когда GPS зацепит координаты или osd вообще не понимает этот приемник?
Самый простой способ проверить
что e-osd “понимает” что GPS работает
Посмотреть на значек GPS (спутничек внизу экрана). Он не должен мигать. Вот например я как ставлю обновление данных модулем на 4 или 5Гц, то значек горит постоянно, но иногда подмаргивает. В результате раз в минуту довольно подозрительные значения GPS проскакивают (например количество спутников в небе = 153). При частоте обновления 1-2Гц таких глюков нет.
При получении Fix ОСД отображает координаты. И запоминает Home позицию. После этого координаты на экране не отображаются.
Прошивка CL-OSD под 9600 бод перекомпилирована?
на рцгрупс человечек выложил скрины с настройками для оптимизации нагрузки на уарт и соответственно атмегу www.rcgroups.com/forums/showthread.php?t=1490446&p…
По сабжу, у меня все мигает абсолютно так же как и вообще без GPS, честно говоря я туманно представляю что делать, поскольку не понятно под какой формат даты на данном этапе заточена прошивка cl-osd.
На офф сайте проекта информации ноль, лопатить сто страниц английской темы на рцгрупс трудновато.
Было бы интересно взглянуть на лог терминала для нормально работающего приемника, тогда станет понятно чего добиваться и в чем отличия, или хотя бы знать как (по какой схеме) osd парсит дату от приемника, тогда можно поковырять исходники…
Еще один вопрос, реализован ли какой нить функционал от кнопки в прошивке cl-osd?
А что лог даст? Он стандартен для NMEA. Чел просто откинул ненужные данные для CL-OSD, чтоб они не лезли в УАРТ. Тем самым можно в меньшую скорость впихнуть нужные данные чаще. Если все же интересно - покажу вечером свой лог. Нужно ли это частое обновление - вопрос. Ибо экран обновляется не более чем 2Гц. Поэтому ИМХО и с gps нет смысла гнать данные с большими скоростями и частым обновлением. По моим опытам - ОСД просто не успевает читать или обрабатывать данные gps.
Самое простое - играйтесь со скоростью. В MiniGPS установите частоту обновления в 1Гц, а дальше пробуйте 4800, 9600 и т.д. Так же советую эти опыты проводить при прошитой CL-OSD с дефолтной скоростью - 4800. На данный момент у меня зашито 4800, а в настройках модуля стоит 9600 😃 - фиг поймешь
Еще один вопрос, реализован ли какой нить функционал от кнопки в прошивке cl-osd?
Я действия кнопки не заметил пока.
Жду майских праздников - сейчас совсем некогда
Если все же интересно - покажу вечером свой лог.
Если не трудно, буду признателен
Вот такие логи.
Выяснилось, что если сделать как в том посте на рцгрупс, то только 2D-fix доступен - не хватает данных предложения GSA. Так что скрины и логи для трех режимов - no-fix, 2D-fix, 3D-fix. При любом из этих режимов CL-OSD понимает сигнал от GPS модуля, не мигая при этом значком спутника.
загадка, логи аналогичны, но мега никак 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… спутники ловит быстро
Олег, а можете дать краткую инструкцию для идиотов, как этот модуль подключить?