From 59e7cfa76dc455ed2c748604a7e665f91e7277db Mon Sep 17 00:00:00 2001
From: Aaron John Sabu <aaronjohnsabu1999@gmail.com>
Date: Sun, 14 Nov 2021 23:10:22 -0500
Subject: [PATCH] New broadcastAddresses etc.

---
 .../Laptop_Code/ESP32MACGen/ESP32MACGen.ino   | 18 +++++++++
 .../Laptop_Code/ESP32_slave/ESP32_slave.ino   | 38 ++++++++++++-------
 .../ESP32_master/ESP32_master.ino             | 27 +++++++++----
 Code/Control/Laptop_Code/main_keyboard.py     |  2 +-
 4 files changed, 62 insertions(+), 23 deletions(-)
 create mode 100644 Code/Control/Laptop_Code/ESP32MACGen/ESP32MACGen.ino

diff --git a/Code/Control/Laptop_Code/ESP32MACGen/ESP32MACGen.ino b/Code/Control/Laptop_Code/ESP32MACGen/ESP32MACGen.ino
new file mode 100644
index 0000000..337cab0
--- /dev/null
+++ b/Code/Control/Laptop_Code/ESP32MACGen/ESP32MACGen.ino
@@ -0,0 +1,18 @@
+// Complete Instructions to Get and Change ESP MAC Address: https://RandomNerdTutorials.com/get-change-esp32-esp8266-mac-address-arduino/
+
+#ifdef ESP32
+  #include <WiFi.h>
+#else
+  #include <ESP8266WiFi.h>
+#endif
+
+void setup(){
+  Serial.begin(115200);
+  Serial.println();
+}
+ 
+void loop(){
+  Serial.print("ESP Board MAC Address:  ");
+  Serial.println(WiFi.macAddress());
+  delay(3000);
+}
diff --git a/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino b/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino
index ccf46dc..f2704f6 100644
--- a/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino
+++ b/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino
@@ -14,20 +14,28 @@
 
 #define Sensor1_newAddress 43 
 #define Sensor2_newAddress 45
- 
-// REPLACE WITH THE MAC Address of your receiver (MASTER) 
-// Slave: 40:F5:20:44:B6:4C 
+
 // MAC Address of the receiver (MASTER)
-uint8_t broadcastAddress[] = {0xC4, 0xDD, 0x57, 0x9E, 0x91, 0x74}; // #1
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xBD, 0xF8}; // #2
-//uint8_t broadcastAddress[] = {0xC4, 0xDD, 0x57, 0x9E, 0x8A, 0x98}; // #3
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xB6, 0x4C}; // #4
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xC0, 0xD8}; // #5
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xDE, 0xE0}; // #6
-//uint8_t broadcastAddress[] = {0x3C, 0x61, 0x05, 0x4A, 0xD3, 0x3C}; // #7
-// uint8_t broadcastAddress[] = {0x3C, 0x61, 0x05, 0x9B, 0x04, 0x98}; // #8
-String success; 
- 
+int masterID = 14;
+uint8_t broadcastAddresses[][6] = {{0xC4, 0xDD, 0x57, 0x9E, 0x91, 0x74}, // #1
+                                   {0x40, 0xF5, 0x20, 0x44, 0xBD, 0xF8}, // #2
+                                   {0xC4, 0xDD, 0x57, 0x9E, 0x8A, 0x98}, // #3
+                                   {0x40, 0xF5, 0x20, 0x44, 0xB6, 0x4C}, // #4
+                                   {0x40, 0xF5, 0x20, 0x44, 0xC0, 0xD8}, // #5
+                                   {0x40, 0xF5, 0x20, 0x44, 0xDE, 0xE0}, // #6
+                                   {0x3C, 0x61, 0x05, 0x4A, 0xD3, 0x3C}, // #7
+                                   {0x3C, 0x61, 0x05, 0x9B, 0x04, 0x98}, // #8
+                                   {0x40, 0xF5, 0x20, 0x44, 0xBE, 0x84}, // #9
+                                   {0x40, 0xF5, 0x20, 0x44, 0xB9, 0x5C}, // #10
+                                   {0x40, 0xF5, 0x20, 0x44, 0xC1, 0xD8}, // #11
+                                   {0x40, 0xF5, 0x20, 0x44, 0xB6, 0xC8}, // #12
+                                   {0xC4, 0xDD, 0x57, 0x9E, 0xA1, 0x14}, // #13
+                                   {0x3C, 0x61, 0x05, 0x49, 0x4F, 0xC8}  // #14
+};
+uint8_t broadcastAddress[6];
+
+String success;
+
 // Define variables to store incoming readings 
 String sentDebugM = ""; 
 int Rec_pwm1; 
