Introduction: HackerBoxes 0021: Hacker Tracker

Picture of HackerBoxes 0021: Hacker Tracker

Hacker Tracker: This month, HackerBox Hackers are experimenting with data logging, satellite positioning, and location tracking. This Instructable contains information for working with HackerBoxes #0021. If you would like to receive a box like this right in your mailbox each month, now is the time to subscribe at HackerBoxes.com and join the revolution!

Topics and Learning Objectives for HackerBox 0021:

  • Set up the Arduino integrated development environment
  • Configure a USB-Serial bridge for the Arduino Nano
  • Modify and upload program code to the Arduino Nano
  • Read and Write data from the Nano to a flash memory card
  • Retrieve data logged to flash memory into a computer
  • Set up a GPS satellite positioning module
  • Log GPS location data to flash memory
  • Retrieve logged GPS data and load it into a mapping system

HackerBoxes is the monthly subscription box service for DIY electronics and computer technology. We are hobbyists, makers, and experimenters. And we are the dreamers of dreams.

Step 1:

Picture of

Step 2: HackerBoxes 0021: Box Contents

Picture of HackerBoxes 0021: Box Contents
  • HackerBoxes #0021 Collectable Reference Card
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • NEO-6M GPS Module with Integrated Antenna
  • MicroSD Card Reader Module
  • GY-273 Three-Axis Magnetometer
  • 16GB MicroSD Flash Card
  • Deluxe Surface Mount PCB Ruler
  • MicroUSB Cable
  • Tiny USB MicroSD Card Adapter
  • Solderless Breadboard
  • Jumper Wire Set (65 pieces)
  • Exclusive HackerBoxes "Hardware Hackers" Decal

Some other things that will be helpful:

  • Soldering iron, solder, and basic soldering tools
  • USB 5V Rechargeable Power Bank
  • Computer with Arduino IDE

Most importantly, you will need a sense of adventure, DIY spirit, and hacker curiosity. Hardcore DIY electronics is not a trivial pursuit. It's a real challenge and when you persist and enjoy the adventure, a great deal of satisfaction can be derived from learning new technology and hopefully getting some projects working. Just take each step slowly, mind the details, and don't hesitate to ask for help.

FREQUENTLY ASKED QUESTIONS: We would like to ask all HackerBox subscribers a really big favor. Please take a moment to review the FAQ on the website prior to contacting support. The HackerBoxes membership numbers have grown and grown, which is awesome. THANK YOU! However, we are now spending an ever-increasing amount of time answering support emails. Sometimes, several hours a day. While we obviously want to help all members as much as needed, over 80% of our support emails ask simple questions that are very clearly addressed in the FAQ. Tending to these unnecessary inquiries is quite inefficient and takes time away from the creative aspects of our educational mission. And let's be frank, we know that you already understand how tracking numbers work. If you just want to reach out and make conversation, we can certainly come up with something a little more interesting to discuss. Thank you for understanding!

Step 3: Arduino Nano

Picture of Arduino Nano

The Arduino Nano is a surface-mount, breadboard-friendly, miniaturized Arduino board with integrated USB. It is amazingly full-featured and easy to hack.

Features:

  • Microcontroller: Atmel ATmega328P
  • Voltage: 5V
  • Digital I/O Pins: 14 (6 PWM)
  • Analog Input Pins: 8
  • DC Current per I/O Pin: 40 mA
  • Flash Memory: 32 KB (2KB for bootloader)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Clock Speed: 16 MHz
  • Dimensions: 17mm x 43mm

This particular variant of the Arduino Nano is the black Robotdyn design. The interface is by an on-board MicroUSB port that is compatible with the same MicroUSB cables used with many mobile phones and tablets.

Arduino Nanos feature a built-in USB/Serial bridge chip. On this particular variant, the bridge chip is the CH340G. Note that there are various other types of USB/Serial bridge chips used on the various types of Arduino boards. These chips allow you computer's USB port to communicate with the serial interface on the Arduino's processor chip.

A computer's operating system requires a Device Driver to communicate with the USB/Serial chip. The driver allows the IDE to communicate with the Arduino board. The specific device driver that is needed depends upon both the OS version and also the type of USB/Serial chip. For the CH340 USB/Serial chips, there are drivers available for many operating systems (UNIX, Mac OS X, or Windows). The maker of the CH340 supplies those drivers here.

