¿Quieres activar el GPS en Raspberry Pi?
Para contar con el GPS BU-353-S4 activado dentro de un Raspberry Pi, primero se tiene que realizar ciertas configuraciones importantes

Primero conozcamos que dispositivos se encuentran conectados dentro del dispositivo Raspberry Pi, para ello ocupamos ejecutar el comando sudo lsusb, posterior a ello conectamos el GPS para identificar con que nombre aparece en el sistema operativo, para ello se vuelve a ejecutar el comando sudo lsusb

En el caso de esta entrada, el GPS cuenta con el nombre de Bus 001 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Si se verifica desde el /var/log/syslog, identificaremos que el primer puerto serial es /dev/ttyUSB0 que hace referencia al GPS BU-353-S4.
Raspberry Pi con GPSD
Para comenzar a recibir la información del GPS en el Raspberry Pi es necesario instalar algunos repositorios disponibles para Raspberry Pi que son los del gpsd para contar con el cliente y servidor correctamente configurados. Con el siguiente comando se realizará esto:
sudo apt-get install gpsd gpsd-clients python-gps
Después se ocupa iniciar el proceso, con el siguiente comando:
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
Ahora para recibir la longitud y latitud del GPS, se ocupa tener el GPS en un lugar con vista clara del cielo debido a que no funciona en interiores, este GPS cuenta con un super-cohesiva magnética que puede ser manipulado fácilmente.

Empecemos a recibir longitudes y latitudes del GPS, para ello se ejecuta el comando sudo cgps -s. La condición del -s permite que no se escriban los datos en bruto, así como los datos procesados.
¡NOTA! Como dato a considerar es que si el timeout genera alguna alerta al intentar ejecutar el anterior comando es importante primero dar permisos al GPS con el comando sudo chmod 775 /dev/ttyUSB0 y se vuelve a ejecutar el comando sudo cgps -s para obtener esto:

En la imagen se muestra los siguientes datos:
- Se esta recibiendo información desde 10 satélites diferentes.
- Las lineas Err indican el error en la posición, estas suelen cambiarse cada segundo.
- El 3D Fix proporcionan los datos suficientes para una solución 3D en su localización (la altitud, por ejemplo).
- X-Windows, también se puede configurar con estos datos (en esta aplicación no será el caso pero si se puede utilizar)
Configuración NTP en Raspberry Pi
Para hacer uso de los satélites del GPS como recurso del tiempo se ocupa configurar el NTP en el Raspberry Pi. El sistema operativo ya debería de tener el NTP en caso contrario ejecutar el comando sudo apt-get install ntp
Configuramos algunas líneas para definir el GPS en el archivo sudo nano /etc/ntp.conf, se agregan las líneas antes o después de las líneas que ya existen.
#gps ntp
server 127.127.28.0 minpoll 4
fudge 127.127.28.0 time1 0.183 refid NMEA
server 127.127.28.1 minpoll 4 prefer
fudge 127.127.28.1 refid PPS

Ahora se debe reiniciar el ntp con el comando sudo service ntp restart, despues de ello se puede ver como se sincroniza el GPS con el Raspberry Pi con el comando sudo ntpq -p
En un principio se nota que el NTP no se conecta correctamente con el GPS, pareciendo que el gpsd no existe un enlace al puerto serie, para ello se ejecuta los siguientes comandos:
$ sudo killall gpsd
$ sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
$ sudo service ntp restart
Con ello ya se tiene configurado correctamente el NTP en el Raspberry Pi

GPRMC en GPS (longitud y latitud)
Esta configuración fue realizada desde Windows, para ello se descargan los drivers para GPS BU-353-S4 se ejecuta el programa PL2303_Prolific_DriverInstaller_v1.8.0 con ello se instala automáticamente.
Después de instala el programa GPSInfo, ya instalados los drivers automáticamente el programa reconocerá el GPS en el programa.
Algunos comandos que se ejecutan aparte del GPRMC (que obtiene la longitud y latitud del GPS), se deben desactivar alguna serie de ordenes para que solo conservar los GPRMC para el GPS, se ejecuta el botón Send
Ahí se van enviando las siguientes ordenes, que se van copiando y pegando a partir del símbolo $
- Activar WAAS/EGNOS – $PSRF151,01*0F
- Desactivar WAAS/EGNOS – $PSRF151,00*0E
- Activar salida de GGA 1seg – $PSRF103,0,0,1,1*25
- Desactivar salida de GGA – $PSRF103,0,0,0,1*24
- Activar salida de GLL 1seg – $PSRF103,1,0,1,1*24
- Desactivar salida de GLL – $PSRF103,1,0,0,1*25
- Activar salida de GSA 5seg – $PSRF103,2,0,5,1*23
- Desactivar salida de GSA – $PSRF103,2,0,0,1*26
- Activar salida de GSV 10seg – $PSRF103,3,0,10,1*16
- Desactivar salida de GSV – $PSRF103,3,0,0,1*27
- Activar salida de RMC 1seg – $PSRF103,4,0,1,1*21
- Desactivar salida de RMC – $PSRF103,4,0,0,1*20
- Activar salida de VTG 1seg – $PSRF103,5,0,1,1*20
- Desactivar salida de VTG – $PSRF103,5,0,0,1*21
- Activar salida de ZDA 1seg – $PSRF103,8,0,1,1*2D
- Desactivar salida de ZDA – $PSRF103,8,0,0,1*2C
Cambiar velocidades de transmisión del GPS (protocolo NMEA) se envían las siguientes:
- 4800/8/N/1 – $PSRF100,1,4800,8,1,0*0E
- 9600/8/N/1 – $PSRF100,1,9600,8,1,0*0D
- 19200/8/N/1 – $PSRF100,1,19200,8,1,0*38
- 38400/8/N/1 – $PSRF100,1,38400,8,1,0*3D
Otros comandos que se tienen que suelen ser útiles son:
Activar modo ahorro de energía – $PSRF150,0,300,1000,1*10
Desactivar modo ahorro de energía – $PSRF150,0,1000,1000,0*23
Activar datos de desarrollo – $PSRF105,1*3E
Desactivar datos de desarrollo – $PSRF105,0*3F
Arranque en bruto – $PSRF101,0,0,0,0,0,0,12,2*16
Configuración de fabrica – $PSRF101,0,0,0,0,0,0,12,8*1C
Arranque hibernación – $PSRF101,0,0,0,0,0,0,12,4*10
Desactivamos todos los comandos que aparezcan en el GPSInfo y conservamos únicamente el comando de GPRMC del GPS
Ahora nos pasamos al Raspberry Pi para las últimas configuraciones, empezamos con el comando sudo gpsmon /dev/ttyUSB0
Donde el ttyUSB0 es el puerto del GPS BU-353-S4 que es detectado en el Raspberry Pi, de todos modos verificarlo por que a veces toma el valor de ttyUSB1
Después nos salimos de la herramienta gpsmon con Ctrl + C, luego se debe ejecutar el siguiente comando sudo cat /dev/ttyUSB0
Con esto ya se tienen los comandos GPRMC del GPS para que funcione correctamente en el Raspberry Pi, disfruta tus proyectos y crea grandes cosas.