Comments (5)
Thanks for this - when did you get your Bangle.js?
I just tried on a new Bangle and it's as you say. However I just tried on two different old Bangle.js and those produce BDGSV,GNRMC,GNVTG,GNZDA,GPTXT,GNGGA,GNGLL,GNGSA,GPGSV so at some point the firmware on the Bangle's GPS has been updated and I wasn't told by the manufacturer.
The protocol used for the GPS is called CASIC - there are a few threads on the forum if you search Google for: site:forum.espruino.com AT6558
or CASIC.
But it looks like sending Serial1.println("$PCAS03,1,1,1,1,1,1,0,1*03")
is enough to re-enable everything (after GPS is turned on) if you're interested in trying it.
So I guess we need to get Espruino to send that after the GPS is powered now :( Ideally we'd also be able to send some other info like estimated time/location, but it seems basically impossible to get information on how to do that
from espruino.
I got this one on FOSDEM. You may remember me, I was the one without suitable notebook, so we did updates from your cellphone. It was nice to meet you :-).
I can confirm that $PCAS03 fixes it, I get full data on the terminal, and "Run" application starts showing speed after that. Thank you!
from espruino.
Great! Yes, I do remember! Although FOSDEM was pretty hectic!
As a bit of a hack I've just updated assistedgps
in the app loader - so as long as someone runs that to get up to date GPS data, their Bangle will now end up being set up correctly until the next time the battery runs flat.
I'd be interested to see if anyone has any thoughts on how to fix this properly... @fanoush?
The GPS will only need setting up once after the battery has gone flat. What I'm considering is rather than baking this into the firmware, I add a new .bootonce
boot file type which only runs the very first time Bangle.js is started up - and then we can stick some JS in that to set up the GPS. We don't really want to have to do it every time the GPS is powered on, not least because we have to wait maybe 500ms for it to power up before it reliably accepts commands.
... Or I guess maybe more sensible is we detect when we're not getting the RMC packet, and if we're not then we send the command to enable it?
from espruino.
I'd be interested to see if anyone has any thoughts on how to fix this properly... @fanoush?
Not sure about the "properly' part but there is this in the documentation
maybe you could try to preset the device initially as you want and then try this?
The original Q3 firmware does have $PCAS03,0,0,0,0,0,0,0,0,0,0,0,0* template string and some parametrized method that sets few or them to 1 as requested. So maybe even enabling it when the speed monitoring is requested by some app and then disabling it again might be the way to save on serial traffic/power. But I guess it is just an unnecessary complication.
from espruino.
Thanks - that's interesting... I think just disabling GPS output when not needed isn't much help - I've got one on a power meter here and I see very little difference in power usage.
But yes, potentially it could be saved to flash - if I'd known about that before sending them out I could have done that here! So maybe I guess we could update the bootloader app such that when it was installed, some code ran just once at startup, checked the state of the GPS and then updated it if it was invalid? That might be the best option...
Another thing that occurred to me is that someone might well want to configure the GPS to only emit one type of event, and then tell it to output that very quickly (100ms seems possible) so we don't want the Bangle to immediately try and undo it if they try that.
from espruino.
Related Issues (20)
- `taskENABLE_INTERRUPTS`/`taskDISABLE_INTERRUPTS` causing panic resets on ESP32 HOT 2
- Unfreed block HOT 3
- Update mbedtls, uECC, maybe Tensorflow
- Puck.js onAccel callback speed is slow HOT 14
- Is position used in pipe? HOT 4
- Feature Suggestion: Mitigations for the security issues with Bluetooth HOT 1
- Uncaught InternalError: BLE task completed that wasn't scheduled (SERVICE/NONE) HOT 3
- substr not available HOT 2
- ASSERT(!foundPrototype) FAILED AT src/jsparse.c:2690 HOT 3
- ASSERT((!jsvGetNextSibling(var) && !jsvGetPrevSibling(var)) || jsvIsRefUsedForData(var) || (jsvIsName(var) && (jsvGetNextSibling(var)==jsvGetPrevSibling(var))))
- ASSERT(jsvIsInt(v)) FAILED AT src/jsvar.c:2035
- ASSERT(jsvHasChildren(obj)) FAILED AT src/jsvar.c:3015
- ASSERT(jsvHasCharacterData(str)) FAILED AT src/jsvariterator.c:256
- ASSERT(!a || jsvIsName(a)) FAILED AT src/jsparse.c:1604
- ASSERT(size==0) FAILED AT src/jsvar.c:326 ASSERT(ref <= jsVarsSize) FAILED AT src/jsvar.c:223 HOT 4
- ESP32 build with esp-idf 4.4.4 HOT 17
- Promise.all([]) should complete immediately!
- SAVE_ON_FLASH could remove the binary search for symbols
- Bangle.js2: Recycled touch event position with long running timeouts HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from espruino.