diff --git a/GPS_receiver.py b/GPS_receiver.py
index 799f8aec2423ca405ea7c404cfd70e44b452f8b0..eed24578a6c920e649997119f509b01b412d6351 100644
--- a/GPS_receiver.py
+++ b/GPS_receiver.py
@@ -38,14 +38,16 @@ class TCPReceiver(socketserver.StreamRequestHandler):
 #start TCP server which receives the messages from the RUTX11
 def start_GPSthread(CONFIG):
     global TCPServerInstance, GPS_Ringbuffer
-    GPS_ringbuf.set_min_frame_movement(CONFIG['min-movement-frame'])
+    GPS_ringbuf.set_min_frame_movement(CONFIG['min-movement-pulse'])
     GPS_poort = 8500    #port to which the TCP nmea string is send
     for _ in range(0,5):
         ip_address = get_ip_address()
-        if ip_address != None: break
+        if ip_address != None: 
+            break
+        sleep(1)
     if ip_address == None:
         raise Exception("Router not connected, shutting down!")
-        sleep(1)
+        
     ServerAddress = (ip_address, GPS_poort)
     TCPServerInstance = socketserver.ThreadingTCPServer(ServerAddress, TCPReceiver)
     threading.Thread(target=TCPServerInstance.serve_forever).start()
diff --git a/camera.py b/camera.py
index 471b127f70ee3ade00a3460b1c4d5a1f4ed1d5fd..6822f0a7236cbe64ddcff961e6f6ae5c4a39075d 100644
--- a/camera.py
+++ b/camera.py
@@ -5,6 +5,7 @@ from threading import Thread
 from pypylon import pylon #camera
 from itertools import cycle
 from glob import glob
+from sys import maxsize
 
 from global_vars import *
 from usb_Filestorage import *
@@ -50,7 +51,7 @@ class take_img(Thread):
 
                 #only process images when we are moving & the GPS buffer is filled
                 if (self.GPS_check == False) or (is_moving == True):
-                    if (self.GPS_check == False) or ((data_obj.lat >= 0) and (data_obj.lng >= 0)):
+                    if (self.GPS_check == False) or ((data_obj.lat < maxsize) and (data_obj.lng < maxsize)):
                         #send image to neural network
                         to_process_deque.append({'file_name': filename, 'img': img,'data': data_obj})
                     if self.save_IMGS == True:
diff --git a/cfg/detection.yaml b/cfg/detection.yaml
index 06c66747d79bfe0d38a73f388121dea76d20837f..98b6385badfb4bce0f2f4a0e15248a41c0148a08 100644
--- a/cfg/detection.yaml
+++ b/cfg/detection.yaml
@@ -18,7 +18,7 @@ AGENSO: True
 save-GPS: True
 save-IMGS: True
 save-every-x: 10 #dont save all imgs & GPS coordinates, its simply to much
-min-movement-frame: 0.1 #M between GPS pulses (1 puls/2min) 
+min-movement-pulse: 0.6 #M between GPS pulses (1 puls/2 seconds, 0.6 = 0.3 m/s and 1 km/h) 
 GPS-checks: True  #enable/disable GPS moving checks to facilitate desk debugging
 
 #AGENSO
diff --git a/data_types.py b/data_types.py
index f205de21b8f1d704450bdaa3f5f54dd1bd6d912a..0b058f68d1a590f10afd592792e77aed121b8d24 100644
--- a/data_types.py
+++ b/data_types.py
@@ -1,7 +1,7 @@
 import json
 from datetime import datetime
 from types import SimpleNamespace as Namespace
-
+from sys import maxsize
 #https://medium.com/@yzhong.cs/serialize-and-deserialize-complex-json-in-python-205ecc636caa 
 
 
@@ -19,8 +19,8 @@ class data_class():#lat, lng, hdop, satnum, gps_quality, timestamp
     def __init__(self):
         self.timestamp = "0-0-0T0:0:0"
         self.gps_quality = "Not valid" #values: Not valid, Fixed, Diff fix, RTK, RTK F
-        self.lat = -1
-        self.lng = -1
+        self.lat = maxsize
+        self.lng = maxsize
         self.hdop = 0
         self.satnum = 0
         self.diseases = []
