Odys Loox - Navigation mit Bluetooth-GPS-Empfänger

F

fluxflux

Stammgast
273
Da ja das Loox kein Bluetooth integriert hat, braucht man für die hier vorgestellte Lösung zunächst einen Bluetooth-USB-Dongle. Bei mir verrichten ein Hama und ein Sitecom problemlos ihren Dienst, es dürften also die meisten Dongles funktionieren, für Spezialdongles wie den von AVM habe ich auch Kernelmodule hier.

Als Bluetooth-GPS-Empfänger dient mir ein BT-GPS-8U Jentro Activepilot.

Hinweis: Diese hier vorgestellte Lösung läuft nur auf gerooteten RW-Systemen!!!

Nun zur Vorgehensweise:

  • Loox booten, Bluetooth-Dongle anstecken, Bluetooth-GPS einschalten.
  • UsbGPS installieren: https://github.com/HvB/UsbGps4Droid/UsbGPS4Droid_alpha3.apk/qr_code
  • Auf die externe SD-Karte des Loox das anhängende ZIP entpacken.
  • Terminal oder besser ScriptManager öffnen (der hat auch eine Konsole und ist wesentlich vielseitiger).
  • Das Skript btgps mit dem Scriptmanager ausführen, "su" als Option wählen.
  • Das Skript laufen lassen, zwischenzeitlich UsbGPS öffnen und dort als "Current device" "/dev/rfcomm0" eintragen, dann starten.
  • UsbGPS übernimmt nun den Stream vom Bluetooth-Dongle, das Skript im Scriptmanager kann beendet werden.
  • Navigationssoftware starten, GPS sollte sofort erkannt werden, sobald ein Fix erfolgt ist.
  • Nach Beendigung der Navigation UsbGPS beenden.
Ich lege alles was nötig ist in das Verzeichnis auf die externe SD-Karte, damit hat man automatisch eine Sicherung und kann nichts verlieren, muss aber die SD-Karte immer eingesteckt haben.

Danke nochmals an Wusel, der das nötige Binary rfcomm beigesteuert hat, sonst wäre diese Lösung so nicht möglich gewesen.

Anleitung fürs beiliegende btgps.zip:

  • Herunteladen ... :thumbup:
  • Auf die externe SD-Karte des Loox im Loox oder via USB-Anschluss oder im Kartenlesegerät entpacken (also /sdcard).
  • Es entsteht ein Verzeichnis 1-GPS-Skript, bitte nicht umbenennen, wird so im ScriptManager ganz oben gefunden.
  • Im ScriptManager als su starten und bitte berichten, ob ein Stream vom GPS-Empfänger ankommt.
Thomas.
 

Anhänge

  • btgps.zip
    1,1 MB · Aufrufe: 768
Zuletzt bearbeitet:
@ wusel

Du könntest dein Skript so erweitern, dass bei Vorhandensein mehrerer Bluetooth-Geräte in Reichweite des Loox (Handies, Headsets etc.) mit "sdptool browse" die Handies ausgefiltert und ausgeschlossen werden und dann letztlich die korrekte Bluetooth-Adresse für das Bluetooth-GPS im Skript übrig bleibt und verwendet wird. Oder mit "sdptool" nach einem Dienst suchen, der auf Handies und Headsets verwendet wird, nicht aber auf GPS-Empfängern. So hätten wir zu 100% das korrekte Device im Skript ...

Mein Headset und mein Handy antworten z. B. auf "sdptool search AVRCT" und könnten damit ausgeschlossen werden ... wie man das macht, dafür bist du der Fachmann ...

Danke,

Thomas.
 
Zuletzt bearbeitet:
fluxflux schrieb:
Mein Headset und mein Handy antworten z. B. auf "sdptool search AVRCT" und könnten damit ausgeschlossen werden ... wie man das macht, dafür bist du der Fachmann ...
versuch mal bitte sdptool search SP - gibt bei mir:
Code:
Inquiring ...
Searching for SP on 00:BA:BE:FA:CE:07 ...
Service Name: GPS OUTPUT
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
wenn Du da auch Service Name: GPS OUTPUT bekommst dann haben wir was sauberes was nur dann noch zicken kann wenn jemand mehr als ein GPS Device aktiviert ...
 
Da antwortet mein Handy auch ... haben wir also wieder kein Alleinstellungsmerkmal.

Thomas.
 
So nach langem Abgleichen zwischen Slackware und Loox-Linux hier eine Version, die auf dem Loox den GPS-Empfänger aus 5 Bluetoothgeräten herausfindet:

