• I have tried exactly the same approach and nothing comes back. On Bangle1 sending CASIC commands via Serial1. write() would cause the response to come back via the GPS-raw callback but this does not happen on Bangle 2. Something we need @Gordon to comment on in the new year.

  • @HughB, I suspect we do not get response because
    a) we call requests incorrectly. In the doc there are no description how to call a query, and no examples. Same as you, I just assume a query call should have no payload. That may be wrong assumption.
    also there may be "a switch" that switches from NMEA to CASIC mode.

    b) the particular chip cannot not talk in CASIC mode. Just in NMEA.

  • In the doc there are no description how to call a query, and no examples.

    All programming datasheets are like this. As I said in one of my other comments its rather like being taught to play chess with only a list of the moves, and no example of a real game.

    I just assume a query call should have no payload.

    Its a correct assumption. Its actually documented. Look at CFG-PRT. There are 2 types. One for enquiry and one for setting. The inquiry version has no payload - so length is set to 0x00, 0x00 and payload is left to blank.

    So far I have been trying CFG-PRT and CFG-RATE with no payload. Calculating the checksum is a bit tricky, but when the payload is zero bytes you dont need to do the loop bit of the calculation. Here's the examples of what I have been trying so far.

    function prt() {
      // CFG-PRT          head       len clas   id  checksum
      //             --------- --------- ---------  -------------------
              print([0xBA,0xCE,0x00,0x00,0x06,0x00, 0x00,0x06,0x00,0x00]);
      Serial1.write([0xBA,0xCE,0x00,0x00,0x06,­0x00, 0x00,0x06,0x00,0x00]);
    }
    

    I have found an example of the manufacturer sending assisted GPS data.
    I will share a post on that seperately.

About

Avatar for Mark_M @Mark_M started