I'm building a near space balloon that will be tracking particulate matter levels at high altitudes. I'm building a data logger from the instructions from "The Ultimate High Altitude Weather Balloon Data Logger" by Aaron Price on Instructables. I'm using an Arduino Nano. It will log GPS location and temperature data to an SD card. I've built the entire component and have uploaded the code, but when I attempt to use it I am getting an error message of:
On the Instructables page, this error code is said to mean that the GPS unit is plugged in incorrectly. However, it is plugged in correctly and I have checked to ensure the continuity of all solder points and made sure the voltage going to the GPS is correct.
My question is, is there a way to test to make sure the GPS unit actually works?
Since the rest of the component is working great (SD card logger is blinking as it should be), the only thing I can think of is the GPS is broken or fried, or was affected by static, which given my lack of soldering experience could be the case although it doesn't look fried and there is no discoloration or burn marks anywhere on the GPS unit.
I have very little experience with Arduino, so any help is appreciated.
This program will echo the output of the GPS to the serial monitor, there should be output even if the GPS is indoors.
Change the software serial pin assignements to match your setup;
/*******************************************************************************************************
Program Operation - This is a simple program to test a GPS. It reads characters from the GPS using
software serial and sends them (echoes) to the IDE serial monitor. If your ever having problems with
a GPS (or just think you are) use this program first.
If you get no data displayed on the serial monitor, the most likely cause is that you have the receive
data pin into the Arduino (RX) pin connected incorrectly.
GPS baud rate set at 9600 baud, Serial monitor set at 115200 baud. If the data displayed on the serial
terminal appears to be random text with odd symbols its very likely you have the GPS serial baud rate
set incorrectly for the GPS.
Note that not all pins on all Arduinos will work with software serial, see here;
https://www.arduino.cc/en/Reference/softwareSerial
Serial monitor baud rate is set at 115200.
*******************************************************************************************************/
#define RXpin A3 //this is the pin that the Arduino will use to receive data from the GPS
#define TXpin A2 //this is the pin that the Arduino can use to send data (commands) to the GPS - not used
#include <SoftwareSerial.h>
SoftwareSerial GPS(RXpin, TXpin);
void loop()
{
while (GPS.available())
{
Serial.write(GPS.read());
}
}
void setup()
{
GPS.begin(9600);
Serial.begin(115200);
Serial.println("GPS_Echo Starting");
}
that is the exact message that I see on the serial monitor. Im trying the test code that you sent. That was exactly what I was looking for, so thank you!
I've let the code run for about 10 minutes inside, and the only thing coming up on the serial monitor is "GPS_Echo Starting"
Does it matter that I'm inside? And should anything else come up besides that?
I swapped them, and now am getting inputs. It looks like the GPS is working.
Ex: "$GNGLL,,,,,174026.00,V,N*52"
Does this mean that there is most likely a code issue with the Data Logger that I'm building if the GPS is working for this code but giving an error for the Data Logger?
Well, as I said in #6, that the error response is not valid, so whether just that is a code problem or you just had the TX and RX reversed, who knows, you have the hardware.
If the GPS is reporting the time "174026.00" and that is close to UTC, then its working.
Although those little ceramic sticks are failrly poor antennas, OK for a balloon that has a good view of the horizon, but first fix times can several minutes outdoors at ground level.