Skip to content
Open Source Hardware Datalogger
C++ Arduino C Processing
Find file


OpenLog (DEV-09530)

OpenLog is an open source data logger that works over a simple serial connection and supports microSD cards up to 64GB.

License Information

The hardware design and firmware are released under Creative Commons Share-alike 3.0.
The FAT16/FAT32 firmware was originally designed by Roland Riegel and is released under GPL v2.

Feel free to use, distribute, and sell varients of OpenLog. All we ask is that you include attribution of 'Based on OpenLog by SparkFun'.

OpenLog v2.0 and above uses sdfatlib written by Bill Greiman and is released under GPL v3.

The OpenLog firmware was created by SparkFun Electronics, and is open source so please feel free to do anything you want with it; you buy me a beer if you use this and we meet someday (Beerware license).

Repository Contents

  • /Firmware
    • OpenLog - Firmware that ships with OpenLog. '?' command will show the version loaded onto a unit.
    • OpenLog_Light - Used for high-speed logging. By removing the menu and command mode the receive buffer is increased.
    • OpenLog_Minimal - Highest speed logging. Baud rate must be set in code and uploaded. Hardest, most advanced, and best at high-speed logging.
    • Examples - Example Arduino code for controlling and testing OpenLog
  • /Fritzing - Fritzing image showing the connections between the OpenLog and an FTDI Basic
  • /Hardware - Hardware design files for the OpenLog PCB. These files were designed in Eagle CAD.

Version History

For a full view of changes please see the changelog.

OpenLog v4 is refactored with better RAM utilization for better performance at higher record speeds (115200/57600).

OpenLog v3 is stable, supports FAT32 cards up to 64GB and supports higher record speeds (115200/57600).

OpenLog v2 is a bit buggy but supports FAT32 and SD cards up to 16GB.

OpenLog v1 is stable but only supports FAT16 and up to 2GB.

  • v1.0 Buggy initial release
  • v1.1 Small changes to system settings and EEPROM storage.
  • v1.2 Added wild card to listing and remove commands. Added read file command.
  • v1.3 Added auto buffer record if unit sits idle for more than 5 seconds.
  • v1.4 Increase buffer size to 900 bytes. Pinning down URU errors.
  • v1.5 Lowered power consumption to ~2mA avg. Added 4800 and 19200 baud rates.
  • v1.51 Added configurable escape character, and escape character amount.
  • v1.6 Added ability to configure via config.txt file.
  • v2.0 Massive overhaul. Ported to sdfatlib. Now supports FAT16/FAT32/SD/SDHC.
  • v2.1 Power save not working. Fixed issue 35. Dropping characters at 57600bps.
  • v2.11 Tested with 16GB microSD. Fixed issues 30 & 34. Re-enable power save.
  • v2.2 Modified append_file() to use a single buffer. Increased HardwareSerial.cpp buffer to 512 bytes.
  • v2.21 ringp fork brought in. rm dir, cd .., and wildcards now work!
  • v2.3 Migrated to v10.10.10 of sdfatlib. Moved to inline RX interrupt and buffer.
  • v2.4 Merged ringp updates. Commands cd, rm, ls work again!
  • v2.41 Power loss bug fixed. Adding support for 38400bps for testing with SparkFum 9DOF IMU logging.
  • v2.5 Added software reset command. Modified the read command to print extended ASCII characters.
  • v2.51 Changed command prompt control to ignore \n for easier control from microcontroller.
  • v3.0 Migration to Arduino v1.0 and better recording speed at 115200bps and 57600bps.
  • v3.1 Better handling of recording during power loss.
  • v3.2 Freed up RAM for larger RX ring buffer. Added support for wildcards and ability to ignore emergency override.
  • v3.3 Added ability to ignore escape character checking and corrected incremental log naming.
  • v4.0 Re-worked to be compatible with Arduino v1.6.x. Freed RAM to increase RX buffer size.
Something went wrong with that request. Please try again.