Hello,
I have Model: EM7455B Revision: SWI9X30C_02.20.03.22 r6827 CARMD-EV-FRMWR2 2016/10/11 16:03:14 and the Skylight app will provide me with GPS so I know it works. But how does one programmatically get the gps coordinates via commandline or powershell? All of my attempts seem to time out. Heres some of the stuff I have tried:
#$port=new-object system.io.ports.serialport com3,9600,None,8,One
#$port.Open()
#$port.WriteLine(“at!gpsloc”)
#$port.Close()
#$port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
#$port.Open()
#$port.ReadLine()
#$Rport= new-Object System.IO.Ports.SerialPort com3,9600,None,8,one
#Register-ObjectEvent -InputObject $Rport -EventName “DataReceived” -SourceIdentifier $Name > $null
#$Rport.Open()
#$Rport.ReadLine()
Any help would be appreciated, the goal is to log GPS coordinates during windows login via startup, login or scheduled task scripts.
jyijyi
July 14, 2021, 1:10am
2
you need to use AT command like AT!GPSFIX and AT!GPSLOC to get the location.
Unfortunately, I already tried that and it did not work:
#$port.WriteLine(“at!gpsloc”)
Anyone have some example PowerShell or command line that works?
jyijyi
July 14, 2021, 1:41am
4
is COM3 the AT command port?
It is the NMEA port. Am I supposed to be using some other com port? One dedicated to AT commands?
jyijyi
July 14, 2021, 2:05am
6
yes, you need to use modem port for AT command instead of NMEA port.
Getting somewhere! Thanks
@jyijyi !
havealoha:
EM7455B
I found this post that might help. MC7455 GPS not functioning - #5 by zainol69
Code:
$port=new-object system.io.ports.serialport com4,9600,None,8,One
$port.Open()
$port.WriteLine(“ATI1” + “r") start-sleep -m 50 $port.ReadExisting() start-sleep -m 50 $port.WriteLine("AT!GPSLOC" + "
r”)
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine(“AT!GPSFIX” + “r") start-sleep -m 50 $port.ReadExisting() start-sleep -m 50 $port.WriteLine("at!gpstrack=?" + "
r”)
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine(“at!gpstrack=1,255,1000,30,1” + “r") start-sleep -m 50 $port.ReadExisting() start-sleep -m 50 $port.WriteLine("at!custom?" + "
r”)
start-sleep -m 50
$port.ReadExisting()
$port.WriteLine(“at!entercnd="A710
"” + “r") start-sleep -m 50 $port.WriteLine("AT!CUSTOM=
“GPSENABLE",1" + "
r”)
start-sleep -m 50
$port.WriteLine(“AT!CUSTOM="GPSLPM
”,0” + “r") start-sleep -m 50 $port.WriteLine("AT!RESET" + "
r”)
start-sleep -m 50
$port.WriteLine(“at!gpsstatus?” + “r") start-sleep -m 50 $port.ReadExisting() start-sleep -m 50 $port.WriteLine("AT!GPSLOC" + "
r”)
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine(“AT!GPSFIX” + “`r”)
start-sleep -m 50
$port.ReadExisting()
$port.Close()
Output:
ATI1
Manufacturer: Sierra Wireless, Incorporated
Model: EM7455B
Revision: SWI9X30C_02.20.03.22 r6827 CARMD-EV-FRMWR2 2016/10/11 16:03:14
MEID: xxx
IMEI: xxx
IMEI SV: 6
FSN: LF823629820310
+GCAP: +CGSM
OK
AT!GPSLOC
ERROR
AT!GPSFIX
ERROR
at!gpstrack=?
!GPSTRACK: ,,,,
: 1-Standalone, 2-MS-Based, 3-MS-Assisted
: 1-255 seconds
: 1-4294967280 meters
: 1-1000,1000=continuous
: 1-65535 seconds
OK
at!gpstrack=1,255,1000,30,1
ERROR
at!custom?
!CUSTOM:
GPSENABLE 0x01
GPIOSARENABLE 0x01
GPSSEL 0x01
IPV6ENABLE 0x01
SIMLPM 0x01
USBSERIALENABLE 0x01
OK
at!entercnd=“A710”
OK
AT!CUSTOM=“GPSENABLE”,1
OK
AT!CUSTOM=“GPSLPM”,0
OK
AT!RESET
OK
at!gpsstatus?
Current time: 1980 01 06 6 00:00:55
1980 01 06 6 00:00:55 Last Fix Status = NONE
1980 01 06 6 00:00:01 Fix Session Status = ACTIVE
No TTFF available
OK
AT!GPSLOC
ERROR
AT!GPSFIX
ERROR
Im getting closer but still not getting coordinates. Any advice?
PS C:\Users\me> $port=new-object system.io.ports.serialport com6,9600,None,8,One
$port.Open()
start-sleep -m 50
$port.WriteLine("AT!GPSFIX=1,255,1" + "`r")
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine("AT!GPSSATINFO?" + "`r")
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine("AT!GPSLOC" + "`r")
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine("AT!GPSFIX" + "`r")
start-sleep -m 50
$port.ReadExisting()
$port.Close()
OK
Satellites in view: 4 (2021 07 14 2 18:11:19)
* SV: 2 ELEV: 48 AZI: 53 SNR: 36
* SV: 12 ELEV: 54 AZI: 161 SNR: 32
* SV: 20 ELEV: 48 AZI: 108 SNR: 34
* SV: 29 ELEV: 45 AZI: 291 SNR: 29
OK
ERROR
ERROR
PS C:\Users\me>
havealoha:
ill not getting co
I think I finally got it!
PS C:\Users\me> $port=new-object system.io.ports.serialport com6,9600,None,8,One
$port.Open()
start-sleep -m 50
$port.WriteLine("AT!GPSFIX=1,255,1" + "`r")
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine("AT!GPSSATINFO?" + "`r")
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine("AT!GPSSTATUS?" + "`r")
start-sleep -m 50
$port.ReadExisting()
start-sleep -m 50
$port.WriteLine("AT!GPSLOC?" + "`r")
start-sleep -m 50
$port.ReadExisting()
$port.Close()
OK
Satellites in view: 5 (2021 07 14 2 18:22:55)
* SV: 2 ELEV: 43 AZI: 54 SNR: 22
* SV: 12 ELEV: 48 AZI: 161 SNR: 24
* SV: 20 ELEV: 50 AZI: 99 SNR: 32
* SV: 25 ELEV: 69 AZI: 232 SNR: 30
* SV: 29 ELEV: 49 AZI: 295 SNR: 18
OK
Current time: 2021 07 14 2 18:23:21
2021 07 14 2 18:22:55 Last Fix Status = SUCCESS
2021 07 14 2 18:23:21 Fix Session Status = ACTIVE
TTFF (sec) = 109
OK
Lat: obfuscated
Lon: obfuscated
Time: 2021 07 14 2 18:23:12 (GPS)
LocUncAngle: 0.0 deg LocUncA: 48 m LocUncP: 21 m HEPE: 52.392 m
2D Fix
Altitude: 45 m LocUncVe: 192.0 m
Heading: 0.0 deg VelHoriz: 0.0 m/s VelVert: 0 m/s
OK
PS C:\Users\me>