├── Documentation ├── readme_picture.jpg └── README.md ├── Hardware ├── Board_Design_Checklist_Environmental Combo Board_V01.xls ├── README.md ├── Board_Design_Checklist_Environmental Combo Board_V01_summary.txt └── CSS811_BME280_Breakout.brd ├── Firmware ├── README.md ├── Example1-BasicReadings │ └── Example1-BasicReadings.ino └── Example2-CombinedReading │ └── Example2-CombinedReading.ino ├── Libraries └── README.md ├── .gitattributes ├── Production └── README.md ├── README.md ├── LICENSE.md └── .gitignore /Documentation/readme_picture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Qwiic_BME280_CCS811_Combo/HEAD/Documentation/readme_picture.jpg -------------------------------------------------------------------------------- /Documentation/README.md: -------------------------------------------------------------------------------- 1 | SparkFun Documentation 2 | ======================= 3 | 4 | This directory should include any necessary datasheets, example number crunching, etc. -------------------------------------------------------------------------------- /Hardware/Board_Design_Checklist_Environmental Combo Board_V01.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Qwiic_BME280_CCS811_Combo/HEAD/Hardware/Board_Design_Checklist_Environmental Combo Board_V01.xls -------------------------------------------------------------------------------- /Firmware/README.md: -------------------------------------------------------------------------------- 1 | SparkFun CCS811/BME280 Qwiic Environmental Combo Breakout Firmware 2 | =================================== 3 | 4 | * **Examples** - Arduino examples used in the Environmental Combo Hookup Guide 5 | 6 | 7 | -------------------------------------------------------------------------------- /Libraries/README.md: -------------------------------------------------------------------------------- 1 | SparkFun CCS811 and BME280 Libraries 2 | ================================= 3 | 4 | The latest SparkFun libraries for these sensors can be obtained via the [Arduino Library manager](https://learn.sparkfun.com/tutorials/installing-an-arduino-library). 5 | -------------------------------------------------------------------------------- /Hardware/README.md: -------------------------------------------------------------------------------- 1 | SparkFun Design Files 2 | ===================================== 3 | 4 | The .sch and .brd files hare are Eagle CAD schematic and PCB design files from SparkFun Electronics. 5 | A freeware version of Eagle can be found [here](http://www.cadsoftusa.com/download-eagle/freeware/). 6 | 7 | -------------------------------------------------------------------------------- /Hardware/Board_Design_Checklist_Environmental Combo Board_V01_summary.txt: -------------------------------------------------------------------------------- 1 | 1) Do all VCC connections use the VCC symbol (oriented upward)? [NO] 2 | comment: 3.3V instead of VCC, should probably stay this way? 3 | 4 | 2) Do all testpoints have a separation of at least 0.1 inch (preferably placed on a 0.05 inch grid)? [n/a] 5 | comment: no test points? I2C connectors for test 6 | 7 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /Production/README.md: -------------------------------------------------------------------------------- 1 | SparkFun Production Files 2 | ========================================= 3 | 4 | 5 | These are the production files SparkFun uses for printing PCBs. 6 | 7 | 8 | License Information 9 | ------------------- 10 | This product is open source! 11 | 12 | The hardware is released under [Creative Commons ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). 13 | 14 | Please use, reuse, and modify these files as you see fit. Please maintain attribution to SparkFun Electronics and release anything derivative under the same license. 15 | 16 | Distributed as-is; no warranty is given. 17 | 18 | - Your friends at SparkFun. 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SparkFun CCS811/BME280 Combo Board 2 | ======================================== 3 | 4 | ![Sparkfun CCS811/BME280 Combo Board](https://cdn.sparkfun.com//assets/parts/1/2/3/2/9/14348-01.jpg) 5 | 6 | [*Sparkfun Environmental Combo Breakout CCS811/BME280 (SEN-14348)*](https://www.sparkfun.com/products/14348) 7 | 8 | The SparkFun CCS811/BME280 Combo Breakout is perfect for sensing anything you may want to know about the air quality. This breakout will fine tune eCO2 and tVOC readings from the CCS811 using humidity and temperature readings from the BME280. The breakout will also detect barometric pressure. 9 | 10 | Repository Contents 11 | ------------------- 12 | 13 | * **/Documentation** - Data sheets, additional product information 14 | * **/Firmware** - Example code 15 | * **/Hardware** - Eagle design files (.brd, .sch) 16 | * **/Libraries** - Libraries for use with the 17 | * **/Production** - Production panel files (.brd) 18 | * **/Software** - Related software for the 19 | 20 | Documentation 21 | -------------- 22 | * **[Library](https://github.com/sparkfun/SparkFun_CCS811_Arduino_Library/)** - library for the CCS811. 23 | * **[Library](https://github.com/sparkfun/SparkFun_BME280_Arduino_Library/)** - library for the BME280. 24 | * **[Hookup Guide](https://learn.sparkfun.com/tutorials/ccs811bme280-qwiic-environmental-combo-breakout-hookup-guide)** - Basic hookup guide for the CCS811/BME280. 25 | * **[SparkFun Fritzing repo](https://github.com/sparkfun/Fritzing_Parts)** - Fritzing diagrams for SparkFun products. 26 | * **[SparkFun 3D Model repo](https://github.com/sparkfun/3D_Models)** - 3D models of SparkFun products. 27 | * **[SparkFun Graphical Datasheets](https://github.com/sparkfun/Graphical_Datasheets)** -Graphical Datasheets for various SparkFun products. 28 | 29 | Product Versions 30 | ---------------- 31 | * [SEN-14348](https://www.sparkfun.com/products/14348)- Breakout board for the CCS811 and BME 280 air quality sensors. 32 | 33 | Version History 34 | --------------- 35 | * [CCS811 - V 1.0.0](https://github.com/sparkfun/CCS811_Air_Quality_Breakout/tree/V_1.0.0) - Initial commit of Arduino compatible library for CCS811 36 | * [BME280 - V 1.0.0](https://github.com/sparkfun/SparkFun_BME280_Arduino_Library/tree/V_1.0.0) - Initial commit of Arduino compatible library for BME280 37 | * [BME280 - V 1.1.0](https://github.com/sparkfun/SparkFun_BME280_Arduino_Library/tree/V_1.1.0) - Pulled request to add decimal precision to readFloatPressure() and readFloatHumidity(). 38 | 39 | License Information 40 | ------------------- 41 | 42 | This product is _**open source**_! 43 | 44 | Please review the LICENSE.md file for license information. 45 | 46 | If you have any questions or concerns on licensing, please contact techsupport@sparkfun.com. 47 | 48 | Distributed as-is; no warranty is given. 49 | 50 | - Your friends at SparkFun. 51 | 52 | __ 53 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | SparkFun License Information 2 | ============================ 3 | 4 | SparkFun uses two different licenses for our files — one for hardware and one for code. 5 | 6 | Hardware 7 | --------- 8 | 9 | **SparkFun hardware is released under [Creative Commons Share-alike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/).** 10 | 11 | Note: This is a human-readable summary of (and not a substitute for) the [license](http://creativecommons.org/licenses/by-sa/4.0/legalcode). 12 | 13 | You are free to: 14 | 15 | Share — copy and redistribute the material in any medium or format 16 | Adapt — remix, transform, and build upon the material 17 | for any purpose, even commercially. 18 | The licensor cannot revoke these freedoms as long as you follow the license terms. 19 | Under the following terms: 20 | 21 | 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. 22 | ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. 23 | No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 24 | Notices: 25 | 26 | 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. 27 | 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. 28 | 29 | 30 | Code 31 | -------- 32 | 33 | **SparkFun code, firmware, and software is released under the MIT License(http://opensource.org/licenses/MIT).** 34 | 35 | The MIT License (MIT) 36 | 37 | Copyright (c) 2016 SparkFun Electronics 38 | 39 | Permission is hereby granted, free of charge, to any person obtaining a copy 40 | of this software and associated documentation files (the "Software"), to deal 41 | in the Software without restriction, including without limitation the rights 42 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 43 | copies of the Software, and to permit persons to whom the Software is 44 | furnished to do so, subject to the following conditions: 45 | 46 | The above copyright notice and this permission notice shall be included in all 47 | copies or substantial portions of the Software. 48 | 49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 50 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 51 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 52 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 53 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 54 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 55 | SOFTWARE. 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## SparkFun Useful stuff 3 | ################# 4 | 5 | ## AVR Development 6 | *.eep 7 | *.elf 8 | *.lst 9 | *.lss 10 | *.sym 11 | *.d 12 | *.o 13 | *.srec 14 | *.map 15 | 16 | ## Notepad++ backup files 17 | *.bak 18 | 19 | ## BOM files 20 | *bom* 21 | 22 | ################# 23 | ## Eclipse 24 | ################# 25 | 26 | *.pydevproject 27 | .project 28 | .metadata 29 | bin/ 30 | tmp/ 31 | *.tmp 32 | *.bak 33 | *.swp 34 | *~.nib 35 | local.properties 36 | .classpath 37 | .settings/ 38 | .loadpath 39 | 40 | # External tool builders 41 | .externalToolBuilders/ 42 | 43 | # Locally stored "Eclipse launch configurations" 44 | *.launch 45 | 46 | # CDT-specific 47 | .cproject 48 | 49 | # PDT-specific 50 | .buildpath 51 | 52 | 53 | ############# 54 | ## Eagle 55 | ############# 56 | 57 | # Ignore the board and schematic backup files and lock files 58 | *.b#? 59 | *.s#? 60 | *.l#? 61 | *.lck 62 | 63 | 64 | ################# 65 | ## Visual Studio 66 | ################# 67 | 68 | ## Ignore Visual Studio temporary files, build results, and 69 | ## files generated by popular Visual Studio add-ons. 70 | 71 | # User-specific files 72 | *.suo 73 | *.user 74 | *.sln.docstates 75 | 76 | # Build results 77 | [Dd]ebug/ 78 | [Rr]elease/ 79 | *_i.c 80 | *_p.c 81 | *.ilk 82 | *.meta 83 | *.obj 84 | *.pch 85 | *.pdb 86 | *.pgc 87 | *.pgd 88 | *.rsp 89 | *.sbr 90 | *.tlb 91 | *.tli 92 | *.tlh 93 | *.tmp 94 | *.vspscc 95 | .builds 96 | *.dotCover 97 | 98 | ## TODO: If you have NuGet Package Restore enabled, uncomment this 99 | #packages/ 100 | 101 | # Visual C++ cache files 102 | ipch/ 103 | *.aps 104 | *.ncb 105 | *.opensdf 106 | *.sdf 107 | 108 | # Visual Studio profiler 109 | *.psess 110 | *.vsp 111 | 112 | # ReSharper is a .NET coding add-in 113 | _ReSharper* 114 | 115 | # Installshield output folder 116 | [Ee]xpress 117 | 118 | # DocProject is a documentation generator add-in 119 | DocProject/buildhelp/ 120 | DocProject/Help/*.HxT 121 | DocProject/Help/*.HxC 122 | DocProject/Help/*.hhc 123 | DocProject/Help/*.hhk 124 | DocProject/Help/*.hhp 125 | DocProject/Help/Html2 126 | DocProject/Help/html 127 | 128 | # Click-Once directory 129 | publish 130 | 131 | # Others 132 | [Bb]in 133 | [Oo]bj 134 | sql 135 | TestResults 136 | *.Cache 137 | ClientBin 138 | stylecop.* 139 | ~$* 140 | *.dbmdl 141 | Generated_Code #added for RIA/Silverlight projects 142 | 143 | # Backup & report files from converting an old project file to a newer 144 | # Visual Studio version. Backup files are not needed, because we have git ;-) 145 | _UpgradeReport_Files/ 146 | Backup*/ 147 | UpgradeLog*.XML 148 | 149 | 150 | ############ 151 | ## Windows 152 | ############ 153 | 154 | # Windows image file caches 155 | Thumbs.db 156 | 157 | # Folder config file 158 | Desktop.ini 159 | 160 | 161 | ############# 162 | ## Mac OS 163 | ############# 164 | 165 | .DS_Store 166 | 167 | 168 | ############# 169 | ## Linux 170 | ############# 171 | 172 | # backup files (*.bak on Win) 173 | *~ 174 | 175 | 176 | ############# 177 | ## Python 178 | ############# 179 | 180 | *.py[co] 181 | 182 | # Packages 183 | *.egg 184 | *.egg-info 185 | dist 186 | build 187 | eggs 188 | parts 189 | bin 190 | var 191 | sdist 192 | develop-eggs 193 | .installed.cfg 194 | 195 | # Installer logs 196 | pip-log.txt 197 | 198 | # Unit test / coverage reports 199 | .coverage 200 | .tox 201 | 202 | #Translations 203 | *.mo 204 | 205 | #Mr Developer 206 | .mr.developer.cfg 207 | -------------------------------------------------------------------------------- /Firmware/Example1-BasicReadings/Example1-BasicReadings.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Read both CCS811 and BME280 sensors at same time 3 | By: Nathan Seidle 4 | SparkFun Electronics 5 | Date: April 6th, 2017 6 | License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license). 7 | 8 | Works with SparkFun combo board https://www.sparkfun.com/products/14241 9 | Enjoy this code? Buy a board and help support SparkFun! 10 | 11 | Let's read both sensors at the same time! 12 | Outputs CO2, TVOC, temperature, humidty, and pressure. 13 | 14 | Hardware Connections (Breakoutboard to Arduino): 15 | Attach a Qwiic Shield to your RedBoard, Photon, or ESP32. 16 | Plug the Qwiic Air Quality Combo board into one of the connectors 17 | Serial.print it out at 9600 baud to serial monitor. 18 | 19 | */ 20 | 21 | #include 22 | #include "SparkFunBME280.h" //Library for BME280 from library manager or https://github.com/sparkfun/SparkFun_BME280_Arduino_Library 23 | #include "SparkFunCCS811.h" 24 | 25 | #define CCS811_ADDR 0x5B 26 | 27 | CCS811 myCCS811(CCS811_ADDR); 28 | BME280 myBME280; //Global sensor object for BME280 29 | 30 | //Global variables obtained from the two sensors 31 | unsigned int tVOC = 0; 32 | unsigned int CO2 = 0; 33 | float tempf = 0; 34 | float humidity = 0; 35 | float pressureInHg = 0; 36 | 37 | void setup() 38 | { 39 | Serial.begin(9600); 40 | Serial.println("CCS811+BME280 Read Example"); 41 | 42 | Wire.begin();//initialize I2C bus 43 | 44 | CCS811Core::status returnCode = myCCS811.begin(); 45 | if (returnCode != CCS811Core::SENSOR_SUCCESS) 46 | { 47 | Serial.println("Problem with CCS811"); 48 | printDriverError(returnCode); 49 | } 50 | else 51 | { 52 | Serial.println("CCS811 online"); 53 | } 54 | 55 | //Setup the BME280 for basic readings 56 | myBME280.settings.commInterface = I2C_MODE; 57 | myBME280.settings.I2CAddress = 0x77; 58 | myBME280.settings.runMode = 3; // 3, Normal mode 59 | myBME280.settings.tStandby = 0; // 0, 0.5ms 60 | myBME280.settings.filter = 0; // 0, filter off 61 | myBME280.settings.tempOverSample = 1; 62 | myBME280.settings.pressOverSample = 1; 63 | myBME280.settings.humidOverSample = 1; 64 | 65 | delay(10); //Give BME280 time to come on 66 | //Calling .begin() causes the settings to be loaded 67 | byte id = myBME280.begin(); //Returns ID of 0x60 if successful 68 | if (id != 0x60) 69 | { 70 | Serial.println("Problem with BME280"); 71 | } 72 | else 73 | { 74 | Serial.println("BME280 online"); 75 | } 76 | } 77 | 78 | void loop() 79 | { 80 | if (myCCS811.dataAvailable()) //Check to see if CCS811 has new data (it's the slowest sensor) 81 | { 82 | myCCS811.readAlgorithmResults(); //Read latest from CCS811 and update tVOC and CO2 variables 83 | //getWeather(); //Get latest humidity/pressure/temp data from BME280 84 | printData(); //Pretty print all the data 85 | } 86 | else if (myCCS811.checkForStatusError()) //Check to see if CCS811 has thrown an error 87 | { 88 | Serial.println(myCCS811.getErrorRegister()); //Prints whatever CSS811 error flags are detected 89 | } 90 | 91 | delay(2000); //Wait for next reading 92 | } 93 | 94 | //Print CO2, TVOC, Humidity, Pressure and Temp 95 | void printData() 96 | { 97 | Serial.print(" CO2["); 98 | Serial.print(myCCS811.getCO2()); 99 | Serial.print("]ppm"); 100 | 101 | Serial.print(" TVOC["); 102 | Serial.print(myCCS811.getTVOC()); 103 | Serial.print("]ppb"); 104 | 105 | Serial.print(" temp["); 106 | Serial.print(myBME280.readTempC(), 1); 107 | Serial.print("]C"); 108 | 109 | //Serial.print(" temp["); 110 | //Serial.print(myBME280.readTempF(), 1); 111 | //Serial.print("]F"); 112 | 113 | Serial.print(" pressure["); 114 | Serial.print(myBME280.readFloatPressure(), 2); 115 | Serial.print("]Pa"); 116 | 117 | //Serial.print(" pressure["); 118 | //Serial.print((myBME280.readFloatPressure() * 0.0002953), 2); 119 | //Serial.print("]InHg"); 120 | 121 | //Serial.print("altitude["); 122 | //Serial.print(myBME280.readFloatAltitudeMeters(), 2); 123 | //Serial.print("]m"); 124 | 125 | //Serial.print("altitude["); 126 | //Serial.print(myBME280.readFloatAltitudeFeet(), 2); 127 | //Serial.print("]ft"); 128 | 129 | Serial.print(" humidity["); 130 | Serial.print(myBME280.readFloatHumidity(), 0); 131 | Serial.print("]%"); 132 | 133 | Serial.println(); 134 | } 135 | 136 | void printDriverError( CCS811Core::status errorCode ) 137 | { 138 | switch ( errorCode ) 139 | { 140 | case CCS811Core::SENSOR_SUCCESS: 141 | Serial.print("SUCCESS"); 142 | break; 143 | case CCS811Core::SENSOR_ID_ERROR: 144 | Serial.print("ID_ERROR"); 145 | break; 146 | case CCS811Core::SENSOR_I2C_ERROR: 147 | Serial.print("I2C_ERROR"); 148 | break; 149 | case CCS811Core::SENSOR_INTERNAL_ERROR: 150 | Serial.print("INTERNAL_ERROR"); 151 | break; 152 | case CCS811Core::SENSOR_GENERIC_ERROR: 153 | Serial.print("GENERIC_ERROR"); 154 | break; 155 | default: 156 | Serial.print("Unspecified error."); 157 | } 158 | } 159 | -------------------------------------------------------------------------------- /Firmware/Example2-CombinedReading/Example2-CombinedReading.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | BME280Compensated.ino 3 | Marshall Taylor @ SparkFun Electronics 4 | April 4, 2017 5 | https://github.com/sparkfun/CCS811_Air_Quality_Breakout 6 | https://github.com/sparkfun/SparkFun_CCS811_Arduino_Library 7 | This example uses a BME280 to gather environmental data that is then used 8 | to compensate the CCS811. 9 | Hardware Connections (Breakoutboard to Arduino): 10 | 3.3V to 3.3V pin 11 | GND to GND pin 12 | SDA to A4 13 | SCL to A5 14 | Resources: 15 | Uses Wire.h for i2c operation 16 | Development environment specifics: 17 | Arduino IDE 1.8.1 18 | This code is released under the [MIT License](http://opensource.org/licenses/MIT). 19 | Please review the LICENSE.md file included with this example. If you have any questions 20 | or concerns with licensing, please contact techsupport@sparkfun.com. 21 | Distributed as-is; no warranty is given. 22 | ******************************************************************************/ 23 | #include 24 | #include 25 | 26 | #define CCS811_ADDR 0x5B //Default I2C Address 27 | //#define CCS811_ADDR 0x5A //Alternate I2C Address 28 | 29 | //Global sensor objects 30 | CCS811 myCCS811(CCS811_ADDR); 31 | BME280 myBME280; 32 | 33 | void setup() 34 | { 35 | Serial.begin(9600); 36 | Serial.println(); 37 | Serial.println("Apply BME280 data to CCS811 for compensation."); 38 | 39 | Wire.begin();//initialize I2C bus 40 | 41 | //This begins the CCS811 sensor and prints error status of .begin() 42 | CCS811Core::status returnCode = myCCS811.begin(); 43 | if (returnCode != CCS811Core::SENSOR_SUCCESS) 44 | { 45 | Serial.println("Problem with CCS811"); 46 | printDriverError(returnCode); 47 | } 48 | else 49 | { 50 | Serial.println("CCS811 online"); 51 | } 52 | 53 | 54 | //Initialize BME280 55 | //For I2C, enable the following and disable the SPI section 56 | myBME280.settings.commInterface = I2C_MODE; 57 | myBME280.settings.I2CAddress = 0x77; 58 | myBME280.settings.runMode = 3; //Normal mode 59 | myBME280.settings.tStandby = 0; 60 | myBME280.settings.filter = 4; 61 | myBME280.settings.tempOverSample = 5; 62 | myBME280.settings.pressOverSample = 5; 63 | myBME280.settings.humidOverSample = 5; 64 | 65 | //Calling .begin() causes the settings to be loaded 66 | delay(10); //Make sure sensor had enough time to turn on. BME280 requires 2ms to start up. 67 | byte id = myBME280.begin(); //Returns ID of 0x60 if successful 68 | if (id != 0x60) 69 | { 70 | Serial.println("Problem with BME280"); 71 | } 72 | else 73 | { 74 | Serial.println("BME280 online"); 75 | } 76 | 77 | 78 | } 79 | //--------------------------------------------------------------- 80 | void loop() 81 | { 82 | //Check to see if data is available 83 | if (myCCS811.dataAvailable()) 84 | { 85 | //Calling this function updates the global tVOC and eCO2 variables 86 | myCCS811.readAlgorithmResults(); 87 | //printData fetches the values of tVOC and eCO2 88 | printData(); 89 | 90 | float BMEtempC = myBME280.readTempC(); 91 | float BMEhumid = myBME280.readFloatHumidity(); 92 | 93 | Serial.print("Applying new values (deg C, %): "); 94 | Serial.print(BMEtempC); 95 | Serial.print(","); 96 | Serial.println(BMEhumid); 97 | Serial.println(); 98 | 99 | //This sends the temperature data to the CCS811 100 | myCCS811.setEnvironmentalData(BMEhumid, BMEtempC); 101 | } 102 | else if (myCCS811.checkForStatusError()) 103 | { 104 | Serial.println(myCCS811.getErrorRegister()); //Prints whatever CSS811 error flags are detected 105 | } 106 | 107 | delay(2000); //Wait for next reading 108 | } 109 | 110 | //--------------------------------------------------------------- 111 | void printData() 112 | { 113 | Serial.print(" CO2["); 114 | Serial.print(myCCS811.getCO2()); 115 | Serial.print("]ppm"); 116 | 117 | Serial.print(" TVOC["); 118 | Serial.print(myCCS811.getTVOC()); 119 | Serial.print("]ppb"); 120 | 121 | Serial.print(" temp["); 122 | Serial.print(myBME280.readTempC(), 1); 123 | Serial.print("]C"); 124 | 125 | //Serial.print(" temp["); 126 | //Serial.print(myBME280.readTempF(), 1); 127 | //Serial.print("]F"); 128 | 129 | Serial.print(" pressure["); 130 | Serial.print(myBME280.readFloatPressure(), 2); 131 | Serial.print("]Pa"); 132 | 133 | //Serial.print(" pressure["); 134 | //Serial.print((myBME280.readFloatPressure() * 0.0002953), 2); 135 | //Serial.print("]InHg"); 136 | 137 | //Serial.print("altitude["); 138 | //Serial.print(myBME280.readFloatAltitudeMeters(), 2); 139 | //Serial.print("]m"); 140 | 141 | //Serial.print("altitude["); 142 | //Serial.print(myBME280.readFloatAltitudeFeet(), 2); 143 | //Serial.print("]ft"); 144 | 145 | Serial.print(" humidity["); 146 | Serial.print(myBME280.readFloatHumidity(), 0); 147 | Serial.print("]%"); 148 | 149 | Serial.println(); 150 | } 151 | 152 | //printDriverError decodes the CCS811Core::status type and prints the 153 | //type of error to the serial terminal. 154 | // 155 | //Save the return value of any function of type CCS811Core::status, then pass 156 | //to this function to see what the output was. 157 | void printDriverError( CCS811Core::status errorCode ) 158 | { 159 | switch ( errorCode ) 160 | { 161 | case CCS811Core::SENSOR_SUCCESS: 162 | Serial.print("SUCCESS"); 163 | break; 164 | case CCS811Core::SENSOR_ID_ERROR: 165 | Serial.print("ID_ERROR"); 166 | break; 167 | case CCS811Core::SENSOR_I2C_ERROR: 168 | Serial.print("I2C_ERROR"); 169 | break; 170 | case CCS811Core::SENSOR_INTERNAL_ERROR: 171 | Serial.print("INTERNAL_ERROR"); 172 | break; 173 | case CCS811Core::SENSOR_GENERIC_ERROR: 174 | Serial.print("GENERIC_ERROR"); 175 | break; 176 | default: 177 | Serial.print("Unspecified error."); 178 | } 179 | } 180 | -------------------------------------------------------------------------------- /Hardware/CSS811_BME280_Breakout.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | SCL 164 | SDA 165 | 3.3V 166 | GND 167 | SCL 168 | SDA 169 | 3.3V 170 | GND 171 | CCS811 / BME280 172 | v10 173 | ADR1 174 | Nathan Seidle 175 | Environmental Combo 176 | 177 | I2C PU 178 | !WAK 179 | !INT 180 | !RST 181 | !WAK 182 | !INT 183 | !RST 184 | BME280 / CCS811 185 | Environmental Combo 186 | 187 | ADR2 188 | CCS811 189 | BME280 190 | Andrew England 191 | 192 | 193 | 194 | 195 | 196 | 197 | Open 198 | 0X77 199 | Closed 200 | 0X76 201 | Closed 202 | 0X5A 203 | Open 204 | 0X5B 205 | Measurements in mm 206 | 207 | 208 | 209 | <h3>SparkFun Electronics' preferred foot prints</h3> 210 | In this library you'll find non-functional items: logos, notations, frame blocks, etc.<br><br> 211 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 212 | <br><br> 213 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 214 | <br><br> 215 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 216 | 217 | 218 | <h3>Creative Commons License Template</h3> 219 | <p>CC BY-SA 4.0 License with <a href="https://creativecommons.org/licenses/by-sa/4.0/">link to license</a> and placeholder for designer name.</p> 220 | <p>Devices using: 221 | <ul><li>FRAME_LEDGER</li> 222 | <li>FRAME_LETTER</li></ul></p> 223 | Released under the Creative Commons Attribution Share-Alike 4.0 License 224 | https://creativecommons.org/licenses/by-sa/4.0/ 225 | Designed by: 226 | 227 | 228 | <h3>Open-Source Hardware (OSHW) Logo - Small - Silkscreen</h3> 229 | <p>Silkscreen logo for open-source hardware designs.</p> 230 | <p>Devices using: 231 | <ul><li>OSHW_LOGO</li></ul></p> 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | <h3>Fiducial - Circle, 1mm</h3> 270 | <p>Point-of-reference for pick-and-place machines and other optical instruments.</p> 271 | <p>Devices using: 272 | <ul><li>FIDUCIAL</li></ul></p> 273 | 274 | 275 | 276 | <h3>"Revision By" Text - tDoc</h3> 277 | <p>Preceding text for revisor documentation.</p> 278 | <p>Devices using: 279 | <ul><li>REVISION</li></ul></p> 280 | Revision By: 281 | 282 | 283 | <h3>SparkFun Font Logo - 0.1" Height - Silkscreen</h3> 284 | <p>SparkFun font logo</p> 285 | <p>Devices using: 286 | <ul><li>SFE_LOGO_NAME</li></ul></p> 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | <h3>SparkFun Connectors</h3> 1219 | This library contains electrically-functional connectors. 1220 | <br> 1221 | <br> 1222 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1223 | <br> 1224 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1225 | <br> 1226 | <br> 1227 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1228 | <br> 1229 | <br> 1230 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1231 | 1232 | 1233 | <h3>Plated Through Hole - 3 Pin No Silk Outline</h3> 1234 | <p>Specifications: 1235 | <ul><li>Pin count:3</li> 1236 | <li>Pin pitch:0.1"</li> 1237 | </ul></p> 1238 | <p>Example device(s): 1239 | <ul><li>CONN_03</li> 1240 | </ul></p> 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | >NAME 1248 | >VALUE 1249 | 1250 | 1251 | <h3>SMD- 4 Pin Right Angle </h3> 1252 | <p>Specifications: 1253 | <ul><li>Pin count:4</li> 1254 | <li>Pin pitch:0.1"</li> 1255 | </ul></p> 1256 | <p>Example device(s): 1257 | <ul><li>CONN_04</li> 1258 | </ul></p> 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | 1271 | >NAME 1272 | >VALUE 1273 | 1274 | 1275 | 1276 | 1277 | <h3>SparkFun Jumpers</h3> 1278 | In this library you'll find jumpers, or other semipermanent means of changing current paths. The least permanent form is the solder jumper. These can be changed by adding, removing, or moving solder. In cases that are less likely to be changed we have jumpers that are connected with traces. These can be cut with a razor, or reconnected with solder. Reference designator JP. 1279 | <br> 1280 | <br> 1281 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1282 | <br> 1283 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1284 | <br> 1285 | <br> 1286 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1287 | <br> 1288 | <br> 1289 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1290 | 1291 | 1292 | >NAME 1293 | >VALUE 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | >NAME 1318 | >VALUE 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | <h3>SparkFun Resistors</h3> 1338 | This library contains resistors. Reference designator:R. 1339 | <br> 1340 | <br> 1341 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1342 | <br> 1343 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1344 | <br> 1345 | <br> 1346 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1347 | <br> 1348 | <br> 1349 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1350 | 1351 | 1352 | <p><b>Generic 1608 (0603) package</b></p> 1353 | <p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | >NAME 1363 | >VALUE 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | <h3>SparkFun Capacitors</h3> 1372 | This library contains capacitors. 1373 | <br> 1374 | <br> 1375 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1376 | <br> 1377 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1378 | <br> 1379 | <br> 1380 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1381 | <br> 1382 | <br> 1383 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1384 | 1385 | 1386 | <p><b>Generic 1608 (0603) package</b></p> 1387 | <p>0.2mm courtyard excess rounded to nearest 0.05mm.</p> 1388 | 1389 | 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | >NAME 1397 | >VALUE 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | <h3>SparkFun Electronics' preferred foot prints</h3> 1406 | This library contains board components that are not electrical in nature, such as stand-offs, magnets, and Actobotics. 1407 | <br> 1408 | <br> 1409 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1410 | <br> 1411 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1412 | <br> 1413 | <br> 1414 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1415 | <br> 1416 | <br> 1417 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1418 | 1419 | 1420 | <h3>Standoff (#4 Screw)</h3> 1421 | <p>This is the mechanical footprint for a #4 phillips button head screw. Use the keepout ring to avoid running the screw head into surrounding components.</p> 1422 | <h4>Devices Using</h4> 1423 | <ul><li>STAND-OFF</li></ul> 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | >NAME 1431 | >VALUE 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | <h3>Plated Through Hole - 4 Pin No Silk Outline</h3> 1439 | <p>Specifications: 1440 | <ul><li>Pin count:4</li> 1441 | <li>Pin pitch:0.1"</li> 1442 | </ul></p> 1443 | <p>Example device(s): 1444 | <ul><li>CONN_04</li> 1445 | </ul></p> 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | >NAME 1455 | >VALUE 1456 | 1457 | 1458 | 1459 | 1460 | <h3>SparkFun Sensors</h3> 1461 | This library contains sensors- accelerometers, gyros, compasses, magnetometers, light sensors, imagers, temp sensors, etc. 1462 | <br> 1463 | <br> 1464 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1465 | <br> 1466 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1467 | <br> 1468 | <br> 1469 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1470 | <br> 1471 | <br> 1472 | You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1473 | 1474 | 1475 | <h3>LGA 8-Pin &ndash; 2.5mm x 2.5mm, 0.65mm Pitch</h3> 1476 | <p><a href=https://cdn.sparkfun.com/assets/learn_tutorials/4/1/9/BST-BME280_DS001-10.pdf>Example Datasheet</a></p> 1477 | <p>Specifications: 1478 | <ul> 1479 | <li>Pin Count: 8</li> 1480 | <li>Dimensions: 2.5 x 2.5 mm</li> 1481 | <li>Pitch: 0.65 mm</li> 1482 | </ul> 1483 | </p> 1484 | <p>Used by: 1485 | <ul><li>BME280</li></ul></p> 1486 | 1487 | 1488 | 1489 | 1490 | 1491 | 1492 | 1493 | 1494 | 1495 | 1496 | 1497 | 1498 | >NAME 1499 | >VALUE 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1507 | 1508 | 1509 | 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | 1517 | 1518 | 1519 | 1520 | 1521 | 1522 | 1523 | 1524 | 1525 | 1526 | 1527 | 1528 | 1529 | 1530 | 1531 | 1532 | 1533 | 1534 | 1535 | 1536 | 1537 | 1538 | 1539 | 1540 | 1541 | 1542 | 1543 | 1544 | 1545 | 1546 | >Name 1547 | >Value 1548 | 1549 | 1550 | 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | 1557 | 1558 | 1559 | 1560 | 1561 | 1562 | 1563 | 1564 | 1565 | 1566 | 1567 | 1568 | 1569 | 1570 | 1571 | 1572 | 1573 | 1574 | 1575 | <b>SparkFun 2 Layer Design Rule Checks - STANDARD/TIGHT/FAB-LIMIT</b> 1576 | <p> 1577 | These rules have been curated by SparkFuns DFM commitee. After doing much research, communicating with our multiple fab houses, and getting quotes of various designs, we have compiled three DRU files. 1578 | <p> 1579 | <b>STANDARD:</b> This is more of a "best case scenario" set of limitations. If your design has the space, and/or you have the time to work within these parameters, please do. Larger trace width and clearance makes for easier visual inspection of the PCB while troubleshooting (useful in production and to the end user). It also allows for better ability to hack a trace (if you are crazy enough to scrape away the mask and solder to a trace). Another thing to keep in mind is that more metal is just more robust. 1580 | <p> 1581 | <b>TIGHT:</b> This is where cost comes into play. We have found that most fab houses begin to add extra charges when you go smaller than these specs. In some cases, going to less than 15 mil trace can increase the cost by 10%. (This is why we have set the min drill on this DRU to 15 mil) Same story for traces thinner than 7 mil. To avoid those extra charges, then stay within the rules of this DRU. 1582 | <p> 1583 | <b>FAB-LIMIT:</b> These set of rules are at the very limit of most fab houses capabilities. You will pay more for these specs, and it should be used on designs that have a darned good reason to need 4 mil vias and 4 mil traces. 1584 | <p> 1585 | **NOTE Clearance, Distance, Sizes, and Restring are all set to different limits in each of these three DRU files. Please compare the files within the CAM job editor window of eagle to see all the numbers. 1586 | <p> 1587 | ***NOTE, Please set your Net Classes to default (0mil for all settings), so that it won't effect the DRC when you run it with these settings. 1588 | 1589 | 1590 | 1591 | 1592 | 1593 | 1594 | 1595 | 1596 | 1597 | 1598 | 1599 | 1600 | 1601 | 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | 1612 | 1613 | 1614 | 1615 | 1616 | 1617 | 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | 1624 | 1625 | 1626 | 1627 | 1628 | 1629 | 1630 | 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | 1646 | 1647 | 1648 | 1649 | 1650 | 1651 | 1652 | 1653 | 1654 | 1655 | 1656 | 1657 | 1658 | 1659 | 1660 | 1661 | 1662 | 1663 | 1664 | 1665 | 1666 | 1667 | 1668 | 1669 | 1670 | 1671 | 1672 | 1673 | 1674 | 1675 | 1676 | 1677 | 1678 | 1679 | 1680 | 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | 1687 | 1688 | 1689 | 1690 | 1691 | 1692 | 1693 | 1694 | 1695 | 1696 | 1697 | 1698 | 1699 | 1700 | 1701 | 1702 | 1703 | 1704 | 1705 | 1706 | 1707 | 1708 | 1709 | 1710 | 1711 | 1712 | 1713 | 1714 | 1715 | 1716 | 1717 | 1718 | 1719 | 1720 | 1721 | 1722 | 1723 | 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | 1730 | 1731 | 1732 | 1733 | 1734 | 1735 | 1736 | 1737 | 1738 | 1739 | 1740 | 1741 | 1742 | 1743 | 1744 | 1745 | 1746 | 1747 | 1748 | 1749 | 1750 | 1751 | 1752 | 1753 | 1754 | 1755 | 1756 | 1757 | 1758 | 1759 | 1760 | 1761 | 1762 | 1763 | 1764 | 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 1773 | 1774 | 1775 | 1776 | 1777 | 1778 | 1779 | 1780 | 1781 | 1782 | 1783 | 1784 | 1785 | 1786 | 1787 | 1788 | 1789 | 1790 | 1791 | 1792 | 1793 | 1794 | 1795 | 1796 | 1797 | 1798 | 1799 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1807 | 1808 | 1809 | 1810 | 1811 | 1812 | 1813 | 1814 | 1815 | 1816 | 1817 | 1818 | 1819 | 1820 | 1821 | 1822 | 1823 | 1824 | 1825 | 1826 | 1827 | 1828 | 1829 | 1830 | 1831 | 1832 | 1833 | 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | 1841 | 1842 | 1843 | 1844 | 1845 | 1846 | 1847 | 1848 | 1849 | 1850 | 1851 | 1852 | 1853 | 1854 | 1855 | 1856 | 1857 | 1858 | 1859 | 1860 | 1861 | 1862 | 1863 | 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | 1878 | 1879 | 1880 | 1881 | 1882 | 1883 | 1884 | 1885 | 1886 | 1887 | 1888 | 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | 1896 | 1897 | 1898 | 1899 | 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | 1910 | 1911 | 1912 | 1913 | 1914 | 1915 | 1916 | 1917 | 1918 | 1919 | 1920 | 1921 | 1922 | 1923 | 1924 | 1925 | 1926 | 1927 | 1928 | 1929 | 1930 | 1931 | 1932 | 1933 | 1934 | 1935 | 1936 | 1937 | 1938 | 1939 | 1940 | 1941 | 1942 | 1943 | 1944 | 1945 | 1946 | 1947 | 1948 | 1949 | 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | 1958 | 1959 | 1960 | 1961 | 1962 | 1963 | 1964 | 1965 | 1966 | 1967 | 1968 | 1969 | 1970 | 1971 | 1972 | 1973 | 1974 | 1975 | 1976 | 1977 | 1978 | 1979 | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | 2027 | 2028 | 2029 | 2030 | 2031 | 2032 | 2033 | 2034 | 2035 | 2036 | 2037 | 2038 | 2039 | 2040 | 2041 | 2042 | 2043 | 2044 | 2045 | 2046 | 2047 | 2048 | 2049 | 2050 | 2051 | 2052 | 2053 | 2054 | 2055 | 2056 | 2057 | 2058 | 2059 | 2060 | 2061 | 2062 | 2063 | 2064 | 2065 | 2066 | 2067 | 2068 | 2069 | 2070 | 2071 | 2072 | 2073 | 2074 | 2075 | 2076 | 2077 | 2078 | 2079 | 2080 | 2081 | 2082 | 2083 | 2084 | 2085 | 2086 | 2087 | 2088 | 2089 | 2090 | 2091 | 2092 | 2093 | 2094 | 2095 | 2096 | 2097 | 2098 | 2099 | 2100 | 2101 | 2102 | 2103 | 2104 | 2105 | 2106 | 2107 | 2108 | 2109 | 2110 | 2111 | 2112 | 2113 | 2114 | 2115 | 2116 | 2117 | 2118 | 2119 | 2120 | 2121 | 2122 | 2123 | 2124 | 2125 | 2126 | 2127 | 2128 | 2129 | 2130 | 2131 | 2132 | 2133 | 2134 | 2135 | 2136 | 2137 | 2138 | 2139 | 2140 | 2141 | 2142 | 2143 | 2144 | 2145 | 2146 | 2147 | 2148 | 2149 | 2150 | 2151 | 2152 | 2153 | 2154 | 2155 | 2156 | 2157 | 2158 | 2159 | 2160 | 2161 | 2162 | 2163 | 2164 | 2165 | 2166 | 2167 | 2168 | 2169 | 2170 | 2171 | 2172 | 2173 | 2174 | 2175 | 2176 | 2177 | 2178 | 2179 | 2180 | 2181 | 2182 | 2183 | 2184 | 2185 | 2186 | 2187 | 2188 | 2189 | 2190 | 2191 | 2192 | 2193 | 2194 | 2195 | 2196 | 2197 | 2198 | 2199 | 2200 | 2201 | 2202 | 2203 | 2204 | 2205 | 2206 | 2207 | 2208 | 2209 | 2210 | 2211 | 2212 | 2213 | 2214 | 2215 | 2216 | 2217 | 2218 | 2219 | 2220 | 2221 | 2222 | 2223 | 2224 | 2225 | 2226 | 2227 | 2228 | 2229 | 2230 | 2231 | 2232 | 2233 | 2234 | 2235 | 2236 | 2237 | 2238 | 2239 | Since Version 6.2.2 text objects can contain more than one line, 2240 | which will not be processed correctly with this version. 2241 | 2242 | 2243 | 2244 | --------------------------------------------------------------------------------