HobbyKing E-OSD

dollop

правда с уровнем 3.3в

У меня тоже 3,3В

а там в исходниках случаем ничего раскомментить не надо?

Нет. Нужно прошивку брать, которая находится тут cl-osd.googlecode.com/svn/trunk/E-OSD-GPS/
Подключить Tx модуля к 30 ноге меги, Rx модуля к 31 ноге

а по дефолту в прошивке 4800?

Да. Мой модуль на MT3329 работает с дефолтной прошивкой с теми настройками, что на скринах.

falke5

вести с полей…
оказалось что модуль не может работать на 4800 тупо игнорит команду в терминале, остальные скорости переключает, поправил исходники на 9600, скомпилил, залил. толку ноль 😦
а зачем rx модуля заводить на мегу? на всех ссылках только tx на 30

Djon_bogd
falke5:

вести с полей…

Максим, кварц на какую частоту запаян?
Просто если в исходниках частота такта написана 24мгц, а вы прицепили кварц отличающийся от 24мгц то все так и будет как вы описали)

gps модуль должен отдавать сообщения $GPRMC и $GPGGA

если все правильно сделано работает с пол тычка.

falke5

24 мгц
отдает как положено, лог стандартен

Djon_bogd:

Просто если в исходниках частота такта написана 24мгц, а вы прицепили кварц отличающийся от 24мгц то все так и будет как вы описали)

Есть подозрение что надо кондеры у кварца подобрать, возможно они частоту слишком “уводят”, вообще подумываю на крайний случай прошить заводскую e-osd и проверить на ней, но моя версия лучше изображение дает как оказалось, да и не хочу пока заводскую прошивку гробить

falke5

однако не работает, прошил фирменную E-osd тот же результат, в упор не видит gps

falke5

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

15 days later
falke5
dollop:

Вот такие логи.
Выяснилось, что если сделать как в том посте на рцгрупс, то только 2D-fix доступен - не хватает данных предложения GSA.

покопался в исходниках, кроме RMC и GGA прошивка больше ничего не парсит, так что просто обязано этого хватить на весь функционал.
Так что если кому пригодится кратенько помечу миниFAQ по сопряжению GPS модуля и e-osd:

  1. в GPS приемнике включить RMC и GGA, остальное выключить.
    настройки файла config.h
  2. для повышения частоты обновления экрана (и данных от датчиков) до 2 гц нужно в исходниках поправить параметр #define SCREEN_AND_SENSOR_UPDATES_PER_SEC 2
  3. Можно прописать позывной выводимый в правом верхнем углу экрана, буквы понимает только заглавные
    #define TEXT_CALL_SIGN “здесь пишем что хотим”
  4. Как оказалось режим NTSC нужно принудительно включать, раскомментируем строчку //#define COLORSYSTEM_NTSC (убрать //)
  5. Скорость порта по умолчанию 4800, что бы перевести на 9600 нужно изменить параметр #define GPS_BAUD 4800
    у меня на этой скорости начинают сыпаться данные, либо сказывается уход кварца по частоте, либо просто не хватает времени атмеге на обработку.
  6. Некторые (а может быть все) 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х спутников

Djon_bogd
falke5:

#define HOME_SET_FIX_COUNT 10 //Config for _SET_AT_FIX: After 10 successfully fixes, home is set.
вот это я не понял, расшифруйте плз

это кол-во принятых актуальных данных с координатами

falke5

то есть он должен поймать фикс через 10 пакетов с координатами, почему не ловит?
Координаты идут не совсем одинаковые, меняются последние цифры.

falke5

нашел, для того что бы фиксил home на месте нужно раскомментировать
//#define HOME_SET_AT_FIX // Home position is set when GPS gets satellited fix.

Всем спасибо за помощь и советы!

pnm

Подскажите, какой купить gps чтобы точно заработал с e-osd?

Shuricus

Олег, а можете дать краткую инструкцию для идиотов, как этот модуль подключить?

Shuricus

а то G-osd у меня вся скачет по экрану как припадочная… и родной ЖПС спутники ищет минут по пять… трэш короче

falke5
pnm:

Подскажите, какой купить gps чтобы точно заработал с e-osd?

любой кто может выдавать данные в NMEA

Shuricus:

а то G-osd у меня вся скачет по экрану как припадочная… и родной ЖПС спутники ищет минут по пять… трэш короче

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

Voldemaar
falke5:

любой кто может выдавать данные в NMEA

Если это шутка, то здесь она неуместна 😦

falke5

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

Shuricus

тогда лучше просто писать - любой, что бы понятнее было

falke5

я думаю все таки “любой кто может выдавать данные в NMEA…”

15 days later
dROb

Подскажите, работает всё же CL-OSD с GPS на скорости 9600?