Skip to content

Commit 8f97a54

Browse files
authored
Merge pull request #8 from sparkfun/feature/remove-bosch-sdk
Feature/remove bosch sdk
2 parents bd8f5e8 + 605d84c commit 8f97a54

30 files changed

+204
-821
lines changed

.github/workflows/compile-sketch.yml

-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: Cross-compilation test
22

33
on:
4-
push:
5-
branches:
6-
- main
74
workflow_dispatch:
85

96

README.md

+70
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@ The [SparkFun Air Quality PM1/PM2.5/PM10 Sensor - BMV080 (Qwiic)](https://www.sp
1515

1616
The breakout board comes with the BMV080 populated and takes advantage of its flexible cable with the FPC 13-pin 0.33mm connector. On the back of the board is a horizontal Qwiic connector to reduce the amount of soldering on the board. However, the board still breaks out 0.1"-spaced pins for users who prefer a soldered connection or prototyping the pins on a breadboard. The breakout also includes four jumper selectable I2C addresses if you happen to connect more than one BMV080 on the same I2C port. While the breakout was designed for I2C by default, you can also configure the board's jumper to communicate over SPI as well. A special lens allows the laser to pass through the enclosure to take measurements.
1717

18+
> [!NOTE]
19+
> To use this library, the Bosch BMV080 SDK must be downloaded from Bosch, and some files copied over into this library once it's installed. Details of this are outlined below [here](#install-the-bosch-sdk).
20+
>
21+
> If the SDK files are not copied into this library, this library will fail to build.
22+
>
23+
> This library has been verified with the following versions:
24+
> SparkFun_BMV_Arduino_Library v1.0.1
25+
> Bosch BMV080 SDK v11.0.0
26+
> Arduino IDE 2.3.5
27+
>
28+
> Architectures Supported/Verified:
29+
> esp32 ([SparkFun Thing Plus - ESP32 WROOM (USB-C)](https://www.sparkfun.com/sparkfun-thing-plus-esp32-wroom-usb-c.html))
30+
> esp32s2 ([SparkFun Thing Plus - ESP32-S2 WROOM](https://www.sparkfun.com/sparkfun-thing-plus-esp32-s2-wroom.html))
31+
> m33f ([SparkFun Thing Plus - RA6M5](https://www.sparkfun.com/sparkfun-thing-plus-ra6m5.html))
32+
1833
## Functionality
1934

2035
The Air Quality PM1/PM2.5/PM10 Sensor - BMV080 can run as an I2C client device, or as a SPI client device. Once connected, the library allows the collaction of PM1, PM2.5 and PM10 readings as well as if the sensor is obstructed.
@@ -52,6 +67,61 @@ The following examples are provided with the library
5267
|[Demo - OLED](examples/Example_08_Demo_Oled/Example_08_Demo_Oled.ino)| Demo that outputs sensor information to a connected OLED display|
5368
|[Open - Close](examples/Example_09_OpenClose/Example_09_OpenClose.ino)|Shows how to open the sensor, take a set of readings and then close the sensor|
5469

70+
## Install the Bosch SDK
71+
72+
To use this library with SparkFun BMV080 Air Quality Sensor, the Bosch SDK for the BMV080 must be installed and files copied into the correct locations within this library.
73+
74+
The following outlines how to install the library.
75+
76+
### Install this library
77+
78+
Using the Arduino Library Manager, install this library.
79+
80+
![Install Library](docs/images/sdk-arduino-install.png)
81+
82+
## Download the Bosch BMV080 SDK
83+
84+
The SDK is avilable [on this page](https://www.bosch-sensortec.com/products/environmental-sensors/particulate-matter-sensor/bmv080/#documents). Select the 'Download the SDK for BMV080` link/button.
85+
86+
Once downloaded, unzip the file.
87+
88+
## Copy Files
89+
90+
Files from the SDK must be copied into the installation of this library. This, the SparkFun BMV080 Arduino library, is installed in the following locations:
91+
92+
### Library Install Directory
93+
94+
| OS | Directory|
95+
|---|---|
96+
|macOS | $HOME/Documents/Arduino/libraries/SparkFun_BMV080_Arduino_Library|
97+
|Windows | $HOME\Documents\Arduino\libraries\SparkFun_BMV080_Arduino_Library|
98+
|Linux| $HOME/Arduino/libraries/SparkFun_BMV080_Arduino_Library|
99+
100+
### Files to copy and locations to copy to
101+
102+
From the Bosch SDK, the following files are copied into the specified library locations.
103+
104+
|Bosch SDK File | SparkFun BMV080 Arduino Library Directory|
105+
|--|--|
106+
|api/inc/bmv080.h| src/sfTk/bmv080.h|
107+
|api/inc/bmv080_defs.h| src/sfTk/bmv080_defs.h|
108+
|api/api/lib/xtensa_esp32/xtensa_esp32_elf_gcc/release/lib_bmv080.a | src/esp32/lib_bmv080.a|
109+
|api/api/lib/xtensa_esp32/xtensa_esp32_elf_gcc/release/lib_postProcessor.a | src/esp32/lib_postProcessor.a|
110+
|api/api/lib/xtensa_esp32s2/xtensa_esp32s2_elf_gcc/release/lib_postProcessor.a | src/esp32s2/lib_postProcessor.a|
111+
|api/api/lib/xtensa_esp32s2/xtensa_esp32s2_elf_gcc/release/lib_bmv080.a | src/esp32s2/lib_bmv080.a|
112+
|api/api/lib/xtensa_esp32s3/xtensa_esp32s3_elf_gcc/release/lib_postProcessor.a | src/esp32s3/lib_postProcessor.a|
113+
|api/api/lib/xtensa_esp32s3/xtensa_esp32s3_elf_gcc/release/lib_bmv080.a | src/esp32s3/lib_bmv080.a|
114+
|api/api/lib/arm_cortex_m0plus/xarm_none_eabi_gcc/release/lib_postProcessor.a | src/cortex-m0plus/lib_postProcessor.a|
115+
|api/api/lib/arm_cortex_m0plus/arm_none_eabi_gcc/release/lib_bmv080.a | src/cortex-m0plus/lib_bmv080.a|
116+
|api/api/lib/arm_cortex_m33f/xarm_none_eabi_gcc/release/lib_postProcessor.a | src/cortex-m33/lib_postProcessor.a|
117+
|api/api/lib/arm_cortex_m33f/arm_none_eabi_gcc/release/lib_bmv080.a | src/cortex-m33/lib_bmv080.a|
118+
|api/api/lib/arm_cortex_m4/xarm_none_eabi_gcc/release/lib_postProcessor.a | src/cortex-m4/lib_postProcessor.a|
119+
|api/api/lib/arm_cortex_m4/arm_none_eabi_gcc/release/lib_bmv080.a | src/cortex-m4/lib_bmv080.a|
120+
|api/api/lib/arm_cortex_m4f/xarm_none_eabi_gcc/release/lib_postProcessor.a | src/cortex-m4f/lib_postProcessor.a|
121+
|api/api/lib/arm_cortex_m4f/arm_none_eabi_gcc/release/lib_bmv080.a | src/cortex-m4f/lib_bmv080.a|
122+
123+
Once the files are copied into place, this library is available for use.
124+
55125
## License Information
56126

57127
This product is ***open source***!

docs/images/sdk-arduino-install.png

244 KB
Loading

keywords.txt

+17-10
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,33 @@ SparkFunBMV080SPI KEYWORD1
1414
begin KEYWORD2
1515
init KEYWORD2
1616
isConnected KEYWORD2
17-
getDriverVersion KEYWORD2
17+
driverVersion KEYWORD2
1818
open KEYWORD2
19+
close KEYWORD2
1920
reset KEYWORD2
20-
getID KEYWORD2
21+
ID KEYWORD2
2122
setMode KEYWORD2
22-
getPM25 KEYWORD2
23-
getIsObstructed KEYWORD2
23+
PM10 KEYWORD2
24+
PM25 KEYWORD2
25+
PM1 KEYWORD2
26+
isObstructed KEYWORD2
27+
setSensorValue KEYWORD2
28+
readSensor KEYWORD2
2429
dataAvailable KEYWORD2
25-
getDutyCyclingPeriod KEYWORD2
30+
dutyCyclingPeriod KEYWORD2
2631
setDutyCyclingPeriod KEYWORD2
27-
getVolumetricMassDensity KEYWORD2
32+
volumetricMassDensity KEYWORD2
2833
setVolumetricMassDensity KEYWORD2
29-
getIntegrationTime KEYWORD2
34+
integrationTime KEYWORD2
3035
setIntegrationTime KEYWORD2
31-
getDistributionId KEYWORD2
36+
distributionId KEYWORD2
3237
setDistributionId KEYWORD2
33-
getDoObstructionDetection KEYWORD2
38+
doObstructionDetection KEYWORD2
3439
setDoObstructionDetection KEYWORD2
35-
getDoVibrationFiltering KEYWORD2
40+
doVibrationFiltering KEYWORD2
3641
setDoVibrationFiltering KEYWORD2
42+
measurementAlgorithm KEYWORD2
43+
setMeasurementAlgorithm KEYWORD2
3744

3845
#########################################################
3946
# Constants

library.properties

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
name=SparkFun BMV080 Arduino Library
2-
version=1.0.0
2+
version=1.0.1
33
author=SparkFun Electronics <[email protected]>
44
maintainer=SparkFun Electronics <https://www.sparkfun.com>
5-
sentence=The SparkFun Air Quality PM1/PM2.5/PM10 Sensor - BMV080 (Qwiic)is an ultra-small, fan-less air quality sensor for sensing PM2.5 particulate matter! Within the enclosure is a breakout board that breaks out Bosch's BMV080, the world's smallest PM1 and PM2.5 air quality sensor.
6-
paragraph=The sensing element measures merely 4.2mm x 3.5mm x 3.1mm (W x L x H), which is more than 450 times smaller than any comparable device on the market. The innovative design is based on ultra-compact lasers with integrated photodiodes. The sensor applies sophisticated algorithms to measure PM1 and PM2.5 concentrations directly in free space, without requiring an intrusive fan.
5+
sentence=The SparkFun Air Quality PM1/PM2.5/PM10 Sensor - BMV080 (Qwiic)is an ultra-small, fan-less air quality sensor for sensing particulate matter!
6+
paragraph=NOTE: This library requires the installation of the Bosch BMV080 SDK - See https://github.com/sparkfun/SparkFun_BMV080_Arduino_Library for instructions. The sensing element measures merely 4.2mm x 3.5mm x 3.1mm (W x L x H), which is more than 450 times smaller than any comparable device on the market. The innovative design is based on ultra-compact lasers with integrated photodiodes. The sensor applies sophisticated algorithms to measure PM1 and PM2.5 concentrations directly in free space, without requiring an intrusive fan.
77
category=Sensors
88
url=https://github.com/sparkfun/SparkFun_BMV080_Arduino_Library
99
architectures=esp32,esp32s2,esp32s3,cortex-m33,cortex-m0plus,cortex-m4f
1010
precompiled=true
1111
depends=SparkFun Toolkit (>=1.0.0)
12-
ldflags=-lbmv080 -lpostProcessor
12+
ldflags=-l_bmv080 -l_postProcessor

src/cortex-m0plus/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/arm_cortex_m0plus/arm_none_eabi_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/arm_cortex_m0plus/arm_none_eabi_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/cortex-m0plus/libbmv080.a

-76 KB
Binary file not shown.

src/cortex-m0plus/libpostProcessor.a

-79 KB
Binary file not shown.

src/cortex-m33/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/arm_cortex_m33f/arm_none_eabi_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/arm_cortex_m33f/arm_none_eabi_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/cortex-m33/libbmv080.a

-73.4 KB
Binary file not shown.

src/cortex-m33/libpostProcessor.a

-68 KB
Binary file not shown.

src/cortex-m4/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/arm_cortex_m4/arm_none_eabi_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/arm_cortex_m4/arm_none_eabi_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/cortex-m4/libbmv080.a

-74.9 KB
Binary file not shown.

src/cortex-m4/libpostProcessor.a

-76.8 KB
Binary file not shown.

src/cortex-m4f/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/arm_cortex_m4f/arm_none_eabi_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/arm_cortex_m4f/arm_none_eabi_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/cortex-m4f/libbmv080.a

-73.4 KB
Binary file not shown.

src/cortex-m4f/libpostProcessor.a

-68.8 KB
Binary file not shown.

src/esp32/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/xtensa_esp32/xtensa_esp32_elf_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/xtensa_esp32/xtensa_esp32_elf_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/esp32/libbmv080.a

-164 KB
Binary file not shown.

src/esp32/libpostProcessor.a

-147 KB
Binary file not shown.

src/esp32s2/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/xtensa_esp32s2/xtensa_esp32s2_elf_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/xtensa_esp32s2/xtensa_esp32s2_elf_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/esp32s2/libbmv080.a

-169 KB
Binary file not shown.

src/esp32s2/libpostProcessor.a

-182 KB
Binary file not shown.

src/esp32s3/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Install the BOSCH BMV080 SDK library files for this folder
2+
3+
### From the Bosch BMV080 SDK, copy the following files to this folder.
4+
5+
Using a shell:
6+
7+
Where BOSCH_SDK = *The install directory of the downloaded Bosch SDK*
8+
9+
```sh
10+
cp $BOSCH_SDK/xtensa_esp32s3/xtensa_esp32s3_elf_gcc/release/lib_bmv080.a lib_bmv080.a
11+
cp $BOSCH_SDK/xtensa_esp32s3/xtensa_esp32s3_elf_gcc/release/lib_postProcessor.a lib_postProcessor.a
12+
```
13+
14+
Or just drag and drop via a GUI interface.

src/esp32s3/libbmv080.a

-164 KB
Binary file not shown.

src/esp32s3/libpostProcessor.a

-147 KB
Binary file not shown.

0 commit comments

Comments
 (0)