Как к андроиду подключить через usb gps

Обновлено: 06.07.2024

Инструкция для подключения внешнего USB GPS к андройд девайсам.

Предисловие:
p.s. by tsynik

GPS состоит из драйвера и C-либы Андройд, которые независимы. Драйвер отвечает за физическое unix-устройство (/dev/ttyACMxxx /dev/ttyUSBxxx), если оно появляется - в терминале достаточно (и обычно даже не обязательно) установить скорость и читать поток NMEA (cat /dev/ttyUSBxxx). Далее, нужно передать эти данные системе через MOCK LOCATIONS (множество вариантов софта в маркете и в сети типа USBGPS4Droid), либо использовать C+ либу (завязана на версию андроид, может как иметь, так и не иметь настраиваемых параметров имени устройства и скорости порта).

Драйвера (модули)

-Для GlobalSat BU-353(SiRF Star III) и их семейства необходим модуль моста PL2303, => pl2303.ko 4800\9600
-Для Locosys LS23030 (MTK3339), LS23030-G(MTK3333), GlobalSat BU-353G(MTK3333) необходим модуль моста PL2303, => pl2303.ko
-Для Locosys LS23090, Locosys LS23030 и других (noname) GPS на чипах MediaTek (MTK3329), => cdc-acm.ko 115200
-Для Holux M-1000B, необходим адаптер FT232RL, => ftdi_sio.ko
-Так же может стоять модуль моста CP2102, => cp210x.ko

Нужные вам модули кидаем в папку "/system/lib/modules/"
Права на них выставить 644:

Для загрузки, выполняем команду:

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

В дальнейшем добавляем загрузку модуля в скрипт автозагрузки. (init.d или install-recovery.sh способом)

(в архиве new_gps.sun4i.so.zip)
Это обновленная версия либы, теперь в ней исправлен глюк с рестартом. Т.к раньше после сна или переключения устройства, приходилось постоянно ее перезагружать. была проблемма с переинициализацией.

Установка.
1. Кинуть с заменой файлов по пути /system/lib/hw и выставить права 644:
Только возможно потребуется переименовать. Смотрите gps.XXXX.so, где XXXX - название вашей.
gps.glofish.so -не трогать.

Например:
устройства на А10, -это gps.sun4i.so (для стока), gps.exDroid.so (кастом СМ9)
устройства на RK3066, RK3188, Amlogic 8726-MX -это gps.default.so

2. Добавить в автозагрузку команду

где:
4800 - рабочая скорость устройства. (4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200)
ttyUSB0 - это имя вашего устройства GPS в /dev.
Название может быть другим, например ttyACM0, ttyACM1. 2,3 и т.д.

3. Не забываем выставлять права доступа на gps устройство в /dev .

Решение некоторых проблем.

1. Проверяем текущую скорость порта командой "busybox stty -F /dev/ttyUSB0"
Потом, выставляется ли скорость командой "busybox stty -F /dev/ttyUSB0 speed 4800"
Бывает такое(зачастую на rk3066), что модуль pl2303.ko уже вкомпилен в ядро, и система не дает изменить скорость. ошибка "cannot perform all requested operations"
Решение нашел и описал подробно macau. читаем инструкцию

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Подключаем внешний gps приёмник к аппарату с Android

Вчера вечером поставили рядом Самсунг галакси s1+ и мою Дэфи+. Понятно, никаких a-gps (в горах оно все равно бесполезно).
Дэфи долго вычисляла, примерно 2-3 мин, чип не быстрый, но нормально увидела спутники и выдала координаты в программы.
Самс спутники как-бы видел, и в достаточном количестве, но координаты не выдал, хотя мы долго ждали. Центр города, Александровский пр-т, близ Греческой площади, те. ни о каком тотальном экранировании многоэтажками речи нет. В итоге в Самсе софт просто полез искать по БС-кам сотовым.

Преимущества внешнего gps приёмника :
1) чутьё лучше (у нормального внешнего - приличная антенна, например, у моего iBlue-747 rev.B).
2) стартует быстрее.
3) аккум смарта садится меньше, тк. BT интерфейс жрёт в несколько раз меньше, чем внутренний gps.

Минус - связь по ВТ временами рвётся, и в некоторых программах у вас прервётся запись трека.
Одна проблема - до сих пор практически все навигационные программы под Андроидом умеют пользоваться только встроенным в телефон GPS приемником. Андроид 2.3.х также не умеет работать с внешними приемниками.

В WinMobile, системе зрелой, всё это было - уже в 6-ку встроили простой gps proxy, позволявшей подключать любой совместимый внешний приёмник, сидеть на любом порту и транслировать его данные в 1 или несколько программ. А кроме него был очень функциональный gpsGate , который делает то же самое + кучу дополнений. Программы также имели стандартную опцию выбора приемника.

В андроиде же поддержка внешних приемников в ОС не реализована, как минимум в 2.3.х, а производителям навигационного софта просто лень писать что-то отдельное для этого (при этом платные дешевле не становятся).

Типовое, с форума "Пока дождешся пока внутренний заработает уже тыщщу раз доехал бы, да и батарею жалко"
Разработчикам Робота необходимость такой вещи на системном уровне будет ясна где-то к версии 4.5, видимо. И то не факт.

Но есть умельцы, написавшие программы, которые подменяют внутренний GPS телефона на внешний. Типовая навигационная программа не знает, что она общается с внешним, думая, что общается с внутренним.

Важное замечание. Нельзя гарантировать, что любая из этих программ будет корректно работать на всех версиях Андроида, и со всеми навигационными программами.
Проверяйте. (У меня сейчас стоит улучшенная (умельцами) прошивка от Моторолы на основе Андроида 2.3.4)

Для работы обеих программ надо включить developers option "enable mock locations" .

Примечание. В большинстве сочетаний прокси-эмулятора и навигационной программы в собственно навигационной программе вы не будете видеть спутники.

Bluetooth GPS Provider

Программа корректно работает, отдаёт координаты 2м программам одновременно, но часть программ сигнал получает, и при этом выдает, что gps disabled (в общем-то верно для системного чипа), если я не включал системный gps.
А можно и включить системный - она будет его подменять.
Программа периодически обновляется.
Показывает (лаконично и понятно) спутники и данные от приемника.
Много опций, поддержка разных чипов внешних приемников (в тч. самых массовых, SiRF III / MTK)

Мне пока что нравится больше, чем 2я.

Bluetooth GPS for Android
Программа корректно работает, отдаёт координаты 2м программам одновременно, но в системных опциях надо включить Gps - иначе работать не будет.
Работает только жёсткая подмена системного gps.
Есть опции для siRF III.
Программа периодически обновляется.
Вполне пригодна, но 1я лучше.


Распаковка и внешний вид.

Желтый пакет

Яркий блистер

Сзади немного характеристик

На лицевой части устройства указана модель U-blox7

Ну и сзади продублировано то же самое, только уже на наклейке

Под колпачком стандартный USB разъем

Функционал.

Для начала пошел в машину, запустил Navitel и увидел то же, что и ранее

Подключил модуль в разъем USB OTG, индикатор заморгал зеленым, а навител увидел спутники после перезапуска.

Satellite Finder

Выехал из гаража — на один спутник больше. Проскакивал еще один периодически, но это не в счет.

Отлично, разбирать магнитолу не пришлось — еще поработает. К тому же остался свободен мультимедиа USB.

Идем домой, вставляем в системник и видим, что нашлось устройство с последовательным интерфейсом

Пошарил в интернете, нашел бесплатную программу «Автоспутник». Модуль подхватился автоматически

Спутники видно, но сигнал слабоват. Индикатор на устройстве не активируется.

Есть еще планшет на Win 10. Так же оборудование определяется без проблем, даже показал полное название

Кинул на подоконник и пошел налить чайкУ. Вернулся — позиция определена, 8 спутников подхватились

Вышел на балкон, стало на один больше и уровень сигнала вырос в среднем вдвое.

Индикатор все время бодренько моргает, оповещая о том, что что-то происходит.


Итого:
Android устройство(магнитола) нашло 14 спутников, удалось подключиться к 11.
Windows устройство(планшет) нашло 12 спутников, удалось подключиться к 9.

Расчлененка.

Пришлось повозиться — защелки довольно цепкие. С одной стороны расположена GPS антенна

С другой, из интересного, нашелся чип GPS U-BLOX G7020-CT
В характеристиках написано multi-GNSS chip supports GPS, GLONASS, QZSS and SBAS

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

На смартфон требуется скачать с Google Play приложение под названием GPS over BT и устанавливаем его. Включаем блютус и GPS или делаем это в самом приложении после его запуска. На экране мы видим текущее точное время, координаты в двух формах, высота над уровнем моря, вашу скорость передвижения, азимут, расстояния.

Также если нажать кнопку меню, то можно перейти к просмотру спутников.

Screenshot_2016-03-07-16-45-25

На ПК необходимо также наличие Bluetooth, иначе подсоеденить никак у вас не получится. Обычно в ноутбуках он бывает сразу.

Снимок

Такой метод работает с таким навигационным софтом, как OziExplorer, SasPlanet, 2Gis, Google Earth и другими. А покажу я вам работу на примере САС Планеты и Озика.

Так, что-то я отвлекся от процесса 🙂 , связываем далее!

1

2

4

Это окошко закрывается и в списке COM-портов мы видим наш свежесозданный, которому присвоилось значение COM6. Запомните эту цифру. Она еще пригодится. Эти оба окна можно закрыть.

Снимок

Открываем нашу любимую SAS Planet и переходим в настройки.

5

6

Так она показывает местоположение на топокарте:

7

8

9

Далее открываем карту, и кликаем по волшебной кнопке с молнией. И появилась стрелочка, указывающая на ваше местоположение. Теперь с этой прогой мы можем работать полноценно!

Читайте также: