Package Tracker

Replacement: None. We're no longer building this board but check out our GPS evaluation boards and maybe you can get started on cooking one up yourself! This page is for reference only.

Ever wondered how the shipping companies treat your packages en route to the destination? The Package Tracker is the newest addition to our growing repertoire of data logging and tracking devices. This new device incorporates an LPC2148 with USB and microSD support, an expansion header compatible with the EM408 GPS module, an SHT15 Humidity and Temperature Sensor, an SCP1000 Barometric Pressure Sensor, and an ADXL345 Triple Axis Accelerometer all conveniently designed onto a board that fits into the SparkFun enclosures. There's even a USB charging IC which allows you to charge your LiPo battery over USB. We threw on the Sparkfun LPC2148 USB Bootloader for good measure, which means you can quickly and easily modify the device's firmware!

Assembled PCB only - product does not include media, GPS unit, battery, or enclosure. We aren't sure what you might need so please add these items as needed.

Turn the Package Tracker on and the default firmware logs the date/time, GPS coordinates, temperature, pressure, humidity, acceleration and battery level once a second for later evaluation. Now you can tell if those packages are being dropped, getting wet, or if they are really getting shipped in a 'pressurized compartment'. The Package Tracker will log data for 5 minutes, and then go to sleep for 25 minutes to save battery life. We encourage you to modify the firmware with the USB Bootloader. Imagine the useful data if the Package Tracker was programmed to wake up when the accelerometer detected a free fall!

The Package Tracker can use up to 2GB of flash (not compatible with high capacity SD cards). 1GB has the capacity for weeks of continuous logging. It attaches to a computer over USB and shows up on any operating system as a flash drive. Quickly move files onto or off the Package Tracker without having to remove the flash card. All log files are comma separated text files for easy parsing with Excel, Octave, MatLab, or your favorite data analysis package.

The board comes with a JST connector to be powered from our line-up of LiPo batteries or other power sources up to 7.5VDC. If you choose to use LiPo batteries, the Package Tracker has a built-in charger to charge batteries off USB.

