For the life of me, I cannot get my notecard to get a GPS fix. Here is my setup:
Notecard Cellular - Wideband Cat 1
Starnote w/ onboard antennas
Notecarier XS 2x Molex antennas - 1 plugged into main and 1 plugged into gps on the notecard
Right out of the gate I did the Starnote quickstart guide. I then reset the notecard (but didn’t perform the ntn reset command)
After performing an initial sync to get the time, I set up the notecard to sync only manually with this command:
{"req":"hub.set","mode":"minimum"}
Then I set the device to sample the location every 60 seconds with this command:
Another update: Connected my StarNote and changed nothing else. Performed an initial sync, then nothing. Same trace as before. never gets to the “GPS Search” messages
I Confirmed that gps stops working as soon as I attach the Starnote.
I notice on the trace, that it stops even attempting to power up the modem to get the location when the starnote is attached, which I assume is because it’s using the StarNote’s gps?
Can you provide the card.location.track command you sent as well? I’m assuming you have done this, since I see mention of “journey” in the trace log.
Also, I might just try a less aggressive cadence of ascertaining GPS location by extending the seconds argument of your card.location.mode request, just to see if that changes anything:
Ok I’ve extending the period to be 600 seconds. Like before, I’m able to get a gps fix no problem prior to connecting the StarNote. As soon as I connect it, it stops working.
The thing I’ve noticed is that there are no longer messages about powering up the modem when trying to get a gps location after connecting the Starnote. This is what it outputs instead:
S28:26.64 sync: wakeup: gps poll
S28:26.64 _log.qo: gpsmax: requesting initial GPS refresh: period:600s c:0 f:0 m:1
S28:26.64 sync: wakeup: gps initiate
S28:26.73 sync: next wake-up due in 15m 0s to check on journey's progress
G28:26.81 accel: movements:26 free-falls:0 5s:1000000000000000000000000000000000000000000000000
G28:27.32 accel: movements:27 free-falls:0 5s:2000000000000000000000000000000000000000000000000
G29:14.29 journey: unless we start moving, the journey will end in 253 secs
G29:33.09 journey: unless we start moving, the journey will end in 235 secs
G29:51.88 journey: unless we start moving, the journey will end in 216 secs
G30:01.28 _log.qo: gpsmax: cancelling GPS seek: no signal after 90 seconds
G30:01.33 track: 2025-03-31T16:26:43Z added note 1743438308:1 (4.28)
G30:01.33 sync: wakeup: gps cancel
The device and the antennas are in the exact same location before and after connecting the starnote
We’re still looking into this and trying to replicate the issue. In the meantime, I’d be very curious if you wanted to downgrade your Notecard’s firmware to 7.4.2 and try these steps again. We made some significant improvements since that time, but I have a nagging worry that a regression may have slipped in. Doubtful, but worth an attempt while we continue to work on this!
Hey Rob,
I went ahead and downgraded to 7.4.2 and I’ve got some good news and bad news.
The good news is that it still doesn’t work so maybe it wasn’t a regression.
The bad news…It still doesn’t work. Exact same behavior as before. Has no problem powering up the modem and getting a location until I plug in the Starnote. As soon as I perform the ntn.reset command, it goes back to working.
Thanks for looking into this with me! I really appreciate your time
I have a couple additional debugging steps for you to consider as we work through this. (As an aside, make sure you are back on at least 7.5.2 or even better LTS 8.1.4!).
1. Verify GPS on Starnote is Functional
Let’s make sure that the GPS module on Starnote is functioning correctly. In this test we will essentially only use Starnote as an “external GPS” module for Notecard.
{"req": "card.restore", "delete": true} // factory reset notecard
{"req": "ntn.reset"} // reset ntn mode
{"req": "hub.set", "mode": "continuous", "product": "xxx"} // enable continuous cell connection (can be periodic too)
{"req": "card.location.mode", "mode": "continuous"} // enable continuous GPS location gathering (can be periodic, but must provide "seconds" if so)
{"req": "card.aux.serial", "mode": "gps"} // enable usage of Starnote as GPS for Notecard
Give it some time outdoors with a clear view of the sky. Test location changes with repeated card.location requests:
{"req": "card.location"}
2. Force Starnote to use Notecard’s GPS Module
If there are problems with Starnote’s GPS module, let’s try switching to use the Notecard’s. We just documented the ntn.gps request, which allows you to force Starnote to use Notecard’s GPS instead of its own.
Configure Notecard/Starnote as you did earlier in this thread, just making sure you also issue this command:
Hey Rob! Thanks for the detailed response. We made some progress! I went ahead and upgraded back to 7.5.2
So I went ahead and walked through these steps with one caveat. I disconnected the starnote because what I had found was that the notecard doesn’t see it after a reset until I unplug and plug it back in. I allowed the notecard to get the gps fix using its onboard gps first:
{"req": "hub.set", "mode":"minimum"}
{}
S02:37.03 16 req + 1 rsp = 17 byte network transaction
S02:37.08 checkpointAllNoteboxes {checkpointed} _notefiles.json
S02:37.33 checkpointAllNoteboxes {checkpointed} _env.dbs
S02:37.50 sync: work to be done:
S02:37.51 upload _env.dbs
S02:37.55 sync: work: upload _env.dbs (1 changes) {sync-get-local-changes}
S02:37.56 sync: request: merge notefile: _env.dbs
S02:37.82 352 req + 1 rsp = 353 byte network transaction
S02:37.86 sync: work to be done:
S02:37.86 upload _env.dbs
S02:37.90 sync: work: completed {sync-end}
S02:37.90 sync: advancing last sync time from 16:55:44Z to 16:57:04Z
S02:38.06 lwip: waiting for mbox to be idle (msgs:0 queues:2 sems:1 mutexes:1)
S02:38.52 sync: network: request socket shutdown {socket-disconnected}
S02:38.53 sync: network: session closed {socket-closed-session}
S02:38.53 sync: notehub: closed notehub {notehub-disconnected}
S02:38.53 lwip: sending RST to remote host packet:17134 ackno:883975464
S02:39.06 lwip: closed
S02:39.06 sync: network: LWIP terminated (sent:73 rcvd:18) {socket-ip-term}
S02:39.06 lwip: tcp task deactivated (msgs:0 queues:1 sems:0 mutexes:1)
S02:39.07 sync: wireless: modem disconnect requested {cell-disconnect-begin}
S02:39.07 sync: wireless: idle {disconnecting} {transport}
S02:39.07 sync: wireless: idle {disconnected} {transport}
M02:39.31 modem: wireless: idle {disconnecting} {transport}
S02:39.32 modem: waiting for shutdown
M02:39.50 modem: powering down
M02:40.19 usage: adding 14859+19459=34318 to sent+rcvd bytes [197743/1249377]
M02:40.20 usage: adding 2+2=4 to TCP/TLS sessions [39/29]
M02:40.20 usage: adding 17+3=20 to sent+rcvd notes [169/20]
M02:40.21 modem: wireless: modem now OFF {modem-off}
M02:40.21 modem: **********************************
M02:40.21 modem: active for 129 sec
M02:40.22 modem: user tx+rx=total: 9506+8201=17707 (49.7% of total)
M02:40.22 modem: tls tx+rx=total: 11911+14392=26303 (overhead of 8596, 24.1% of total)
M02:40.23 modem: ppp tx+rx=total: 15552+20082=35634 (overhead of 9331, 26.2% of total)
M02:40.23 modem: ota tx+rx=total: 14859+19459=34318 (to/from tower, not to/from modem)
M02:40.23 modem: **********************************
M02:45.27 sync: wakeup: modem shutdown
M02:45.37 modem: wireless: idle {disconnected} {transport}
S02:45.43 sync: wireless: modem disconnected {cell-disconnected}
S02:47.99 sync: next wake-up due in 24h 0m 0s for housekeeping
T02:49.19 lwip: IP deactivated to conserve energy
>
{"req": "card.location.mode", "mode": "continuous"}
{"mode":"continuous"}
~ Each multi-line request object is sent on one line to conform to NDJSON.
S02:59.63 sync: network: LWIP terminated (sent:0 rcvd:0) {socket-ip-term}
S02:59.65 sync: connect requested by GPS (GPS)
S02:59.66 connect: 4.29V 23.00C before comms power-on (2025-04-01T16:57:26Z UTC)
S02:59.66 apn: for a.notefile.net using apn a-notehub.com.attz
S02:59.66 sync: wireless: domain a.notefile.net using APN a-notehub.com.attz
S02:59.67 sync: wireless: starting communications {wait-module} {connecting} {transport}
S02:59.68 modem: beginning power-on sequence
S03:03.65 modem: *************** ON ***************
S03:03.65 sync: wireless: modem now ON {modem-on}
M03:07.87 modem: suppressing registration
G03:11.59 GPS search (1 sec, 0/0 dB SNR, 0/0 sats, HDOP 0.00)
M03:11.83 gpsmax: modem powered up in gps mode
M03:11.87 modem: wireless: connected {connected-closed} {transport}
M03:11.88 _log.qo: gpsmax: requesting GPS refresh: modem's GPS is ready
S03:11.92 sync: next wake-up due in 24h 0m 0s for housekeeping
G03:16.59 GPS search (6 sec, 35/35 dB SNR, 0/1 sats, HDOP 0.00)
G03:16.93 accel: movements:1 free-falls:0 5s:10000000000000000000000000000000
G03:21.59 GPS search (11 sec, 34/36 dB SNR, 0/2 sats, HDOP 0.00)
G03:26.60 GPS search (16 sec, 34/36 dB SNR, 0/3 sats, HDOP 0.00)
G03:31.62 GPS search (21 sec, 37/37 dB SNR, 0/9 sats, HDOP 0.00)
G03:33.43 GPS updated to 85HCP5WH+VP7X
G03:33.43 sync: wakeup: gps update (no refresh needed)
S03:33.45 sync: next wake-up due in 24h 0m 0s for housekeeping
G03:37.42 GPS updated (27 sec, 39/39 dB SNR, 6/13 sats, HDOP 1.40)
G03:39.42 GPS updated to 85HCP5WH+RPXH
G03:39.42 sync: wakeup: gps update (no refresh needed)
S03:39.44 sync: next wake-up due in 24h 0m 0s for housekeeping
G03:42.43 GPS updated (32 sec, 39/39 dB SNR, 6/13 sats, HDOP 1.00)
G03:44.43 GPS updated to 85HCP5WH+RQPQ
G03:44.43 sync: wakeup: gps update (no refresh needed)
S03:44.44 sync: next wake-up due in 24h 0m 0s for housekeeping
G03:47.43 GPS updated (37 sec, 39/39 dB SNR, 6/14 sats, HDOP 1.00)
G03:49.43 GPS updated to 85HCP5WH+RQHG
G03:49.43 sync: wakeup: gps update (no refresh needed)
S03:49.45 sync: next wake-up due in 24h 0m 0s for housekeeping
G03:52.43 GPS updated (42 sec, 40/40 dB SNR, 6/14 sats, HDOP 1.00)
G03:54.43 GPS updated to 85HCP5WH+RQH5
G03:54.43 sync: wakeup: gps update (no refresh needed)
G03:57.43 GPS updated (47 sec, 39/40 dB SNR, 5/16 sats, HDOP 1.20)
G03:59.43 GPS updated to 85HCP5WH+RRC2
G03:59.43 sync: wakeup: gps update (no refresh needed)
G04:02.43 GPS updated (52 sec, 39/40 dB SNR, 5/16 sats, HDOP 1.20)
G04:04.43 GPS updated to 85HCP5WH+RRC2
G04:04.43 sync: wakeup: gps update (no refresh needed)
S04:04.45 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:07.43 GPS updated (57 sec, 39/40 dB SNR, 4/16 sats, HDOP 1.20)
G04:09.43 GPS updated to 85HCP5WH+RQH5
G04:09.44 sync: wakeup: gps update (no refresh needed)
G04:12.43 GPS updated (62 sec, 39/40 dB SNR, 5/16 sats, HDOP 1.00)
G04:15.43 GPS updated to 85HCP5WH+RRC2
G04:15.43 sync: wakeup: gps update (no refresh needed)
S04:15.44 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:17.43 GPS updated (67 sec, 38/40 dB SNR, 6/17 sats, HDOP 1.00)
G04:20.43 GPS updated to 85HCP5WH+RRC2
G04:20.44 sync: wakeup: gps update (no refresh needed)
S04:20.45 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:22.44 GPS updated (72 sec, 39/40 dB SNR, 7/17 sats, HDOP 0.80)
G04:25.43 GPS updated to 85HCP5WH+RRC2
G04:25.44 sync: wakeup: gps update (no refresh needed)
G04:27.44 GPS updated (77 sec, 39/40 dB SNR, 7/17 sats, HDOP 0.80)
G04:31.43 GPS updated to 85HCP5WH+RQH5
G04:31.43 sync: wakeup: gps update (no refresh needed)
S04:31.44 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:32.44 GPS updated (82 sec, 39/40 dB SNR, 7/17 sats, HDOP 0.80)
G04:36.43 GPS updated to 85HCP5WH+RQH5
G04:36.43 sync: wakeup: gps update (no refresh needed)
S04:36.45 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:37.44 GPS updated (87 sec, 39/40 dB SNR, 7/17 sats, HDOP 0.80)
G04:41.43 GPS updated to 85HCP5WH+RQH5
G04:41.43 sync: wakeup: gps update (no refresh needed)
G04:42.44 GPS updated (92 sec, 39/40 dB SNR, 7/17 sats, HDOP 0.80)
G04:47.43 GPS updated to 85HCP5WH+RQH5
G04:47.43 sync: wakeup: gps update (no refresh needed)
S04:47.44 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:47.45 GPS updated (97 sec, 39/40 dB SNR, 7/17 sats, HDOP 0.80)
G04:52.43 GPS updated to 85HCP5WH+RQH5
G04:52.43 sync: wakeup: gps update (no refresh needed)
S04:52.45 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:52.46 GPS updated (102 sec, 37/40 dB SNR, 6/17 sats, HDOP 0.90)
G04:53.71 accel: movements:2 free-falls:0 5s:10000000000000000001000000000000
G04:56.26 accel: movements:3 free-falls:0 5s:20000000000000000001000000000000
G04:57.43 GPS updated to 85HCP5WH+RQH5
G04:57.43 sync: wakeup: gps update (no refresh needed)
G04:57.46 GPS updated (107 sec, 37/40 dB SNR, 7/17 sats, HDOP 0.80)
Then I plugged in the Starnote which immediately stopped any sort of gps readout:
When switching scenarios between 1 and 2, make sure you’re performing a card.restore/delete:true request to reset all relevant configs on the Notecard. For instance, without resetting the card.location.mode and card.aux.serial request values, I’m not sure what the behavior would be when issuing ntn.gps/on:true.
Hey @RobLauer ,
Thanks again for all the help here.
When I go the route of enabling the use of the StarNote as an external gps, the issue I’m having now is that once the Starnote gps is awake, it never goes back to sleep, even when I have the location.mode set to periodic at 300 seconds from the very get-go.
I don’t mind using the Starnote as an external gps module because it would mean one less antenna to fit in my enclosure. However, this is a low power project so I can’t afford to have the unit continually running.
Is there a Starnote command I’m missing that I can issue to have the Starnote wake up periodically?
Sorry - I may not have been totally clear in my previous message. After you ran through the steps I provided in the Verify GPS on Starnote is Functional section, you ideally should factory reset your Notecard with a card.restore/delete:true request. This will effectively reset the GPS settings on Notecard/Starnote and break you out of that cycle by telling the Notecard to no longer use Starnote as an external GPS.
Once that is done, try setting up your Starnote again like you did in the beginning of this thread, but use the {"req": "ntn.gps", "on": true} command to force Starnote to try and use your Notecard’s GPS.
Hey Rob! No my apologies on my end. I haven’t communicated things very clearly.
I’ll start with what I’m trying to accomplish. My end goal is to build a low power gps tracker that updates and stores its location every 5 minutes or so and then uploads that data once or twice a day to the notehub. I want the device to have satellite fallback, thus the Starnote.
Without the Starnote attached, the Notecard powers up the modem and gets a gps lock flawlessly. However as soon as the Starnote is connected, it no longer seems to attempt to power on the modem and usually gives this output:
{"req": "card.location.mode", "mode": "periodic", "seconds":300}
{
"seconds": 300,
"mode": "periodic"
}
~ Each multi-line request object is sent on one line to conform to NDJSON.
S03:40.18 sync: next wake-up due in 24h 0m 0s for housekeeping
G03:40.26 accel: movements:7 free-falls:0 5s:100000000001110000000000000000000000000012
> { "req":"card.location" }
{
"status": "GPS waiting to start {gps-starting} {gps-active}",
"mode": "periodic",
"lat": 41.74961750000001,
"lon": -111.81605859375,
"dop": 20,
"time": 1743623484
}
S04:31.99 sync: next wake-up due in 24h 0m 0s for housekeeping
G04:32.07 accel: movements:8 free-falls:0 5s:1000000000100000000001110000000000000000000000000
G04:57.47 _log.qo: gpsmax: cancelling GPS seek: no signal after 90 seconds
G04:57.48 _log.qo: gps: unable to refresh after 90 sec (no NMEA data)
G04:57.48 sync: wakeup: gps cancel
And just to clarify further, this is just an issue with getting an updated location for tracking purposes. The Starnote itself doesn’t seem to have in issue getting an updated location when performing an NTN uplink.
When I went through your Verify GPS on Starnote is Functional section, I was able to verify that the Starnote’s GPS does in fact work and does update the gps location, albeit doing so continuously without regard to the location.mode being set to periodic.
Using the Starnote as an external GPS source got me thinking that it might be nice to just use that moving forward instead of trying to cram one more GPS antenna into my enclosure. This is what my previous message was to referring to when I asked if there was a command that I was missing that could have the Starnote update the location on the cadence set by the notecard instead of continuously.
Now, I went ahead and reset my card and the Starnote, and set it up to update the location once every 5 minutes and then issued the command {“req”: “ntn.gps”, “on”: true} (but I assume this is only useful for the Starnote when it is trying to get a location before it performs an uplink via NTN?)
Unfortunately, I still cannot get the Notecard to get an updated gps location and the card.location status doesn’t ever get beyond ''status": "GPS waiting to start {gps-starting} {gps-active}"
Let me know if there is anything else I can clarify, try, or anything I’m missing.
I really appreciate you helping me work through this.
After much debugging, I think we’ve found the root cause of this behavior and it appears to be a bug in the Notecard firmware. Our team is actively working on a fix and it should be in the next developer release of our firmware. I don’t have a specific date for you right now on that release yet, but it should be available by the end of the month. Sorry to put you through these struggles!