When you first plug the Arduino Nano into a USB port of your computer, the green power light should come on and shortly after the blue LED should start to blink slowly. This happens because the Nano is pre-loaded with the BLINK program, which is running on the brand new Arduino Nano.

Step 4: Arduino Integrated Development Environment (IDE)

Picture of Arduino Integrated Development Environment (IDE)

If you do not yet have the Arduino IDE installed, you can download it from Arduino.cc

If you would like additional introductory information for working in the Arduino ecosystem, we suggest checking out the instructions for the HackerBoxes Starter Workshop.

Plug the Nano into the MicroUSB cable and the other end of the cable into a USB port on the computer, launch the Arduino IDE software, select the appropriate USB port in the IDE under tools>port (likely a name with "wchusb" in it). Also select "Arduino Nano" in the IDE under tools>board.

Finally, load up a piece of example code:

File->Examples->Basics->Blink

This is actually the code that was preloaded onto the Nano and should be running right now to slowly blink the blue LED. Accordingly, if we load this example code, nothing will change. Instead, let's modify the code a little bit.

Looking closely, you can see that the program turns the LED on, waits 1000 milliseconds (one second), turns the LED off, waits another second, and then does it all again - forever.

Modify the code by changing both of the "delay(1000)" statements to "delay(100)". This modification will cause the LED to blink ten times faster, right?

Let's load the modified code into the Nano by clicking the UPLOAD button (the arrow icon) just above your modified code. Watch below the code for the status info: "compiling" and then "uploading". Eventually, the IDE should indicate "Uploading Complete" and your LED should be blinking faster.

If so, congratulations! You have just hacked your first piece of embedded code.

Once your fast-flash version of blink is loaded and running, why not see if you can you change the code again to cause the LED to blink fast twice and then wait a couple of seconds before repeating? Give it a try! How about some other patterns? Once you succeed at visualizing a desired outcome, coding it, and observing it to work as planned, you have taken an enormous step toward becoming a competent hardware hacker.

Step 5: Battery Power

Picture of Battery Power

While working with the code on the Nano, we use the MicroUSB cable connected to a PC. This cable also supplies power to the Nano.

The easiest way to switch over to mobile (that is, battery powered) operation is to simply plug the USB cable into a USB 5V Power Bank, like this one.

A slightly more integrated option is to use the Nano's on-board voltage regulator connected to the VIN pin. Supplying a 6-9V unregulated power source (such as a battery) to the VIN pin can power the Nano. This is slightly more complicated because you need to consider how the battery is housed, how it is connected to the board, how to provide discharge protection for the battery (particularly if it is a LiPo), and also possibly how to charge the battery. Using a power bank, at least initially, abstracts these issues away in a single solution.

Step 6: Read and Write on MicroSD Flash Card

Picture of Read and Write on MicroSD Flash Card

Adding a flash memory card to an embedded circuit is a great way to log data that can be accessed later. For example, the data may be stored on the card and then loaded, at a later time, into a computer for analysis.

This example shows how to read and write data to and from a MicroSD card.

We will use the code from the official Arduino tutorial.

To keep things simple, we will use the default SPI pin assignments from the tutorial.

SD MODULE - NANO
VCC       - 5V
GND       - GND
MOSI      - pin 11
MISO      - pin 12
SCK       - pin 13
CS        - pin 4

Once the connections are made and the code is loaded, the results can be observed on the serial monitor (set to 9600 baud).

Hit the reset button on the Nano and each time you do, you will notice that there is another "testing 1, 2, 3." line added. This is because the file on the MicroSD card is being appended with the message each time.

Step 7: Reading the MicroSD Data Into a Comupter

Picture of Reading the MicroSD Data Into a Comupter

The tiny USB adapter for MicroSD cards can be used to connect the MicroSD card to a computer system.

Insert the card into the adapter with the contacts down and plug the adapter into a USB port on any computer. No drivers are required on the computer. The card should show up as a standard USB storage device.

A blue LED will illuminate on the card adapter once everything is properly inserted.

