viernes, 31 de diciembre de 2010

Usar GPS del Nexus One en Linux vía bluetooth

Ya indiqué cómo convertir nuestro Nexus One en un GPS bluetooth estándar. Ahora viene la parte de conectarlo a Linux.

Deberemos tener instaladas las dependencias para bluetooth y rfcomm, las pruebas se efectuaron en Fedora 14 x86_64.
  1. Luego deberemos dejar el N1 visible vía bluetooth
  2. En una consola como root debemos buscar el N1:
    [root@caleuche ]# hcitool scan
    Scanning ...
        38:E7:D8:45:AE:63    Nexus One
  3. Buscamos el canal que emplea el N1 para serial:
    [root@caleuche ]# sdptool browse 38:E7:D8:45:AE:63
    ...
    Service Name: GPS
    Service RecHandle: 0x10008
    Service Class ID List:
      UUID 128: 00001101-0000-1000-8000-00805f9b34fb
    Protocol Descriptor List:
      "L2CAP" (0x0100)
      "RFCOMM" (0x0003)
        Channel: 29
  4. Creamos el archivo /etc/bluetooth/rfcomm.conf con el siguiente contenido:
    rfcomm0 {
    bind no;
            device 38:E7:D8:45:AE:63;
    # en channel colocamos el que nos arroja sdptools....
            channel 29;
            comment "GPS bluetooth";
    }
  5. Finalmente realizamos la conexión, en caso que ya hayamos emparejado previamente no solicitará nada, en caso que sea la primera vez solicitará emparejar con PIN:
    [root@caleuche ]# rfcomm connect 0
    Connected /dev/rfcomm0 to 38:E7:D8:45:AE:60 on channel 29
    Press CTRL-C for hangup



  • Probamos que funcione, en N1 mostrará el widget en amarillo:
    [root@caleuche eduardo]# cat < /dev/rfcomm0
    ...
    $GPGGA,214202.7,3334.863519,S,07035.229533,W,1,07,1.2,656.9,M,32.0,M,,*50
    $GPVTG,287.4,T,285.0,M,0.0,N,0.0,K,A*25
    $GPRMC,214202.7,A,3334.863519,S,07035.229533,W,0.0,,311210,,,A*45
    ...







  • Ahora sólo nos queda utilizar este flujo con alguna herramienta, la forma simple es pasarlo al gpsd:
    [root@caleuche ]# gpsd -N -b /dev/rfcomm0
    Con ésto lograremos que se levante un demonio en el puerto 2947.







  • Podemos probar que funciona con xgps, tangogps y gpsdrive:




  • No hay comentarios: