diff --git a/hdhomerun_tuner.c b/hdhomerun_tuner.c
index bff2315..137af3c 100644
--- a/hdhomerun_tuner.c
+++ b/hdhomerun_tuner.c
@@ -192,31 +192,39 @@
     goto out;
   }
 
-  // Wait for SER to hit 100% (max 3 secs)
-  usleep(500000);
-  for (i = 0; i < 10; i++) {
+  // Wait for symbol error quality to hit 100% (max 3 secs)
+  for (i = 0; i < 5; i++) {
+    usleep(i == 0 ? 1000000 : 500000);
     ret = hdhomerun_device_get_tuner_status(hd, NULL, &ts);
     if (ret > 0 && ts.symbol_error_quality >= 100) {
       break;
     }
-    usleep(250000);
   }
 
-  // Get MPEG2-TS stream info
-  ret = hdhomerun_device_get_tuner_streaminfo(hd, &streaminfo);
-  if (ret <= 0) {
-    printf("hdhr:ERROR: get tuner streaminfo\n");
-    goto out;
-  }
-  printf("hdhr:hdhomerun streaminfo:\n%s", streaminfo);
+  printf("hdhr:hdhomerun tuner status: lock=%s ss=%u snq=%u seq=%u\n",
+         ts.lock_str, ts.signal_strength, ts.signal_to_noise_quality,
+         ts.symbol_error_quality);
 
-  // Translate virtual channel (major.minor) to program number
-  ret = vchan_to_prog_num(streaminfo, vchannel_major, vchannel_minor, &program);
+  // Translate virtual channel to program number (max 2 secs)
+  for (i = 0; i < 5; i++) {
+    usleep(i == 0 ? 0 : 500000);
+    ret = hdhomerun_device_get_tuner_streaminfo(hd, &streaminfo);
+    if (ret > 0) {
+      printf("hdhr:hdhomerun streaminfo:\n%s", streaminfo);
+      ret = vchan_to_prog_num(streaminfo, vchannel_major, vchannel_minor,
+                              &program);
+      if (ret > 0) {
+        break;
+      }
+    }
+  }
+
   if (ret <= 0) {
     printf("hdhr:ERROR: vchannel %d.%d not found in streaminfo\n",
            vchannel_major, vchannel_minor);
     goto out;
   }
+
   printf("hdhr:hdhomerun vchannel %u.%u -> program %u\n", vchannel_major,
          vchannel_minor, program);
 