Notice that the card has a file called "test.txt" containing all of the "testing 1, 2, 3." lines appended in the previous step.

Step 8: Satellite Navigation Systems

Picture of Satellite Navigation Systems

Satellite navigation (SatNav) uses a system of satellites to determine positioning information. A SatNav system with global coverage is referred to as a global navigation satellite system (GNSS). The United States operates the NAVSTAR Global Positioning System (GPS) and Russia operates GLONASS. China is in the process of expanding its regional BeiDou Navigation Satellite System into the Compass GNSS. The European Union operates the Galileo GNSS scheduled to be fully operational by 2020.

SatNav systems allow small electronic receivers to determine their location (longitude, latitude, and altitude/elevation) to high precision (within a few meters) using time signals transmitted along a line of sight by radio from satellites. The signals also allow the electronic receiver to calculate the current local time to high precision. GPS satellites continuously transmit their current time and position.

A GPS receiver monitors multiple satellites and solves equations to determine the precise position of the receiver and its deviation from true time. At a minimum, four satellites must be in view of the receiver for it to compute four unknown quantities (three position coordinates and clock deviation from satellite time).

Step 9: NEO-6M Satellite Navigation Module

Picture of NEO-6M Satellite Navigation Module

The NEO-6M GPS receiver features high sensitivity, low power consumption, and advanced miniaturization. Its extremely high tracking sensitivity greatly enlarges the coverage of its positioning. It can operate where ordinary GPS receiver modules cannot, such as in narrow urban corridors or dense jungle environment.

The module can be plugged directly to a computer using a MicroUSB cable. This can be done without any wiring to the module, just a USB cable. When power is first applied to the module, the LED will glow steady. Once the satellite signals are acquired and positioning is locked, the LED will start to blink.

Using the Arduino IDE, the GPS module's USB port may be selected. The serial monitor may then be opened and set to 9600 baud rate. GPS data will appear in the NMEA format as specified by the National Marine Electronics Association (NMEA). This data will include the time which you should be able to recognize even though it is in UTC and thus likely shifted from your timezone by an integer number of hours.

Highlight and copy some of this NMEA data from the serial monitor and paste it into a text file.

Browse to the website for GPS Visualizer, select the text file with the NMEA data, and then view the geolocation results on a satellite map.

If you have a Windows computer, you may want to try out the ublox u-center software to read directly from the GPS module.

Step 10: Wire GPS Logger

Picture of Wire GPS Logger

A GPS position tracking logger can be implemented by combining the NEO-6M GPS module and the MicroSD card module. The measured GPS data can be logged to the MicroSD flash storage.

To use the GPS logger code shown here, the GPS module is wired up to the Nano A1 and A0 pins like so:

GPS - NANO
VCC - 5V
GND - GND
TXD - A1
RXD - A0

The MicroSD card module is wired up as before with its chip select wired to pin 4 of the Nano.

Step 11: Mapping Logged GPS Data From a Computer

Picture of Mapping Logged GPS Data From a Computer

GPS data points are read from the NEO-6M and written to the MicroSD flash memory in a file called "gps.txt".

After data collection, the card can be connected to a computer using the USB adapter, and the "gps.txt" file can be selected for upload into GPS Visualizer for mapping.

In the illustrated example, we tracked GPS location points while driving a car from one side of a waterway near the HackerBoxes Headquarters to the other side of the watreway. It is easy to see that some routes are better suited to using a boat.

Step 12: Three-Axis Digital Compass

Picture of Three-Axis Digital Compass

The GY-273 sensor module is based on the Honeywell HMC5883L (datasheet) 3-axis magnetometer. When it cooperates, the module can be used to implement an electronic compass. This can support adding direction, or orientation, readings to your embedded projects.

The GY-273 can communicate with the Arduino over I2C. This tutorial from Henry's Bench has some useful information on wiring up the module and using the appropriate libraries. This sparkfun guide also had some interesting information.

We have to warn however, that we have had a lot of problems with these HMC5883L modules. They are tricky to get working correctly and the MEMS sensors are prone to damage.

Step 13: Trust Your Technolust

Picture of Trust Your Technolust

Thank you for joining our adventures into the world of data logging, satellite positioning, and location tracking. If you have enjoyed this Instrucable and would like to have a box of electronics and computer tech projects like this delivered right to your mailbox each month, please join us by SUBSCRIBING HERE.

