diff --git a/AWAControl/diagnostics/screen.py b/AWAControl/diagnostics/screen.py
index 88e5f313d28fd40dea6b9ffcbbb8141c2e80fb5f..0a9e6a11f7401c059d7e59ac6a6f05f88f209c43 100644
--- a/AWAControl/diagnostics/screen.py
+++ b/AWAControl/diagnostics/screen.py
@@ -340,11 +340,11 @@ class AWAImageDiagnostic(BaseModel):
             print(f"log10 image intensity {log10_total_intensity} below threshold")
 
             result = {
-                "Cx": np.NaN,
-                "Cy": np.NaN,
-                "Sx": np.NaN,
-                "Sy": np.NaN,
-                "bb_penalty": np.NaN,
+                "Cx": np.nan,
+                "Cy": np.nan,
+                "Sx": np.nan,
+                "Sy": np.nan,
+                "bb_penalty": np.nan,
                 "total_intensity": 10**log10_total_intensity,
                 "log10_total_intensity": log10_total_intensity,
             }
@@ -416,15 +416,15 @@ class AWAImageDiagnostic(BaseModel):
                 # bounding box constraint is active
                 if bb_penalty > 0 and self.apply_bounding_box_constraint:
                     for name in ["Cx", "Cy", "Sx", "Sy"]:
-                        result[name] = np.NaN
+                        result[name] = np.nan
 
             else:
                 result = {
-                    "Cx": np.NaN,
-                    "Cy": np.NaN,
-                    "Sx": np.NaN,
-                    "Sy": np.NaN,
-                    "bb_penalty": np.NaN,
+                    "Cx": np.nan,
+                    "Cy": np.nan,
+                    "Sx": np.nan,
+                    "Sy": np.nan,
+                    "bb_penalty": np.nan,
                     "total_intensity": fits["total_intensity"],
                     "log10_total_intensity": log10_total_intensity,
                 }
@@ -566,7 +566,7 @@ class AWAFrameGrabberDiagnostic(AWAImageDiagnostic):
             }
         else:
             # get pvs
-            results = caget_many(self.pv_names)
+            results = caget_many(self.pv_names, timeout=5.0)
             e_pvs = copy(self.extra_pvs)
             if self.target_charge_pv is not None:
                 e_pvs += [self.target_charge_pv]
diff --git a/AWAControl/diagnostics/utils/circle_detection.py b/AWAControl/diagnostics/utils/circle_detection.py
index 9bafa533079e98f64b04ccc9cbb391097fb91b1f..ae66754903f0c5d14ce686e12c9359057b0569d6 100644
--- a/AWAControl/diagnostics/utils/circle_detection.py
+++ b/AWAControl/diagnostics/utils/circle_detection.py
@@ -30,7 +30,7 @@ class ScreenFinder:
             return
         self.points.append((event.xdata, event.ydata))
 
-        self.line.set_data(*np.asfarray(self.points).T)
+        self.line.set_data(*np.array(self.points).T)
 
         # draw a circle if the number of points is enough
         if len(self.points) > 3:
@@ -74,7 +74,7 @@ class ScreenFinder:
 
     def fit_circle(self, points):
         # https://scipy-cookbook.readthedocs.io/items/Least_Squares_Circle.html
-        npts = np.asfarray(points).T
+        npts = np.array(points).T
         x = npts[0]
         y = npts[1]
         x_m = np.mean(x)
diff --git a/AWAControl/diagnostics/utils/fitting_methods.py b/AWAControl/diagnostics/utils/fitting_methods.py
index 6c6251054aefaeb21c2c1753cd56825ea600a901..04f88bd982b326a7f0fa88e09398ded007768d5b 100644
--- a/AWAControl/diagnostics/utils/fitting_methods.py
+++ b/AWAControl/diagnostics/utils/fitting_methods.py
@@ -157,7 +157,7 @@ def fit_gaussian_linear_background(y, inital_guess=None, visualize=True, n_resta
             fig, ax = plot_fit(x, normed_y, bad_candidate)
             ax.set_title("bad fit")
 
-        candidate = [np.NaN] * 4
+        candidate = [np.nan] * 4
 
     return candidate