Отправка команд PUBX на плату GPS (Ublox NEO-6M) через SoftwareSerial

У меня возникли проблемы с анализом предложений NMEA, поступающих с платы GY-NEO6MV2 (https://www.cytron.io/ p-gps-neo6mv2), используя библиотеку TinyGPS (https://github.com/mikalhart/TinyGPS) . Сама плата GPS подключена к Arduino Pro Mini 3v3 8 МГц (ATmega328)

Прежде всего, чтобы начать отладку, я хочу отключить все предложения NMEA, кроме GGA и RMC (единственные, которые мне нужны для этого проекта)

Согласно руководству, это можно сделать, отправив команды PUBX через SoftwareSerial (бинарный UBX не нужен)

Я делаю это следующим образом

#include <SoftwareSerial.h>
#include <TinyGPS.h>

// software serial GPS
// Общие контакты с (MISO 12/MOSI 11), используемыми для SPI

#define GPS_RX_PIN 12
#define GPS_TX_PIN 11

TinyGPS gps;
SoftwareSerial GPSSerial(GPS_RX_PIN, GPS_TX_PIN);

void setup()  
{
  Serial.begin(115200);
  GPSSerial.begin(9600);

      GPSSerial.print("$PUBX,40,GLL,0,0,0,0*5C\r\n");
      GPSSerial.print("$PUBX,40,ZDA,0,0,0,0*44\r\n");
      GPSSerial.print("$PUBX,40,VTG,0,0,0,0*5E\r\n");
      GPSSerial.print("$PUBX,40,GSV,0,0,0,0*59\r\n");
      GPSSerial.print("$PUBX,40,GSA,0,0,0,0*4E\r\n");
}

void loop()
{
// ...
}

Однако плата GPS не будет реагировать на эти команды и продолжит отправлять все предложения NMEA.

Кстати, это исходный код, на котором я создаю свой проект - https://github.com/billygr/arduino-aprs-tracker/blob/master/arduino-aprs-tracker.ino

Будем признательны за любые мысли...

, 👍1


1 ответ


1

Я попробовал ваш код, отправляющий эти команды PUBX в модуль ublox, и у меня они успешно работают.

В Интернете много фейков с использованием чипов AT6558, переупакованных под ublox. Проверьте сообщения GPTXT, которые выводятся при включении модуля GPS, чтобы узнать, действительно ли это модуль ublox или подделка, например:

$GPTXT,01,01,02,MA=CASIC*27
$GPTXT,01,01,02,HW=ATGM332D,0080113573899*18
$GPTXT,01,01,02,IC=AT6558-5N-31-0C500000,J7M911C-B2-008827*50
$GPTXT,01,01,02,SW=URANUS4,V4.3.0.5*18
,