Reach out and share your success in the comments below and/or on the HackerBoxes Facebook page. Certainly let us know if you have any questions or need some help with anything. Thank you for being part of HackerBoxes. Please keep your suggestions and feedback coming. HackerBoxes are YOUR boxes. Let's make something great!

Comments

marchah (author)2017-09-03

To wire the GPS to the nano, it's written :

GPS - NANO

VCC - 5V

GND - GND

TXD - A1

RXD - A0

but in GPS_Logger.ino it's:

static const int GPS_RXPin = A1;

static const int GPS_TXPin = A0;

what is the correct wiring?

saraperrott (author)marchah2017-12-01

If you wire it according to the pin out, reverse the numbers in the code. Or you can reverse the wires and the code will work as written. I'm lazy...I just changed the numbers in the code.

saraperrott made it! (author)2017-12-01

I know I'm late to the party...c'est la vie. Finally getting caught up on my Hackerboxes.

All in all a pretty simple build. Based on the pin out in the document, the RX and TX pins are coded backwards in the code sample. As soon as I swapped A0 and A1 in the code and uploaded to the little Arduino, it worked like a champ. Now I need to actually leave the house and drive some where to test it, lol. I did test based on my home location, and I am actually really impressed on how close it was to my actual location, especially when you consider how tiny the components are.

erazmus (author)2017-08-04

I don't know if anyone else noticed, but the 'Kingston' micro SD card included this month is almost definitely a counterfeit. Check out this interesting article from a few years ago:

http://www.bunniestudios.com/blog/?page_id=1022

The hologram on the back of the package is fake. While I appreciate Hackerboxes sourcing us inexpensive hardware every month, I think they need to be careful about including hardware that's obviously counterfeit. There are laws about this that could get Hackerboxes or their customers in trouble for importing known counterfeit goods - especially now that they are making me do the dirty work to use a freight forwarded to get the package into Canada. Perhaps next time just include a 'generic' SD card instead of a fake branded one. (cross posting to the Facebook page also)

HackerBoxes (author)erazmus2017-08-05

Those flash cards were extremely expensive and they work great. In fact, we paid more for them than they cost at Costco. Unfortunately, you cannot go into Costco and buy 3,000 flash cards. Also, please stop the whining about shipping. No one is "making" you do anything. If you don't like it, then don't buy it. Thank you!

droneb (author)HackerBoxes2017-10-20

I am now completely sure these are counterfeit Kingston SD.

tested the card model and class I/O speeds and error rate and it is quite below the expected values.

No worries tho, the SD works perfectly fine for these Logging tasks, but i would definitely not recommend placing these on a SmartPhone.

mkelusky (author)HackerBoxes2017-09-11

I don't think erazmus was commenting on the quality or price of the microSD cards, he was stating they appear to be counterfeit. I also immediately assumed they were fake due to packaging and hologram. Are they genuine Kingston cards? Can you comment on that?

Also, equating peoples displeasure with your new way of doing international shipping as "whining" kinda made me cringe. Are you trying to run a business? Maybe don't put your customers down.

JonW27 (author)HackerBoxes2017-08-25

lol - Like! No problems with what you've shipped. Thanks HB, so what is on the docket for 22? My soldering iron is ready to go ;)

eburman (author)erazmus2017-08-27

No issues here. Everything is fantastic!

lhelph (author)2017-09-16

For those of you who were receiving 0's from the compass sensor, It was mis-lableled as HMC5883L. The chip on mine was QMC5883L which the registers were not in the same spots as the one linked. The Datasheet I used for the QMC5883L is found here: https://forum.arduino.cc/index.php?topic=476861.0 on post # 8.

I was able to modify the code listed in one of the examples I found to come up with with something that would read data from the compass sensor. Though it is not perfect it can be used as a start. Granted I was trying to get information out of the temperature registers as well... Modify it as you feel.

Digital Compass code:

#include <Wire.h> //I2C Arduino Library

#define addr 0x0D //I2C Address for The HMC5883

