diff --git a/sensor-plot/src/main.rs b/sensor-plot/src/main.rs
index 0deb211893b67dbff54c5bdd7666df00bdd8614a..993aa5322e0bbf265f762cbcca3d16fac2cef94d 100644
--- a/sensor-plot/src/main.rs
+++ b/sensor-plot/src/main.rs
@@ -7,7 +7,7 @@ use core::fmt::Write;
 
 struct PlotBuffer {
     buffer: [i32; Display::W as usize],
-    index: usize,
+    index: u16,
 }
 
 impl PlotBuffer {
@@ -27,9 +27,9 @@ impl PlotBuffer {
     }
 
     pub fn add_sample(&mut self, sample: i32) {
-        self.buffer[self.index] = sample;
+        self.buffer[self.index as usize] = sample;
         self.index += 1;
-        if self.index >= Display::W as usize {
+        if self.index >= Display::W {
             self.index = 0;
         }
     }
@@ -45,9 +45,11 @@ impl PlotBuffer {
         };
 
         for i in 0..Display::W {
+            let index = (self.index + i) % Display::W;
             display.pixel(
                 i,
-                ((Display::H - 1) as f32 - ((self.buffer[i as usize] as f32 - min) * multiplier))
+                ((Display::H - 1) as f32
+                    - ((self.buffer[index as usize] as f32 - min) * multiplier))
                     as u16,
                 Color::white(),
             );