From d4cff21981bf3731aff0e4d0e85a838846398772 Mon Sep 17 00:00:00 2001 From: Toni Klopfenstein Date: Thu, 7 Apr 2016 14:57:34 -0600 Subject: [PATCH] Repo cleanup, readme cleanup --- .gitattributes | 22 +++++++ .../FTDI-Connections.jpg | Bin .../FTDI-OpenLog-Fritzing.png | Bin .../OpenLog-Attached-To-FTDI-Basic.jpg | Bin LICENSE.md | 56 ++++++++++++++++++ .../SdFat/MainPage/SdFatmainpage.h | 0 .../#attic/AnalogLogger/AnalogLogger.ino | 0 .../BaseExtCaseTest/BaseExtCaseTest.ino | 0 .../examples/#attic/HelloWorld/HelloWorld.ino | 0 .../examples/#attic/MiniSerial/MiniSerial.ino | 0 .../PrintBenchmarkSD/PrintBenchmarkSD.ino | 0 .../SdFat/examples/#attic/SD_Size/SD_Size.ino | 0 .../examples/#attic/SdFatSize/SdFatSize.ino | 0 .../SdFat/examples/#attic/append/append.ino | 0 .../SdFat/examples/#attic/average/average.ino | 0 .../SdFat/examples/#attic/benchSD/benchSD.ino | 0 .../examples/#attic/bufstream/bufstream.ino | 0 .../examples/#attic/eventlog/eventlog.ino | 0 .../#attic/fgetsRewrite/fgetsRewrite.ino | 0 .../SdFat/examples/#attic/readlog/readlog.ino | 0 .../SdFat/examples/#attic/readme.txt | 0 .../AnalogBinLogger/AnalogBinLogger.h | 0 .../AnalogBinLogger/AnalogBinLogger.ino | 0 .../examples/LongFileName/LongFileName.ino | 0 .../A long name can be 255 characters.txt | 0 .../LongFileName/testFiles/LFN,NAME.TXT | 0 .../LongFileName/testFiles/MIXCASE.txt | 0 .../LongFileName/testFiles/Not_8_3.txt | 0 .../examples/LongFileName/testFiles/OK%83.TXT | 0 .../LongFileName/testFiles/STD_8_3.TXT | 0 .../LongFileName/testFiles/With Blank.txt | 0 .../LongFileName/testFiles/With.Two dots.txt | 0 .../examples/LongFileName/testFiles/lower.txt | 0 .../examples/LongFileName/testFiles/mixed.TXT | 0 .../LowLatencyLogger/LowLatencyLogger.ino | 0 .../examples/LowLatencyLogger/UserDataType.h | 0 .../SdFat/examples/OpenNext/OpenNext.ino | 0 .../PrintBenchmark/PrintBenchmark.ino | 0 .../SdFat/examples/QuickStart/QuickStart.ino | 0 .../SdFat/examples/RawWrite/RawWrite.ino | 0 .../SdFat/examples/ReadWrite/ReadWrite.ino | 0 .../ReadWriteSdFat/ReadWriteSdFat.ino | 0 .../examples/SdFormatter/SdFormatter.ino | 0 .../SdFat/examples/SdInfo/SdInfo.ino | 0 .../examples/SoftwareSpi/SoftwareSpi.ino | 0 .../SdFat/examples/StdioBench/StdioBench.ino | 0 .../StreamParseInt/StreamParseInt.ino | 0 .../SdFat/examples/ThreeCards/ThreeCards.ino | 0 .../SdFat/examples/Timestamp/Timestamp.ino | 0 .../SdFat/examples/TwoCards/TwoCards.ino | 0 .../VolumeFreeSpace/VolumeFreeSpace.ino | 0 .../SdFat/examples/bench/bench.ino | 0 .../SdFat/examples/cin_cout/cin_cout.ino | 0 .../SdFat/examples/dataLogger/dataLogger.ino | 0 .../directoryFunctions/directoryFunctions.ino | 0 .../SdFat/examples/fgets/fgets.ino | 0 .../SdFat/examples/formatting/formatting.ino | 0 .../SdFat/examples/getline/getline.ino | 0 .../SdFat/examples/readCSV/readCSV.ino | 0 .../SdFat/examples/rename/rename.ino | 0 .../SdFat/library.properties | 0 .../SdFat/readme.md | 0 .../SdFat/src/Deprecated/SdVolume.h | 0 .../SdFat/src/FatLib/ArduinoFiles.h | 0 .../SdFat/src/FatLib/ArduinoStream.h | 0 .../SdFat/src/FatLib/FatApiConstants.h | 0 .../SdFat/src/FatLib/FatFile.cpp | 0 .../SdFat/src/FatLib/FatFile.h | 0 .../SdFat/src/FatLib/FatFileLFN.cpp | 0 .../SdFat/src/FatLib/FatFilePrint.cpp | 0 .../SdFat/src/FatLib/FatFileSFN.cpp | 0 .../SdFat/src/FatLib/FatFileSystem.h | 0 .../SdFat/src/FatLib/FatLib.h | 0 .../SdFat/src/FatLib/FatLibConfig.h | 0 .../SdFat/src/FatLib/FatStructs.h | 0 .../SdFat/src/FatLib/FatVolume.cpp | 0 .../SdFat/src/FatLib/FatVolume.h | 0 .../SdFat/src/FatLib/FmtNumber.cpp | 0 .../SdFat/src/FatLib/FmtNumber.h | 0 .../SdFat/src/FatLib/StdioStream.cpp | 0 .../SdFat/src/FatLib/StdioStream.h | 0 .../SdFat/src/FatLib/bufstream.h | 0 .../SdFat/src/FatLib/fstream.cpp | 0 .../SdFat/src/FatLib/fstream.h | 0 .../SdFat/src/FatLib/ios.h | 0 .../SdFat/src/FatLib/iostream.h | 0 .../SdFat/src/FatLib/istream.cpp | 0 .../SdFat/src/FatLib/istream.h | 0 .../SdFat/src/FatLib/ostream.cpp | 0 .../SdFat/src/FatLib/ostream.h | 0 .../SdFat/src/FreeStack.h | 0 .../SdFat/src/MinimumSerial.cpp | 0 .../SdFat/src/MinimumSerial.h | 0 .../SdFat/src/SdFat.cpp | 0 .../SdFat/src/SdFat.h | 0 .../SdFat/src/SdFatConfig.h | 0 .../SdFat/src/SdFatUtil.cpp | 0 .../SdFat/src/SdFatUtil.h | 0 .../SdFat/src/SdSpiCard/DigitalPin.h | 0 .../SdFat/src/SdSpiCard/SdInfo.h | 0 .../SdFat/src/SdSpiCard/SdSpi.h | 0 .../SdFat/src/SdSpiCard/SdSpiCard.cpp | 0 .../SdFat/src/SdSpiCard/SdSpiCard.h | 0 .../SdFat/src/SdSpiCard/SdSpiSAM3X.cpp | 0 .../SdFat/src/SdSpiCard/SdSpiSTM32F1.cpp | 0 .../SdFat/src/SdSpiCard/SdSpiTeensy3.cpp | 0 .../SdFat/src/SdSpiCard/SoftSPI.h | 0 .../SerialPort/SerialPort.cpp | 0 .../SerialPort/SerialPort.h | 0 .../examples/ArduinoSize/ArduinoSize.pde | 0 .../SerialPort/examples/ArduinoSize/FreeRam.h | 0 .../examples/ArduinoTest/ArduinoTest.pde | 0 .../examples/BufferedSize/BufferedSize.pde | 0 .../examples/BufferedSize/FreeRam.h | 0 .../examples/BufferedTest/BufferedTest.pde | 0 .../examples/HelloWorld/HelloWorld.pde | 0 .../SerialPort/examples/MegaTest/MegaTest.pde | 0 .../MegaTestArduino/MegaTestArduino.pde | 0 .../examples/ReadWriteTest/ReadWriteTest.pde | 0 .../examples/UnbufferedSize/FreeRam.h | 0 .../UnbufferedSize/UnbufferedSize.pde | 0 .../UnbufferedTest/UnbufferedTest.pde | 0 .../examples/WriteFlash/WriteFlash.pde | 0 .../SerialPort/readme.md | 0 OpenLog-Dimensional Drawing.png | Bin 8819 -> 0 bytes README.md | 48 +++++++++------ hardware/OpenLog-Dimensional.pdf | Bin 12446 -> 0 bytes hardware/OpenLog-Schematic.pdf | Bin 40457 -> 0 bytes hardware/OpenLog.sch | 10 ++-- hardware/OpenLogDimensionalDrawing.pdf | Bin 0 -> 11208 bytes hardware/OpenLogSchematic.pdf | Bin 0 -> 63907 bytes 131 files changed, 112 insertions(+), 24 deletions(-) create mode 100644 .gitattributes rename FTDI-Connections.jpg => Documentation/FTDI-Connections.jpg (100%) rename {Fritzing => Documentation}/FTDI-OpenLog-Fritzing.png (100%) rename OpenLog-Attached-To-FTDI-Basic.jpg => Documentation/OpenLog-Attached-To-FTDI-Basic.jpg (100%) create mode 100644 LICENSE.md rename {required_libraries => Libraries}/SdFat/MainPage/SdFatmainpage.h (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/AnalogLogger/AnalogLogger.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/BaseExtCaseTest/BaseExtCaseTest.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/HelloWorld/HelloWorld.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/MiniSerial/MiniSerial.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/PrintBenchmarkSD/PrintBenchmarkSD.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/SD_Size/SD_Size.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/SdFatSize/SdFatSize.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/append/append.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/average/average.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/benchSD/benchSD.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/bufstream/bufstream.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/eventlog/eventlog.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/fgetsRewrite/fgetsRewrite.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/readlog/readlog.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/#attic/readme.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/AnalogBinLogger/AnalogBinLogger.h (100%) rename {required_libraries => Libraries}/SdFat/examples/AnalogBinLogger/AnalogBinLogger.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/LongFileName.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/A long name can be 255 characters.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/LFN,NAME.TXT (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/MIXCASE.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/Not_8_3.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/OK%83.TXT (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/STD_8_3.TXT (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/With Blank.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/With.Two dots.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/lower.txt (100%) rename {required_libraries => Libraries}/SdFat/examples/LongFileName/testFiles/mixed.TXT (100%) rename {required_libraries => Libraries}/SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/LowLatencyLogger/UserDataType.h (100%) rename {required_libraries => Libraries}/SdFat/examples/OpenNext/OpenNext.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/PrintBenchmark/PrintBenchmark.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/QuickStart/QuickStart.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/RawWrite/RawWrite.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/ReadWrite/ReadWrite.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/ReadWriteSdFat/ReadWriteSdFat.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/SdFormatter/SdFormatter.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/SdInfo/SdInfo.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/SoftwareSpi/SoftwareSpi.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/StdioBench/StdioBench.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/StreamParseInt/StreamParseInt.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/ThreeCards/ThreeCards.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/Timestamp/Timestamp.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/TwoCards/TwoCards.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/VolumeFreeSpace/VolumeFreeSpace.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/bench/bench.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/cin_cout/cin_cout.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/dataLogger/dataLogger.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/directoryFunctions/directoryFunctions.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/fgets/fgets.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/formatting/formatting.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/getline/getline.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/readCSV/readCSV.ino (100%) rename {required_libraries => Libraries}/SdFat/examples/rename/rename.ino (100%) rename {required_libraries => Libraries}/SdFat/library.properties (100%) rename {required_libraries => Libraries}/SdFat/readme.md (100%) rename {required_libraries => Libraries}/SdFat/src/Deprecated/SdVolume.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/ArduinoFiles.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/ArduinoStream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatApiConstants.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatFile.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatFile.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatFileLFN.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatFilePrint.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatFileSFN.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatFileSystem.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatLib.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatLibConfig.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatStructs.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatVolume.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FatVolume.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FmtNumber.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/FmtNumber.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/StdioStream.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/StdioStream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/bufstream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/fstream.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/fstream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/ios.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/iostream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/istream.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/istream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/ostream.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/FatLib/ostream.h (100%) rename {required_libraries => Libraries}/SdFat/src/FreeStack.h (100%) rename {required_libraries => Libraries}/SdFat/src/MinimumSerial.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/MinimumSerial.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdFat.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/SdFat.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdFatConfig.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdFatUtil.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/SdFatUtil.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/DigitalPin.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdInfo.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdSpi.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdSpiCard.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdSpiCard.h (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdSpiSAM3X.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdSpiSTM32F1.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SdSpiTeensy3.cpp (100%) rename {required_libraries => Libraries}/SdFat/src/SdSpiCard/SoftSPI.h (100%) rename {required_libraries => Libraries}/SerialPort/SerialPort.cpp (100%) rename {required_libraries => Libraries}/SerialPort/SerialPort.h (100%) rename {required_libraries => Libraries}/SerialPort/examples/ArduinoSize/ArduinoSize.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/ArduinoSize/FreeRam.h (100%) rename {required_libraries => Libraries}/SerialPort/examples/ArduinoTest/ArduinoTest.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/BufferedSize/BufferedSize.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/BufferedSize/FreeRam.h (100%) rename {required_libraries => Libraries}/SerialPort/examples/BufferedTest/BufferedTest.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/HelloWorld/HelloWorld.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/MegaTest/MegaTest.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/MegaTestArduino/MegaTestArduino.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/ReadWriteTest/ReadWriteTest.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/UnbufferedSize/FreeRam.h (100%) rename {required_libraries => Libraries}/SerialPort/examples/UnbufferedSize/UnbufferedSize.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/UnbufferedTest/UnbufferedTest.pde (100%) rename {required_libraries => Libraries}/SerialPort/examples/WriteFlash/WriteFlash.pde (100%) rename {required_libraries => Libraries}/SerialPort/readme.md (100%) delete mode 100644 OpenLog-Dimensional Drawing.png delete mode 100644 hardware/OpenLog-Dimensional.pdf delete mode 100644 hardware/OpenLog-Schematic.pdf create mode 100644 hardware/OpenLogDimensionalDrawing.pdf create mode 100644 hardware/OpenLogSchematic.pdf diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/FTDI-Connections.jpg b/Documentation/FTDI-Connections.jpg similarity index 100% rename from FTDI-Connections.jpg rename to Documentation/FTDI-Connections.jpg diff --git a/Fritzing/FTDI-OpenLog-Fritzing.png b/Documentation/FTDI-OpenLog-Fritzing.png similarity index 100% rename from Fritzing/FTDI-OpenLog-Fritzing.png rename to Documentation/FTDI-OpenLog-Fritzing.png diff --git a/OpenLog-Attached-To-FTDI-Basic.jpg b/Documentation/OpenLog-Attached-To-FTDI-Basic.jpg similarity index 100% rename from OpenLog-Attached-To-FTDI-Basic.jpg rename to Documentation/OpenLog-Attached-To-FTDI-Basic.jpg diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..1e09816 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,56 @@ +SparkFun License Information +============================ + +SparkFun uses two different licenses for our files — one for hardware and one for code. + +Hardware +--------- + +**SparkFun hardware is released under [Creative Commons Share-alike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/).** + +Note: This is a human-readable summary of (and not a substitute for) the [license](http://creativecommons.org/licenses/by-sa/4.0/legalcode). + +You are free to: + +Share — copy and redistribute the material in any medium or format +Adapt — remix, transform, and build upon the material +for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. +ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. +No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. +Notices: + +You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. + + +Code +-------- +OpenLog uses SdFatLib-beta(https://github.com/greiman/SdFat-beta) and SerialPort(https://github.com/greiman/SerialPort) written by Bill Greiman and is released under [GPL v3](http://www.gnu.org/licenses/gpl-3.0.html). + +**SparkFun OpenLog firmware is released under the MIT License(http://opensource.org/licenses/MIT).** + +The MIT License (MIT) + +Copyright (c) 2016 SparkFun Electronics + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/required_libraries/SdFat/MainPage/SdFatmainpage.h b/Libraries/SdFat/MainPage/SdFatmainpage.h similarity index 100% rename from required_libraries/SdFat/MainPage/SdFatmainpage.h rename to Libraries/SdFat/MainPage/SdFatmainpage.h diff --git a/required_libraries/SdFat/examples/#attic/AnalogLogger/AnalogLogger.ino b/Libraries/SdFat/examples/#attic/AnalogLogger/AnalogLogger.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/AnalogLogger/AnalogLogger.ino rename to Libraries/SdFat/examples/#attic/AnalogLogger/AnalogLogger.ino diff --git a/required_libraries/SdFat/examples/#attic/BaseExtCaseTest/BaseExtCaseTest.ino b/Libraries/SdFat/examples/#attic/BaseExtCaseTest/BaseExtCaseTest.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/BaseExtCaseTest/BaseExtCaseTest.ino rename to Libraries/SdFat/examples/#attic/BaseExtCaseTest/BaseExtCaseTest.ino diff --git a/required_libraries/SdFat/examples/#attic/HelloWorld/HelloWorld.ino b/Libraries/SdFat/examples/#attic/HelloWorld/HelloWorld.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/HelloWorld/HelloWorld.ino rename to Libraries/SdFat/examples/#attic/HelloWorld/HelloWorld.ino diff --git a/required_libraries/SdFat/examples/#attic/MiniSerial/MiniSerial.ino b/Libraries/SdFat/examples/#attic/MiniSerial/MiniSerial.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/MiniSerial/MiniSerial.ino rename to Libraries/SdFat/examples/#attic/MiniSerial/MiniSerial.ino diff --git a/required_libraries/SdFat/examples/#attic/PrintBenchmarkSD/PrintBenchmarkSD.ino b/Libraries/SdFat/examples/#attic/PrintBenchmarkSD/PrintBenchmarkSD.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/PrintBenchmarkSD/PrintBenchmarkSD.ino rename to Libraries/SdFat/examples/#attic/PrintBenchmarkSD/PrintBenchmarkSD.ino diff --git a/required_libraries/SdFat/examples/#attic/SD_Size/SD_Size.ino b/Libraries/SdFat/examples/#attic/SD_Size/SD_Size.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/SD_Size/SD_Size.ino rename to Libraries/SdFat/examples/#attic/SD_Size/SD_Size.ino diff --git a/required_libraries/SdFat/examples/#attic/SdFatSize/SdFatSize.ino b/Libraries/SdFat/examples/#attic/SdFatSize/SdFatSize.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/SdFatSize/SdFatSize.ino rename to Libraries/SdFat/examples/#attic/SdFatSize/SdFatSize.ino diff --git a/required_libraries/SdFat/examples/#attic/append/append.ino b/Libraries/SdFat/examples/#attic/append/append.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/append/append.ino rename to Libraries/SdFat/examples/#attic/append/append.ino diff --git a/required_libraries/SdFat/examples/#attic/average/average.ino b/Libraries/SdFat/examples/#attic/average/average.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/average/average.ino rename to Libraries/SdFat/examples/#attic/average/average.ino diff --git a/required_libraries/SdFat/examples/#attic/benchSD/benchSD.ino b/Libraries/SdFat/examples/#attic/benchSD/benchSD.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/benchSD/benchSD.ino rename to Libraries/SdFat/examples/#attic/benchSD/benchSD.ino diff --git a/required_libraries/SdFat/examples/#attic/bufstream/bufstream.ino b/Libraries/SdFat/examples/#attic/bufstream/bufstream.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/bufstream/bufstream.ino rename to Libraries/SdFat/examples/#attic/bufstream/bufstream.ino diff --git a/required_libraries/SdFat/examples/#attic/eventlog/eventlog.ino b/Libraries/SdFat/examples/#attic/eventlog/eventlog.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/eventlog/eventlog.ino rename to Libraries/SdFat/examples/#attic/eventlog/eventlog.ino diff --git a/required_libraries/SdFat/examples/#attic/fgetsRewrite/fgetsRewrite.ino b/Libraries/SdFat/examples/#attic/fgetsRewrite/fgetsRewrite.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/fgetsRewrite/fgetsRewrite.ino rename to Libraries/SdFat/examples/#attic/fgetsRewrite/fgetsRewrite.ino diff --git a/required_libraries/SdFat/examples/#attic/readlog/readlog.ino b/Libraries/SdFat/examples/#attic/readlog/readlog.ino similarity index 100% rename from required_libraries/SdFat/examples/#attic/readlog/readlog.ino rename to Libraries/SdFat/examples/#attic/readlog/readlog.ino diff --git a/required_libraries/SdFat/examples/#attic/readme.txt b/Libraries/SdFat/examples/#attic/readme.txt similarity index 100% rename from required_libraries/SdFat/examples/#attic/readme.txt rename to Libraries/SdFat/examples/#attic/readme.txt diff --git a/required_libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.h b/Libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.h similarity index 100% rename from required_libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.h rename to Libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.h diff --git a/required_libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.ino b/Libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.ino similarity index 100% rename from required_libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.ino rename to Libraries/SdFat/examples/AnalogBinLogger/AnalogBinLogger.ino diff --git a/required_libraries/SdFat/examples/LongFileName/LongFileName.ino b/Libraries/SdFat/examples/LongFileName/LongFileName.ino similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/LongFileName.ino rename to Libraries/SdFat/examples/LongFileName/LongFileName.ino diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/A long name can be 255 characters.txt b/Libraries/SdFat/examples/LongFileName/testFiles/A long name can be 255 characters.txt similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/A long name can be 255 characters.txt rename to Libraries/SdFat/examples/LongFileName/testFiles/A long name can be 255 characters.txt diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/LFN,NAME.TXT b/Libraries/SdFat/examples/LongFileName/testFiles/LFN,NAME.TXT similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/LFN,NAME.TXT rename to Libraries/SdFat/examples/LongFileName/testFiles/LFN,NAME.TXT diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/MIXCASE.txt b/Libraries/SdFat/examples/LongFileName/testFiles/MIXCASE.txt similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/MIXCASE.txt rename to Libraries/SdFat/examples/LongFileName/testFiles/MIXCASE.txt diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/Not_8_3.txt b/Libraries/SdFat/examples/LongFileName/testFiles/Not_8_3.txt similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/Not_8_3.txt rename to Libraries/SdFat/examples/LongFileName/testFiles/Not_8_3.txt diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/OK%83.TXT b/Libraries/SdFat/examples/LongFileName/testFiles/OK%83.TXT similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/OK%83.TXT rename to Libraries/SdFat/examples/LongFileName/testFiles/OK%83.TXT diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/STD_8_3.TXT b/Libraries/SdFat/examples/LongFileName/testFiles/STD_8_3.TXT similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/STD_8_3.TXT rename to Libraries/SdFat/examples/LongFileName/testFiles/STD_8_3.TXT diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/With Blank.txt b/Libraries/SdFat/examples/LongFileName/testFiles/With Blank.txt similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/With Blank.txt rename to Libraries/SdFat/examples/LongFileName/testFiles/With Blank.txt diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/With.Two dots.txt b/Libraries/SdFat/examples/LongFileName/testFiles/With.Two dots.txt similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/With.Two dots.txt rename to Libraries/SdFat/examples/LongFileName/testFiles/With.Two dots.txt diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/lower.txt b/Libraries/SdFat/examples/LongFileName/testFiles/lower.txt similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/lower.txt rename to Libraries/SdFat/examples/LongFileName/testFiles/lower.txt diff --git a/required_libraries/SdFat/examples/LongFileName/testFiles/mixed.TXT b/Libraries/SdFat/examples/LongFileName/testFiles/mixed.TXT similarity index 100% rename from required_libraries/SdFat/examples/LongFileName/testFiles/mixed.TXT rename to Libraries/SdFat/examples/LongFileName/testFiles/mixed.TXT diff --git a/required_libraries/SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino b/Libraries/SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino similarity index 100% rename from required_libraries/SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino rename to Libraries/SdFat/examples/LowLatencyLogger/LowLatencyLogger.ino diff --git a/required_libraries/SdFat/examples/LowLatencyLogger/UserDataType.h b/Libraries/SdFat/examples/LowLatencyLogger/UserDataType.h similarity index 100% rename from required_libraries/SdFat/examples/LowLatencyLogger/UserDataType.h rename to Libraries/SdFat/examples/LowLatencyLogger/UserDataType.h diff --git a/required_libraries/SdFat/examples/OpenNext/OpenNext.ino b/Libraries/SdFat/examples/OpenNext/OpenNext.ino similarity index 100% rename from required_libraries/SdFat/examples/OpenNext/OpenNext.ino rename to Libraries/SdFat/examples/OpenNext/OpenNext.ino diff --git a/required_libraries/SdFat/examples/PrintBenchmark/PrintBenchmark.ino b/Libraries/SdFat/examples/PrintBenchmark/PrintBenchmark.ino similarity index 100% rename from required_libraries/SdFat/examples/PrintBenchmark/PrintBenchmark.ino rename to Libraries/SdFat/examples/PrintBenchmark/PrintBenchmark.ino diff --git a/required_libraries/SdFat/examples/QuickStart/QuickStart.ino b/Libraries/SdFat/examples/QuickStart/QuickStart.ino similarity index 100% rename from required_libraries/SdFat/examples/QuickStart/QuickStart.ino rename to Libraries/SdFat/examples/QuickStart/QuickStart.ino diff --git a/required_libraries/SdFat/examples/RawWrite/RawWrite.ino b/Libraries/SdFat/examples/RawWrite/RawWrite.ino similarity index 100% rename from required_libraries/SdFat/examples/RawWrite/RawWrite.ino rename to Libraries/SdFat/examples/RawWrite/RawWrite.ino diff --git a/required_libraries/SdFat/examples/ReadWrite/ReadWrite.ino b/Libraries/SdFat/examples/ReadWrite/ReadWrite.ino similarity index 100% rename from required_libraries/SdFat/examples/ReadWrite/ReadWrite.ino rename to Libraries/SdFat/examples/ReadWrite/ReadWrite.ino diff --git a/required_libraries/SdFat/examples/ReadWriteSdFat/ReadWriteSdFat.ino b/Libraries/SdFat/examples/ReadWriteSdFat/ReadWriteSdFat.ino similarity index 100% rename from required_libraries/SdFat/examples/ReadWriteSdFat/ReadWriteSdFat.ino rename to Libraries/SdFat/examples/ReadWriteSdFat/ReadWriteSdFat.ino diff --git a/required_libraries/SdFat/examples/SdFormatter/SdFormatter.ino b/Libraries/SdFat/examples/SdFormatter/SdFormatter.ino similarity index 100% rename from required_libraries/SdFat/examples/SdFormatter/SdFormatter.ino rename to Libraries/SdFat/examples/SdFormatter/SdFormatter.ino diff --git a/required_libraries/SdFat/examples/SdInfo/SdInfo.ino b/Libraries/SdFat/examples/SdInfo/SdInfo.ino similarity index 100% rename from required_libraries/SdFat/examples/SdInfo/SdInfo.ino rename to Libraries/SdFat/examples/SdInfo/SdInfo.ino diff --git a/required_libraries/SdFat/examples/SoftwareSpi/SoftwareSpi.ino b/Libraries/SdFat/examples/SoftwareSpi/SoftwareSpi.ino similarity index 100% rename from required_libraries/SdFat/examples/SoftwareSpi/SoftwareSpi.ino rename to Libraries/SdFat/examples/SoftwareSpi/SoftwareSpi.ino diff --git a/required_libraries/SdFat/examples/StdioBench/StdioBench.ino b/Libraries/SdFat/examples/StdioBench/StdioBench.ino similarity index 100% rename from required_libraries/SdFat/examples/StdioBench/StdioBench.ino rename to Libraries/SdFat/examples/StdioBench/StdioBench.ino diff --git a/required_libraries/SdFat/examples/StreamParseInt/StreamParseInt.ino b/Libraries/SdFat/examples/StreamParseInt/StreamParseInt.ino similarity index 100% rename from required_libraries/SdFat/examples/StreamParseInt/StreamParseInt.ino rename to Libraries/SdFat/examples/StreamParseInt/StreamParseInt.ino diff --git a/required_libraries/SdFat/examples/ThreeCards/ThreeCards.ino b/Libraries/SdFat/examples/ThreeCards/ThreeCards.ino similarity index 100% rename from required_libraries/SdFat/examples/ThreeCards/ThreeCards.ino rename to Libraries/SdFat/examples/ThreeCards/ThreeCards.ino diff --git a/required_libraries/SdFat/examples/Timestamp/Timestamp.ino b/Libraries/SdFat/examples/Timestamp/Timestamp.ino similarity index 100% rename from required_libraries/SdFat/examples/Timestamp/Timestamp.ino rename to Libraries/SdFat/examples/Timestamp/Timestamp.ino diff --git a/required_libraries/SdFat/examples/TwoCards/TwoCards.ino b/Libraries/SdFat/examples/TwoCards/TwoCards.ino similarity index 100% rename from required_libraries/SdFat/examples/TwoCards/TwoCards.ino rename to Libraries/SdFat/examples/TwoCards/TwoCards.ino diff --git a/required_libraries/SdFat/examples/VolumeFreeSpace/VolumeFreeSpace.ino b/Libraries/SdFat/examples/VolumeFreeSpace/VolumeFreeSpace.ino similarity index 100% rename from required_libraries/SdFat/examples/VolumeFreeSpace/VolumeFreeSpace.ino rename to Libraries/SdFat/examples/VolumeFreeSpace/VolumeFreeSpace.ino diff --git a/required_libraries/SdFat/examples/bench/bench.ino b/Libraries/SdFat/examples/bench/bench.ino similarity index 100% rename from required_libraries/SdFat/examples/bench/bench.ino rename to Libraries/SdFat/examples/bench/bench.ino diff --git a/required_libraries/SdFat/examples/cin_cout/cin_cout.ino b/Libraries/SdFat/examples/cin_cout/cin_cout.ino similarity index 100% rename from required_libraries/SdFat/examples/cin_cout/cin_cout.ino rename to Libraries/SdFat/examples/cin_cout/cin_cout.ino diff --git a/required_libraries/SdFat/examples/dataLogger/dataLogger.ino b/Libraries/SdFat/examples/dataLogger/dataLogger.ino similarity index 100% rename from required_libraries/SdFat/examples/dataLogger/dataLogger.ino rename to Libraries/SdFat/examples/dataLogger/dataLogger.ino diff --git a/required_libraries/SdFat/examples/directoryFunctions/directoryFunctions.ino b/Libraries/SdFat/examples/directoryFunctions/directoryFunctions.ino similarity index 100% rename from required_libraries/SdFat/examples/directoryFunctions/directoryFunctions.ino rename to Libraries/SdFat/examples/directoryFunctions/directoryFunctions.ino diff --git a/required_libraries/SdFat/examples/fgets/fgets.ino b/Libraries/SdFat/examples/fgets/fgets.ino similarity index 100% rename from required_libraries/SdFat/examples/fgets/fgets.ino rename to Libraries/SdFat/examples/fgets/fgets.ino diff --git a/required_libraries/SdFat/examples/formatting/formatting.ino b/Libraries/SdFat/examples/formatting/formatting.ino similarity index 100% rename from required_libraries/SdFat/examples/formatting/formatting.ino rename to Libraries/SdFat/examples/formatting/formatting.ino diff --git a/required_libraries/SdFat/examples/getline/getline.ino b/Libraries/SdFat/examples/getline/getline.ino similarity index 100% rename from required_libraries/SdFat/examples/getline/getline.ino rename to Libraries/SdFat/examples/getline/getline.ino diff --git a/required_libraries/SdFat/examples/readCSV/readCSV.ino b/Libraries/SdFat/examples/readCSV/readCSV.ino similarity index 100% rename from required_libraries/SdFat/examples/readCSV/readCSV.ino rename to Libraries/SdFat/examples/readCSV/readCSV.ino diff --git a/required_libraries/SdFat/examples/rename/rename.ino b/Libraries/SdFat/examples/rename/rename.ino similarity index 100% rename from required_libraries/SdFat/examples/rename/rename.ino rename to Libraries/SdFat/examples/rename/rename.ino diff --git a/required_libraries/SdFat/library.properties b/Libraries/SdFat/library.properties similarity index 100% rename from required_libraries/SdFat/library.properties rename to Libraries/SdFat/library.properties diff --git a/required_libraries/SdFat/readme.md b/Libraries/SdFat/readme.md similarity index 100% rename from required_libraries/SdFat/readme.md rename to Libraries/SdFat/readme.md diff --git a/required_libraries/SdFat/src/Deprecated/SdVolume.h b/Libraries/SdFat/src/Deprecated/SdVolume.h similarity index 100% rename from required_libraries/SdFat/src/Deprecated/SdVolume.h rename to Libraries/SdFat/src/Deprecated/SdVolume.h diff --git a/required_libraries/SdFat/src/FatLib/ArduinoFiles.h b/Libraries/SdFat/src/FatLib/ArduinoFiles.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/ArduinoFiles.h rename to Libraries/SdFat/src/FatLib/ArduinoFiles.h diff --git a/required_libraries/SdFat/src/FatLib/ArduinoStream.h b/Libraries/SdFat/src/FatLib/ArduinoStream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/ArduinoStream.h rename to Libraries/SdFat/src/FatLib/ArduinoStream.h diff --git a/required_libraries/SdFat/src/FatLib/FatApiConstants.h b/Libraries/SdFat/src/FatLib/FatApiConstants.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatApiConstants.h rename to Libraries/SdFat/src/FatLib/FatApiConstants.h diff --git a/required_libraries/SdFat/src/FatLib/FatFile.cpp b/Libraries/SdFat/src/FatLib/FatFile.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatFile.cpp rename to Libraries/SdFat/src/FatLib/FatFile.cpp diff --git a/required_libraries/SdFat/src/FatLib/FatFile.h b/Libraries/SdFat/src/FatLib/FatFile.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatFile.h rename to Libraries/SdFat/src/FatLib/FatFile.h diff --git a/required_libraries/SdFat/src/FatLib/FatFileLFN.cpp b/Libraries/SdFat/src/FatLib/FatFileLFN.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatFileLFN.cpp rename to Libraries/SdFat/src/FatLib/FatFileLFN.cpp diff --git a/required_libraries/SdFat/src/FatLib/FatFilePrint.cpp b/Libraries/SdFat/src/FatLib/FatFilePrint.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatFilePrint.cpp rename to Libraries/SdFat/src/FatLib/FatFilePrint.cpp diff --git a/required_libraries/SdFat/src/FatLib/FatFileSFN.cpp b/Libraries/SdFat/src/FatLib/FatFileSFN.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatFileSFN.cpp rename to Libraries/SdFat/src/FatLib/FatFileSFN.cpp diff --git a/required_libraries/SdFat/src/FatLib/FatFileSystem.h b/Libraries/SdFat/src/FatLib/FatFileSystem.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatFileSystem.h rename to Libraries/SdFat/src/FatLib/FatFileSystem.h diff --git a/required_libraries/SdFat/src/FatLib/FatLib.h b/Libraries/SdFat/src/FatLib/FatLib.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatLib.h rename to Libraries/SdFat/src/FatLib/FatLib.h diff --git a/required_libraries/SdFat/src/FatLib/FatLibConfig.h b/Libraries/SdFat/src/FatLib/FatLibConfig.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatLibConfig.h rename to Libraries/SdFat/src/FatLib/FatLibConfig.h diff --git a/required_libraries/SdFat/src/FatLib/FatStructs.h b/Libraries/SdFat/src/FatLib/FatStructs.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatStructs.h rename to Libraries/SdFat/src/FatLib/FatStructs.h diff --git a/required_libraries/SdFat/src/FatLib/FatVolume.cpp b/Libraries/SdFat/src/FatLib/FatVolume.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatVolume.cpp rename to Libraries/SdFat/src/FatLib/FatVolume.cpp diff --git a/required_libraries/SdFat/src/FatLib/FatVolume.h b/Libraries/SdFat/src/FatLib/FatVolume.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FatVolume.h rename to Libraries/SdFat/src/FatLib/FatVolume.h diff --git a/required_libraries/SdFat/src/FatLib/FmtNumber.cpp b/Libraries/SdFat/src/FatLib/FmtNumber.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/FmtNumber.cpp rename to Libraries/SdFat/src/FatLib/FmtNumber.cpp diff --git a/required_libraries/SdFat/src/FatLib/FmtNumber.h b/Libraries/SdFat/src/FatLib/FmtNumber.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/FmtNumber.h rename to Libraries/SdFat/src/FatLib/FmtNumber.h diff --git a/required_libraries/SdFat/src/FatLib/StdioStream.cpp b/Libraries/SdFat/src/FatLib/StdioStream.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/StdioStream.cpp rename to Libraries/SdFat/src/FatLib/StdioStream.cpp diff --git a/required_libraries/SdFat/src/FatLib/StdioStream.h b/Libraries/SdFat/src/FatLib/StdioStream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/StdioStream.h rename to Libraries/SdFat/src/FatLib/StdioStream.h diff --git a/required_libraries/SdFat/src/FatLib/bufstream.h b/Libraries/SdFat/src/FatLib/bufstream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/bufstream.h rename to Libraries/SdFat/src/FatLib/bufstream.h diff --git a/required_libraries/SdFat/src/FatLib/fstream.cpp b/Libraries/SdFat/src/FatLib/fstream.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/fstream.cpp rename to Libraries/SdFat/src/FatLib/fstream.cpp diff --git a/required_libraries/SdFat/src/FatLib/fstream.h b/Libraries/SdFat/src/FatLib/fstream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/fstream.h rename to Libraries/SdFat/src/FatLib/fstream.h diff --git a/required_libraries/SdFat/src/FatLib/ios.h b/Libraries/SdFat/src/FatLib/ios.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/ios.h rename to Libraries/SdFat/src/FatLib/ios.h diff --git a/required_libraries/SdFat/src/FatLib/iostream.h b/Libraries/SdFat/src/FatLib/iostream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/iostream.h rename to Libraries/SdFat/src/FatLib/iostream.h diff --git a/required_libraries/SdFat/src/FatLib/istream.cpp b/Libraries/SdFat/src/FatLib/istream.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/istream.cpp rename to Libraries/SdFat/src/FatLib/istream.cpp diff --git a/required_libraries/SdFat/src/FatLib/istream.h b/Libraries/SdFat/src/FatLib/istream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/istream.h rename to Libraries/SdFat/src/FatLib/istream.h diff --git a/required_libraries/SdFat/src/FatLib/ostream.cpp b/Libraries/SdFat/src/FatLib/ostream.cpp similarity index 100% rename from required_libraries/SdFat/src/FatLib/ostream.cpp rename to Libraries/SdFat/src/FatLib/ostream.cpp diff --git a/required_libraries/SdFat/src/FatLib/ostream.h b/Libraries/SdFat/src/FatLib/ostream.h similarity index 100% rename from required_libraries/SdFat/src/FatLib/ostream.h rename to Libraries/SdFat/src/FatLib/ostream.h diff --git a/required_libraries/SdFat/src/FreeStack.h b/Libraries/SdFat/src/FreeStack.h similarity index 100% rename from required_libraries/SdFat/src/FreeStack.h rename to Libraries/SdFat/src/FreeStack.h diff --git a/required_libraries/SdFat/src/MinimumSerial.cpp b/Libraries/SdFat/src/MinimumSerial.cpp similarity index 100% rename from required_libraries/SdFat/src/MinimumSerial.cpp rename to Libraries/SdFat/src/MinimumSerial.cpp diff --git a/required_libraries/SdFat/src/MinimumSerial.h b/Libraries/SdFat/src/MinimumSerial.h similarity index 100% rename from required_libraries/SdFat/src/MinimumSerial.h rename to Libraries/SdFat/src/MinimumSerial.h diff --git a/required_libraries/SdFat/src/SdFat.cpp b/Libraries/SdFat/src/SdFat.cpp similarity index 100% rename from required_libraries/SdFat/src/SdFat.cpp rename to Libraries/SdFat/src/SdFat.cpp diff --git a/required_libraries/SdFat/src/SdFat.h b/Libraries/SdFat/src/SdFat.h similarity index 100% rename from required_libraries/SdFat/src/SdFat.h rename to Libraries/SdFat/src/SdFat.h diff --git a/required_libraries/SdFat/src/SdFatConfig.h b/Libraries/SdFat/src/SdFatConfig.h similarity index 100% rename from required_libraries/SdFat/src/SdFatConfig.h rename to Libraries/SdFat/src/SdFatConfig.h diff --git a/required_libraries/SdFat/src/SdFatUtil.cpp b/Libraries/SdFat/src/SdFatUtil.cpp similarity index 100% rename from required_libraries/SdFat/src/SdFatUtil.cpp rename to Libraries/SdFat/src/SdFatUtil.cpp diff --git a/required_libraries/SdFat/src/SdFatUtil.h b/Libraries/SdFat/src/SdFatUtil.h similarity index 100% rename from required_libraries/SdFat/src/SdFatUtil.h rename to Libraries/SdFat/src/SdFatUtil.h diff --git a/required_libraries/SdFat/src/SdSpiCard/DigitalPin.h b/Libraries/SdFat/src/SdSpiCard/DigitalPin.h similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/DigitalPin.h rename to Libraries/SdFat/src/SdSpiCard/DigitalPin.h diff --git a/required_libraries/SdFat/src/SdSpiCard/SdInfo.h b/Libraries/SdFat/src/SdSpiCard/SdInfo.h similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdInfo.h rename to Libraries/SdFat/src/SdSpiCard/SdInfo.h diff --git a/required_libraries/SdFat/src/SdSpiCard/SdSpi.h b/Libraries/SdFat/src/SdSpiCard/SdSpi.h similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdSpi.h rename to Libraries/SdFat/src/SdSpiCard/SdSpi.h diff --git a/required_libraries/SdFat/src/SdSpiCard/SdSpiCard.cpp b/Libraries/SdFat/src/SdSpiCard/SdSpiCard.cpp similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdSpiCard.cpp rename to Libraries/SdFat/src/SdSpiCard/SdSpiCard.cpp diff --git a/required_libraries/SdFat/src/SdSpiCard/SdSpiCard.h b/Libraries/SdFat/src/SdSpiCard/SdSpiCard.h similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdSpiCard.h rename to Libraries/SdFat/src/SdSpiCard/SdSpiCard.h diff --git a/required_libraries/SdFat/src/SdSpiCard/SdSpiSAM3X.cpp b/Libraries/SdFat/src/SdSpiCard/SdSpiSAM3X.cpp similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdSpiSAM3X.cpp rename to Libraries/SdFat/src/SdSpiCard/SdSpiSAM3X.cpp diff --git a/required_libraries/SdFat/src/SdSpiCard/SdSpiSTM32F1.cpp b/Libraries/SdFat/src/SdSpiCard/SdSpiSTM32F1.cpp similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdSpiSTM32F1.cpp rename to Libraries/SdFat/src/SdSpiCard/SdSpiSTM32F1.cpp diff --git a/required_libraries/SdFat/src/SdSpiCard/SdSpiTeensy3.cpp b/Libraries/SdFat/src/SdSpiCard/SdSpiTeensy3.cpp similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SdSpiTeensy3.cpp rename to Libraries/SdFat/src/SdSpiCard/SdSpiTeensy3.cpp diff --git a/required_libraries/SdFat/src/SdSpiCard/SoftSPI.h b/Libraries/SdFat/src/SdSpiCard/SoftSPI.h similarity index 100% rename from required_libraries/SdFat/src/SdSpiCard/SoftSPI.h rename to Libraries/SdFat/src/SdSpiCard/SoftSPI.h diff --git a/required_libraries/SerialPort/SerialPort.cpp b/Libraries/SerialPort/SerialPort.cpp similarity index 100% rename from required_libraries/SerialPort/SerialPort.cpp rename to Libraries/SerialPort/SerialPort.cpp diff --git a/required_libraries/SerialPort/SerialPort.h b/Libraries/SerialPort/SerialPort.h similarity index 100% rename from required_libraries/SerialPort/SerialPort.h rename to Libraries/SerialPort/SerialPort.h diff --git a/required_libraries/SerialPort/examples/ArduinoSize/ArduinoSize.pde b/Libraries/SerialPort/examples/ArduinoSize/ArduinoSize.pde similarity index 100% rename from required_libraries/SerialPort/examples/ArduinoSize/ArduinoSize.pde rename to Libraries/SerialPort/examples/ArduinoSize/ArduinoSize.pde diff --git a/required_libraries/SerialPort/examples/ArduinoSize/FreeRam.h b/Libraries/SerialPort/examples/ArduinoSize/FreeRam.h similarity index 100% rename from required_libraries/SerialPort/examples/ArduinoSize/FreeRam.h rename to Libraries/SerialPort/examples/ArduinoSize/FreeRam.h diff --git a/required_libraries/SerialPort/examples/ArduinoTest/ArduinoTest.pde b/Libraries/SerialPort/examples/ArduinoTest/ArduinoTest.pde similarity index 100% rename from required_libraries/SerialPort/examples/ArduinoTest/ArduinoTest.pde rename to Libraries/SerialPort/examples/ArduinoTest/ArduinoTest.pde diff --git a/required_libraries/SerialPort/examples/BufferedSize/BufferedSize.pde b/Libraries/SerialPort/examples/BufferedSize/BufferedSize.pde similarity index 100% rename from required_libraries/SerialPort/examples/BufferedSize/BufferedSize.pde rename to Libraries/SerialPort/examples/BufferedSize/BufferedSize.pde diff --git a/required_libraries/SerialPort/examples/BufferedSize/FreeRam.h b/Libraries/SerialPort/examples/BufferedSize/FreeRam.h similarity index 100% rename from required_libraries/SerialPort/examples/BufferedSize/FreeRam.h rename to Libraries/SerialPort/examples/BufferedSize/FreeRam.h diff --git a/required_libraries/SerialPort/examples/BufferedTest/BufferedTest.pde b/Libraries/SerialPort/examples/BufferedTest/BufferedTest.pde similarity index 100% rename from required_libraries/SerialPort/examples/BufferedTest/BufferedTest.pde rename to Libraries/SerialPort/examples/BufferedTest/BufferedTest.pde diff --git a/required_libraries/SerialPort/examples/HelloWorld/HelloWorld.pde b/Libraries/SerialPort/examples/HelloWorld/HelloWorld.pde similarity index 100% rename from required_libraries/SerialPort/examples/HelloWorld/HelloWorld.pde rename to Libraries/SerialPort/examples/HelloWorld/HelloWorld.pde diff --git a/required_libraries/SerialPort/examples/MegaTest/MegaTest.pde b/Libraries/SerialPort/examples/MegaTest/MegaTest.pde similarity index 100% rename from required_libraries/SerialPort/examples/MegaTest/MegaTest.pde rename to Libraries/SerialPort/examples/MegaTest/MegaTest.pde diff --git a/required_libraries/SerialPort/examples/MegaTestArduino/MegaTestArduino.pde b/Libraries/SerialPort/examples/MegaTestArduino/MegaTestArduino.pde similarity index 100% rename from required_libraries/SerialPort/examples/MegaTestArduino/MegaTestArduino.pde rename to Libraries/SerialPort/examples/MegaTestArduino/MegaTestArduino.pde diff --git a/required_libraries/SerialPort/examples/ReadWriteTest/ReadWriteTest.pde b/Libraries/SerialPort/examples/ReadWriteTest/ReadWriteTest.pde similarity index 100% rename from required_libraries/SerialPort/examples/ReadWriteTest/ReadWriteTest.pde rename to Libraries/SerialPort/examples/ReadWriteTest/ReadWriteTest.pde diff --git a/required_libraries/SerialPort/examples/UnbufferedSize/FreeRam.h b/Libraries/SerialPort/examples/UnbufferedSize/FreeRam.h similarity index 100% rename from required_libraries/SerialPort/examples/UnbufferedSize/FreeRam.h rename to Libraries/SerialPort/examples/UnbufferedSize/FreeRam.h diff --git a/required_libraries/SerialPort/examples/UnbufferedSize/UnbufferedSize.pde b/Libraries/SerialPort/examples/UnbufferedSize/UnbufferedSize.pde similarity index 100% rename from required_libraries/SerialPort/examples/UnbufferedSize/UnbufferedSize.pde rename to Libraries/SerialPort/examples/UnbufferedSize/UnbufferedSize.pde diff --git a/required_libraries/SerialPort/examples/UnbufferedTest/UnbufferedTest.pde b/Libraries/SerialPort/examples/UnbufferedTest/UnbufferedTest.pde similarity index 100% rename from required_libraries/SerialPort/examples/UnbufferedTest/UnbufferedTest.pde rename to Libraries/SerialPort/examples/UnbufferedTest/UnbufferedTest.pde diff --git a/required_libraries/SerialPort/examples/WriteFlash/WriteFlash.pde b/Libraries/SerialPort/examples/WriteFlash/WriteFlash.pde similarity index 100% rename from required_libraries/SerialPort/examples/WriteFlash/WriteFlash.pde rename to Libraries/SerialPort/examples/WriteFlash/WriteFlash.pde diff --git a/required_libraries/SerialPort/readme.md b/Libraries/SerialPort/readme.md similarity index 100% rename from required_libraries/SerialPort/readme.md rename to Libraries/SerialPort/readme.md diff --git a/OpenLog-Dimensional Drawing.png b/OpenLog-Dimensional Drawing.png deleted file mode 100644 index 6ce014e5ada2dafb284d6eb9c91c08a68de5c096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8819 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 diff --git a/README.md b/README.md index 5badecd..2f6a095 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,43 @@ -OpenLog -======= +SparkFun OpenLog +================ -[![OpenLog](https://dlnmh9ip6v2uc.cloudfront.net/images/products/9/5/3/0/09530-01_i_ma.jpg) -*OpenLog (DEV-09530)*](https://www.sparkfun.com/products/9530) +![OpenLog](https://dlnmh9ip6v2uc.cloudfront.net/images/products/9/5/3/0/09530-01_i_ma.jpg) + +[*OpenLog (DEV-09530)*](https://www.sparkfun.com/products/9530) OpenLog is an open source data logger that works over a simple serial connection and supports microSD cards up to 64GB. + +Repository Contents +------------------- +* **/Documentation** - Data sheets, additional product information +* **/Firmware** - Example sketches for the OpenLog, and for an Arduino connected to the OpenLog. +* **/Hardware** - Hardware design files for the OpenLog PCB. These files were designed in Eagle CAD. +* **/Libraries** - Libraries for use with the OpenLog. +* **/Production** - Production panel files (.brd) + +Documentation +-------------- +* **[Hookup Guide](https://learn.sparkfun.com/tutorials/openlog-hookup-guide)** - Basic hookup guide for the OpenLog. +* **[SparkFun Fritzing repo](https://github.com/sparkfun/Fritzing_Parts)** - Fritzing diagrams for SparkFun products. +* **[SparkFun 3D Model repo](https://github.com/sparkfun/3D_Models)** - 3D models of SparkFun products. +* **[SparkFun Graphical Datasheets](https://github.com/sparkfun/Graphical_Datasheets)** -Graphical Datasheets for various SparkFun products. + + License Information ------------------- -The hardware design and firmware are released under [Creative Commons Share-alike 3.0](http://creativecommons.org/licenses/by-sa/3.0/). -The FAT16/FAT32 firmware was originally designed by Roland Riegel and is released under [GPL v2](http://www.gnu.org/licenses/gpl-2.0.html). +This product is _**open source**_! -Feel free to use, distribute, and sell varients of OpenLog. All we ask is that you include attribution of 'Based on OpenLog by SparkFun'. +Please review the LICENSE.md file for license information. -OpenLog v2.0 and above uses sdfatlib written by Bill Greiman and is released under [GPL v3](http://www.gnu.org/licenses/gpl-3.0.html). +If you have any questions or concerns on licensing, please contact techsupport@sparkfun.com. -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](http://en.wikipedia.org/wiki/Beerware)). +Distributed as-is; no warranty is given. -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. +- Your friends at SparkFun. + +_SDFatLib-beta and SerialPort are written by Bill Greiman, and released under GPLv3._ Version History --------------- diff --git a/hardware/OpenLog-Dimensional.pdf b/hardware/OpenLog-Dimensional.pdf deleted file mode 100644 index 00bf611fbc6431af1246dfcaf1c343bc31b21b89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12446 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 diff --git a/hardware/OpenLog-Schematic.pdf b/hardware/OpenLog-Schematic.pdf deleted file mode 100644 index 22e2f95d16a750b2bab53229aec33864500a31de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40457 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 diff --git a/hardware/OpenLog.sch b/hardware/OpenLog.sch index 58f8391..3f835a1 100644 --- a/hardware/OpenLog.sch +++ b/hardware/OpenLog.sch @@ -1,6 +1,6 @@ - + @@ -152,7 +152,7 @@ - + @@ -10129,7 +10129,7 @@ You are welcome to use this library for commercial purposes. For attribution, we To connect OpenLog to an FTDI basic, you will need to swap TX and RX lines between boards. V15 -N. Seidle +N. Seidle Revised by: Patrick Alberts, Pete Lewis 0.8mm Thin PCB Power Circuit: @@ -10193,14 +10193,14 @@ You are welcome to use this library for commercial purposes. For attribution, we - + - + diff --git a/hardware/OpenLogDimensionalDrawing.pdf b/hardware/OpenLogDimensionalDrawing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..22895100078ee8e9999b68660faf5855a78d8b44 GIT binary patch literal 11208 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 literal 0 HcmV?d00001 diff --git a/hardware/OpenLogSchematic.pdf b/hardware/OpenLogSchematic.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13a975bec9b8607cf48cac54c70e337a060947c6 GIT binary patch literal 63907 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
    iMie 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 N0s&%YS5UtN`ae;v0?+^e literal 0 HcmV?d00001