void setup(){

Serial.begin(9600);

Wire.begin();

Wire.beginTransmission(addr); //start talking

Wire.write(0x09); // Set the Register

Wire.write(0x81); // Tell the HMC5883 to Continuously Measure

Wire.endTransmission();

}

void loop(){

int x,y,z; //triple axis data

int Temp; //Temperature C

//Tell the HMC what regist to begin writing data into

Wire.beginTransmission(addr);

Wire.write(0x00); //start with register 3.

Wire.endTransmission();

//Read the data.. 2 bytes for each axis.. 6 total bytes

Wire.requestFrom(addr, 6);

if(6<=Wire.available()){

x = Wire.read()<<8; //MSB x

x |= Wire.read(); //LSB x

z = Wire.read()<<8; //MSB z

z |= Wire.read(); //LSB z

y = Wire.read()<<8; //MSB y

y |= Wire.read(); //LSB y

}

//Tell the HMC what regist to begin writing data into

Wire.beginTransmission(addr);

Wire.write(0x07); //start with register 3.

Wire.endTransmission();

/* //Read the data.. 2 bytes for each axis.. 6 total bytes

Wire.requestFrom(addr, 2);

if(2<=Wire.available()){

Temp = Wire.read()<<8; //MSB x

Temp |= Wire.read(); //LSB x

*/

}

float bearing = atan2(y,x);

bearing *= 57.3; //convert radians to degrees

if(bearing < 0)

bearing += 360; //set range to 0-360 instead of -180 to 180

// Show Values

Serial.print("X Value: ");

Serial.println(x);

Serial.print("Y Value: ");

Serial.println(y);

Serial.print("Z Value: ");

Serial.println(z);

Serial.println();

Serial.print("Temp: ");

Serial.println(Temp);

Serial.println();

Serial.println("Bearing: ");

Serial.println(bearing);

Serial.println();

delay(2500);

}

JoeW1 (author)2017-09-14

This was my first HackBox, Rating 8/10. Overall, very happy with the contents and what I learned. Value 10/10.

With this box I finally got comfortable with data logging and connecting SDs to Arduino. Sounds silly now, but it was a daunting task that seemed much harder before this kit. I also finally got my first GPS module. Like that the GPS can plug directly into USB, and I learned a bunch about NEMA strings, serial parsing, and looking for GPS location lock.

Now the bad part of this particular kit is the digitial compass module. It just caused frustration. My module sort of read 1 axis, 1 axis is just dead (always 0), and the 3rd axis is stuck at a fixed value. This was after much debugging and learning the address in the examples was wrong, and maybe the registers are wrong too. The actual chip is too small to verify the number.

But the bad/flaky/faulty digital compass was not a total loss as I discovered:

I2C scanner

Learn some more about Wire

Discovered the Adafruit Unified Sensor package and large selection of sensor libraries that are available.

Glad I fought through the bad compass and learned what I did, but the compass is being tossed into the trash to put an end to the frustration.

Onto HackerBoxx 22 :-)

Hockeystick23 (author)2017-09-02

Hello, I'm new to hackerbox and this is my first project. Now before I even build the thing I test the Nano V3 (328) with the provided USB cable (no pin shorts and not even in breadboard) and it crashes my Macbook Pro (see image for details). I have had other Arduinos plugged in with no issue. Don't know if the CH340G serial is the issue? I plug the nano into 5V adapter and the blink program works. I don't have a PC computer and I'm hoping this isn't the issue. Any thoughts would be appreciated.

AshetynW (author)Hockeystick232017-09-03

not working on a Mac, but with Windows OS i had to install the CH340 drivers fresh before i could get it to operate. Have you used the CH340 before?

Hockeystick23 (author)AshetynW2017-09-05

I have tried other clone Nano's before with the CH340 Chip, (without success). I have tried to get the drivers loaded and have had trouble getting past the OS protection and having it recognize the CH340, (unless I want to turn all OS protections off, which I'm not willing to do, at this moment)

This is the first board I connected to my mac that completely crashed and re-booted my machine.

AshetynW (author)2017-09-03

Does anyone keep getting the Initialization Failed output? no matter what i've done, i cannot seem to get the initialization to work for the SD reader. I have only gotten to the step of hooking up the reader so i dont have the GPS script installed. Any help?

bettersweeps (author)2017-08-28

