diff --git a/src/main.rs b/src/main.rs
index e6d80d371cd3d8c784fadca81b37d12eed76e65a..0daec89244596524a3534c98d22719192b9dc367 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -21,6 +21,9 @@ pub type MyInstant = Instant<u64, 1, { SYS_TICK_FREQ }>;
 
 #[rtic::app(device = stm32f4xx_hal::pac, peripherals = true, dispatchers = [USART1, USART6])]
 mod app {
+    use core::fmt::Write;
+
+    use arrayvec::ArrayString;
     use cortex_m::singleton;
     use hal::{
         adc::{config::AdcConfig, Adc},
@@ -129,8 +132,18 @@ mod app {
 
         // setup volt meter
         let volt_pin = gpioc.pc0.into_analog();
+        let sensor1 = gpioc.pc2.into_analog();
+        let sensor2 = gpioc.pc3.into_analog();
+        let sensor3 = gpioc.pc4.into_analog();
         let volt_adc = Adc::adc1(dp.ADC1, true, AdcConfig::default());
-        let mut volt_meter = VoltMeter::new(volt_pin, volt_adc, config.min_voltage.into());
+        let mut volt_meter = VoltMeter::new(
+            volt_pin,
+            sensor1,
+            sensor2,
+            sensor3,
+            volt_adc,
+            config.min_voltage.into(),
+        );
 
         // Detect if we're connected to USB or not
         let usb_detect = gpioa.pa5.into_pull_down_input();
@@ -306,7 +319,10 @@ mod app {
             let mut buf = [0; MAX_PACKET_LEN];
             let mut cats = Packet::new(&mut buf);
 
-            let voltage = ctx.shared.volt_meter.lock(|vm| vm.voltage());
+            let (sensors, voltage) = ctx
+                .shared
+                .volt_meter
+                .lock(|vm| (vm.sensors(), vm.voltage()));
             let temp = ctx
                 .shared
                 .radio
@@ -332,6 +348,8 @@ mod app {
                 .unwrap();
 
                 if !config.comment.is_empty() {
+                    let mut buf: ArrayString<64> = ArrayString::new();
+                    write!(&mut buf, "{} {} {}", sensors[0], sensors[1], sensors[2]).unwrap();
                     cats.add_comment(&config.comment).unwrap();
                 }
 
diff --git a/src/shell.rs b/src/shell.rs
index 4bf8851ceb358ab8b8c0da5071efa02fdccfd02f..dc9fab44e4a69881d1ee96c02a7d0723a4edcd3c 100644
--- a/src/shell.rs
+++ b/src/shell.rs
@@ -256,6 +256,16 @@ impl Shell {
 
                             write!(ushell, "\r\n{volts:.2} V\r\n").ok();
                         }
+                        "sensors" => {
+                            let sensors = volt_meter.lock(|vm| vm.sensors());
+
+                            write!(
+                                ushell,
+                                "\r\nS1: {} mV\r\nS2: {} mV\r\nS3: {} mV\r\n",
+                                sensors[0], sensors[1], sensors[2]
+                            )
+                            .ok();
+                        }
                         "help" => {
                             write!(ushell, "{}", HELP_TEXT).ok();
                         }
diff --git a/src/voltage.rs b/src/voltage.rs
index ec69964a4ced13ade918c916fec05041f9eda800..3f9b42e12a8b356d15874568bf577d654755d9d9 100644
--- a/src/voltage.rs
+++ b/src/voltage.rs
@@ -8,20 +8,49 @@ const FACTOR: f64 = 1.0 / 0.0757856;
 
 pub struct VoltMeter {
     pin: Pin<'C', 0, Analog>,
+    sensor1: Pin<'C', 2, Analog>,
+    sensor2: Pin<'C', 3, Analog>,
+    sensor3: Pin<'C', 4, Analog>,
     adc: Adc<ADC1>,
     threshold: Option<f32>,
 }
 
 impl VoltMeter {
-    pub fn new(pin: Pin<'C', 0, Analog>, mut adc: Adc<ADC1>, threshold: Option<f32>) -> Self {
+    pub fn new(
+        pin: Pin<'C', 0, Analog>,
+        sensor1: Pin<'C', 2, Analog>,
+        sensor2: Pin<'C', 3, Analog>,
+        sensor3: Pin<'C', 4, Analog>,
+        mut adc: Adc<ADC1>,
+        threshold: Option<f32>,
+    ) -> Self {
         adc.calibrate();
         Self {
             pin,
+            sensor1,
+            sensor2,
+            sensor3,
             adc,
             threshold,
         }
     }
 
+    pub fn sensors(&mut self) -> [u16; 3] {
+        let samples = [
+            self.adc.convert(&self.sensor1, SampleTime::Cycles_480),
+            self.adc.convert(&self.sensor2, SampleTime::Cycles_480),
+            self.adc.convert(&self.sensor3, SampleTime::Cycles_480),
+        ];
+
+        let mut out = [0; 3];
+
+        for (i, s) in samples.iter().enumerate() {
+            out[i] = self.adc.sample_to_millivolts(*s);
+        }
+
+        out
+    }
+
     pub fn voltage(&mut self) -> f64 {
         let sample = self.adc.convert(&self.pin, SampleTime::Cycles_480);
         let mv = self.adc.sample_to_millivolts(sample);