diff --git a/src/libDevCom/AMAC.cpp b/src/libDevCom/AMAC.cpp
deleted file mode 100644
index 24970362ff6f6194a6f8c7f6d4d7205c2d0b3fab..0000000000000000000000000000000000000000
--- a/src/libDevCom/AMAC.cpp
+++ /dev/null
@@ -1,508 +0,0 @@
-#include "AMAC.h"
-
-#include "DeviceComRegistry.h"
-REGISTER_DEVCOM(AMAC, AMAC)
-
-AMAC::AMAC(std::shared_ptr<I2CCom> i2c) : m_i2c(i2c) {}
-
-AMAC::~AMAC() {}
-
-void AMAC::init() {
-    write(AMACreg::LV_ENABLE, 0x0);  // ensure output is disabled
-
-    write(AMACreg::BANDGAP_CONTROL, 10);  // 1.2V LDO output
-    write(AMACreg::RT_CH3_GAIN_SEL, 0);   // no attenuation
-    write(AMACreg::LT_CH3_GAIN_SEL, 0);   // no attentuation
-    write(AMACreg::RT_CH0_SEL, 1);        // a
-    write(AMACreg::LT_CH0_SEL, 1);        // a
-    write(AMACreg::LEFT_RAMP_GAIN, 3);    // best range
-    write(AMACreg::RIGHT_RAMP_GAIN, 3);   // best range
-    write(AMACreg::OPAMP_GAIN_RIGHT, 0);  // highest gain
-    write(AMACreg::OPAMP_GAIN_LEFT, 0);   // highest gain
-    write(AMACreg::HV_FREQ, 0x1);
-}
-
-// Reads the according bits from the according AMAC register
-int AMAC::read(AMACreg reg, unsigned &val) {
-    switch (reg) {
-        case AMACreg::STATUS_HV_ILOCK:
-            return this->readBits(0, 1, 0, val);
-        case AMACreg::STATUS_LV_ILOCK:
-            return this->readBits(0, 1, 1, val);
-        case AMACreg::STATUS_HV_WARN:
-            return this->readBits(0, 1, 2, val);
-        case AMACreg::STATUS_LV_WARN:
-            return this->readBits(0, 1, 3, val);
-        case AMACreg::STATUS_ID:
-            return this->readBits(0, 4, 4, val);
-        case AMACreg::VALUE_LEFT_CH0:
-            return this->readBits(20, 10, 0, val);
-        case AMACreg::VALUE_LEFT_CH1:
-            return this->readBits(21, 10, 2, val);
-        case AMACreg::VALUE_LEFT_CH2:
-            return this->readBits(22, 10, 4, val);
-        case AMACreg::VALUE_LEFT_CH3:
-            return this->readBits(23, 10, 6, val);
-        case AMACreg::VALUE_LEFT_CH4:
-            return this->readBits(25, 10, 0, val);
-        case AMACreg::VALUE_LEFT_CH5:
-            return this->readBits(26, 10, 2, val);
-        case AMACreg::VALUE_LEFT_CH6:
-            return this->readBits(27, 10, 4, val);
-        case AMACreg::VALUE_RIGHT_CH0:
-            return this->readBits(29, 10, 0, val);
-        case AMACreg::VALUE_RIGHT_CH1:
-            return this->readBits(30, 10, 2, val);
-        case AMACreg::VALUE_RIGHT_CH2:
-            return this->readBits(31, 10, 4, val);
-        case AMACreg::VALUE_RIGHT_CH3:
-            return this->readBits(32, 10, 6, val);
-        case AMACreg::VALUE_RIGHT_CH4:
-            return this->readBits(34, 10, 0, val);
-        case AMACreg::VALUE_RIGHT_CH5:
-            return this->readBits(35, 10, 2, val);
-        case AMACreg::VALUE_RIGHT_CH6:
-            return this->readBits(36, 10, 4, val);
-        case AMACreg::LEFT_RAMP_GAIN:
-            return this->readBits(45, 2, 0, val);
-        case AMACreg::RIGHT_RAMP_GAIN:
-            return this->readBits(45, 2, 4, val);
-        case AMACreg::OPAMP_GAIN_RIGHT:
-            return this->readBits(42, 4, 4, val);
-        case AMACreg::OPAMP_GAIN_LEFT:
-            return this->readBits(42, 4, 0, val);
-        case AMACreg::BANDGAP_CONTROL:
-            return this->readBits(40, 5, 0, val);
-        case AMACreg::RT_CH3_GAIN_SEL:
-            return this->readBits(45, 1, 7, val);
-        case AMACreg::LT_CH3_GAIN_SEL:
-            return this->readBits(45, 1, 3, val);
-        case AMACreg::HV_ENABLE:
-            return this->readBits(43, 1, 0, val);
-        case AMACreg::LV_ENABLE:
-            return this->readBits(44, 1, 0, val);
-        case AMACreg::HV_FREQ:
-            return this->readBits(43, 2, 1, val);
-        case AMACreg::ILOCK_FLAG_HV_LEFT_HI:
-            return this->readBits(1, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_HV_LEFT_LO:
-            return this->readBits(2, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_HV_RIGHT_HI:
-            return this->readBits(3, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_HV_RIGHT_LO:
-            return this->readBits(4, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_LV_LEFT_HI:
-            return this->readBits(5, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_LV_LEFT_LO:
-            return this->readBits(6, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_LV_RIGHT_HI:
-            return this->readBits(7, 7, 0, val);
-        case AMACreg::ILOCK_FLAG_LV_RIGHT_LO:
-            return this->readBits(8, 7, 0, val);
-        case AMACreg::WARN_FLAG_HV_LEFT_HI:
-            return this->readBits(9, 7, 0, val);
-        case AMACreg::WARN_FLAG_HV_LEFT_LO:
-            return this->readBits(10, 7, 0, val);
-        case AMACreg::WARN_FLAG_HV_RIGHT_HI:
-            return this->readBits(11, 7, 0, val);
-        case AMACreg::WARN_FLAG_HV_RIGHT_LO:
-            return this->readBits(12, 7, 0, val);
-        case AMACreg::WARN_FLAG_LV_LEFT_HI:
-            return this->readBits(13, 7, 0, val);
-        case AMACreg::WARN_FLAG_LV_LEFT_LO:
-            return this->readBits(14, 7, 0, val);
-        case AMACreg::WARN_FLAG_LV_RIGHT_HI:
-            return this->readBits(15, 7, 0, val);
-        case AMACreg::WARN_FLAG_LV_RIGHT_LO:
-            return this->readBits(16, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_LEFT_HI:
-            return this->readBits(50, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_LEFT_LO:
-            return this->readBits(51, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_RIGHT_HI:
-            return this->readBits(52, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_RIGHT_LO:
-            return this->readBits(53, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_LEFT_HI:
-            return this->readBits(54, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_LEFT_LO:
-            return this->readBits(55, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_RIGHT_HI:
-            return this->readBits(56, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_RIGHT_LO:
-            return this->readBits(57, 7, 0, val);
-        case AMACreg::WARN_EN_HV_LEFT_HI:
-            return this->readBits(58, 7, 0, val);
-        case AMACreg::WARN_EN_HV_LEFT_LO:
-            return this->readBits(59, 7, 0, val);
-        case AMACreg::WARN_EN_HV_RIGHT_HI:
-            return this->readBits(60, 7, 0, val);
-        case AMACreg::WARN_EN_HV_RIGHT_LO:
-            return this->readBits(61, 7, 0, val);
-        case AMACreg::WARN_EN_LV_LEFT_HI:
-            return this->readBits(62, 7, 0, val);
-        case AMACreg::WARN_EN_LV_LEFT_LO:
-            return this->readBits(63, 7, 0, val);
-        case AMACreg::WARN_EN_LV_RIGHT_HI:
-            return this->readBits(64, 7, 0, val);
-        case AMACreg::WARN_EN_LV_RIGHT_LO:
-            return this->readBits(65, 7, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH0:
-            return this->readBits(66, 10, 0, val);
-        default:
-            return -2;
-            break;
-    }
-}
-
-// Writes the according bits in the according AMAC register
-int AMAC::write(AMACreg reg, unsigned val) {
-    switch (reg) {
-        case AMACreg::LEFT_RAMP_GAIN:
-            return this->writeBits(45, 2, 0, val);
-        case AMACreg::RIGHT_RAMP_GAIN:
-            return this->writeBits(45, 2, 4, val);
-        case AMACreg::OPAMP_GAIN_RIGHT:
-            return this->writeBits(42, 4, 4, val);
-        case AMACreg::OPAMP_GAIN_LEFT:
-            return this->writeBits(42, 4, 0, val);
-        case AMACreg::BANDGAP_CONTROL:
-            return this->writeBits(40, 5, 0, val);
-        case AMACreg::RT_CH3_GAIN_SEL:
-            return this->writeBits(45, 1, 7, val);
-        case AMACreg::LT_CH3_GAIN_SEL:
-            return this->writeBits(45, 1, 3, val);
-        case AMACreg::RT_CH0_SEL:
-            return this->writeBits(45, 1, 6, val);
-        case AMACreg::LT_CH0_SEL:
-            return this->writeBits(45, 1, 2, val);
-        case AMACreg::CLK_OUT_ENABLE:
-            return this->writeBits(41, 1, 0, val);
-        case AMACreg::CLK_SELECT:
-            return this->writeBits(49, 1, 0, val);
-        case AMACreg::HV_FREQ:
-            return this->writeBits(43, 2, 1, val);
-        case AMACreg::HV_ENABLE:
-            return this->writeBits(43, 1, 0, val);
-        case AMACreg::LV_ENABLE:
-            return this->writeBits(44, 1, 0, val);
-        case AMACreg::HV_ILOCK:
-            return this->writeBits(43, 1, 7, val);
-        case AMACreg::HV_ILOCK_LAM:
-            return this->writeBits(43, 1, 5, val);
-        case AMACreg::LV_ILOCK:
-            return this->writeBits(44, 1, 7, val);
-        case AMACreg::LV_ILOCK_LAM:
-            return this->writeBits(44, 1, 5, val);
-        case AMACreg::RESET_HV_ILOCK:
-            return this->writeBits(48, 1, 0, val);
-        case AMACreg::RESET_HV_WARN:
-            return this->writeBits(48, 1, 1, val);
-        case AMACreg::RESET_LV_ILOCK:
-            return this->writeBits(48, 1, 2, val);
-        case AMACreg::RESET_LV_WARN:
-            return this->writeBits(48, 1, 3, val);
-        case AMACreg::ILOCK_EN_HV_LEFT_HI:
-            return this->writeBits(50, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_LEFT_LO:
-            return this->writeBits(51, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_RIGHT_HI:
-            return this->writeBits(52, 7, 0, val);
-        case AMACreg::ILOCK_EN_HV_RIGHT_LO:
-            return this->writeBits(53, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_LEFT_HI:
-            return this->writeBits(54, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_LEFT_LO:
-            return this->writeBits(55, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_RIGHT_HI:
-            return this->writeBits(56, 7, 0, val);
-        case AMACreg::ILOCK_EN_LV_RIGHT_LO:
-            return this->writeBits(57, 7, 0, val);
-        case AMACreg::WARN_EN_HV_LEFT_HI:
-            return this->writeBits(58, 7, 0, val);
-        case AMACreg::WARN_EN_HV_LEFT_LO:
-            return this->writeBits(59, 7, 0, val);
-        case AMACreg::WARN_EN_HV_RIGHT_HI:
-            return this->writeBits(60, 7, 0, val);
-        case AMACreg::WARN_EN_HV_RIGHT_LO:
-            return this->writeBits(61, 7, 0, val);
-        case AMACreg::WARN_EN_LV_LEFT_HI:
-            return this->writeBits(62, 7, 0, val);
-        case AMACreg::WARN_EN_LV_LEFT_LO:
-            return this->writeBits(63, 7, 0, val);
-        case AMACreg::WARN_EN_LV_RIGHT_HI:
-            return this->writeBits(64, 7, 0, val);
-        case AMACreg::WARN_EN_LV_RIGHT_LO:
-            return this->writeBits(65, 7, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH0:
-            return this->writeBits(66, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH1:
-            return this->writeBits(67, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH2:
-            return this->writeBits(68, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH3:
-            return this->writeBits(69, 10, 6, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH4:
-            return this->writeBits(71, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH5:
-            return this->writeBits(72, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_L_CH6:
-            return this->writeBits(73, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH0:
-            return this->writeBits(75, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH1:
-            return this->writeBits(76, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH2:
-            return this->writeBits(77, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH3:
-            return this->writeBits(78, 10, 6, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH4:
-            return this->writeBits(80, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH5:
-            return this->writeBits(81, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_L_CH6:
-            return this->writeBits(82, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH0:
-            return this->writeBits(84, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH1:
-            return this->writeBits(85, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH2:
-            return this->writeBits(86, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH3:
-            return this->writeBits(87, 10, 6, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH4:
-            return this->writeBits(89, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH5:
-            return this->writeBits(90, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_HI_R_CH6:
-            return this->writeBits(91, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH0:
-            return this->writeBits(93, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH1:
-            return this->writeBits(94, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH2:
-            return this->writeBits(95, 10, 4, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH3:
-            return this->writeBits(96, 10, 6, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH4:
-            return this->writeBits(98, 10, 0, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH5:
-            return this->writeBits(99, 10, 2, val);
-        case AMACreg::ILOCK_HV_THRESH_LO_R_CH6:
-            return this->writeBits(100, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH0:
-            return this->writeBits(102, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH1:
-            return this->writeBits(103, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH2:
-            return this->writeBits(104, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH3:
-            return this->writeBits(105, 10, 6, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH4:
-            return this->writeBits(107, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH5:
-            return this->writeBits(108, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_L_CH6:
-            return this->writeBits(109, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH0:
-            return this->writeBits(111, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH1:
-            return this->writeBits(112, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH2:
-            return this->writeBits(113, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH3:
-            return this->writeBits(114, 10, 6, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH4:
-            return this->writeBits(116, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH5:
-            return this->writeBits(117, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_L_CH6:
-            return this->writeBits(118, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH0:
-            return this->writeBits(120, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH1:
-            return this->writeBits(121, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH2:
-            return this->writeBits(122, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH3:
-            return this->writeBits(123, 10, 6, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH4:
-            return this->writeBits(125, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH5:
-            return this->writeBits(126, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_HI_R_CH6:
-            return this->writeBits(127, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH0:
-            return this->writeBits(129, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH1:
-            return this->writeBits(130, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH2:
-            return this->writeBits(131, 10, 4, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH3:
-            return this->writeBits(132, 10, 6, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH4:
-            return this->writeBits(134, 10, 0, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH5:
-            return this->writeBits(135, 10, 2, val);
-        case AMACreg::ILOCK_LV_THRESH_LO_R_CH6:
-            return this->writeBits(136, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH0:
-            return this->writeBits(138, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH1:
-            return this->writeBits(139, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH2:
-            return this->writeBits(140, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH3:
-            return this->writeBits(141, 10, 6, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH4:
-            return this->writeBits(143, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH5:
-            return this->writeBits(144, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_HI_L_CH6:
-            return this->writeBits(145, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH0:
-            return this->writeBits(147, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH1:
-            return this->writeBits(148, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH2:
-            return this->writeBits(149, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH3:
-            return this->writeBits(150, 10, 6, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH4:
-            return this->writeBits(152, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH5:
-            return this->writeBits(153, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_LO_L_CH6:
-            return this->writeBits(154, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH0:
-            return this->writeBits(156, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH1:
-            return this->writeBits(157, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH2:
-            return this->writeBits(158, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH3:
-            return this->writeBits(159, 10, 6, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH4:
-            return this->writeBits(161, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH5:
-            return this->writeBits(162, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_HI_R_CH6:
-            return this->writeBits(163, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH0:
-            return this->writeBits(165, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH1:
-            return this->writeBits(166, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH2:
-            return this->writeBits(167, 10, 4, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH3:
-            return this->writeBits(168, 10, 6, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH4:
-            return this->writeBits(170, 10, 0, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH5:
-            return this->writeBits(171, 10, 2, val);
-        case AMACreg::WARN_HV_THRESH_LO_R_CH6:
-            return this->writeBits(172, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH0:
-            return this->writeBits(174, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH1:
-            return this->writeBits(175, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH2:
-            return this->writeBits(176, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH3:
-            return this->writeBits(177, 10, 6, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH4:
-            return this->writeBits(179, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH5:
-            return this->writeBits(180, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_HI_L_CH6:
-            return this->writeBits(181, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH0:
-            return this->writeBits(183, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH1:
-            return this->writeBits(184, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH2:
-            return this->writeBits(185, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH3:
-            return this->writeBits(186, 10, 6, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH4:
-            return this->writeBits(188, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH5:
-            return this->writeBits(189, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_LO_L_CH6:
-            return this->writeBits(190, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH0:
-            return this->writeBits(192, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH1:
-            return this->writeBits(193, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH2:
-            return this->writeBits(194, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH3:
-            return this->writeBits(195, 10, 6, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH4:
-            return this->writeBits(197, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH5:
-            return this->writeBits(198, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_HI_R_CH6:
-            return this->writeBits(199, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH0:
-            return this->writeBits(201, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH1:
-            return this->writeBits(202, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH2:
-            return this->writeBits(203, 10, 4, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH3:
-            return this->writeBits(204, 10, 6, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH4:
-            return this->writeBits(206, 10, 0, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH5:
-            return this->writeBits(207, 10, 2, val);
-        case AMACreg::WARN_LV_THRESH_LO_R_CH6:
-            return this->writeBits(208, 10, 4, val);
-        default:
-            return -2;
-            break;
-    }
-}
-
-// Works until up to 4 bytes
-int AMAC::readBits(unsigned startreg, unsigned num_bits, unsigned offset,
-                   unsigned &value) {
-    int num_bytes = ((num_bits + offset - 1) / 8) + 1;
-    std::vector<uint8_t> buf(num_bytes);
-
-    m_i2c->read_block(startreg, buf);
-    uint temp = 0;
-    for (int i = num_bytes - 1; i >= 0; i--) {
-        temp <<= 8;
-        temp += (buf[i] & 0xFF);
-    }
-    value = (temp >> offset) & ((1 << num_bits) - 1);
-    return 0;
-}
-
-// Works until up to 4 bytes
-// Read register, modify bits, write register
-int AMAC::writeBits(unsigned startreg, unsigned num_bits, unsigned offset,
-                    unsigned value) {
-    int num_bytes = ((num_bits + offset - 1) / 8) + 1;
-    std::vector<uint8_t> buf(num_bytes);
-
-    // Read existing value
-    int temp;
-    int mask = ((1 << num_bits) - 1) << offset;
-    m_i2c->read_block(startreg, buf);
-    temp = 0;
-    for (int i = num_bytes - 1; i >= 0; i--) {
-        temp <<= 8;
-        temp += (buf[i] & 0xFF);
-    }
-
-    // Modify the required bits
-    temp &= ~mask;
-    temp |= ((value << offset) & mask);
-    for (int i = 0; i < num_bytes; i++, temp >>= 8) buf[i] = temp & 0xFF;
-
-    // Write back
-    m_i2c->write_block(startreg, buf);
-    return 0;
-}
diff --git a/src/libDevCom/AMAC.h b/src/libDevCom/AMAC.h
deleted file mode 100644
index 2741df3b209007f0a353ef51e43ec8f2c7c576f0..0000000000000000000000000000000000000000
--- a/src/libDevCom/AMAC.h
+++ /dev/null
@@ -1,234 +0,0 @@
-#ifndef AMAC_H
-#define AMAC_H
-
-#include <iostream>
-#include <memory>
-
-#include "I2CCom.h"
-
-enum class AMACreg;
-
-class AMAC {
- public:
-    AMAC(std::shared_ptr<I2CCom> i2c);
-    ~AMAC();
-
-    void init();
-
-    int read(AMACreg reg, unsigned &val);
-    int write(AMACreg reg, unsigned val);
-
- private:
-    std::shared_ptr<I2CCom> m_i2c;
-
-    int readBits(unsigned startreg, unsigned num_bits, unsigned offset,
-                 unsigned &value);
-    int writeBits(unsigned startreg, unsigned num_bits, unsigned offset,
-                  unsigned value);
-};
-
-// AMAC registers
-enum class AMACreg {
-    STATUS_ID,
-    STATUS_HV_ILOCK,
-    STATUS_LV_ILOCK,
-    STATUS_HV_WARN,
-    STATUS_LV_WARN,
-    HV_ILOCK_LEFT_HIGH,
-    HV_ILOCK_LEFT_LOW,
-    HV_ILOCK_RIGHT_HIGH,
-    HV_ILOCK_RIGHT_LOW,
-    LV_ILOCK_LEFT_HIGH,
-    LV_ILOCK_LEFT_LOW,
-    LV_ILOCK_RIGHT_HIGH,
-    LV_ILOCK_RIGHT_LOW,
-    HV_WARN_LEFT_HIGH,
-    HV_WARN_LEFT_LOW,
-    HV_WARN_RIGHT_HIGH,
-    HV_WARN_RIGHT_LOW,
-    LV_WARN_LEFT_HIGH,
-    LV_WARN_LEFT_LOW,
-    LV_WARN_RIGHT_HIGH,
-    LV_WARN_RIGHT_LOW,
-    VALUE_LEFT_CH0,
-    VALUE_LEFT_CH1,
-    VALUE_LEFT_CH2,
-    VALUE_LEFT_CH3,
-    VALUE_LEFT_CH4,
-    VALUE_LEFT_CH5,
-    VALUE_LEFT_CH6,
-    VALUE_RIGHT_CH0,
-    VALUE_RIGHT_CH1,
-    VALUE_RIGHT_CH2,
-    VALUE_RIGHT_CH3,
-    VALUE_RIGHT_CH4,
-    VALUE_RIGHT_CH5,
-    VALUE_RIGHT_CH6,
-    OPAMP_GAIN_RIGHT,
-    OPAMP_GAIN_LEFT,
-    RIGHT_RAMP_GAIN,
-    LEFT_RAMP_GAIN,
-    BANDGAP_CONTROL,
-    RT_CH0_SEL,
-    LT_CH0_SEL,
-    RT_CH3_GAIN_SEL,
-    LT_CH3_GAIN_SEL,
-    CLK_OUT_ENABLE,
-    CLK_SELECT,
-    HV_FREQ,
-    HV_ENABLE,
-    LV_ENABLE,
-    HV_ILOCK,
-    HV_ILOCK_LAM,
-    LV_ILOCK,
-    LV_ILOCK_LAM,
-    RESET_HV_ILOCK,
-    RESET_HV_WARN,
-    RESET_LV_ILOCK,
-    RESET_LV_WARN,
-    ILOCK_FLAG_HV_LEFT_HI,
-    ILOCK_FLAG_HV_LEFT_LO,
-    ILOCK_FLAG_HV_RIGHT_HI,
-    ILOCK_FLAG_HV_RIGHT_LO,
-    ILOCK_FLAG_LV_LEFT_HI,
-    ILOCK_FLAG_LV_LEFT_LO,
-    ILOCK_FLAG_LV_RIGHT_HI,
-    ILOCK_FLAG_LV_RIGHT_LO,
-    WARN_FLAG_HV_LEFT_HI,
-    WARN_FLAG_HV_LEFT_LO,
-    WARN_FLAG_HV_RIGHT_HI,
-    WARN_FLAG_HV_RIGHT_LO,
-    WARN_FLAG_LV_LEFT_HI,
-    WARN_FLAG_LV_LEFT_LO,
-    WARN_FLAG_LV_RIGHT_HI,
-    WARN_FLAG_LV_RIGHT_LO,
-    ILOCK_EN_HV_LEFT_HI,
-    ILOCK_EN_HV_LEFT_LO,
-    ILOCK_EN_HV_RIGHT_HI,
-    ILOCK_EN_HV_RIGHT_LO,
-    ILOCK_EN_LV_LEFT_HI,
-    ILOCK_EN_LV_LEFT_LO,
-    ILOCK_EN_LV_RIGHT_HI,
-    ILOCK_EN_LV_RIGHT_LO,
-    WARN_EN_HV_LEFT_HI,
-    WARN_EN_HV_LEFT_LO,
-    WARN_EN_HV_RIGHT_HI,
-    WARN_EN_HV_RIGHT_LO,
-    WARN_EN_LV_LEFT_HI,
-    WARN_EN_LV_LEFT_LO,
-    WARN_EN_LV_RIGHT_HI,
-    WARN_EN_LV_RIGHT_LO,
-    ILOCK_HV_THRESH_HI_L_CH0,
-    ILOCK_HV_THRESH_HI_L_CH1,
-    ILOCK_HV_THRESH_HI_L_CH2,
-    ILOCK_HV_THRESH_HI_L_CH3,
-    ILOCK_HV_THRESH_HI_L_CH4,
-    ILOCK_HV_THRESH_HI_L_CH5,
-    ILOCK_HV_THRESH_HI_L_CH6,
-    ILOCK_HV_THRESH_LO_L_CH0,
-    ILOCK_HV_THRESH_LO_L_CH1,
-    ILOCK_HV_THRESH_LO_L_CH2,
-    ILOCK_HV_THRESH_LO_L_CH3,
-    ILOCK_HV_THRESH_LO_L_CH4,
-    ILOCK_HV_THRESH_LO_L_CH5,
-    ILOCK_HV_THRESH_LO_L_CH6,
-    ILOCK_HV_THRESH_HI_R_CH0,
-    ILOCK_HV_THRESH_HI_R_CH1,
-    ILOCK_HV_THRESH_HI_R_CH2,
-    ILOCK_HV_THRESH_HI_R_CH3,
-    ILOCK_HV_THRESH_HI_R_CH4,
-    ILOCK_HV_THRESH_HI_R_CH5,
-    ILOCK_HV_THRESH_HI_R_CH6,
-    ILOCK_HV_THRESH_LO_R_CH0,
-    ILOCK_HV_THRESH_LO_R_CH1,
-    ILOCK_HV_THRESH_LO_R_CH2,
-    ILOCK_HV_THRESH_LO_R_CH3,
-    ILOCK_HV_THRESH_LO_R_CH4,
-    ILOCK_HV_THRESH_LO_R_CH5,
-    ILOCK_HV_THRESH_LO_R_CH6,
-    ILOCK_LV_THRESH_HI_L_CH0,
-    ILOCK_LV_THRESH_HI_L_CH1,
-    ILOCK_LV_THRESH_HI_L_CH2,
-    ILOCK_LV_THRESH_HI_L_CH3,
-    ILOCK_LV_THRESH_HI_L_CH4,
-    ILOCK_LV_THRESH_HI_L_CH5,
-    ILOCK_LV_THRESH_HI_L_CH6,
-    ILOCK_LV_THRESH_LO_L_CH0,
-    ILOCK_LV_THRESH_LO_L_CH1,
-    ILOCK_LV_THRESH_LO_L_CH2,
-    ILOCK_LV_THRESH_LO_L_CH3,
-    ILOCK_LV_THRESH_LO_L_CH4,
-    ILOCK_LV_THRESH_LO_L_CH5,
-    ILOCK_LV_THRESH_LO_L_CH6,
-    ILOCK_LV_THRESH_HI_R_CH0,
-    ILOCK_LV_THRESH_HI_R_CH1,
-    ILOCK_LV_THRESH_HI_R_CH2,
-    ILOCK_LV_THRESH_HI_R_CH3,
-    ILOCK_LV_THRESH_HI_R_CH4,
-    ILOCK_LV_THRESH_HI_R_CH5,
-    ILOCK_LV_THRESH_HI_R_CH6,
-    ILOCK_LV_THRESH_LO_R_CH0,
-    ILOCK_LV_THRESH_LO_R_CH1,
-    ILOCK_LV_THRESH_LO_R_CH2,
-    ILOCK_LV_THRESH_LO_R_CH3,
-    ILOCK_LV_THRESH_LO_R_CH4,
-    ILOCK_LV_THRESH_LO_R_CH5,
-    ILOCK_LV_THRESH_LO_R_CH6,
-    WARN_HV_THRESH_HI_L_CH0,
-    WARN_HV_THRESH_HI_L_CH1,
-    WARN_HV_THRESH_HI_L_CH2,
-    WARN_HV_THRESH_HI_L_CH3,
-    WARN_HV_THRESH_HI_L_CH4,
-    WARN_HV_THRESH_HI_L_CH5,
-    WARN_HV_THRESH_HI_L_CH6,
-    WARN_HV_THRESH_LO_L_CH0,
-    WARN_HV_THRESH_LO_L_CH1,
-    WARN_HV_THRESH_LO_L_CH2,
-    WARN_HV_THRESH_LO_L_CH3,
-    WARN_HV_THRESH_LO_L_CH4,
-    WARN_HV_THRESH_LO_L_CH5,
-    WARN_HV_THRESH_LO_L_CH6,
-    WARN_HV_THRESH_HI_R_CH0,
-    WARN_HV_THRESH_HI_R_CH1,
-    WARN_HV_THRESH_HI_R_CH2,
-    WARN_HV_THRESH_HI_R_CH3,
-    WARN_HV_THRESH_HI_R_CH4,
-    WARN_HV_THRESH_HI_R_CH5,
-    WARN_HV_THRESH_HI_R_CH6,
-    WARN_HV_THRESH_LO_R_CH0,
-    WARN_HV_THRESH_LO_R_CH1,
-    WARN_HV_THRESH_LO_R_CH2,
-    WARN_HV_THRESH_LO_R_CH3,
-    WARN_HV_THRESH_LO_R_CH4,
-    WARN_HV_THRESH_LO_R_CH5,
-    WARN_HV_THRESH_LO_R_CH6,
-    WARN_LV_THRESH_HI_L_CH0,
-    WARN_LV_THRESH_HI_L_CH1,
-    WARN_LV_THRESH_HI_L_CH2,
-    WARN_LV_THRESH_HI_L_CH3,
-    WARN_LV_THRESH_HI_L_CH4,
-    WARN_LV_THRESH_HI_L_CH5,
-    WARN_LV_THRESH_HI_L_CH6,
-    WARN_LV_THRESH_LO_L_CH0,
-    WARN_LV_THRESH_LO_L_CH1,
-    WARN_LV_THRESH_LO_L_CH2,
-    WARN_LV_THRESH_LO_L_CH3,
-    WARN_LV_THRESH_LO_L_CH4,
-    WARN_LV_THRESH_LO_L_CH5,
-    WARN_LV_THRESH_LO_L_CH6,
-    WARN_LV_THRESH_HI_R_CH0,
-    WARN_LV_THRESH_HI_R_CH1,
-    WARN_LV_THRESH_HI_R_CH2,
-    WARN_LV_THRESH_HI_R_CH3,
-    WARN_LV_THRESH_HI_R_CH4,
-    WARN_LV_THRESH_HI_R_CH5,
-    WARN_LV_THRESH_HI_R_CH6,
-    WARN_LV_THRESH_LO_R_CH0,
-    WARN_LV_THRESH_LO_R_CH1,
-    WARN_LV_THRESH_LO_R_CH2,
-    WARN_LV_THRESH_LO_R_CH3,
-    WARN_LV_THRESH_LO_R_CH4,
-    WARN_LV_THRESH_LO_R_CH5,
-    WARN_LV_THRESH_LO_R_CH6,
-};
-#endif
diff --git a/src/libDevCom/CMakeLists.txt b/src/libDevCom/CMakeLists.txt
index f020e9a8466df9b3e4a5d5837d49a6bb5e16f674..254a7e47c0198179c4444c62cbbc767006e92662 100644
--- a/src/libDevCom/CMakeLists.txt
+++ b/src/libDevCom/CMakeLists.txt
@@ -60,8 +60,6 @@ target_sources(DevCom
   Potentiometer.cpp
   AD5245.cpp
 
-  AMAC.cpp
-
   DeviceCalibration.cpp
   DummyCalibration.cpp
   LinearCalibration.cpp