where can beginners finds step by step setup instructions, this explains it nice and all but doesn't really cover what goes where. I'm not completely new but a spinal cord injury left me unable to hack for 13yrs so I'm just now getting back into things

kaigoth made it! (author)2017-08-26

Late myself! Major thank you to old_fogey from the link moldavia posted. Worked a charm to get the compass going!

SlackerX made it! (author)2017-08-26

I know I'm late to the party! finally got around to getting this one done. Fun little project, works great! Thank you again for taking your time putting together another box. Can't wait for NO.0022!

LeanderM1 (author)2017-08-17

I updated the ino file so it uses strings - that way if you want to discriminate between various "sentences" received by your GPS receiver you now can. Thanks for great references and the tutorial to put together this neat little device!

Check it out here: https://goo.gl/pbLC1n

JustxFish (author)2017-08-13

I was unable to get the Digital Compass to work with the examples provided as it would just return 0 for all 3 axes. I found this post, and when using the code linked towards the bottom of the post it appears that the compass is now working. I haven't validated the accuracy yet but thought I'd share my findings.

http://forum.arduino.cc/index.php?topic=482179.0

moldavia (author)JustxFish2017-08-13

It looks like you are on the right track. This is made by a different manufacturer than the Honeywell sensor, and has different registers.

A bit of searching, and I found others with similar issues, and someone wrote a library for the IC marked with DA 5883.

https://github.com/mechasolution/Mecha_QMC5883

I have not tried this yet.

moldavia made it! (author)moldavia2017-08-13

This does appear to be working.

moldavia (author)moldavia2017-08-14

Link to the forum posts with more info, and a link to the correct datasheet for the DA 5883.

https://www.raspberrypi.org/forums/viewtopic.php?f...

https://forum.arduino.cc/index.php?topic=476861.0

moldavia (author)2017-08-12

It looks like the digital compass uses 3.3V logic, and the Arduino Nano uses 5V. Could be why it isn't working very well.

MartinW114 (author)2017-08-07

I am having trouble wiring the gps logger. I need a wiring schematic. The picture is hard to tell which wire goes to which pin.

HackerBoxes (author)MartinW1142017-08-07

Check out Step 5 and Step 9 for two "net lists" of which pins to connect together. That should do the trick!

ElijahH15 made it! (author)2017-08-06

I feature my HackerBoxes on my local computer services site. I built this project and uploaded a blog post about my experience at http://coloradopcpro.com/hackerboxes-0021/

Earthwormchris (author)2017-07-26

I made a clunky little 3D printable case for the project.

https://www.thingiverse.com/thing:2454605

JonW27 made it! (author)Earthwormchris2017-08-05

Thanks again, here it is all sealed up and ready to roll. Appreciate your effort ewc!

JonW27 (author)Earthwormchris2017-08-05

Thank you! I made one and it looks great. Also went out to test it, worked just fine too. Really appreciate you sharing this project box.

TimGTech (author)Earthwormchris2017-07-31

Nice! Thanks!

JSWheeler (author)2017-08-05

Got the GPS working without any issues! The magnetometer is also giving me issues (reports 0's) and is not working for either examples given.

EdW74 (author)2017-08-04

Any one have any success getting the gps to work with an ESP32? I am trying to become more familiar with the esp32, seems like the softwareserial (for esp32) i am able to find on the net doesn't seem to work.

BrianG282 (author)2017-08-03

Well... An update to those interested. I was able to get the Magnetometer up and running for about 10 minutes. Then without warning. It just stopped. All outputs on the serial monitor have reverted to 0. I decided to wipe clean and redo all the code. Even just using the Adafruit examples and some simple equations for the axis, it's like it's dead in the water.

droneb (author)2017-08-02

Throw in an RTC module and this could be even better.

BrianG282 made it! (author)2017-08-01

Took a quick walk around our office parking lot to get a signal fix. Made this on my lunchbreak! So my C++ skills have now been sharpened from "nonexistent" to "dull butter knife"

I noticed some of you mentioned you had issues with the GPS drivers. I was actually able to do the whole setup just through the Nano and everything worked fine. I wasn't able to get the magnetometer working, but I also only had an hour.

Will tackle next.

This is my 2nd hackerbox, I'm glad I signed up!

TimGTech (author)2017-07-25

I plugged in the GPS module and Windows 10 has a USB driver for it so it did not show up as a COM port. So I installed the Ublox U-Center and selected the Ublox driver instead of the Windows driver and now have it showing up with a COM port. So now it reads in the Arduino monitor. Works fine in U-Center too. Just can do both at once. Just sharing in case anyone else runs into this.

Racer1TN (author)TimGTech2017-07-26

I have the same issue with the U-blox. Working thru your suggestion. I also don't get any GPS data to write to the sdcard. If I reset the NANO, the data shows on the comm port screen, but nothing writes to the sd card. Does not matter if i create the gpadata text file or not. Tried copying the text from the gps data output to the GPS visualization website and it indicated a header was missing. Their header example is less than the output from the chip.

Racer1TN (author)Racer1TN2017-08-01

I got it, cool! had output of GPS connected to rx and tx..not AØ and A1. duh...Sleep helps troubleshooting....:D

TimothyD14 (author)TimGTech2017-07-29

How did you change the driver to the Ublox driver? I downloaded the drivers, and it looks like it's using the Ublox driver, but I'm still not getting a COM port.

TimGTech (author)TimothyD142017-07-30

Maybe try using jumper wired or a stacking header if you have one to connect the SD module to the breadboard. I was having issues and that was the fix. See my previous post about it with a few pics.

TimGTech (author)TimothyD142017-07-30

After installing I unplugged from the USB and rebooted. Plugged back in USB and the com port appeared.

bitanalyst (author)TimGTech2017-07-29

Thanks, had the exact same issue and this did the trick!

Juxpitos (author)2017-07-30

so how do you test this to make sure the SD card wr is working? as I've taken mine out twice now and made sure the GPS unit was powered and flashing before i went on a walk, and never got any data on the sd card... so can we get a clear picture of how to wire this up and some better instructions?

mainegeek (author)Juxpitos2017-07-31

Did you check the output of serial monitor? If the GPS is working you should see AT type commands. If the SD card is not working you should also see "error opening gps.txt". I ran into this; the problem with breadboards is sometimes things move and lose contact.

mainegeek made it! (author)2017-07-31

I'm done the GPS part. I haven't gotten anywhere with the magnetometer compass. I just get 0 for x, y, and x with the first example. I haven't tried the Adafruit example yet though.

bitanalyst made it! (author)2017-07-30

Great box! I Just finished taking my tracker for a drive in my car and it worked great. I had no idea it could be so easy to connect flash storage to an Arduino.

For indoor testing I connected an active external GPS antenna directly to the module using an SMA to IPX adapter. With the antenna placed near a window it was able to lock on pretty fast.

I'm going to attempt to make a GPS clock that utilizes the 1PPS output on this module next.

Juxpitos (author)2017-07-30

anyone else having issues with the arduino sample code? when i try to verify mine it tells me this:

Arduino: 1.8.3 (Windows 10), Board: "Arduino/Genuino Uno"

C:\Documents\Arduino\sketch_jul30a\sketch_jul30a.ino: In function 'void setup()':

sketch_jul30a:11: error: 'SD' was not declared in this scope

if (!SD.begin(4)) {

^

sketch_jul30a:19: error: 'myFile' was not declared in this scope

myFile = SD.open("test.txt", FILE_WRITE);

^

sketch_jul30a:19: error: 'SD' was not declared in this scope

myFile = SD.open("test.txt", FILE_WRITE);

^

sketch_jul30a:19: error: 'FILE_WRITE' was not declared in this scope

myFile = SD.open("test.txt", FILE_WRITE);

^

exit status 1
'SD' was not declared in this scope

Any help would be greatly appreciated, thanks

Juxpitos (author)Juxpitos2017-07-30

Nevermind, wasn't copying the entire code, now that i have the first two lines it worked fine... Pebkac error, lol

Juxpitos (author)Juxpitos2017-07-30

even with it set on the nano board i get the same errors

About This Instructable

7,008views

17favorites

License:

More by HackerBoxes:HackerBox 0025: Flair WareHackerBox 0024: Vision QuestHackerBox 0023: Digital Airwaves
Add instructable to: