Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Commits on Mar 27, 2012
  1. @nseidle
Commits on Mar 26, 2012
  1. @nseidle
Commits on Mar 23, 2012
  1. @nseidle

    v3.1 Pushing a beta version of OpenLog Light. Works decently at 11520…

    nseidle authored
    …0bps but doesn't yet record in power fail situation.
  2. @nseidle

    v3.1 Fixed bug where entire log data is lost when power is lost. Adde…

    nseidle authored
    …d fix from issue 76: https://github.com/nseidle/OpenLog/issues/76 Added support for verbose and echo settings recorded to the config file and EEPROM. Bugs 101 and 102 fixed with the help of pwjansen and wilafau - thank you!! Because of the new code to the cycle sensitive append_log loop, 115200bps is not as rock solid as I'd like. I plan to correct this in the Light version. Added a maxLoop variable calculation to figure out how many bytes to receive before we do a forced file.sync.
  3. @nseidle

    v3.1 Fixed bug where entire log data is lost when power is lost. Adde…

    nseidle authored
    …d fix from issue 76: https://github.com/nseidle/OpenLog/issues/76 Added support for verbose and echo settings recorded to the config file and EEPROM. Bugs 101 and 102 fixed with the help of pwjansen and wilafau - thank you!! Because of the new code to the cycle sensitive append_log loop, 115200bps is not as rock solid as I'd like. I plan to correct this in the Light version.
Commits on Mar 16, 2012
  1. @nseidle

    v3.1 28692 of 32256 Added fix from issue 76: https://github.com/nseid…

    nseidle authored
    …le/OpenLog/issues/76 Added support for verbose and echo settings recorded to the config file and EEPROM.
  2. @nseidle
Commits on Mar 14, 2012
  1. @nseidle

    v3.0 Re-write of core functions. Support under Arduino v1.0. Now supp…

    nseidle authored
    …orts full speed 57600 and 115200bps! Lower standby power. 28354 bytes out of 32256. Update to new beta version of SerialPort lib from Bill Greiman. Update to Arduino v1.0. With Bill's library, we don't need to hack the HardwareSerial.cpp. Re-wrote the append function. This function is the most important function and has the most affect on record accuracy. We are now able to record at 57600 and 115200bps at full blast! The performance is vastly improved. To compile v3.0 you will need Arduino v1.0 and Bill's beta library: http://beta-lib.googlecode.com/files/SerialLoggerBeta20120108.zip
    
    Unzip 'SerialPortBeta20120106.zip' and 'SdFatBeta20120108.zip' to the libraries directory and close and restart Arduino.
    
    Small stuff:
    Redirected all static strings to point to the new way in Arduino 1.0: NewSerial.print(F("asdf")); instead of PgmPrint
    Figured out lower standby power from the low-power tutorial: http://www.sparkfun.com/tutorials/309
    Corrected #define TRUE to built-in supported 'true'
    Re-arranged some functions
    Migrating to Uno bootloader to get an additional 1500 bytes of program space
    Replumbed everything to get away from hardware UART
    Reduced # of sub directory support from 15 levels to 2 to allow for more RAM
    
    Wildcard remove is not yet supported in v3.0
    Wildcard ls is not yet supported in v3.0
    efcount and efinfo is not yet supported in v3.0
  2. @nseidle

    v3.0 Re-write of core functions. Support under Arduino v1.0. Now supp…

    nseidle authored
    …orts full speed 57600 and 115200bps! Lower standby power. 28354 bytes out of 32256. Update to new beta version of SerialPort lib from Bill Greiman. Update to Arduino v1.0. With Bill's library, we don't need to hack the HardwareSerial.cpp. Re-wrote the append function. This function is the most important function and has the most affect on record accuracy. We are now able to record at 57600 and 115200bps at full blast! The performance is vastly improved. To compile v3.0 you will need Arduino v1.0 and Bill's beta library: http://beta-lib.googlecode.com/files/SerialLoggerBeta20120108.zip
    
    Unzip 'SerialPortBeta20120106.zip' and 'SdFatBeta20120108.zip' to the libraries directory and close and restart Arduino.
    
    Small stuff:
    Redirected all static strings to point to the new way in Arduino 1.0: NewSerial.print(F("asdf")); instead of PgmPrint
    Figured out lower standby power from the low-power tutorial: http://www.sparkfun.com/tutorials/309
    Corrected #define TRUE to built-in supported 'true'
    Re-arranged some functions
    Migrating to Uno bootloader to get an additional 1500 bytes of program space
    Replumbed everything to get away from hardware UART
    Reduced # of sub directory support from 15 levels to 2 to allow for more RAM
    
    Wildcard remove is not yet supported in v3.0
    Wildcard ls is not yet supported in v3.0
    efcount and efinfo is not yet supported in v3.0
Commits on Feb 22, 2012
  1. @nseidle
  2. @nseidle
  3. @nseidle

    Updated example sketches to Arduino v1.0. This required only some sma…

    nseidle authored
    …ll changes (Serial.print to Serial.write).
  4. @nseidle

    Updated the CommandTest code to Arudino v1.0. I had to change the Ser…

    nseidle authored
    …ial.print(char(26)) to Serial.write(26). Also added more comments to top of code. File is now .ino.
Commits on Jun 1, 2011
  1. @nseidle

    v2.51 Improved command prompt parsing (now ignores '\n')

    nseidle authored
    We now ignore the \n character when parsing characters from the command prompt. This makes it easier to create code on a microcontroller that correctly controls OpenLog. Previously, println or sprintf commands were adding a \n to the end of the string that would confuse OpenLog. One way around this if you have previous versions is this
     sprintf(buff, "new blah.txt\r");
     Serial.print(buff); //No println, use \r in string instead
    
    Also - added a CommandTest sketch to demonstrate how you can control OpenLog from a microcontroller / automate the command prompt
Commits on Feb 2, 2011
  1. @nseidle

    v2.5 Improved 'read' command. Added 'reset' command.

    nseidle authored
    28782 bytes of 30720 (yikes)
    
    Modified the read command so that we can print extended ASCII characters. The function was also failing to print any value over 127 (limited to signed 8 bits - boo). Thank you wilafau! You proposed excellent, easy fixes.
    
    Added raw command during print operation. This allows for non-visible and extended ASCII characters to be printed correctly, if need be.
    
    Issuing 'reset' command causes OpenLog to reset and re-read the config file. This is important if you want to change the config file then restart.
    
    Removed some of the extraneous prints from the help menu to save on space.
Commits on Nov 17, 2010
  1. @nseidle

    v2.41 Power loss bug fixed. Adding support for 38400bps for testing w…

    nseidle authored
    …ith SparkFum 9DOF IMU logging.
    
    29124 bytes of 30720 (yikes)
    
    Found a bug in the append_file routine. If the unit is actively logging, file.writes are flying by quickly. But if OpenLog loses power, none of the data is recorded because there is no file.sync. Data would only get recorded if the unit went idle or if user entered escape command. This has since been fixed with two file.sync() commands.
  2. @nseidle
Commits on Nov 3, 2010
  1. Missing HardwareSerial.h needed by HardwareSerial.cpp

    Paul Ring authored
    New function declarations in the HardwareSerial class needs the functions
    to be declarared in the h-file. This commit contains a modified version of the
    original HardwareSerial.h file.
  2. @nseidle

    v2.4 Merged ringp updates. Commands cd, rm, ls work again! New "rm -r…

    nseidle authored
    …f" command to remove directory and its files.
    
    Windows 7 stores the Arduino hex file is an aweful place. Something like:
    C:\Users\Main\AppData\Local\Temp\build3390340147786739225.tmp\OpenLog_v2.cpp.hex
    
    Added HardwareSerial.cpp and a readme to the main trunk.
    Added OpenLog_v2.cpp.hex to the main trunk.
  3. @nseidle

    v2.4 Merged ringp updates. Commands cd, rm, ls work again! New "rm -r…

    nseidle authored
    …f" command to remove directory and its files.
    
    29028 bytes of 30720 (yikes).
    
    Thanks ringp! Great work.
    
    Testing at 57600
    1GB: 110490/111000, 110490/111000
    8GB: 111000/111000, 111000/111000, 111000/111000
    16GB: 83890/111000, 84908/111000
    The 16GB card with tons of files continue to have problems but the other cards (FAT and FAT32) are acceptable. Whenever possible, use a clean, empty, freshly formatted card.
    
    "rm -rf mydirectory" to remove a directory and all its files
Commits on Oct 29, 2010
  1. Fixed "888 88" bug when hitting backspace. Resolved ambigous "rm" com…

    Paul Ring authored
    …mand, new "rm" implementation. New commands: pwd (print working directory), echo <on>|<off>. Fixed bug when using "size", leaking file handle. Removed too_many_arguments_error() in order to free up memory.
  2. Merge branch 'master' of git://github.com/nseidle/OpenLog. Merged ups…

    Paul Ring authored
    …tream changes http://github.com/ringp/OpenLog/commit/4a1c0da2386db63195fe0a6cc3055386945e0ffe.
    
    Conflicts:
    	OpenLog_v2/OpenLog_v2.pde
    	OpenLog_v2/SdFile.cpp
Commits on Oct 27, 2010
  1. Added .gitignore to ignore *.class and *.jpf files.

    Paul Ring authored
  2. @nseidle

    v2.3 Migrated to v10.10.10 of sdfatlib. Moved to inline RX interrupt …

    nseidle authored
    …and buffer. Improved the ability to receive a constant stream at 57600bps.
    
    27334 bytes out of 30720.
    
    Remember - we had to completely butcher HardwareSerial.cpp so a normal Arduino installation will not work.
    C:\arduino-xxxx\hardware\arduino\cores\arduino\HardwareSerial.cpp
    
    I removed the receive interrupt handler from HardwareSerial.cpp so that we can deal directly with USART_RX_vect in the main code. This allows us to return to the way OpenLog used to operate - by having one buffer split in half. Once one half fills, it is recorded to SD while the other half fills up. This dramatically decreases the time spent in function calls and SD recording, which leads to many fewer characters dropped.
    
    The change log at the top of the main code got so large I've moved it to a version controlled "Changes.txt" file.
    
    By making all these changes, I have broken many things. Ringp - I could use your help here. I apologize for stomping on so much of your work. I was not good enough to figure out how to re-link from the old function calls to the new sdfatlib setup.
    
    Backspace is broken - ringp, I saw this fix in one of your commits, but looking at the code, I don't see how it is supposed to work. Either way, we still get 0x08 when trying to backspace.
    
    Search for "//Error" in main pde
    ls is not working fully
    remove is not working
    fileInfo is not working
    
    New sdfatlib doesn't have SdFat.cpp so fileInfo doesn't work. These function calls are marked with //Error
    
    I have chosen to dis-allow deprecated functions:
    #define ALLOW_DEPRECATED_FUNCTIONS 0
    This forced some trivial changes to the SD write and new file creation function calls. I believe we've successfully migrated to the new version of sdfatlib.
    
    In the command_shell / read_line function : It may be better to pull directly from the UART buffer and use the RX interrupt. For now, we brute force it.
    
    Because of all these changes, I need to re-test power consumption. For now, I'm confident it's low enough.
    
    Testing with 512 buffer array size
    1GB @ 57600 - dropped very little out of 3 tests
    1GB @ 115200 - dropped very little out of 2 tests
    8GB @ 57600 - Formatted using the sd formater (32k byte allocation size). Dropped nothing.
    8GB @ 115200 - dropped very little, dropped none
    16GB w/ Lots of files @ 57600 - Drops the first part of the file because of start up delay?
    16GB w/ Lots of files @ 115200
    
    1024 array size (and 800) does not run
    
    Testing with 700 buffer array size
    1GB @ 57600 - 110300 out of 111000 bytes, 110300/111000,
    1GB @ 115200 - 111000/111000!, 109600/111000
    8GB @ 57600 - 109000/111000, 111000/111000!,
    8GB @ 115200 - 111000/111000!, 111000/111000!,
    16GB w/ Lots of files @ 57600 - 85120/111000, 85120/111000
    16GB w/ Lots of files @ 115200 - 56420 (but once it got going, log looks good). 56420.
    
    I am seeing long delays on cards with lots of files. In the above tests, the 16GB test card is a good example. It has 2GB worth of random files in a sub directory. After OpenLog boots, goes to '12<'. After I send ~500 characters OpenLog freezes for a couple seconds, then returns to normal, very fast, operation. During that down time, I believe sdfatlib is searching for an open cluster. The odd thing is that after the cluster is established (after the initial down time) OpenLog performs excellently. I am hoping to create a faux file or pre-write and save to the file or some how get this allocation done before we report the '12<' indicating we are ready. That way, if a card does fill up, as long as the host system is checking for '<', it doesn't matter how long it takes sdfatlib to find the next free cluster.
    
    You can see that we drop 700 bytes at a time. That's a bit odd - I'd expect to drop half or 350 at a time. What happens if we shrink the array size to say 256? To be expected, this is bad - way more instances of dropped characters.
    
    Added blink for each test to the OpenLog_Test sketch so we can see as the test progresses.
    
    http://www.sdcard.org/consumers/formatter/ is the site for SD card formatting. It looks like this program takes a guess at the correct block size. This could help a lot in the future.