@@ -99,8 +99,8 @@ class GPS_Ringbuffer:
         self.min_movement = 0 #minimal movement over the entire buffer. 
         self.decdegr_to_m = 0.00001 #very rough conversion from DD to M
         self.size = size
-        self.prevlat = 0
-        self.prevlng = 0
+        self.prevlat = maxsize
+        self.prevlng = maxsize
         self.prevtimestamp = datetime.utcnow()#.strftime("%y-%m-%dT%H:%M:%S.%f")
         self.data = []
         self.f_pnt = 0 #inital poisition
@@ -113,9 +113,9 @@ class GPS_Ringbuffer:
     def update_pointer(self, pointer):
         return (pointer + 1) % self.size
         
-    def set_min_frame_movement(self, min_movement_frame):
-        self.min_movement = min_movement_frame * self.decdegr_to_m * self.size
-        self.min_movement_frame = min_movement_frame * self.decdegr_to_m
+    def set_min_frame_movement(self, min_movement_pulse):
+        self.min_movement = min_movement_pulse * self.decdegr_to_m * self.size
+        self.min_movement_frame = min_movement_pulse * self.decdegr_to_m
 
     #put new value in the rinngbuffer en update the values
     def put(self, nmea_GGA_msg, timestamp):
@@ -136,7 +136,7 @@ class GPS_Ringbuffer:
         self.data[self.f_pnt].gpsquality = nmea_GGA_msg.gps_qual
         self.data[self.f_pnt].gpstime = nmea_GGA_msg.timestamp.strftime("%y-%m-%dT%H:%M:%S.%f")
         self.data[self.f_pnt].rectime = timestamp.strftime("%y-%m-%dT%H:%M:%S.%f")
-        self.data[self.f_pnt].moving = self.determine_hasmoved()
+        self.data[self.f_pnt].moving = self.determine_hasmoved_fast()
         #print('prev_lat: %f, lat: %f, diff: %f' %(self.prevlat, lat, self.data[self.f_pnt].latdif))
         #print('prev_lng: %f, lng: %f, diff: %f' %(self.prevlng, lng, self.data[self.f_pnt].lngdif))
         self.prevtimestamp = timestamp
@@ -174,7 +174,7 @@ class GPS_Ringbuffer:
         for pos in self.data:
             total_latdiff += pos.latdif
             total_lngdiff += pos.lngdif 
-        total_movement = total_latdiff + total_lngdiff
+        total_movement = abs(total_latdiff + total_lngdiff)
         if (total_movement > self.min_movement):
             return True
         else:
@@ -187,7 +187,7 @@ class GPS_Ringbuffer:
 
         lat_movement = abs(itemone.lat - itemtwo.lat)
         lng_movement = abs(itemone.lng - itemtwo.lng)
-        total_movement = lat_movement + lng_movement
+        total_movement = abs(lat_movement + lng_movement)
         if (total_movement > self.min_movement):
             return True
         else:
@@ -220,9 +220,25 @@ class GPS_Ringbuffer:
 #fake nmea class, used to initialise the RING buffer
 class fake_nmea_class:
     def __init__(self,prevtimestamp): 
-        self.latitude = -1
-        self.longitude = -1
+        self.latitude = maxsize
+        self.longitude = maxsize
         self.horizontal_dil = 0
         self.num_sats = 0
         self.gps_qual = 0
-        self.timestamp = prevtimestamp
\ No newline at end of file
+        self.timestamp = prevtimestamp
+
+
+if __name__ == '__main__':
+    fnc = fake_nmea_class(datetime.now())
+    gps_test = GPS_Ringbuffer(5)
+    gps_test.set_min_frame_movement(0.1)
+    lat_init = 52.64538985
+    lon_init = 5.667874878
+
+    for i in range(6):
+        fnc.latitude = lat_init + (i * 1e-6)
+        fnc.longitude = lon_init + (i * 1e-6)
+        gps_test.put(fnc, datetime.now())
+
+    (obj, is_moving) = gps_test.get_dataobject(datetime.now())
+    print(is_moving)
\ No newline at end of file