boolean Camera::begin(uint32_t baud) { hwSerial->begin(38400); delay(15); if (baud != 38400) { changeBaudRate(); hwSerial->begin(115200); delay(15); return true; } return reset(); }
// Load settings into gps module bool MAXM8interface::config() { // Check to see if GPS is configured by sending request for data Serial3.begin(115200); if (sendUntilAck(g::ubx_cfg_ant, 8)) { //Serial.println("GPS already configured."); return true; // Good to go! } //Serial.println("GPS is not configured."); // GPS did not respond at pre-configured baud rate, so try default Serial3.begin(9600); if (!sendUntilAck(g::ubx_cfg_ant, 8)) { //Serial.println("GPS not responding."); return false; // Comm error? } // GPS responded at default comm rate, so it needs configuring if (!changeBaudRate()) { //Serial.println("GPS baud rate could not be configured."); return false; } int cfgFailure = 0; // Start sending settings en masse if (!sendUntilAck(g::ubx_cfg_gnss, 48)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_itfm, 12)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_logfilt, 16)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_nav5, 40)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_navx5, 44)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_nmea, 24)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_odo, 24)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_pm2, 48)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_rate, 10)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_rinv, 28)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_sbas, 12)) cfgFailure++; if (!sendUntilAck(g::ubx_cfg_usb, 112)) cfgFailure++; for (int i = 0; i < 3; i++) { if (!sendUntilAck(g::ubx_cfg_inf[i], 14)) cfgFailure++; } for (int i = 0; i < 50; i++) { if (!sendUntilAck(g::ubx_cfg_msg[i], 12)) cfgFailure++; } for (int i = 0; i < 4; i++) { if (i != 1) // UART1 cfg already sent and confirmed if (!sendUntilAck(g::ubx_cfg_prt[i], 24)) cfgFailure++; } for (int i = 0; i < 2; i++) { if (!sendUntilAck(g::ubx_cfg_tp5[i], 36)) cfgFailure++; } if (cfgFailure == 0) return true; else return false; }