diff --git a/.clang-tidy b/.clang-tidy
index 65f2c6c..d5699b1 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -298,7 +298,7 @@
 readability-uppercase-literal-suffix'
 
 WarningsAsErrors: '*'
-HeaderFilterRegex: '.*'
+HeaderFilterRegex: '(?!^subprojects).*'
 CheckOptions:
   - { key: readability-identifier-naming.ClassCase,     value: CamelCase  }
   - { key: readability-identifier-naming.VariableCase,  value: camelBack }
diff --git a/.gitignore b/.gitignore
index e0886a4..2408bb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
 !subprojects/*.wrap
 !subprojects/.clang-tidy
 !subprojects/.clang-format
+!subprojects/.clang-tidy-ignore
 
 .vscode
 .idea/
diff --git a/src/IntelCPUSensorMain.cpp b/src/IntelCPUSensorMain.cpp
index 665daa8..bf6e08b 100644
--- a/src/IntelCPUSensorMain.cpp
+++ b/src/IntelCPUSensorMain.cpp
@@ -19,6 +19,7 @@
 #include "VariantVisitors.hpp"
 
 #include <fcntl.h>
+#include <peci.h>
 
 #include <boost/algorithm/string/replace.hpp>
 #include <boost/container/flat_map.hpp>
@@ -472,29 +473,25 @@
             return;
         }
 
+        peci_SetDevName(peciDevPath.data());
         State newState = State::OFF;
-        struct peci_ping_msg msg
-        {};
-        msg.addr = config.addr;
 
         // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
-        if (ioctl(file, PECI_IOC_PING, &msg) == 0)
+        if (peci_Ping(config.addr) == PECI_CC_SUCCESS)
         {
             bool dimmReady = false;
             for (unsigned int rank = 0; rank < rankNumMax; rank++)
             {
-                struct peci_rd_pkg_cfg_msg msg
-                {};
-                msg.addr = config.addr;
-                msg.index = PECI_MBX_INDEX_DDR_DIMM_TEMP;
-                msg.param = rank;
-                msg.rx_len = 4;
+                std::array<uint8_t, 8> pkgConfig{};
+                uint8_t cc = 0;
 
                 // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
-                if (ioctl(file, PECI_IOC_RD_PKG_CFG, &msg) == 0)
+                if (peci_RdPkgConfig(config.addr, PECI_MBX_INDEX_DDR_DIMM_TEMP,
+                                     rank, 4, &pkgConfig[0],
+                                     &cc) == PECI_CC_SUCCESS)
                 {
-                    if ((msg.pkg_config[0] != 0U) ||
-                        (msg.pkg_config[1] != 0U) || (msg.pkg_config[2] != 0U))
+                    if ((pkgConfig[0] != 0U) || (pkgConfig[1] != 0U) ||
+                        (pkgConfig[2] != 0U))
                     {
                         dimmReady = true;
                         break;
@@ -516,8 +513,6 @@
             }
         }
 
-        close(file);
-
         if (config.state != newState)
         {
             if (newState != State::OFF)
diff --git a/src/meson.build b/src/meson.build
index 665517a..0adbabc 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -60,6 +60,17 @@
     peci_incdirs = ['../include']
 endif
 
+if get_option('intel-cpu').enabled()
+    peci_dep = meson.get_compiler('cpp').find_library('libpeci', required : false)
+    if not peci_dep.found()
+      cmake = import('cmake')
+      opt = cmake.subproject_options()
+      opt.append_compile_args('c', '-Wno-pedantic')
+      peci_proj = cmake.subproject('libpeci', options : opt)
+      peci_dep = peci_proj.dependency('peci')
+    endif
+endif
+
 if get_option('adc').enabled()
     executable(
         'adcsensor',
@@ -86,6 +97,7 @@
             gpiodcxx,
             thresholds_dep,
             utils_dep,
+            peci_dep,
         ],
         include_directories: peci_incdirs,
         install: true,
diff --git a/subprojects/.clang-tidy-ignore b/subprojects/.clang-tidy-ignore
new file mode 100644
index 0000000..f59ec20
--- /dev/null
+++ b/subprojects/.clang-tidy-ignore
@@ -0,0 +1 @@
+*
\ No newline at end of file
diff --git a/subprojects/libpeci.wrap b/subprojects/libpeci.wrap
new file mode 100644
index 0000000..59fc2b9
--- /dev/null
+++ b/subprojects/libpeci.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/openbmc/libpeci.git
+revision = HEAD
+
+[provide]
+libpeci = peci_dep
\ No newline at end of file