@@ -145,7 +153,9 @@ Adafruit_DCMotor *motorVertical_R = AFMS.getMotor(2);  // pwm2
 Adafruit_DCMotor *motorLeft = AFMS.getMotor(3);        // pwm3 
 Adafruit_DCMotor *motorRight = AFMS.getMotor(4);       // pwm4  
 // ==================================== Set up ================================================= 
-void setup() { 
+void setup() {
+  memcpy(broadcastAddress, broadcastAddresses[masterID-1], sizeof broadcastAddress);
+
   // Init Serial Monitor 
   Serial.begin(115200); 
   Wire.begin(); 
diff --git a/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino b/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino
index 19c4fbe..5bea05d 100644
--- a/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino
+++ b/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino
@@ -4,14 +4,23 @@
 
 // ==================================== broadcast address ============================================
 // MAC Address of the receiver (SLAVE)
-//uint8_t broadcastAddress[] = {0xC4, 0xDD, 0x57, 0x9E, 0x91, 0x74}; // #1
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xBD, 0xF8}; // #2
-//uint8_t broadcastAddress[] = {0xC4, 0xDD, 0x57, 0x9E, 0x8A, 0x98}; // #3
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xB6, 0x4C}; // #4
-//uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xC0, 0xD8}; // #5
-uint8_t broadcastAddress[] = {0x40, 0xF5, 0x20, 0x44, 0xDE, 0xE0}; // #6
-//uint8_t broadcastAddress[] = {0x3C, 0x61, 0x05, 0x4A, 0xD3, 0x3C}; // #7
-//uint8_t broadcastAddress[] = {0x3C, 0x61, 0x05, 0x9B, 0x04, 0x98}; // #8
+int slaveID = 9;
+uint8_t broadcastAddresses[][6] = {{0xC4, 0xDD, 0x57, 0x9E, 0x91, 0x74}, // #1
+                                   {0x40, 0xF5, 0x20, 0x44, 0xBD, 0xF8}, // #2
+                                   {0xC4, 0xDD, 0x57, 0x9E, 0x8A, 0x98}, // #3
+                                   {0x40, 0xF5, 0x20, 0x44, 0xB6, 0x4C}, // #4
+                                   {0x40, 0xF5, 0x20, 0x44, 0xC0, 0xD8}, // #5
+                                   {0x40, 0xF5, 0x20, 0x44, 0xDE, 0xE0}, // #6
+                                   {0x3C, 0x61, 0x05, 0x4A, 0xD3, 0x3C}, // #7
+                                   {0x3C, 0x61, 0x05, 0x9B, 0x04, 0x98}, // #8
+                                   {0x40, 0xF5, 0x20, 0x44, 0xBE, 0x84}, // #9
+                                   {0x40, 0xF5, 0x20, 0x44, 0xB9, 0x5C}, // #10
+                                   {0x40, 0xF5, 0x20, 0x44, 0xC1, 0xD8}, // #11
+                                   {0x40, 0xF5, 0x20, 0x44, 0xB6, 0xC8}, // #12
+                                   {0xC4, 0xDD, 0x57, 0x9E, 0xA1, 0x14}, // #13
+                                   {0x3C, 0x61, 0x05, 0x49, 0x4F, 0xC8}  // #14
+};
+uint8_t broadcastAddress[6];
 // ==================================== global data =================================================
 String success;
 // Define variables to store BME280 readings to be sent
@@ -78,6 +87,8 @@ void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
 // =================================== setup ==================================================
 
 void setup() {
+  memcpy(broadcastAddress, broadcastAddresses[slaveID-1], sizeof broadcastAddress);
+  
   // Init Serial Monitor
   Serial.begin(115200);
  
diff --git a/Code/Control/Laptop_Code/main_keyboard.py b/Code/Control/Laptop_Code/main_keyboard.py
index 2911a2a..07944eb 100644
--- a/Code/Control/Laptop_Code/main_keyboard.py
+++ b/Code/Control/Laptop_Code/main_keyboard.py
@@ -703,7 +703,7 @@ def manual_ballcapture(bcap_man):
 if __name__ == '__main__':
     # =========== SET UP ============
     # Defining Variables for ESP 32 Serial I/O
-    PORT = "COM11" # for Alienware
+    PORT = "COM20" # for Alienware
     serial_port = serial.Serial(PORT, 115200)
     serial_port.close()
     serial_port.open()
-- 
GitLab