diff --git a/hepialight/main.py b/hepialight/main.py
index b5274daf8aa420cd660255adcd601b49b2d3fc23..4384b2ffd2d7fe6426f2e13e0698a1fc2b6845c1 100644
--- a/hepialight/main.py
+++ b/hepialight/main.py
@@ -1,6 +1,8 @@
 id = [0,0]
 matsize = [0, 0]
  
+
+# Display and images functions
 def color16_to_32(color):
     color = int(color)
     r = ((color >> 11) & 0x1F) * 2**3
@@ -27,6 +29,7 @@ def display_id():
 def msg_to_str(msg):
     return str(msg)[2:-1]
  
+# Used by the send_xy functions
 def send_passthrough_str(msg, x, y):
     x = int(x)
     y = int(y)
@@ -42,6 +45,7 @@ def send_passthrough_str(msg, x, y):
 
     envoyer_msg(d, "PT;{},{};{}".format(x, y, msg))
 
+# Not meant to be used by the user
 def send_passthrough_bytes(msg, x, y):
     x = int(x)
     y = int(y)
@@ -57,6 +61,7 @@ def send_passthrough_bytes(msg, x, y):
 
     envoyer_msg(d, msg)
 
+# Send commands to a specific matrix
 def send_xy(x, y, msg):
     send_passthrough_str(msg, x, y)
 
@@ -67,6 +72,7 @@ def send_moving_xy(x, y, text, color=ROUGE, speed=0.1):
     send_xy(x, y, "MOVING;{};{};{}".format(color, speed, text))
 
 
+# Check if there is a connected matrix in the d direction
 def check_presence(d):
     envoyer_msg(d, "PING")
 
@@ -78,13 +84,18 @@ def check_presence(d):
 
     return False
 
-
+# Update the ID of the current matrix, and update the id of the neighbours
 def update_id(new_id):
     global id
 
     id[0] = int(new_id[0])
     id[1] = int(new_id[1])
-    envoyer_msg(N, "SET_ID:{},{}".format(id[0], id[1] + 1))
+
+    # The matrices which are in the x = 0 pos, update the id North and East.
+    # The others only broadcast East.
+    if (id[0] == 0):
+        envoyer_msg(N, "SET_ID:{},{}".format(id[0], id[1] + 1))
+    
     envoyer_msg(E, "SET_ID:{},{}".format(id[0] + 1, id[1]))
 
     if not check_presence(N) and not check_presence(E):
@@ -93,6 +104,8 @@ def update_id(new_id):
     display_id()
 
 
+
+# Handle the commands received via UART
 def handle_receive(msg, msg_bytes, d):
  
     print("Received from {} : {}".format(d, msg))
@@ -149,8 +162,8 @@ def handle_receive(msg, msg_bytes, d):
         img = data_to_color16(msg_bytes[6:])
         disp_img_data(img)
 
-# send_text_xy(1,0,text,speed=speed);time.sleep(speed*13);afficher_texte(text,speed=speed)
-
+    elif msg == "OK":
+        update_id(id)
 
 
 # Main