diff --git a/src/add_qr.py b/src/add_qr.py
index a39f25c6ca7141afbab0eb328696c2f6890b4cce..f115d494696da8ee1cd3a2b6704446ce6465d67b 100755
--- a/src/add_qr.py
+++ b/src/add_qr.py
@@ -17,6 +17,9 @@ from cv_bridge import CvBridge, CvBridgeError
 import numpy as np
 import tf
 
+remembered_points = None
+have_points = False
+
 parser = OptionParser()
 parser.add_option ("", "--image-topic", action="store", type="string", dest="image_topic", help="Topic to take image from", default="/dji21/camera0/image_raw_orig")
 parser.add_option ("", "--image-frame", action="store", type="string", dest="image_frame", help="Topic to take image from", default="/dji0/camera0/image_frame")
@@ -65,7 +68,7 @@ def stamp_to_json(data):
     return jobj
 
 def image_callback(data):
-    global fifo
+    global fifo, remembered_points, have_points
     try:
         # print("image_callback_main")
         if options.compressed:        
@@ -111,11 +114,13 @@ def image_callback(data):
 
             frame_pil = PilImage.fromarray(scaledimg)
             
-            timestamp = time.time()
             qr = qrcode.QRCode(box_size=2)
-            # qr.add_data(str(timestamp))
-            qr.add_data(json.dumps(jobj))
-            qr.make()
+            if options.qr_time:
+                timestamp = time.time()
+                qr.add_data(str(timestamp))
+            else:
+                qr.add_data(json.dumps(jobj))
+                qr.make()
             img_qr = qr.make_image()
 
             pos = (frame_pil.size[0] - img_qr.size[0] - 1, 1) #better result when 1 pixel in, thus -1 and +1
@@ -146,11 +151,21 @@ def image_callback(data):
         else:
             msg = bridge.cv2_to_imgmsg(final_image)
             image_pub.publish(msg)
-
+            
         if options.decode:
-            decoded_data, _ , _ = detector.detectAndDecode(final_image)
-            print("DECODED DATA:", decoded_data)
-        
+            retval, points = detector.detect(final_image)
+            # print(retval, points)
+            if retval:
+                remembered_points = points
+                have_points = True
+            else:
+                print("FAILED TO FIND CODE, trying to use saved points")
+            if have_points:
+                decoded_data, _ = detector.decode(final_image, remembered_points)
+                if decoded_data:
+                    print("DECODED DATA:", decoded_data)
+                else:
+                    print("DECODING FAILED!!!!!!!!!")
 
         #retval, points = detector.detect(final_image)
         #print("DETECT:", retval, points)
@@ -167,6 +182,8 @@ if __name__ == "__main__":
 
     rospy.init_node ("add_qr")
 
+    print(cv2.__version__)
+
     listener = tf.TransformListener()
     detector = cv2.QRCodeDetector()