By cleverly using the sleep mode of the LPC2148 we were able to get the power consumption relatively low. The average current draw for the Package Tracker over an hour is about 31.7 mA. During the measurement mode (WAKE mode) with all of the sensors and the GPS module on, the current draw is 115 mA; during sleep mode the LPC2148 consumes 15 mA. We plan on putting one of our 6000 mAh LiPo batteries on the Package Tracker, and then ship it across the country and back. With this battery life and the default firmware, the Package Tracker will have enough power to last for a week!

  • LPC2148 ARM7
  • ADXL345 Triple Axis Accelerometer
  • SHT15 Temperature/Humidity Sensor
  • SCP1000 Barometric Pressure Sensor
  • Charging over USB
  • Charge status LED
  • Loaded with SparkFun USB Bootloader
  • USB mass storage (Window, Mac, Linux supported)
  • 115 mA Active Current Draw
  • 15 mA Sleep Current Draw
  • Compatible with EM408 SiRF III GPS
  • Compatible with SparkFun Enclosure* 2.4x1.6"
  • 60.96 x40.64 mm
  • 31.18g (1.1 oz)
  • Schematic
  • Sample Log File
  • Firmware v1.4 (Includes Makefile to generate FW.SFE file used by the Sparkfun USB Bootloader)
  • Firmware v2.0 (Works with new accelerometer ADXL345. Wake from Accel. Interrupt fixed)

    *UPDATE: Firmware Version 1.4 Features:

  • Added NMEA Log File

  • Improved GPS Logging
  • Added status LED to indicate the device is powered and logging data
  • Convert accelerometer values to +/- value (values still need to be converted to G)
  • SCP1000 values are converted to english units before being logged
  • Increased number trailing digits in the file names
  • Skip logging the sensor values if they report '0.'


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #147865 / about 14 years ago / 3

    Im going to buy one of these to find out why my shampoo in my suitcase keeps spilling in the airport

    • Member #60921 / about 12 years ago / 2

      You do realize its because of the pressure change during the flight, right?

    • Member #294583 / about 12 years ago / 2

      what happens when your shampoo spills over the board and short circuits it? You're out $150, that's what =P

    • Member #392911 / about 12 years ago / 1

      Squeeze the air out of the bottles before you pack them. In most planes the luggage compartment is not pressurized. At high altitude the air inside the bottle expands increasing the pressure and causes the liquid to leak out.

      • Member #404428 / about 11 years ago / 1

        The entire cabin is pressurized, Both cargo and passenger.

  • Canoeman / about 13 years ago / 2

    Just realized, this could go in my teenagers car.
    but I might be afraid of the data.

    • You may want to try the ardupilot mega which has a gyro which are good for more teen driving related things like roll...

  • SomeGuy123 / about 14 years ago * / 2

    This is more expensive than most of the packages I send.

  • fabi / about 15 years ago / 2

    the firmware 1.4 is not working with the new Accelerometer Type 345!!! Please please upload a working one. I bought 10 Package Tracker and they have to work tomorow!

  • MAL / about 15 years ago / 2

    While the Package tracker is a dandy device, it is far from turn-key. I you'd like to fast-track your efforts to understand the Package Tracker and make is useful, read my blog post:

  • Skygyver / about 16 years ago / 2

    Any thoughts on how the sensors would perform under skydiving conditions. 14000 foot elevation 120-180MPH and rapidly changing temperature and humidity. I use the EB-85 with serial data recorder presently but would like to upgrade. I hope to integrate barometric pressure sensor because the GPS looses altitude at pull time. Having a G force indication would be nice also:) I understand there would have to be some reprogramming to the LPC but hopefully this will not be to difficult.
    Thanks in advance.

    • Pilot in Command / about 13 years ago / 1

      Did you try this? Any luck?

      • Skygyver / about 13 years ago / 3

        Yes I did. This solved my problem with losing altitude at pull time but I didn't properly sync the altimeter (update .8 seconds) with the GPS (update 1 second), so my readings were slightly off. On my 60th jump it got tomahawked off my helmet by the plane door.

  • MotoZarkov / about 16 years ago / 2

    Great! Now, if we add a cellular module we could possibly call our packages to get REAL tracking updates!

  • Member #545814 / about 10 years ago / 1

    GPS Tracker

  • Sabvriel / about 12 years ago / 1

    I have one of these, love it to death, though my question is to, is this product going to be continued or upgraded? I am looking to get three more of them if they come back in stock.

    • MikeGrusin / about 12 years ago / 1

      We're currently upgrading both the hardware and software, but due to other projects it's taking longer than we hoped. Stay tuned.

  • Member #304608 / about 12 years ago / 1

    just wondering how to change the measurement up to +/-16g? the datasheet for the accelerometer ADXL345 says the measurement range is "user selectable" to �2, �4, �8, �16g!

    The c code in the firmware v2.0 for the adxl345 has a line of code as follows:

    adxl345_write(DATA_FORMAT, RANGE_1); //Configure the Accelerometer for +/-8g

    this is the only code i can find to change but dont know what to change in it as im new to programming.

    Thanks for the help

  • Mclf1 / about 13 years ago / 1

    Seems like everything I'm looking for, any ETA for when the next shipment will be available?

  • Member #219219 / about 13 years ago / 1

    What are the ranges of the barometer in terms of altitude, and the temperature range as well?

  • Sabvriel / about 13 years ago / 1

    I have a very silly question. Can you attach a Xbee to this and be able to log AND live track your item? I know it is kind of specific, but very important. Or has anyone tried to use this for live tracking? Please let me know! :)

  • Navigator / about 14 years ago / 1

    Hi! Is this compatible with 50 Channel GS407 Helical GPS Receiver?

  • HUF / about 14 years ago / 1

    Has anyone used this tracker in sub zero temperatures ?? We were wanting to use this for HAB flights but after getting is the logged temp readings were way off. Sent it back to Sparkfun and they said it was ok but now they are saying there is a problem. I ordered this back in August and still haven't gotten the problem resolved as of being almost December !!! I just want this to work right !!!!

  • NB2E / about 14 years ago / 1

    Are they any GPS units available, that would be semi-compatible, without the altitude ceiling of the EM408? I'm thinking of using this for a high altitude balloon.

  • aeroguy / about 14 years ago / 1

    Nice project. Can the charger work with NiMH for air shipments instead? Lithium batteries are a Class 9 dangerous good for transportation and need special packing, labeling and declaration. Get caught and it's at least a $50,000 fine....not to mention with they go "wrong", like the UPS 747 that had it's cargo catch fire and crash a couple weeks ago.

  • Big Al Since 1981 / about 14 years ago / 1

    The Accelerometer values come back in 2's complement format. So some negative values close to 0 are printed in the 65000 range.
    Thank you Mike and Tim (Sparkfun) for sorting this out for us.

  • Big Al Since 1981 / about 14 years ago / 1

    Great idea for a device, really cool kit.
    I have set it up with the battery, uSD card, GPS module. It's successfully logs the data to the uSD card, however the reading I got from the accelerometer were very strange, the values for 2 of the axes are at about 65534 at the same time, which sounds very wrong, since the device is motionless on my desk.
    Also the GPS readings seem to be a bit off, by about a 1Km roughly.
    The files I recorded with the device are available to examine.
    Have I got a faulty device?

    • fabi / about 14 years ago / 1

      Got the same problem. Very often (but not always) I got the 65536 (=2^16) for the accelarations. It's not a problem for me, because I don't need them, but the wakeup-threshold is also not plausible. Maybe that the same cause?

    • Please direct this question to

  • IVANERIC / about 14 years ago / 1

    Where I can find the file reent.h, to run the Firmware v2.0, my compiler does not have it in their libraries.

  • Mik3fly- / about 14 years ago / 1

    Nice product !!

  • shihab / about 14 years ago / 1

    Can i connect it to "9 Degrees of Freedom - Razor IMU - AHRS compatible sku: SEN-09623" instade of the GPS module?

  • fabi / about 14 years ago / 1

    Lars: Is it possible to replace the EM408 GPS module with SUP500F 10Hz GPS module?
    Don't know the SUP500, but with the venus 10Hz the tracker is working. There are some softwareadjustments necessary, because of different baud rate, update-rate, bin vs. ascii commands, etc.)

  • Lars / about 14 years ago / 1

    Is it possible to replace the EM408 GPS module with SUP500F 10Hz GPS module?

  • shampoo / about 14 years ago / 1

    Does anyone have any sample code that shows how to read/write to serial0 ?

    • shampoo / about 14 years ago / 1

      I'll answer my own question:
      VICVectCntl0 = 0x20 | 6;
      //Set up the UART1 interrupt
      VICVectAddr0 = (unsigned int)ISR_RxData0;

  • Stegs / about 14 years ago / 1

    Package Tracker no longer writing CSV to SD card after formatting SD as MS-DOS in Disk Utility. Any suggestions?

    • Stegs / about 14 years ago / 1

      Got her writing again...formatted as FAT16 using my Canon digital camera.

  • kzhao99999 / about 14 years ago / 1

    Firmware v2.0 link error. Could you please fix the link

  • Karel / about 14 years ago / 1

    Hi, link to FW v2.0 is not working. Could you please repair it? Would this new v 2.0 FW also work with older 302 accel?

  • DClapp / about 15 years ago / 1

    I'm also having problems with SD card init starting with v1.5 firmware.
    Some cards don't work at all; others only sometimes.
    Getting the serial port spitting out messages at 115200, I see a variety of bad responses, "no SD Card detected", "Failed Reading Header" and - my personal favorite - "sd_raw_read borks"
    If I get this working, my next question is about turning the GGA message back on. Since the parsing routine is in there - is there any reason this shouldn't work witht he EM-408?

  • fabi / about 15 years ago / 1

    Ready to use for what?
    There is no build-in monitoring system.

  • roger2 / about 15 years ago / 1

    Does anyone have one that is complete ready to use a "turn key" solution, also does it have a monitoring analysis system?

  • fabi / about 15 years ago / 1

    has the layout been changed for the new accelerometer? Is it possible to replace the ADXL345 with LIS302? I'll really do need fully working Trackers for my dissertation.

  • fabi / about 15 years ago / 1

    the 345 works now for logging, but not for the "freefall" wakeup event.
    I also do have to format the SD-card each time I want use a new FW. Without formating the tracker just turns on the green light an does nothing.

  • GregCapo / about 15 years ago / 1

    Looks like a great device. I'd like to run it at 10Hz continuously (ie. no sleep)for sports science research.
    Is this possible? ? Processor running fast enough?
    If yes, do I drop a 0 from "count *= 10000;" from "void delay_ms(int count)" to make it happen.
    Is it a major hack to run continuously or can I just set Awake 60 Sleep 0 in PackageTracker.h ?
    Sorry if these questions seem silly but my C is a bit rusty.
    Cheers Greg

    • Fabi is correct, if you comment out line 331, (goToSleep(SLEEP_MINUTES)) the unit will not go into sleep mode.
      Are you trying to log GPS at 10 hz? The default code comes configured to work with an EM408 GPS module, and this module isn't capable of logging anything faster than 1 hz. There are modules that we have that can reach 10 hz though, I like the Locosys GPS module. However the GPS libraries would have to be modified to work with this module.

      • fabi / about 15 years ago / 1

        Thanks for answer! I missunterstood the Reaquisition (0.1s) of the 408 and thought that a 10Hz Logging-Rate would be possible.
        Am I right, that only the Venus634LPx has a 10Hz Refreshing Rate?

    • fabi / about 15 years ago / 1

      When you '//' the line 331 in the main_v1-4 the tracker will not go to sleep.
      I am interessed in an answer how to turn the GPS-Rate to 10Hz, too.

  • fabi / about 15 years ago / 1

    I got another question/problem:
    How can I activate "ALHOUR"? It is declared in "LPC214x.h", but it didn't take any effect. I am trying to let the tracker sleep for mor then 59 minutes.
    Thanks a lot!

  • fabi / about 15 years ago / 1

    how and where can I change the threshold for the Free Fall acceleration?
    Kind regards

    • Hopefully you already understand that you'll have to change the firmware and recompile. It's actually very easy to change this value in the code though! I'm assuming you're using the latest v1.4 Package Tracker code. In the v1.4 folder, open main_v1-4.c. On line 116, in the main() function, there's a function call:
      WriteLis302Register(FF_WU_THS_1, 55);//Set Accelerometer Threshold to ~1g.
      This is the line that sets the freefall threshold. According to the datasheet for the LIS302 accelerometer, there is 18mg/digit in 4g mode (which is the current configuration). So the default threshold of 55 is 990 mg (55*18=990).
      If you want to change the free fall value, just change the 55 in this line of code to your desired value. Keep in mind, though, that you're limited to 7 bits as the 8th bit has an alternate purpose in the FF_WU_THS register. (i.e. don't set your value higher than 127).

      • fabi / about 15 years ago / 2

        Thanks a lot. Seems as I am a little bit blind.
        I've got another question: The 408-GPS Module has a refreshing rate of 10 Hz. Is it possible to change the rate of the tracker also to 10Hz?
        Thanks and kind regards from the far far germany.

  • Hi Everyone!
    A new version of firmware is available for the package tracker. The improvements are now listed in the product description. If you'd like to upgrade your Package Tracker to the new firmware, simply download the Firmwarev1.4 folder from the Documents section of the product description above. Once you've downloaded and unzipped the folder, open the v1.4 folder inside the downloaded folder. Copy the FW.SFE file onto the Package Tracker and then just unplug the USB cable. Once the Package Tracker is restarted the new firmware will be loaded and start running.
    Good luck, and let us know if you have any questions!

  • reza / about 15 years ago / 1

    what part of the hardware or firmware allows the device to appear as a mass storage device via usb?

    • Well, the USB hardware is designed according to the ARM datasheet. In the firmware, the main_msc and supporting libraries allow for the USB Mass Storage. You can view these libraries by downloading the source code in the product description if you'd like.

  • c43948 / about 16 years ago / 1

    For me the latest v1.1 firmware will cause odd GPS failures.
    The incoming NMEA packets from GPS get corrupted. Some times it receives something like '$$PRMS...'. I shortly tried to find out what is happening but i cannot figure out why it gets those extra characters or missing some of them. This does not happen in 1.0 firmware.

    • c43948 / about 16 years ago / 1

      It looks like that disabling the UART1 interrupt causes the problem on line 131. If interrupt is not disabled on line 131 and re-enabled on line 155 then it works.

  • c43948 / about 16 years ago / 1

    I think that firmware v1.0 has bug which causes differences between the SCP and SHT temperature values.
    First the SHT humidity and temperature columns have changed places and the temperature is in Fahrenheit.

  • Unomas / about 16 years ago / 1

    Are any free/available adc and I/O pins on the board?
    Thank you.

    • There are unused ADC pins on the LPC2148, however they are not broken out. You would have to solder greenwire directly to the LPC.
      There is easy access to Rx0 and Tx0 which can be reprogrammed to act as I/O or you can use them for serial communication. Pin P0.14 is also easily accesible I/O from the 0.1" header.

Customer Reviews

No reviews yet.