Code:
#!/bin/sh
hciconfig hci0 up
sdptool search AVRCT > ausg
cat ausg | busybox grep AVRCT -A 1 > ausg1
busybox tac ausg1 | busybox sed -n '/Service/{N;d};p' > ausg2
bdaddr=`cat ausg2 | busybox grep : | busybox cut -d" " -f5`
busybox mknod -m 666 /dev/rfcomm0 c 216 0
rfcomm release /dev/rfcomm0 ${bdaddr} 1
rfcomm bind /dev/rfcomm0 ${bdaddr} 1
cat /dev/rfcomm0
rm /ausg*
exit 0

wusel, it's your turn ... dieser Part sollte ins Hauptskript, das auch alle Kernelmodule lädt, die Reihenfolge hier noch einmal:

Code:
insmod bluetooth.ko
insmod l2cap.ko
insmod btusb.ko
insmod rfcomm.ko
insmod bnep.ko
insmod sco.ko
insmod hidp.ko

Wenn das alles fertig ist, dann können wir hier ein komplettes Paket anbieten, das von SD-Karte lauffähig sein sollte, damit es auf allen Systemen (rw, ro) genutzt werden kann und nach einem evtl. Flashen gleich wieder verfügbar ist.

Das Anlegen der jetzt erstellten tmp-Dateien ausg* kann ja auch auf /mnt/asec/ verlagert werden, das ist êin tmpfs und die SD-Karte und der Flashspeicher werden nicht unnötig beschrieben.

Thomas.
 
Habe jetzt ein btgps.zip im ersten Post als Anhang bereitgestellt. Anweisungen im ersten Post ...

Thomas.
 
Hallo,

hätte eine Frage. Geht das hier auch mit dem Xpress ?

Danke.

gruß

jukay69
 
Einfach testen, der Kernel sollte identisch sein, soweit ich weiß.

Thomas.
 
Hallo,
wenn ich das Script laufen lasse, bekomme ich die Fehlermeldung:Can't init device hci0. Worauf deutet der Fehler hin, wird der Dongle nicht erkannt oder läuft sonst etwas falsch?
 
Einfach mal den Dongle rausziehen und wieder anstecken, das Script noch einmal laufen lassen.

In der Konsole stehen vielleicht noch Hinweise, ansonsten das Script zeilenweise eingeben und die Ausgabe lesen oder hierher posten.

Thomas.
 
fluxflux schrieb:
Einfach mal den Dongle rausziehen und wieder anstecken, das Script noch einmal laufen lassen.

In der Konsole stehen vielleicht noch Hinweise, ansonsten das Script zeilenweise eingeben und die Ausgabe lesen oder hierher posten.

Thomas.

Bei der Eingabe von hciconfig hci0 kommt auch nach wieederholtem Einstecken can't init hci0. Muss ich das Device vorher anlegen, wenn ja wie?
 
pjuppes schrieb:
Bei der Eingabe von hciconfig hci0 kommt auch nach wieederholtem Einstecken can't init hci0. Muss ich das Device vorher anlegen, wenn ja wie?
nein; aber wie müssen mal wissen was für ein Teil Du hast --> ID; für manche braucht man nämlich andere Kernel-Module - ich habe hier so ein Teil mit Broadcom-Chip (ID 0a5c:4500), da rührt sich auch gar nix - trotz schon geladenem bcm203x.ko ...
bitte check mal die ID von dem Teil mit lsmod, und dann poste auch mal den Auszug von dmesg wenn Du das Dongle ansteckst ...
 
fluxflux schrieb:
Da ja das Loox kein Bluetooth integriert hat, braucht man für die hier vorgestellte Lösung zunächst einen Bluetooth-USB-Dongle. Bei mir verrichten ein Hama und ein Sitecom problemlos ihren Dienst, es dürften also die meisten Dongles funktionieren, für Spezialdongles wie den von AVM habe ich auch Kernelmodule hier.

Als Bluetooth-GPS-Empfänger dient mir ein BT-GPS-8U Jentro Activepilot.

Hinweis: Diese hier vorgestellte Lösung läuft nur auf gerooteten RW-Systemen!!!

Nun zur Vorgehensweise:

  • Loox booten, Bluetooth-Dongle anstecken, Bluetooth-GPS einschalten.
  • UsbGPS installieren: https://github.com/HvB/UsbGps4Droid/UsbGPS4Droid_alpha3.apk/qr_code
  • Auf die externe SD-Karte des Loox das anhängende ZIP entpacken.
  • Terminal oder besser ScriptManager öffnen (der hat auch eine Konsole und ist wesentlich vielseitiger).
  • Das Skript btgps mit dem Scriptmanager ausführen, "su" als Option wählen.
  • Das Skript laufen lassen, zwischenzeitlich UsbGPS öffnen und dort als "Current device" "/dev/rfcomm0" eintragen, dann starten.
  • UsbGPS übernimmt nun den Stream vom Bluetooth-Dongle, das Skript im Scriptmanager kann beendet werden.
  • Navigationssoftware starten, GPS sollte sofort erkannt werden, sobald ein Fix erfolgt ist.
  • Nach Beendigung der Navigation UsbGPS beenden.
Ich lege alles was nötig ist in das Verzeichnis auf die externe SD-Karte, damit hat man automatisch eine Sicherung und kann nichts verlieren, muss aber die SD-Karte immer eingesteckt haben.

Danke nochmals an Wusel, der das nötige Binary rfcomm beigesteuert hat, sonst wäre diese Lösung so nicht möglich gewesen.

Anleitung fürs beiliegende btgps.zip:

  • Herunteladen ... :thumbup:
  • Auf die externe SD-Karte des Loox im Loox oder via USB-Anschluss oder im Kartenlesegerät entpacken (also /sdcard).
  • Es entsteht ein Verzeichnis 1-GPS-Skript, bitte nicht umbenennen, wird so im ScriptManager ganz oben gefunden.
  • Im ScriptManager als su starten und bitte berichten, ob ein Stream vom GPS-Empfänger ankommt.
Thomas.
Hallo,fluxflux, hallo Odys- und Androidgemeinde,

wie, bitte, bekomme ich ein gerootetes RW-System
für das Loox mit neuestem OdysUpdate :(:confused:

Mit freundlichen Grüßen fjhomberg
 
Hi fjhomberg,

guckst du hier

Bis dann und viel Erfolg..............

Rainer
 
Hallo, heute kam mein Bluetooth GPS-Empfänger, den ich natür gleich testen möchte ;-)
Vorgehensweise wie im 1. Betrag beschrieben.
Script gestartet, Empfänger wird erkannt und es kommt ein Signal vom GPS-Empfänger.
Dann UsbGPs gestartet und hier 'Current device: /dev/rfcomm0' eingetragen.
Beim starten von UsbGps kommt dann folgender Fehler: ' Mock locations disabled' ?
Was muß ich noch einstellen?
 
Einstellungen --> Anwendungen --> Entwicklung --> Falsche Standorte mit Häkchen aktivieren

Thomas.
 
  • Danke
Reaktionen: KDO70
Es klappt :flapper:
Bluetooth-Stick wird erkannt.
Ich verwende hier einen Belkin BFT017 Class 1 Stick.
Als GPS Recevier hab ich mir von KEOMO einen Solar Bluetooth GPS Receiver bei eBay besorgt.

SOLAR GPS BLUETOOTH EMPFÄNGER für TOMTOM + Route 66 usw | eBay

Das Teil kommt mit 12V Autoadapter und USB-Kabel zum laden.

Bei der Standortanzeige in Navit habe ich allerdings eine Abweichung von ca. 100m. Woran kann das liegen?

Klaus
 
Kann daran liegen, dass Navit den WLAN-Standort übernimmt und keinen GPS-Fix hat ... schalte WLAN/UMTS ab und teste dann mit dem BT-GPS, am besten mit dem Programm/App Gpsfix aus dem Market, dann siehst du sehr schnell, wann du einen Fix hast und wann nicht.

Thomas.
 
mit BT-GPS meinst du das Script?
Muß ich immer starten, um die Stick zu aktivieren und die Verbindung zum Receiver herzustellen? Muß ich USBGPS dann auch noch starten?

im Moment findet der Receiver keine Satelliten. Werde das morgen mal an einem andern Platz testen. (Status LED am Receiver müßte blicken, wenn die Position 'fixed' ist, und das tut sie nicht:-( )

Klaus
 
Zuletzt bearbeitet:

Ähnliche Themen

J
  • Jotto94
Antworten
0
Aufrufe
1.362
Jotto94
J
B
  • berry055
Antworten
0
Aufrufe
1.199
berry055
B
B
  • Bochumer86
Antworten
9
Aufrufe
3.331
Mami1973
M
Zurück
Oben Unten