I have purchased a Starnote starter kit as well as the wifi + cellular notecard but have been having issues getting the Starnote GPS to work. When I use {"req":"card.status"}
there is no field saying "gps": true
and {"req":"card.location"}
only returns information about the mode, nothing about the location or GPS status.
However, when I swapped the WiFi notecard to the one with Cell + WiFi and moved the GPS antenna to it, the GPS status was true and I was able to get the location and GPS status.
What are some additional troubleshooting steps that I can take to try and fix this?
Hey @aaltieri,
The Notecard WiFi does not have a GPS module on it, so you will never see "gps": true
come back from {"req":"card.status"}
.
However, when using a Notecard WiFi that’s connected to a Starnote, your Notecard will use Starnote as an external GPS module, and you should see your {"req":"card.location"}
update if you have everything configured correctly.
A couple of things to check:
-
What firmware version is your Notecard WiFi using?
-
Can you share a picture of your hardware? If you’re using a u.FL Starnote, make sure you have the correct antennas connected to both the SAT
and GPS
connectors.
-
When you’re testing this, ensure your Starnote has a clear view of the sky. In my experience being near a window isn’t sufficient, and I need to be actually outdoors to get a GPS/GNSS location.
Thanks,
TJ
Sorry for taking so long to respond, it has been snowing like crazy the past few days so I haven’t had a good chance to go outside and test.
-
Here is the version I am using: "version": "notecard-s3-8.1.3"
-
Here is a picture of my notecard setup:
When I had said that I had swapped the GPS antenna, I had swapped it to the Cell + WiFi model (see picture below) and was able to get a GPS signal and status.
- I went outside for about 10 minutes, with the notecard in clear view of the sky but didn’t have any luck. I tried using
{"req": "card.location"}
to get the notecard to get its location but again, only the mode was returned and there was no "gps": true
when I used {"req":"card.status"}
.
No worries, and thanks for braving the cold to test this out.
From your pictures it looks like your setup for the Starnote + Notecard WiFi is correct, so it’s weird that you’re not getting a location back from Starnote.
I’ll set mine up tomorrow and see if I can recreate your problem. It’s cold here but we’ve avoided snow the last few days so my porch is clear at least 
TJ
Hey @aaltieri,
I think I might know what the problem is. The Notecard WiFi has its card.location.mode
set to "mode":"off"
by default (because it has no GPS/GNSS module on it).
Therefore, for your Notecard to try to get a location from Starnote you must change its card.location.mode
to "mode":"periodic"
or "mode":"continuous"
.
{"req":"card.location.mode","mode":"periodic","seconds":300}
{"req":"card.location.mode","mode":"continuous"}
Can you check and see what your Notecard WiFi’s card.location.mode
is currently set to? If it’s set to "mode":"off"
try using one of the requests above to see if that gets it working.
I was able to get mine to consistently return locations after enabling card.location.mode
.
And sorry for the trouble here. I’m going to circle back to the documentation once we get this sorted, as we definitely need to spell this out in the docs.
Thanks,
TJ
The location is currently set to mode: continuous
. I was using mode: continuous
when I was outside with the notecard powered through USB and mode: periodic
when I was travelling around with the notecard powered through the battery, neither of which provided a GPS status. I have also tried setting it to mode: fixed
and my current location because I had read that it can help the notecard establish a connection, but even then I was never able to connect.
Hmmmm,
Ok, let’s back up a little. Can you send me a list of the Notecard commands you’re running to set up your project?
For my own testing I factory reset a Notecard WiFi, and then ran the following commands:
{"req":"hub.set","product":"com.blues.tvantoll:test","mode":"periodic","inbound":60,"outbound":10}
{"req":"card.temp","minutes":5}
{"req":"card.location.mode","mode":"continuous"}
I then hooked up a LiPo battery, set the device outside and let it sit for a bit, and then confirmed my Notes had a tagged GPS location.
TJ
Here is the configuration that I have been using with my notecard
{"req":"ntn.reset"}
{"req":"card.restore","delete":true}
{"req":"env.default","name":"setup_script_version","text":"0.1.0"}
{"req":"card.transport","method":"wifi-ntn"}
{"req":"hub.set","product":"mynotehub","mode":"periodic","outbound":60,"inbound":720}
{"req":"note.template","file":"test.qo","format":"compact","port":55,"body":{"msg":"test"}}
{"req":"note.template","file":"location.qo","format":"compact","port":11,"body":{"_lat":14.1,"_lon":14.1,"_ltime":14,"_time":14,"_dop":11}}
{"req":"card.location.mode","mode":"periodic","seconds":900}
{"req":"card.location.track","start":true,"file":"location.qo","heartbeat":true,"hours":1}
{"req":"hub.sync"}
{"req": "env.get"}
{"req":"card.wifi","text":"_wifi"}
I have also attached a log of me setting up another starnote with cell+wifi notecards and then the starnote that I have been having trouble with.
notecard_setup.txt (4.9 KB)
I am starting to think it may just be an issue with the starnote/notecard itself since my other one seems to work fine.
Hey @aaltieri,
The only thing that jumps out at me is the syntax you’re using for card.wifi
is incorrect.
{"req":"card.wifi","text":"_wifi"}
You should use one of these instead.
{"req":"card.wifi","ssid":"mynetwork","password":"mypassword"}
{"req":"card.wifi", "text":"[\"mynetwork\",\"mypassword\"]"}
But, from your log you do have an SSID coming back from card.wifi
, so I’m going to assume you set your Wi-Fi credentials previously and just didn’t want to include that in your log.
So a few more questions:
-
Are you using the same Starnote for both these tests? I want to confirm that you’re just switching from a Notecard Cell+WiFi to a Notecard WiFi.
-
Are you getting data in Notehub from your Notecard WiFi? I want to confirm you have a working Wi-Fi connection.
-
Assuming yes for #2, can you share the JSON of one of your events sent over Wi-Fi? (A sample test.qo
event works fine.) If there’s any sensitive data in there feel free to mask/scrub it, or to send it to me in a DM. I want to see if you’re getting any location data coming through at all.
TJ
-
They are two separate Starnotes. The second one in the logs is the one that has been giving the issues. The first one I am going to do some further testing with today and make sure that one is working properly too.
-
With the wifi, I had set a project environment variable for _wifi and my goal was to be able to update that reserved variable to change the network access for all devices at once with the ability to still be able to override it at a device level. It is still weird that it gave an error for one of them but not the other, which leads me to a question as to how environment variables work. Do they behave more like pointers, where there is a specific location in memory that the notecard looks for when checking for a list of Wi-Fi networks and password and that value in memory can be changed at a project or device level through the _wifi
environment variable, or, do they behave more like key-value pairs, where the _wifi
keyword is resolved to its value and then it is up to the developer to tell the card to then use those values for it’s network credentials?
-
Here is one of the location.qo
events. I had put the notecard underneath the rear windshield of my sedan so it would have a good view of the sky since the windshield is much more horizontal than in other car models. I had gone from work, to the gym, to my house, and back but the only events that were generated were heartbeat events. Throughout my trip, all the locations that were sent along with the heartbeats had all pointed to my work location, regardless of where the device was at the time of the event being generated. The GPS polling period was set to a low period to where it would have polled multiple times while I was a considerable amount away from its previous known location and I am 100% positive the location mode was not set to fixed.
{
"event": "98bd0564-a904-8bb8-9291-9e9936a2e857",
"when": 1739203462,
"file": "location.qo",
"body": {
"jcount": 1,
"journey": 1739203458,
"status": "heartbeat",
"temperature": 23.8125,
"usb": true,
"voltage": 3.9355469
},
"session": "31002a48-b4f3-45e2-b4e9-0730cab8586d",
"transport": "wifi",
"best_id": "device_id",
"device": "device_id",
"product": "my_notehub",
"app": "app:6bc93f14-a11b-439d-8320-15b479809819",
"received": 1739203469.666831,
"req": "note.add",
"best_location_type": "triangulated",
"best_location_when": 1737728939,
"best_lat": lat_coord,
"best_lon": lon_coord,
"best_location": "city_state",
"best_country": "US",
"best_timezone": "time_zone",
"tri_when": 1737728939,
"tri_lat": lat_coord,
"tri_lon": lon_coord,
"tri_location": "city_state",
"tri_country": "US",
"tri_timezone": "time_zone",
"tri_points": 14,
"fleets": [
"fleet:9dfe1f24-8a90-448b-be42-c8a447e66a5a"
]
}
They are two separate Starnotes. The second one in the logs is the one that has been giving the issues. The first one I am going to do some further testing with today and make sure that one is working properly too.
Ah! Ok sorry I missed that earlier. And that sounds like a good plan. I’m very curious if Starnote #1 works with the WiFi-only Notecard.
With the wifi, I had set a project environment variable for _wifi and my goal was to be able to update that reserved variable to change the network access for all devices at once with the ability to still be able to override it at a device level. It is still weird that it gave an error for one of them but not the other, which leads me to a question as to how environment variables work. Do they behave more like pointers, where there is a specific location in memory that the notecard looks for when checking for a list of Wi-Fi networks and password and that value in memory can be changed at a project or device level through the _wifi
environment variable, or, do they behave more like key-value pairs, where the _wifi
keyword is resolved to its value and then it is up to the developer to tell the card to then use those values for it’s network credentials?
Reserved environment variables like _wifi
work like overrides, and will take precedence over any values you set on the device itself. By default we want values set remotely to win, as oftentimes this is necessary to recover a device. The logic the Notecard uses to pick an access point is covered in a bit more detail here: Connecting to a Wi-Fi Access Point - Blues Developers.
If you want to retain device-level overrides you’d have have to do that by setting a _wifi
environment variable on the device in Notehub.
Here is one of the location.qo
events. I had put the notecard underneath the rear windshield of my sedan so it would have a good view of the sky since the windshield is much more horizontal than in other car models. I had gone from work, to the gym, to my house, and back but the only events that were generated were heartbeat events. Throughout my trip, all the locations that were sent along with the heartbeats had all pointed to my work location, regardless of where the device was at the time of the event being generated. The GPS polling period was set to a low period to where it would have polled multiple times while I was a considerable amount away from its previous known location and I am 100% positive the location mode was not set to fixed.
The event you shared has a Wi-Fi triangulated location, which makes sense because that’s what the Wi-Fi Notecard will use if it doesn’t have an external GPS module attached. Your Starnote is supposed to be acting as an external GPS module here, but since the GPS is not working as intended this fallback is logical.
By default Notehub only performs one Wi-Fi triangulation daily, which would explain why you continue to get the same location in each new Note. There are some details on how things work here Using GPS/GNSS and Wi-Fi Triangulation Together Effectively - Blues Developers.
TJ
Starnote is supposed to be acting as an external GPS module here, but since the GPS is not working as intended this fallback is logical.
So, I have Starnote #1, Starnote #2, Wi-Fi #1, Wifi#2, and Cell/Wi-Fi #1 notecards with 2 Notecarrier XS’s. Both Starnotes do not return a GPS status or location when {"req":"card.location"}
is used with either Wi-Fi notecard. When either Starnote is connected to Cell/Wi-Fi #1 there is a GPS status but I believe that is it just trying to use the GPS that is on Cell/Wi-Fi #1. So the issue either lies in the Starnote itself or possibly the Notecarrier. Is there any way I can just use the Starnote by itself to see if I can get it to utilize it’s GPS?
There’s no way to interface with Starnote directly unfortunately.
Can you try one more test for me? Essentially I’m hoping to see if you can replicate what I did here. Basically reset your Wi-Fi Notecard as you have been doing.
{"req":"ntn.reset"}
{"req":"card.restore","delete":true}
And then run only these commands:
{"req":"hub.set","product":"yourproductuid","mode":"periodic","inbound":60,"outbound":10}
{"req":"card.temp","minutes":5}
{"req":"card.location.mode","mode":"periodic","seconds":300}
Plug in a lipo battery and set it outside with a clear view of the sky. Give it a few minutes, and then check your events in Notehub and see whether they have GPS-tagged locations.
I’m going to have some other people at Blues try this out as well. This is the simplest way I can come up with to isolate the Starnote’s GPS module to see if it’s working correctly.
TJ
It is still showing that the location type is triangulated
. The only time I was able to get a location type of gps
was when I had the antenna connected to the Cell+Wi-Fi card so it would use that card’s GPS instead of the Starnote.
No, I still haven’t been able to get the device to utilize the Starnote’s GPS.
1 Like
Alright, one more idea. Can you generate a trace log when your device is attempting to gather a location?
Probably the easiest way to do this is set your card.location.mode
to off.
{"req":"card.location.mode","mode":"off"}
Then enable the trace log
trace +gps
And then re-enable card.location.mode
, which will have the Notecard immediately attempt to get a GPS location.
{"req":"card.location.mode","mode":"continuous"}
Hopefully we’ll get some hint in the trace log for what’s wrong.
TJ
notecard_2025-02-19T13_52_17.log (13.4 KB)
Here is a log file following your instructions. I also sent you a DM with a log file that the customer support team had me send in case you find any useful information with that.
As one final idea can you try disabling NTN mode, ensuring you have a Wi-Fi connection and trying the same steps again? I’d like to see if the Starnote’s GPS module is working in isolation (with NTN out of the picture).
{"req":"ntn.reset"}
{"req":"card.transport","method":"wifi"}
{"req":"card.location.mode","mode":"off"}
trace +gps
{"req":"card.location.mode","mode":"continuous"}
If this fails we’ll follow up with support about your hardware, because I think I’m out of ideas.
TJ
notecard_2025-02-19T20_46_11.log (9.0 KB)
Unfortunately, no luck; still no GPS status or information. Only the mode is returned with {"req":"card.location"}
.
You can probably disregard the ‘not being able to connect to notehub’ errors because we have been having some firewall issues at my work.