diff --git a/Source/3-AxisDigitalAccelerometer16g/Sample/3-AxisDigitalAccelerometer16g_Sample/3-AxisDigitalAccelerometer16g_Sample.csproj b/Source/3-AxisDigitalAccelerometer16g/Sample/3-AxisDigitalAccelerometer16g_Sample/3-AxisDigitalAccelerometer16g_Sample.csproj
index a5d06049..aebb3dea 100644
--- a/Source/3-AxisDigitalAccelerometer16g/Sample/3-AxisDigitalAccelerometer16g_Sample/3-AxisDigitalAccelerometer16g_Sample.csproj
+++ b/Source/3-AxisDigitalAccelerometer16g/Sample/3-AxisDigitalAccelerometer16g_Sample/3-AxisDigitalAccelerometer16g_Sample.csproj
@@ -9,6 +9,6 @@
-
+
diff --git a/Source/3-AxisDigitalAccelerometer1_5g/Sample/3-AxisDigitalAccelerometer1_5g_Sample/3-AxisDigitalAccelerometer1_5g_Sample.csproj b/Source/3-AxisDigitalAccelerometer1_5g/Sample/3-AxisDigitalAccelerometer1_5g_Sample/3-AxisDigitalAccelerometer1_5g_Sample.csproj
index b4223f3b..6c4ea5fa 100644
--- a/Source/3-AxisDigitalAccelerometer1_5g/Sample/3-AxisDigitalAccelerometer1_5g_Sample/3-AxisDigitalAccelerometer1_5g_Sample.csproj
+++ b/Source/3-AxisDigitalAccelerometer1_5g/Sample/3-AxisDigitalAccelerometer1_5g_Sample/3-AxisDigitalAccelerometer1_5g_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/3-AxisDigitalCompass/Sample/3-AxisDigitalCompass_Sample/3-AxisDigitalCompass_Sample.csproj b/Source/3-AxisDigitalCompass/Sample/3-AxisDigitalCompass_Sample/3-AxisDigitalCompass_Sample.csproj
index cd0177fb..5f16654a 100644
--- a/Source/3-AxisDigitalCompass/Sample/3-AxisDigitalCompass_Sample/3-AxisDigitalCompass_Sample.csproj
+++ b/Source/3-AxisDigitalCompass/Sample/3-AxisDigitalCompass_Sample/3-AxisDigitalCompass_Sample.csproj
@@ -13,6 +13,6 @@
-
+
diff --git a/Source/4-DigitDisplay/Driver/4-DigitDisplay.cs b/Source/4-DigitDisplay/Driver/4-DigitDisplay.cs
index ee9375b8..06cc1260 100644
--- a/Source/4-DigitDisplay/Driver/4-DigitDisplay.cs
+++ b/Source/4-DigitDisplay/Driver/4-DigitDisplay.cs
@@ -1,5 +1,4 @@
-using Meadow.Devices;
-using Meadow.Foundation.Displays;
+using Meadow.Foundation.Displays;
using Meadow.Hardware;
namespace Meadow.Foundation.Grove.Displays
diff --git a/Source/4-DigitDisplay/Sample/4-DigitDisplay_Sample/4-DigitDisplay_Sample.csproj b/Source/4-DigitDisplay/Sample/4-DigitDisplay_Sample/4-DigitDisplay_Sample.csproj
index f85b0e33..345f5bf4 100644
--- a/Source/4-DigitDisplay/Sample/4-DigitDisplay_Sample/4-DigitDisplay_Sample.csproj
+++ b/Source/4-DigitDisplay/Sample/4-DigitDisplay_Sample/4-DigitDisplay_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Button/Sample/Button_Sample/Button_Sample.csproj b/Source/Button/Sample/Button_Sample/Button_Sample.csproj
index ace38353..f7db8dba 100644
--- a/Source/Button/Sample/Button_Sample/Button_Sample.csproj
+++ b/Source/Button/Sample/Button_Sample/Button_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Buzzer/Sample/Buzzer_Sample/Buzzer_Sample.csproj b/Source/Buzzer/Sample/Buzzer_Sample/Buzzer_Sample.csproj
index eaa938cb..afeec98b 100644
--- a/Source/Buzzer/Sample/Buzzer_Sample/Buzzer_Sample.csproj
+++ b/Source/Buzzer/Sample/Buzzer_Sample/Buzzer_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/FlameSensor/Sample/FlameSensor_Sample/FlameSensor_Sample.csproj b/Source/FlameSensor/Sample/FlameSensor_Sample/FlameSensor_Sample.csproj
index fe2ebdff..b47aa258 100644
--- a/Source/FlameSensor/Sample/FlameSensor_Sample/FlameSensor_Sample.csproj
+++ b/Source/FlameSensor/Sample/FlameSensor_Sample/FlameSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Grove.sln b/Source/Grove.sln
index 4bf9baf5..64a7c5e8 100644
--- a/Source/Grove.sln
+++ b/Source/Grove.sln
@@ -259,6 +259,30 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "3-AxisDigitalCompass", "3-A
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "3-AxisDigitalCompass_Sample", "3-AxisDigitalCompass\Sample\3-AxisDigitalCompass_Sample\3-AxisDigitalCompass_Sample.csproj", "{492AC59E-2E06-4C24-A51F-BD6E67E698D3}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_External", "_External", "{669A65E7-D76B-48E4-98AE-DE7D33662054}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sensors.Motion.Mma7660fc", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Sensors.Motion.Mma7660fc\Driver\Sensors.Motion.Mma7660fc.csproj", "{D0E768DB-9712-402F-A1B9-8085676FB398}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sensors.Motion.Adxl3xx", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Sensors.Motion.Adxl3xx\Driver\Sensors.Motion.Adxl3xx.csproj", "{8F1D4ADD-A507-4DB0-834C-DADC05A86191}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sensors.Motion.Hmc5883", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Sensors.Motion.Hmc5883\Driver\Sensors.Motion.Hmc5883.csproj", "{B0F01209-EB64-48AE-B46A-A8EAC5780C90}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Displays.Tm1637", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Displays.Tm1637\Driver\Displays.Tm1637.csproj", "{E3362827-F82D-44A5-8BEC-B706FF6D8129}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Meadow.Foundation.Core", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Core\Meadow.Foundation.Core.csproj", "{AA13DEE7-C159-473B-AA68-CD1C4841344E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Displays.Lcd.CharacterDisplay", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Displays.Lcd.CharacterDisplay\Driver\Displays.Lcd.CharacterDisplay.csproj", "{DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RTCs.Ds1307", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\RTCs.Ds1307\Driver\RTCs.Ds1307.csproj", "{5E323CE3-987E-414E-989A-6276D4242856}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sensors.Motion.ParallaxPir", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Sensors.Motion.ParallaxPir\Driver\Sensors.Motion.ParallaxPir.csproj", "{1706729E-3586-434C-B51D-CDB0ECCFC0BC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Servos.ServoCore", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Servos.ServoCore\Driver\Servos.ServoCore.csproj", "{22C728F6-9927-4051-BFA5-08BD9F6FB3C7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Meadow.F7", "..\..\Meadow.Core\source\implementations\f7\Meadow.F7\Meadow.F7.csproj", "{DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sensors.Atmospheric.Th02", "..\..\Meadow.Foundation\Source\Meadow.Foundation.Peripherals\Sensors.Atmospheric.Th02\Driver\Sensors.Atmospheric.Th02.csproj", "{263E36E2-C856-485A-8125-0F3D014CC803}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -645,6 +669,72 @@ Global
{492AC59E-2E06-4C24-A51F-BD6E67E698D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{492AC59E-2E06-4C24-A51F-BD6E67E698D3}.Release|Any CPU.Build.0 = Release|Any CPU
{492AC59E-2E06-4C24-A51F-BD6E67E698D3}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {D0E768DB-9712-402F-A1B9-8085676FB398}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0E768DB-9712-402F-A1B9-8085676FB398}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0E768DB-9712-402F-A1B9-8085676FB398}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {D0E768DB-9712-402F-A1B9-8085676FB398}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D0E768DB-9712-402F-A1B9-8085676FB398}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D0E768DB-9712-402F-A1B9-8085676FB398}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {5E323CE3-987E-414E-989A-6276D4242856}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5E323CE3-987E-414E-989A-6276D4242856}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5E323CE3-987E-414E-989A-6276D4242856}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {5E323CE3-987E-414E-989A-6276D4242856}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5E323CE3-987E-414E-989A-6276D4242856}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5E323CE3-987E-414E-989A-6276D4242856}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {263E36E2-C856-485A-8125-0F3D014CC803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {263E36E2-C856-485A-8125-0F3D014CC803}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {263E36E2-C856-485A-8125-0F3D014CC803}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {263E36E2-C856-485A-8125-0F3D014CC803}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {263E36E2-C856-485A-8125-0F3D014CC803}.Release|Any CPU.Build.0 = Release|Any CPU
+ {263E36E2-C856-485A-8125-0F3D014CC803}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -746,6 +836,17 @@ Global
{43C9B02F-66BF-45C0-8AC3-40B3FC198355} = {FEE56BD7-5282-48AB-BEEC-17F88F7117AD}
{ACFC91F6-1186-4306-BD9A-7909FF66B160} = {43D20CD2-F716-4408-B2D8-CAA137DBE746}
{492AC59E-2E06-4C24-A51F-BD6E67E698D3} = {941E6E43-6251-4EC5-BFDD-957D401BF1D0}
+ {D0E768DB-9712-402F-A1B9-8085676FB398} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {8F1D4ADD-A507-4DB0-834C-DADC05A86191} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {B0F01209-EB64-48AE-B46A-A8EAC5780C90} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {E3362827-F82D-44A5-8BEC-B706FF6D8129} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {AA13DEE7-C159-473B-AA68-CD1C4841344E} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {DF7F9AD0-9DF5-4013-8CEB-8FAA11D47E50} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {5E323CE3-987E-414E-989A-6276D4242856} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {1706729E-3586-434C-B51D-CDB0ECCFC0BC} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {22C728F6-9927-4051-BFA5-08BD9F6FB3C7} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {DD6C92AF-40B5-47C7-8EB7-02275C3B49F4} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
+ {263E36E2-C856-485A-8125-0F3D014CC803} = {669A65E7-D76B-48E4-98AE-DE7D33662054}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {803C75D4-CF94-4881-BC4C-7CBE9D272949}
diff --git a/Source/LCD/Samples/LCD_Sample/LCD_Sample.csproj b/Source/LCD/Samples/LCD_Sample/LCD_Sample.csproj
index 2be0b30e..d27f89aa 100644
--- a/Source/LCD/Samples/LCD_Sample/LCD_Sample.csproj
+++ b/Source/LCD/Samples/LCD_Sample/LCD_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/LEDButton/Driver/LEDButton.cs b/Source/LEDButton/Driver/LEDButton.cs
index 079358ef..df2c3aed 100644
--- a/Source/LEDButton/Driver/LEDButton.cs
+++ b/Source/LEDButton/Driver/LEDButton.cs
@@ -1,5 +1,4 @@
-using Meadow.Devices;
-using Meadow.Foundation.Leds;
+using Meadow.Foundation.Leds;
using Meadow.Foundation.Sensors.Buttons;
using Meadow.Hardware;
diff --git a/Source/LEDButton/Sample/LEDButton_Sample/LEDButton_Sample.csproj b/Source/LEDButton/Sample/LEDButton_Sample/LEDButton_Sample.csproj
index 4e6b97ae..bc6a3c57 100644
--- a/Source/LEDButton/Sample/LEDButton_Sample/LEDButton_Sample.csproj
+++ b/Source/LEDButton/Sample/LEDButton_Sample/LEDButton_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/LEDSocket/Sample/LEDSocket_Sample/LEDSocket_Sample.csproj b/Source/LEDSocket/Sample/LEDSocket_Sample/LEDSocket_Sample.csproj
index b52f8a13..b0b44425 100644
--- a/Source/LEDSocket/Sample/LEDSocket_Sample/LEDSocket_Sample.csproj
+++ b/Source/LEDSocket/Sample/LEDSocket_Sample/LEDSocket_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/LightSensor/Driver/LightSensor.cs b/Source/LightSensor/Driver/LightSensor.cs
index 9441cc67..635a543e 100644
--- a/Source/LightSensor/Driver/LightSensor.cs
+++ b/Source/LightSensor/Driver/LightSensor.cs
@@ -8,7 +8,7 @@ namespace Meadow.Foundation.Grove.Sensors.Light
///
/// Represents a Light Sensor
///
- public class LightSensor : AnalogObservableBase
+ public class LightSensor : AnalogSamplingBase
{
///
/// Creates a new LightSensor driver
diff --git a/Source/LightSensor/Sample/LightSensor_Sample/LightSensor_Sample.csproj b/Source/LightSensor/Sample/LightSensor_Sample/LightSensor_Sample.csproj
index 6f22af3f..5815ef0b 100644
--- a/Source/LightSensor/Sample/LightSensor_Sample/LightSensor_Sample.csproj
+++ b/Source/LightSensor/Sample/LightSensor_Sample/LightSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/LineFinder/Sample/LineFinder_Sample/LineFinder_Sample.csproj b/Source/LineFinder/Sample/LineFinder_Sample/LineFinder_Sample.csproj
index a66349d2..00e50b4e 100644
--- a/Source/LineFinder/Sample/LineFinder_Sample/LineFinder_Sample.csproj
+++ b/Source/LineFinder/Sample/LineFinder_Sample/LineFinder_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/LoudnessSensor/Driver/LoudnessSensor.cs b/Source/LoudnessSensor/Driver/LoudnessSensor.cs
index bf903f82..8fc5bdf6 100644
--- a/Source/LoudnessSensor/Driver/LoudnessSensor.cs
+++ b/Source/LoudnessSensor/Driver/LoudnessSensor.cs
@@ -8,7 +8,7 @@ namespace Meadow.Foundation.Grove.Sensors.Sound
///
/// Represents a Loudness Sensor
///
- public class LoudnessSensor : AnalogObservableBase
+ public class LoudnessSensor : AnalogSamplingBase
{
///
/// Creates a new LoudnessSensor driver
diff --git a/Source/LoudnessSensor/Sample/LoudnessSensor_Sample/LoudnessSensor_Sample.csproj b/Source/LoudnessSensor/Sample/LoudnessSensor_Sample/LoudnessSensor_Sample.csproj
index 2f26b3fe..66ec3215 100644
--- a/Source/LoudnessSensor/Sample/LoudnessSensor_Sample/LoudnessSensor_Sample.csproj
+++ b/Source/LoudnessSensor/Sample/LoudnessSensor_Sample/LoudnessSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/MagneticSwitch/Driver/MagneticSwitch.cs b/Source/MagneticSwitch/Driver/MagneticSwitch.cs
index 077032f8..3ff0f452 100644
--- a/Source/MagneticSwitch/Driver/MagneticSwitch.cs
+++ b/Source/MagneticSwitch/Driver/MagneticSwitch.cs
@@ -1,6 +1,7 @@
using Meadow.Hardware;
using Meadow.Peripherals.Switches;
using System;
+using System.Threading.Tasks;
namespace Meadow.Foundation.Grove.Sensors.Switches
{
@@ -53,5 +54,14 @@ private void SignalPortChanged(object sender, DigitalPortResult e)
{
Changed?.Invoke(this, EventArgs.Empty);
}
+
+ ///
+ /// Returns the state of the switch
+ ///
+ ///
+ public Task Read()
+ {
+ return Task.FromResult(IsOn);
+ }
}
}
\ No newline at end of file
diff --git a/Source/MagneticSwitch/Sample/MagneticSwitch_Sample/MagneticSwitch_Sample.csproj b/Source/MagneticSwitch/Sample/MagneticSwitch_Sample/MagneticSwitch_Sample.csproj
index f9d305bd..b00d80af 100644
--- a/Source/MagneticSwitch/Sample/MagneticSwitch_Sample/MagneticSwitch_Sample.csproj
+++ b/Source/MagneticSwitch/Sample/MagneticSwitch_Sample/MagneticSwitch_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/MiniPIRMotionSensor/Sample/MiniPIRMotionSensor_Sample/MiniPIRMotionSensor_Sample.csproj b/Source/MiniPIRMotionSensor/Sample/MiniPIRMotionSensor_Sample/MiniPIRMotionSensor_Sample.csproj
index d65dea55..d11363d6 100644
--- a/Source/MiniPIRMotionSensor/Sample/MiniPIRMotionSensor_Sample/MiniPIRMotionSensor_Sample.csproj
+++ b/Source/MiniPIRMotionSensor/Sample/MiniPIRMotionSensor_Sample/MiniPIRMotionSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/MoistureSensor/Driver/MoistureSensor.cs b/Source/MoistureSensor/Driver/MoistureSensor.cs
index f02ba561..e1431123 100644
--- a/Source/MoistureSensor/Driver/MoistureSensor.cs
+++ b/Source/MoistureSensor/Driver/MoistureSensor.cs
@@ -8,7 +8,7 @@ namespace Meadow.Foundation.Grove.Sensors.Moisture
///
/// Represents a Moisture Sensor
///
- public class MoistureSensor : AnalogObservableBase
+ public class MoistureSensor : AnalogSamplingBase
{
///
/// Creates a new MoistureSensor driver
diff --git a/Source/MoistureSensor/Sample/MoistureSensor_Sample/MoistureSensor_Sample.csproj b/Source/MoistureSensor/Sample/MoistureSensor_Sample/MoistureSensor_Sample.csproj
index 6185b8c3..8c7aa038 100644
--- a/Source/MoistureSensor/Sample/MoistureSensor_Sample/MoistureSensor_Sample.csproj
+++ b/Source/MoistureSensor/Sample/MoistureSensor_Sample/MoistureSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/PIRMotionSensor/Sample/PIRMotionSensor_Sample/PIRMotionSensor_Sample.csproj b/Source/PIRMotionSensor/Sample/PIRMotionSensor_Sample/PIRMotionSensor_Sample.csproj
index dc64104f..0fdf31b4 100644
--- a/Source/PIRMotionSensor/Sample/PIRMotionSensor_Sample/PIRMotionSensor_Sample.csproj
+++ b/Source/PIRMotionSensor/Sample/PIRMotionSensor_Sample/PIRMotionSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/RTC/Sample/RTC_Sample/RTC_Sample.csproj b/Source/RTC/Sample/RTC_Sample/RTC_Sample.csproj
index bd56414a..ffe59d85 100644
--- a/Source/RTC/Sample/RTC_Sample/RTC_Sample.csproj
+++ b/Source/RTC/Sample/RTC_Sample/RTC_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Relay/Sample/Relay_Sample/Relay_Sample.csproj b/Source/Relay/Sample/Relay_Sample/Relay_Sample.csproj
index 8cb83122..72104eeb 100644
--- a/Source/Relay/Sample/Relay_Sample/Relay_Sample.csproj
+++ b/Source/Relay/Sample/Relay_Sample/Relay_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/RotaryAngleSensor/Driver/RotaryAngleSensor.cs b/Source/RotaryAngleSensor/Driver/RotaryAngleSensor.cs
index 0104926a..a62d53ff 100644
--- a/Source/RotaryAngleSensor/Driver/RotaryAngleSensor.cs
+++ b/Source/RotaryAngleSensor/Driver/RotaryAngleSensor.cs
@@ -8,7 +8,7 @@ namespace Meadow.Foundation.Grove.Sensors.Rotary
///
/// Represents a rotary angle sensor
///
- public class RotaryAngleSensor : AnalogObservableBase
+ public class RotaryAngleSensor : AnalogSamplingBase
{
///
/// Creates a new RotaryAngleSensor driver
diff --git a/Source/RotaryAngleSensor/Sample/RotaryAngleSensor_Sample/RotaryAngleSensor_Sample.csproj b/Source/RotaryAngleSensor/Sample/RotaryAngleSensor_Sample/RotaryAngleSensor_Sample.csproj
index ed2b2681..e0e53385 100644
--- a/Source/RotaryAngleSensor/Sample/RotaryAngleSensor_Sample/RotaryAngleSensor_Sample.csproj
+++ b/Source/RotaryAngleSensor/Sample/RotaryAngleSensor_Sample/RotaryAngleSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Servo/Sample/Servo_Sample/Servo_Sample.csproj b/Source/Servo/Sample/Servo_Sample/Servo_Sample.csproj
index 4e9d4b2d..ed5e4014 100644
--- a/Source/Servo/Sample/Servo_Sample/Servo_Sample.csproj
+++ b/Source/Servo/Sample/Servo_Sample/Servo_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/SoundSensor/Driver/SoundSensor.cs b/Source/SoundSensor/Driver/SoundSensor.cs
index f58c61af..1f67691d 100644
--- a/Source/SoundSensor/Driver/SoundSensor.cs
+++ b/Source/SoundSensor/Driver/SoundSensor.cs
@@ -8,7 +8,7 @@ namespace Meadow.Foundation.Grove.Sensors.Sound
///
/// Represents a Sound Sensor
///
- public class SoundSensor : AnalogObservableBase
+ public class SoundSensor : AnalogSamplingBase
{
///
/// Creates a new SoundSensor driver
diff --git a/Source/SoundSensor/Sample/SoundSensor_Sample/SoundSensor_Sample.csproj b/Source/SoundSensor/Sample/SoundSensor_Sample/SoundSensor_Sample.csproj
index d23b3e82..03e4d3e9 100644
--- a/Source/SoundSensor/Sample/SoundSensor_Sample/SoundSensor_Sample.csproj
+++ b/Source/SoundSensor/Sample/SoundSensor_Sample/SoundSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Speaker/Sample/Speaker_Sample/Speaker_Sample.csproj b/Source/Speaker/Sample/Speaker_Sample/Speaker_Sample.csproj
index 2c7d5c9a..99f24f6e 100644
--- a/Source/Speaker/Sample/Speaker_Sample/Speaker_Sample.csproj
+++ b/Source/Speaker/Sample/Speaker_Sample/Speaker_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/SwitchP/Sample/SwitchP_Sample/SwitchP_Sample.csproj b/Source/SwitchP/Sample/SwitchP_Sample/SwitchP_Sample.csproj
index 9e5dd8da..36050797 100644
--- a/Source/SwitchP/Sample/SwitchP_Sample/SwitchP_Sample.csproj
+++ b/Source/SwitchP/Sample/SwitchP_Sample/SwitchP_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/TemperatureHumiditySensor_HighAccuracyMini/Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample.csproj b/Source/TemperatureHumiditySensor_HighAccuracyMini/Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample.csproj
index b31913d4..0e2ea816 100644
--- a/Source/TemperatureHumiditySensor_HighAccuracyMini/Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample.csproj
+++ b/Source/TemperatureHumiditySensor_HighAccuracyMini/Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample/TemperatureHumiditySensor_HighAccuracyMini_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/TemperatureSensor/Driver/TemperatureSensor.cs b/Source/TemperatureSensor/Driver/TemperatureSensor.cs
index f30a144e..527fb69b 100644
--- a/Source/TemperatureSensor/Driver/TemperatureSensor.cs
+++ b/Source/TemperatureSensor/Driver/TemperatureSensor.cs
@@ -8,7 +8,7 @@ namespace Meadow.Foundation.Grove.Sensors.Temperature
///
/// Represents a Temperature Sensor
///
- public class TemperatureSensor : AnalogObservableBase
+ public class TemperatureSensor : AnalogSamplingBase
{
///
/// Creates a new TemperatureSensor driver
diff --git a/Source/TemperatureSensor/Sample/TemperatureSensor_Sample/TemperatureSensor_Sample.csproj b/Source/TemperatureSensor/Sample/TemperatureSensor_Sample/TemperatureSensor_Sample.csproj
index 223a15ba..026ff894 100644
--- a/Source/TemperatureSensor/Sample/TemperatureSensor_Sample/TemperatureSensor_Sample.csproj
+++ b/Source/TemperatureSensor/Sample/TemperatureSensor_Sample/TemperatureSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/ThumbJoystick/Sample/ThumbJoystick_Sample/ThumbJoystick_Sample.csproj b/Source/ThumbJoystick/Sample/ThumbJoystick_Sample/ThumbJoystick_Sample.csproj
index 451f326b..79b72401 100644
--- a/Source/ThumbJoystick/Sample/ThumbJoystick_Sample/ThumbJoystick_Sample.csproj
+++ b/Source/ThumbJoystick/Sample/ThumbJoystick_Sample/ThumbJoystick_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Tilt/Sample/Tilt_Sample/Tilt_Sample.csproj b/Source/Tilt/Sample/Tilt_Sample/Tilt_Sample.csproj
index 0bf6c26b..ff7072b9 100644
--- a/Source/Tilt/Sample/Tilt_Sample/Tilt_Sample.csproj
+++ b/Source/Tilt/Sample/Tilt_Sample/Tilt_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/Touch/Sample/Touch_Sample/Touch_Sample.csproj b/Source/Touch/Sample/Touch_Sample/Touch_Sample.csproj
index 4ae2cca5..9e29e885 100644
--- a/Source/Touch/Sample/Touch_Sample/Touch_Sample.csproj
+++ b/Source/Touch/Sample/Touch_Sample/Touch_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/VibrationMotor/Sample/VibrationMotor_Sample/VibrationMotor_Sample.csproj b/Source/VibrationMotor/Sample/VibrationMotor_Sample/VibrationMotor_Sample.csproj
index 6f486ced..a1cef070 100644
--- a/Source/VibrationMotor/Sample/VibrationMotor_Sample/VibrationMotor_Sample.csproj
+++ b/Source/VibrationMotor/Sample/VibrationMotor_Sample/VibrationMotor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/VibrationSensor/Sample/VibrationSensor_Sample/VibrationSensor_Sample.csproj b/Source/VibrationSensor/Sample/VibrationSensor_Sample/VibrationSensor_Sample.csproj
index 965576ef..cdaf5499 100644
--- a/Source/VibrationSensor/Sample/VibrationSensor_Sample/VibrationSensor_Sample.csproj
+++ b/Source/VibrationSensor/Sample/VibrationSensor_Sample/VibrationSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/Source/WaterSensor/Sample/WaterSensor_Sample/WaterSensor_Sample.csproj b/Source/WaterSensor/Sample/WaterSensor_Sample/WaterSensor_Sample.csproj
index 9d36716b..1202d4c6 100644
--- a/Source/WaterSensor/Sample/WaterSensor_Sample/WaterSensor_Sample.csproj
+++ b/Source/WaterSensor/Sample/WaterSensor_Sample/WaterSensor_Sample.csproj
@@ -7,6 +7,6 @@
-
+