Commits on Oct 3, 2010
  1. Fixed "888 88" bug when hitting backspace. Resolved ambigous "rm" com…

    Paul Ring authored
    …mand, new "rm" implementation. New commands: pwd (print working directory), echo <on>|<off>. Fixed bug when using "size", leaking file handle. Removed too_many_arguments_error() in order to free up memory.
Commits on Sep 30, 2010
  1. Added "rm -rf" command that will remove all contents of the directory…

    Paul Ring authored
    … including subdirectories recursively. The read-only attribute for files will be ignored.
  2. Merge branch 'master' of git://github.com/nseidle/OpenLog

    Paul Ring authored
    Conflicts:
    	OpenLog_v2/OpenLog_v2.pde
Commits on Sep 29, 2010
  1. @nseidle

    v2.21 ringp fork brought in. Wildcard remove and list commands now wo…

    nseidle authored
    …rk. Remove directory now works! Change directory up/down the tree works again.
    
    28440 bytes used of 30720.
    
    ringp brought back many great commands! Thanks ringp!
    rm LOG*.* works
    ls *.TXT works
    cd .. works again
    ls now correctly shows directories first and files following the directories.
    
    To remove a directory, you have to navigate into that directory. For example:
     >cd TEMP (you are now in TEMP directory)
     >rm -f TEMP (you are now removing TEMP, and you will be pushed back down one level of the tree)
     >ls (shows files and directories where TEMP directory used to be, but TEMP directory should be gone)
    
    ringp added new commands:
    efcount: gives the number of files in the current directory. Example: "efcount" returns "count|3". There are 3 files in the current directory.
    
    efinfo <spot>: gives info about the file in <spot>. Example: "efinfo 2" reports "LOG00588.TXT|45". File number 2 is named LOG00588.TXT and is 45 bytes in size.
    
    verbose <"on"|"off">: sets whether command errors are verbose (long winded) or just the "!" character. Example: "verbose off" sets verbose off. Then if a command like "blah" is received, then only "!>" is seen from the command line interface. This makes it easier for embedded systems to recognize there was an error. This setting is not recorded to EEPROM.
    
    Updated README.
  2. @nseidle

    Added support for removing an empty folder using "rm -f" command. Lis…

    Paul Ring authored nseidle committed
    …ting the contents of a folder lists the subfolders first and then the files in the folder.
  3. @nseidle

    Added support for wilcard listing and removal of files. This should n…

    Paul Ring authored nseidle committed
    …ow work the same as in previous OpenLog versions. "cd.." now works up to a depth of 15 folders. The depth can be increase be redefining a global variable. Added new commands "efcount", "efinfo", "eem", "verbose" that are simplifying embedded usage with OpenLog. Also fixed some code indentation problems and removed old commented code not being used any more.
Commits on Sep 26, 2010
  1. Added support for removing an empty folder using "rm -f" command. Lis…

    Paul Ring authored
    …ting the contents of a folder lists the subfolders first and then the files in the folder.
Commits on Sep 25, 2010
  1. Added support for wilcard listing and removal of files. This should n…

    Paul Ring authored
    …ow work the same as in previous OpenLog versions. "cd.." now works up to a depth of 15 folders. The depth can be increase be redefining a global variable. Added new commands "efcount", "efinfo", "eem", "verbose" that are simplifying embedded usage with OpenLog. Also fixed some code indentation problems and removed old commented code not being used any more.
Commits on Sep 21, 2010
  1. Merge branch 'master' of git://github.com/nseidle/OpenLog

    Paul Ring authored
    Conflicts:
    	Code/Makefile
    	Code/main.c
    	Code/main.hex
  2. Makefile changes. Not to be commited upstream.

    Paul Ring authored
Something went wrong with that request. Please try again.