3D Robotics

Easy datalogging with Arduino

Doing traditional datalogging with Arduino is a pain. It only has 1k of RAM, and half of that is used by the program, so you can't store any significant data in its own memory. Meanwhile, writing to a SD card, as the Adafruit GPS logger does, takes pretty much all of its computational power, leaving little left for useful work. This is not unique to Arduino--it's true for any 8-bit embedded processor. You can add I2C memory boards, but I've never tried that (there's no code available at that link) and you'll still have to find a way to get the data back out of those chips and into your PC. I'm writing a datalogger now to do altitude comparisons of GPS, relative pressure sensors and absolute pressure sensors, all head-to-head. That means the Arduino has to read and parse GPS, read analog and read and parse SPI, along with writing to SD card memory. Which is a lot. Wish me luck. But the easy way is just to do this while you're on the ground (or in my case, in a car and driving up and down hills) and the Arduino is connected to your laptop is to just print all the data to the IDE's serial console. By default it only records 500 lines, but you can go into the preferences file (you can see its location from the Preferences menu item) and change "console.length=500" to whatever amount of data you want to record. When you're done you can just copy the text from the console and paste it into a spreadsheet to analyze. You can deal with SD cards and inflight recording some other day....
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones