Περιπέτειες στο linux με τον i-gotU GT-200 gps logger

Πρόσφατα αγόρασα το i-gotU GT-200. Πρόκειται για ένα bluetooth GPS travel logger. Αυτό το οποίο κάνει είναι να κρατάει ανά ορισμένα χρονικά διαστήματα τις γεωγραφικές συντεταγμένες και την ακριβή ώρα εκείνη τη στιγμή ώστε αργότερα να μπορεί ο χρήστης, μεταφέροντας τα δεδομένα στον υπολογιστή του, να αναπαράγει ακριβώς το ταξίδι του. Περισσότερες πληροφορίες μπορούν να βρεθούν στην σελίδα του προϊόντος.

Δυστυχώς από την εταιρία δεν παρέχεται κάποιος driver για το linux. Το μόνο που μπόρεσα να βρω είναι το πρόγραμμα igotu2gpx το οποίο μπορεί να μεταφέρει αποθηκευμένες διαδρομές από τη συσκευή στον υπολογιστή. Χρησιμοποιεί την libusb οπότε δεν χρειάζεται κάποιο kernel module. Και αυτό όμως δεν έχει όλη την λειτουργικότητα του @trip, του προγράμματος που παρέχεται από την ίδια την εταιρία. Αυτό που βρήκα ως καλύτερο συνδυασμό είναι το igotu2gpx για απλή μεταφορά δεδομένων και το @trip που έχω εγκατεστημένο σε ένα windows virtual machine. Χρησιμοποιώ την closed source edition του VirtualBox που παρέχει πλήρη υποστήριξη για usb και έτσι δεν υπάρχει κανένα πρόβλημα. Χρησιμοποιώντας λίγο usb sniffing είδα ότι δεν είναι και τόσο δύσκολη η επικοινωνία με το device οπότε μπορεί να γράψω και εγώ ένα πρόγραμμα. Θα μου ήταν πιο εύκολο να βοηθήσω στο development του igotu2gpx αλλά είναι γραμμένο σε C++ και χρησιμοποιεί qt, έναν συνδυασμό που ΔΕΝ τον αντέχω!

Κάτι άλλο που προσφέρει το gadgetάκι αυτό είναι live gps data είτε το συνδέσεις με usb είτε με bluetooth. Μετά από λίγο ψάξιμο βρήκα ότι υπάρχει driver για linux αλλά δυστυχώς αυτός δεν αναγνωρίζει αυτόματα το device. Ο driver είναι ο navman. Αφού τον φορτώσουμε χρησιμοποιώντας την εντολή:

# modprobe navman

πρέπει να τρέξουμε τo

# echo «0x0df7 0x0900» > /sys/bus/usb-serial/drivers/navman/new_id

Τα 0x0df7 και 0x0900 είναι το vendor και product id της συσκευής. Τα στοιχεία αυτά μπορείτε να τα δείτε τρέχοντας την εντολή lsusb. Πλέον ανοίγοντας το device /dev/ttyUSB0 (ή /dev/ttyUSB1 κλπ) θα πάρουμε gps data σε μορφή NMEA.

Για να συνδεθούμε μέσω bluetooth πρέπει πρώτα να βρούμε την διεύθυνση που χρησιμοποιεί. Αυτό γίνεται τρέχοντας την ακόλουθη εντολή

$ hcitool scan
Scanning …
00:18:8C:16:03:1F MAGPS GT-200

Η διεύθυνση είναι η 00:18:8C:16:03:1F την οποία πρέπει να κρατήσουμε.

Επόμενο βήμα είναι η σύνδεση και το pairing. Για να γίνει αυτό χρησιμοποιούμε τις ακόλουθες εντολές:

# hcitool cc 00:18:8C:16:03:1F
# hcitool auth 00:18:8C:16:03:1F

Στο σημείο αυτό αν έχει οριστεί ένας helper για την εισαγωγή του pin θα εμφανιστεί πιθανώς ένα παράθυρο όπου πρέπει να δώσουμε το νούμερο 0000. Αν χρησιμοποιούμε κάποιο άλλο σύστημα πάλι πρέπει να ορισθεί ως pin το 0000. Το τελευταίο βήμα είναι να συνδέσουμε ένα rfcomm device με το igotu. Αυτό γίνεται με την εντολή

# rfcomm bind 0 00:18:8C:16:03:1F 1

Από εδώ και πέρα το device /dev/rfcomm0 προσφέρει NMEA data.

Εδώ προτείνω το πρόγραμμα gpsbabel το οποίο μπορεί να διαβάζει τέτοια δεδομένα και να δίνει διάφορες πληροφορίες. Αν και όπως λέει χρησιμοποιείται για το conversion ανάμεσα σε διαφορετικά file formats, με την χρήση του option -T είναι δυνατό να παίρνουμε και realtime data.

No comments yet

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: