diff --git a/Source/Meadow.Contracts/Hardware/Contracts/IPinExtensions.cs b/Source/Meadow.Contracts/Hardware/Contracts/IPinExtensions.cs
index 3f8104a2..74c77b4e 100644
--- a/Source/Meadow.Contracts/Hardware/Contracts/IPinExtensions.cs
+++ b/Source/Meadow.Contracts/Hardware/Contracts/IPinExtensions.cs
@@ -74,6 +74,19 @@ public static IDigitalInterruptPort CreateDigitalInterruptPort(this IPin pin, In
throw new ArgumentException("Pin is not digital input capable");
}
+ ///
+ /// Creates a digital interrupt port for the specified pin with specified configurations.
+ ///
+ /// The pin to create a digital interrupt port for.
+ /// The interrupt mode for the digital interrupt port.
+ /// The resistor mode for the digital interrupt port.
+ /// The debounce duration for the digital interrupt port.
+ /// The created digital interrupt port.
+ public static IDigitalInterruptPort CreateDigitalInterruptPort(this IPin pin, InterruptMode interruptMode, ResistorMode resistorMode, TimeSpan debounceDuration)
+ {
+ return pin.CreateDigitalInterruptPort(interruptMode, resistorMode, debounceDuration, TimeSpan.Zero);
+ }
+
///
/// Creates a digital input port for the specified pin with the specified resistor mode.
///
diff --git a/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/ICurrentSensor.cs b/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/ICurrentSensor.cs
new file mode 100644
index 00000000..73cf01ff
--- /dev/null
+++ b/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/ICurrentSensor.cs
@@ -0,0 +1,14 @@
+using Meadow.Units;
+
+namespace Meadow.Peripherals.Sensors;
+
+///
+/// Electrical Current sensor interface requirements.
+///
+public interface ICurrentSensor : ISamplingSensor
+{
+ ///
+ /// Last value read from the Current sensor.
+ ///
+ public Current? Current { get; }
+}
diff --git a/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/IPowerSensor.cs b/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/IPowerSensor.cs
new file mode 100644
index 00000000..7a11f3d0
--- /dev/null
+++ b/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/IPowerSensor.cs
@@ -0,0 +1,14 @@
+using Meadow.Units;
+
+namespace Meadow.Peripherals.Sensors;
+
+///
+/// Electrical Power sensor interface requirements.
+///
+public interface IPowerSensor : ISamplingSensor
+{
+ ///
+ /// Last value read from the Power sensor.
+ ///
+ public Power? Power { get; }
+}
diff --git a/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/IVoltageSensor.cs b/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/IVoltageSensor.cs
new file mode 100644
index 00000000..0eaf4061
--- /dev/null
+++ b/Source/Meadow.Contracts/Peripherals/Sensors/Electrical/IVoltageSensor.cs
@@ -0,0 +1,14 @@
+using Meadow.Units;
+
+namespace Meadow.Peripherals.Sensors;
+
+///
+/// Voltage sensor interface requirements.
+///
+public interface IVoltageSensor : ISamplingSensor
+{
+ ///
+ /// Last value read from the Voltage sensor.
+ ///
+ public Voltage? Voltage { get; }
+}
diff --git a/Source/Meadow.Contracts/Platform OS/IPlatformOS.cs b/Source/Meadow.Contracts/Platform OS/IPlatformOS.cs
index 88a84b01..d25cba9c 100644
--- a/Source/Meadow.Contracts/Platform OS/IPlatformOS.cs
+++ b/Source/Meadow.Contracts/Platform OS/IPlatformOS.cs
@@ -31,7 +31,7 @@ public partial interface IPlatformOS : IPowerController
///
- /// Gets the amount of storage space in use on the primarys storage device
+ /// Gets the amount of storage space in use on the primary storage device
///
DigitalStorage GetPrimaryDiskSpaceInUse();