diff --git a/bbb_cape/src/cape/digital.h b/bbb_cape/src/cape/digital.h
index 698aeed..2f227a5 100644
--- a/bbb_cape/src/cape/digital.h
+++ b/bbb_cape/src/cape/digital.h
@@ -7,6 +7,8 @@
 
 // For all of the digital functions, a high voltage level on the input reads as
 // 1 (and a low to high transition is a positive edge).
+// Encoder inputs 0-7 A and B are mapped to "digital inputs" 12-27 (12 is 0A,
+13 is B, 14 is 1A, etc).
 
 static inline int digital_read(int num) {
   switch (num) {
@@ -34,6 +36,38 @@
       return !(GPIOA->IDR & (1 << 7));
     case 11:
       return !(GPIOB->IDR & (1 << 2));
+    case 12:  // encoder 0
+      return !(GPIOC->IDR & (1 << 6));
+    case 13:
+      return !(GPIOC->IDR & (1 << 7));
+    case 14:  // encoder 1
+      return !(GPIOC->IDR & (1 << 0));
+    case 15:
+      return !(GPIOC->IDR & (1 << 1));
+    case 16:  // encoder 2
+      return !(GPIOA->IDR & (1 << 0));
+    case 17:
+      return !(GPIOA->IDR & (1 << 1));
+    case 18:  // encoder 3
+      return !(GPIOA->IDR & (1 << 2));
+    case 19:
+      return !(GPIOA->IDR & (1 << 3));
+    case 20:  // encoder 4
+      return !(GPIOA->IDR & (1 << 8));
+    case 21:
+      return !(GPIOB->IDR & (1 << 0));
+    case 22:  // encoder 5
+      return !(GPIOA->IDR & (1 << 5));
+    case 23:
+      return !(GPIOB->IDR & (1 << 3));
+    case 24:  // encoder 6
+      return !(GPIOA->IDR & (1 << 6));
+    case 25:
+      return !(GPIOB->IDR & (1 << 5));
+    case 26:  // encoder 7
+      return !(GPIOB->IDR & (1 << 6));
+    case 27:
+      return !(GPIOB->IDR & (1 << 7));
     default:
       return 0;
   }
diff --git a/frc971/output/motor_writer.cc b/frc971/output/motor_writer.cc
index dca221b..d42cc05 100644
--- a/frc971/output/motor_writer.cc
+++ b/frc971/output/motor_writer.cc
@@ -93,6 +93,12 @@
       }
       claw_old_.Print();
     }
+
+    ++output_check_;
+    if (output_check_ == 0) output_check_ = 1;
+    ::frc971::output_check_queue.MakeWithBuilder()
+        .pwm_value(output_check_).Send();
+    SetPWMOutput(10, output_check_);
   }
 
   SimpleLogInterval drivetrain_old_ =
@@ -101,6 +107,8 @@
       SimpleLogInterval(kOldLogInterval, WARNING, "shooter too old");
   SimpleLogInterval claw_old_ =
       SimpleLogInterval(kOldLogInterval, WARNING, "claw too old");
+
+  uint8_t output_check_ = 0;
 };
 
 constexpr ::aos::time::Time MotorWriter::kOldLogInterval;
