kopia lustrzana https://github.com/cyoung/stratux
113 wiersze
3.6 KiB
Bash
Executable File
113 wiersze
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# sirf_config.sh: Script to set up BU-353-S4 receiver for Stratux.
|
|
# Resets receiver to 4800 baud and 1 Hz GPRMC messaging, then enables
|
|
# WAAS, 5 Hz position reporting, all NMEA messages needed by
|
|
# Stratux, and 38400 bps serial output.
|
|
|
|
printf "About to configure SIRF receiver on /dev/ttyUSB0.\n"
|
|
printf "Press ctrl-C to abort or any other key to continue.\n"
|
|
read
|
|
|
|
# Iterate through common bitrates and send commands to reduce output to 1 Hz / 4800 bps.
|
|
printf "Setting SIRF and RPi baud rate of /dev/ttyUSB0 to 4800. Iterating through common rates.\n"
|
|
printf "Current /dev/ttyUSB0 baudrate.\n"
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
printf "\$PSRF100,1,4800,8,1,0*0E\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
printf "38400 bps.\n"
|
|
stty -F /dev/ttyUSB0 38400
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
printf "\$PSRF100,1,4800,8,1,0*0E\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
printf "115200 bps.\n"
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
stty -F /dev/ttyUSB0 115200
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
printf "\$PSRF100,1,4800,8,1,0*0E\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
printf "57600 bps.\n"
|
|
stty -F /dev/ttyUSB0 57600
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
printf "\$PSRF100,1,4800,8,1,0*0E\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
printf "19200 bps.\n"
|
|
stty -F /dev/ttyUSB0 19200
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
printf "\$PSRF100,1,4800,8,1,0*0E\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
printf "9600 bps.\n"
|
|
stty -F /dev/ttyUSB0 9600
|
|
printf "\$PSRF103,00,7,00,0*22\r\n" > /dev/ttyUSB0
|
|
printf "\$PMTK251,4800*17\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
|
|
|
|
stty -F /dev/ttyUSB0 4800
|
|
# GGA off:
|
|
printf "\$PSRF103,00,00,00,01*24\r\n" > /dev/ttyUSB0
|
|
|
|
# GLL off:
|
|
printf "\$PSRF103,01,00,00,01*27\r\n" > /dev/ttyUSB0
|
|
|
|
# GSA off:
|
|
printf "\$PSRF103,02,00,00,01*26\r\n" > /dev/ttyUSB0
|
|
|
|
# GSV off:
|
|
printf "\$PSRF103,03,00,00,01*27\r\n" > /dev/ttyUSB0
|
|
|
|
# RMC on:
|
|
printf "\$PSRF103,04,00,01,01*21\r\n" > /dev/ttyUSB0
|
|
|
|
# VTG off:
|
|
printf "\$PSRF103,05,00,00,01*21\r\n" > /dev/ttyUSB0
|
|
|
|
printf "SIRF device has been set to 4800 baud with RMC messages at 1 Hz.\n"
|
|
printf "Press ctrl-C to abort, or any other key enter to continue with setup.\n"
|
|
read
|
|
|
|
# Now start the Stratux setup.
|
|
printf "Sending Sirf PSRF100 command to set GPS baud rate to 38400\n"
|
|
printf "\$PSRF100,1,38400,8,1,0*3D\r\n" > /dev/ttyUSB0
|
|
|
|
printf "Resetting RPi baud rate of /dev/ttyUSB0 to 38400\n"
|
|
stty -F /dev/ttyUSB0 38400
|
|
sleep 0.2
|
|
printf "Sending SIRF PSRF103 commands to configure NMEA message output\n"
|
|
|
|
#GGA:
|
|
printf "\$PSRF103,00,00,01,01*25\r\n" > /dev/ttyUSB0
|
|
|
|
# Uncomment next two commands set GSA/GSV on each position message.
|
|
# Stratux doesn't need this much info - but keep for developer debug
|
|
# GSA (every position message):
|
|
#printf "\$PSRF103,02,00,01,01*27\r\n" > /dev/ttyUSB0
|
|
# GSV (every position message):
|
|
#printf "\$PSRF103,03,00,01,01*26\r\n" > /dev/ttyUSB0
|
|
|
|
# Next two commands set GSA/GSV on every 5th position message.
|
|
# Comment out (and uncomment above two commands) to report on
|
|
# every position.
|
|
# GSA (every 5 position messages):
|
|
printf "\$PSRF103,02,00,05,01*23\r\n" > /dev/ttyUSB0
|
|
# GSV (every 5 position messages):
|
|
printf "\$PSRF103,03,00,05,01*22\r\n" > /dev/ttyUSB0
|
|
|
|
|
|
# RMC:
|
|
printf "\$PSRF103,04,00,01,01*21\r\n" > /dev/ttyUSB0
|
|
# VTG:
|
|
printf "\$PSRF103,05,00,01,01*20\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
|
|
printf "Sending SIRF PSRF151 command to enable WAAS\n"
|
|
printf "\$PSRF151,01*3F\r\n" > /dev/ttyUSB0
|
|
sleep 0.2
|
|
|
|
printf "Sending SIRF PSRF103 command to enable 5 Hz position reporting\n"
|
|
printf "\$PSRF103,00,6,00,0*23\r\n" > /dev/ttyUSB0
|
|
|
|
# Finally, test the connection.
|
|
printf "Opening /dev/ttyUSB0 to listen to GPS. Press ctrl-C to cancel.\n"
|
|
cat /dev/ttyUSB0
|