diff --git a/src/control.rs b/src/control.rs
index 8b3486ed709c528b6c39fd3cb3e07d35c0f9fd16..2d388935ce9a17f733aa6d633b43094e91fe7187 100644
--- a/src/control.rs
+++ b/src/control.rs
@@ -84,7 +84,18 @@ impl Controller {
         ThreadPriority::Max.set_for_current().unwrap();
 
         //let mut radio = UartRadio::new("/dev/ttyAMA0").expect("Could not initialize radio");
-        let mut radio = SpiRadio::new().expect("Could not initialize radio");
+        let mut radio = loop {
+            let r = SpiRadio::new();
+
+            match r {
+                Ok(r) => break r,
+                Err(e) => {
+                    eprintln!("Error initializing radio: {e}");
+                }
+            }
+
+            thread::sleep(Duration::from_millis(1000));
+        };
 
         let mut text_msg_id = 0;
         loop {