From 915f3780cc22938c7822d41080ee609d74c56e72 Mon Sep 17 00:00:00 2001
From: jgromes <jgromes@users.noreply.github.com>
Date: Wed, 20 Nov 2019 17:19:15 +0100
Subject: [PATCH] Reworked directory structure

---
 src/RadioLib.cpp                              |  8 ---
 src/RadioLib.h                                | 65 ++++++++++---------
 src/modules/{ => CC1101}/CC1101.cpp           |  0
 src/modules/{ => CC1101}/CC1101.h             |  6 +-
 src/modules/{ => ESP8266}/ESP8266.cpp         |  0
 src/modules/{ => ESP8266}/ESP8266.h           |  4 +-
 src/modules/{ => HC05}/HC05.cpp               |  0
 src/modules/{ => HC05}/HC05.h                 |  2 +-
 src/modules/{ => JDY08}/JDY08.cpp             |  0
 src/modules/{ => JDY08}/JDY08.h               |  2 +-
 src/modules/{ => RF69}/RF69.cpp               |  0
 src/modules/{ => RF69}/RF69.h                 |  6 +-
 src/modules/{ => RFM9x}/RFM95.cpp             |  0
 src/modules/{ => RFM9x}/RFM95.h               | 10 +--
 src/modules/{ => RFM9x}/RFM96.cpp             |  0
 src/modules/{ => RFM9x}/RFM96.h               |  8 +--
 src/modules/{ => RFM9x}/RFM97.cpp             |  0
 src/modules/{ => RFM9x}/RFM97.h               |  8 +--
 src/modules/{ => SX1231}/SX1231.cpp           |  0
 src/modules/{ => SX1231}/SX1231.h             |  6 +-
 src/modules/{ => SX126x}/SX1261.cpp           |  0
 src/modules/{ => SX126x}/SX1261.h             |  4 +-
 src/modules/{ => SX126x}/SX1262.cpp           |  0
 src/modules/{ => SX126x}/SX1262.h             |  4 +-
 src/modules/{ => SX126x}/SX1268.cpp           |  0
 src/modules/{ => SX126x}/SX1268.h             |  6 +-
 src/modules/{ => SX126x}/SX126x.cpp           |  0
 src/modules/{ => SX126x}/SX126x.h             |  6 +-
 src/modules/{ => SX127x}/SX1272.cpp           |  0
 src/modules/{ => SX127x}/SX1272.h             |  6 +-
 src/modules/{ => SX127x}/SX1273.cpp           |  0
 src/modules/{ => SX127x}/SX1273.h             |  2 +-
 src/modules/{ => SX127x}/SX1276.cpp           |  0
 src/modules/{ => SX127x}/SX1276.h             |  2 +-
 src/modules/{ => SX127x}/SX1277.cpp           |  0
 src/modules/{ => SX127x}/SX1277.h             |  2 +-
 src/modules/{ => SX127x}/SX1278.cpp           |  0
 src/modules/{ => SX127x}/SX1278.h             |  6 +-
 src/modules/{ => SX127x}/SX1279.cpp           |  0
 src/modules/{ => SX127x}/SX1279.h             |  4 +-
 src/modules/{ => SX127x}/SX127x.cpp           |  0
 src/modules/{ => SX127x}/SX127x.h             |  6 +-
 src/modules/{ => XBee}/XBee.cpp               |  0
 src/modules/{ => XBee}/XBee.h                 |  4 +-
 src/modules/{ => nRF24}/nRF24.cpp             |  0
 src/modules/{ => nRF24}/nRF24.h               |  6 +-
 src/protocols/{ => HTTP}/HTTP.cpp             |  0
 src/protocols/{ => HTTP}/HTTP.h               |  4 +-
 src/protocols/{ => MQTT}/MQTT.cpp             |  0
 src/protocols/{ => MQTT}/MQTT.h               |  4 +-
 src/protocols/{ => Morse}/Morse.cpp           |  0
 src/protocols/{ => Morse}/Morse.h             |  4 +-
 .../{ => PhysicalLayer}/PhysicalLayer.cpp     |  0
 .../{ => PhysicalLayer}/PhysicalLayer.h       |  2 +-
 src/protocols/{ => RTTY}/RTTY.cpp             |  0
 src/protocols/{ => RTTY}/RTTY.h               |  4 +-
 .../{ => TransportLayer}/TransportLayer.h     |  2 +-
 57 files changed, 99 insertions(+), 104 deletions(-)
 delete mode 100644 src/RadioLib.cpp
 rename src/modules/{ => CC1101}/CC1101.cpp (100%)
 rename src/modules/{ => CC1101}/CC1101.h (99%)
 rename src/modules/{ => ESP8266}/ESP8266.cpp (100%)
 rename src/modules/{ => ESP8266}/ESP8266.h (94%)
 rename src/modules/{ => HC05}/HC05.cpp (100%)
 rename src/modules/{ => HC05}/HC05.h (95%)
 rename src/modules/{ => JDY08}/JDY08.cpp (100%)
 rename src/modules/{ => JDY08}/JDY08.h (95%)
 rename src/modules/{ => RF69}/RF69.cpp (100%)
 rename src/modules/{ => RF69}/RF69.h (99%)
 rename src/modules/{ => RFM9x}/RFM95.cpp (100%)
 rename src/modules/{ => RFM9x}/RFM95.h (95%)
 rename src/modules/{ => RFM9x}/RFM96.cpp (100%)
 rename src/modules/{ => RFM9x}/RFM96.h (96%)
 rename src/modules/{ => RFM9x}/RFM97.cpp (100%)
 rename src/modules/{ => RFM9x}/RFM97.h (88%)
 rename src/modules/{ => SX1231}/SX1231.cpp (100%)
 rename src/modules/{ => SX1231}/SX1231.h (94%)
 rename src/modules/{ => SX126x}/SX1261.cpp (100%)
 rename src/modules/{ => SX126x}/SX1261.h (93%)
 rename src/modules/{ => SX126x}/SX1262.cpp (100%)
 rename src/modules/{ => SX126x}/SX1262.h (98%)
 rename src/modules/{ => SX126x}/SX1268.cpp (100%)
 rename src/modules/{ => SX126x}/SX1268.h (98%)
 rename src/modules/{ => SX126x}/SX126x.cpp (100%)
 rename src/modules/{ => SX126x}/SX126x.h (99%)
 rename src/modules/{ => SX127x}/SX1272.cpp (100%)
 rename src/modules/{ => SX127x}/SX1272.h (99%)
 rename src/modules/{ => SX127x}/SX1273.cpp (100%)
 rename src/modules/{ => SX127x}/SX1273.h (98%)
 rename src/modules/{ => SX127x}/SX1276.cpp (100%)
 rename src/modules/{ => SX127x}/SX1276.h (98%)
 rename src/modules/{ => SX127x}/SX1277.cpp (100%)
 rename src/modules/{ => SX127x}/SX1277.h (99%)
 rename src/modules/{ => SX127x}/SX1278.cpp (100%)
 rename src/modules/{ => SX127x}/SX1278.h (99%)
 rename src/modules/{ => SX127x}/SX1279.cpp (100%)
 rename src/modules/{ => SX127x}/SX1279.h (98%)
 rename src/modules/{ => SX127x}/SX127x.cpp (100%)
 rename src/modules/{ => SX127x}/SX127x.h (99%)
 rename src/modules/{ => XBee}/XBee.cpp (100%)
 rename src/modules/{ => XBee}/XBee.h (99%)
 rename src/modules/{ => nRF24}/nRF24.cpp (100%)
 rename src/modules/{ => nRF24}/nRF24.h (99%)
 rename src/protocols/{ => HTTP}/HTTP.cpp (100%)
 rename src/protocols/{ => HTTP}/HTTP.h (95%)
 rename src/protocols/{ => MQTT}/MQTT.cpp (100%)
 rename src/protocols/{ => MQTT}/MQTT.h (98%)
 rename src/protocols/{ => Morse}/Morse.cpp (100%)
 rename src/protocols/{ => Morse}/Morse.h (96%)
 rename src/protocols/{ => PhysicalLayer}/PhysicalLayer.cpp (100%)
 rename src/protocols/{ => PhysicalLayer}/PhysicalLayer.h (99%)
 rename src/protocols/{ => RTTY}/RTTY.cpp (100%)
 rename src/protocols/{ => RTTY}/RTTY.h (98%)
 rename src/protocols/{ => TransportLayer}/TransportLayer.h (98%)

diff --git a/src/RadioLib.cpp b/src/RadioLib.cpp
deleted file mode 100644
index 2ab960cd..00000000
--- a/src/RadioLib.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "RadioLib.h"
-
-Radio::Radio() {
-  ModuleA = new Module(RADIOSHIELD_CS_A, RADIOSHIELD_INT_0, RADIOSHIELD_INT_1, RADIOSHIELD_RX_A, RADIOSHIELD_TX_A, SPI, SPISettings(2000000, MSBFIRST, SPI_MODE0), nullptr);
-  ModuleB = new Module(RADIOSHIELD_CS_B, RADIOSHIELD_INT_0, RADIOSHIELD_INT_1, RADIOSHIELD_RX_B, RADIOSHIELD_TX_B, SPI, SPISettings(2000000, MSBFIRST, SPI_MODE0), nullptr);
-}
-
-Radio RadioShield;
diff --git a/src/RadioLib.h b/src/RadioLib.h
index cb492167..db927d6a 100644
--- a/src/RadioLib.h
+++ b/src/RadioLib.h
@@ -42,39 +42,39 @@
   #warning "God mode active, I hope it was intentional. Buckle up, lads."
 #endif
 
-#include "modules/CC1101.h"
+#include "modules/CC1101/CC1101.h"
 #ifndef ESP8266
-#include "modules/ESP8266.h"
+#include "modules/ESP8266/ESP8266.h"
 #endif
-#include "modules/HC05.h"
-#include "modules/JDY08.h"
-#include "modules/nRF24.h"
-#include "modules/RF69.h"
-#include "modules/RFM95.h"
-#include "modules/RFM96.h"
-#include "modules/RFM97.h"
-#include "modules/SX1231.h"
-#include "modules/SX1261.h"
-#include "modules/SX1262.h"
-#include "modules/SX1268.h"
-#include "modules/SX1272.h"
-#include "modules/SX1273.h"
-#include "modules/SX1276.h"
-#include "modules/SX1277.h"
-#include "modules/SX1278.h"
-#include "modules/SX1279.h"
-#include "modules/XBee.h"
+#include "modules/HC05/HC05.h"
+#include "modules/JDY08/JDY08.h"
+#include "modules/nRF24/nRF24.h"
+#include "modules/RF69/RF69.h"
+#include "modules/RFM9x/RFM95.h"
+#include "modules/RFM9x/RFM96.h"
+#include "modules/RFM9x/RFM97.h"
+#include "modules/SX1231/SX1231.h"
+#include "modules/SX126x/SX1261.h"
+#include "modules/SX126x/SX1262.h"
+#include "modules/SX126x/SX1268.h"
+#include "modules/SX127x/SX1272.h"
+#include "modules/SX127x/SX1273.h"
+#include "modules/SX127x/SX1276.h"
+#include "modules/SX127x/SX1277.h"
+#include "modules/SX127x/SX1278.h"
+#include "modules/SX127x/SX1279.h"
+#include "modules/XBee/XBee.h"
 
 // physical layer protocols
-#include "protocols/PhysicalLayer.h"
-#include "protocols/Morse.h"
-#include "protocols/RTTY.h"
+#include "protocols/PhysicalLayer/PhysicalLayer.h"
+#include "protocols/Morse/Morse.h"
+#include "protocols/RTTY/RTTY.h"
 
 // transport layer protocols
 #ifndef ESP8266
-#include "protocols/TransportLayer.h"
-#include "protocols/HTTP.h"
-#include "protocols/MQTT.h"
+#include "protocols/TransportLayer/TransportLayer.h"
+#include "protocols/HTTP/HTTP.h"
+#include "protocols/MQTT/MQTT.h"
 #endif
 
 // RadioShield pin definitions
@@ -97,13 +97,16 @@
 class Radio {
   public:
 
+    Module* ModuleA;
+    Module* ModuleB;
+
     /*!
       \brief Default constructor. Only used to set ModuleA and ModuleB configuration.
     */
-    Radio();
-
-    Module* ModuleA;
-    Module* ModuleB;
+    Radio() {
+      ModuleA = new Module(RADIOSHIELD_CS_A, RADIOSHIELD_INT_0, RADIOSHIELD_INT_1, RADIOSHIELD_RX_A, RADIOSHIELD_TX_A, SPI, SPISettings(2000000, MSBFIRST, SPI_MODE0), nullptr);
+      ModuleB = new Module(RADIOSHIELD_CS_B, RADIOSHIELD_INT_0, RADIOSHIELD_INT_1, RADIOSHIELD_RX_B, RADIOSHIELD_TX_B, SPI, SPISettings(2000000, MSBFIRST, SPI_MODE0), nullptr);
+    }
 
 #ifndef RADIOLIB_GODMODE
   private:
@@ -111,6 +114,6 @@ class Radio {
 
 };
 
-extern Radio RadioShield;
+Radio RadioShield;
 
 #endif
diff --git a/src/modules/CC1101.cpp b/src/modules/CC1101/CC1101.cpp
similarity index 100%
rename from src/modules/CC1101.cpp
rename to src/modules/CC1101/CC1101.cpp
diff --git a/src/modules/CC1101.h b/src/modules/CC1101/CC1101.h
similarity index 99%
rename from src/modules/CC1101.h
rename to src/modules/CC1101/CC1101.h
index b4583389..fffde12a 100644
--- a/src/modules/CC1101.h
+++ b/src/modules/CC1101/CC1101.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_CC1101_H
 #define _RADIOLIB_CC1101_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 
-#include "../protocols/PhysicalLayer.h"
+#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
 
 // CC1101 physical layer properties
 #define CC1101_CRYSTAL_FREQ                           26.0
diff --git a/src/modules/ESP8266.cpp b/src/modules/ESP8266/ESP8266.cpp
similarity index 100%
rename from src/modules/ESP8266.cpp
rename to src/modules/ESP8266/ESP8266.cpp
diff --git a/src/modules/ESP8266.h b/src/modules/ESP8266/ESP8266.h
similarity index 94%
rename from src/modules/ESP8266.h
rename to src/modules/ESP8266/ESP8266.h
index f8baa27e..aa4e145c 100644
--- a/src/modules/ESP8266.h
+++ b/src/modules/ESP8266/ESP8266.h
@@ -1,9 +1,9 @@
 #if !defined(_RADIOLIB_ESP8266_H) && !defined(ESP8266)
 #define _RADIOLIB_ESP8266_H
 
-#include "Module.h"
+#include "../../Module.h"
 
-#include "../protocols/TransportLayer.h"
+#include "../../protocols/TransportLayer/TransportLayer.h"
 
 /*!
   \class ESP8266
diff --git a/src/modules/HC05.cpp b/src/modules/HC05/HC05.cpp
similarity index 100%
rename from src/modules/HC05.cpp
rename to src/modules/HC05/HC05.cpp
diff --git a/src/modules/HC05.h b/src/modules/HC05/HC05.h
similarity index 95%
rename from src/modules/HC05.h
rename to src/modules/HC05/HC05.h
index 5908a92e..2bfacb48 100644
--- a/src/modules/HC05.h
+++ b/src/modules/HC05/HC05.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_HC05_H
 #define _RADIOLIB_HC05_H
 
-#include "ISerial.h"
+#include "../../ISerial.h"
 
 /*!
   \class HC05
diff --git a/src/modules/JDY08.cpp b/src/modules/JDY08/JDY08.cpp
similarity index 100%
rename from src/modules/JDY08.cpp
rename to src/modules/JDY08/JDY08.cpp
diff --git a/src/modules/JDY08.h b/src/modules/JDY08/JDY08.h
similarity index 95%
rename from src/modules/JDY08.h
rename to src/modules/JDY08/JDY08.h
index a7cf61af..be01ef19 100644
--- a/src/modules/JDY08.h
+++ b/src/modules/JDY08/JDY08.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_JDY08_H
 #define _RADIOLIB_JDY08_H
 
-#include "ISerial.h"
+#include "../../ISerial.h"
 
 /*!
   \class JDY08
diff --git a/src/modules/RF69.cpp b/src/modules/RF69/RF69.cpp
similarity index 100%
rename from src/modules/RF69.cpp
rename to src/modules/RF69/RF69.cpp
diff --git a/src/modules/RF69.h b/src/modules/RF69/RF69.h
similarity index 99%
rename from src/modules/RF69.h
rename to src/modules/RF69/RF69.h
index a7847d61..992cc17e 100644
--- a/src/modules/RF69.h
+++ b/src/modules/RF69/RF69.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_RF69_H
 #define _RADIOLIB_RF69_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 
-#include "../protocols/PhysicalLayer.h"
+#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
 
 // RF69 physical layer properties
 #define RF69_CRYSTAL_FREQ                             32.0
diff --git a/src/modules/RFM95.cpp b/src/modules/RFM9x/RFM95.cpp
similarity index 100%
rename from src/modules/RFM95.cpp
rename to src/modules/RFM9x/RFM95.cpp
diff --git a/src/modules/RFM95.h b/src/modules/RFM9x/RFM95.h
similarity index 95%
rename from src/modules/RFM95.h
rename to src/modules/RFM9x/RFM95.h
index 6409f968..78758971 100644
--- a/src/modules/RFM95.h
+++ b/src/modules/RFM9x/RFM95.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_RFM95_H
 #define _RADIOLIB_RFM95_H
 
-#include "TypeDef.h"
-#include "Module.h"
-#include "SX127x.h"
-#include "SX1278.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
+#include "../SX127x/SX127x.h"
+#include "../SX127x/SX1278.h"
 
 // SX127X_REG_VERSION
 #define RFM95_CHIP_VERSION                            0x11
@@ -66,7 +66,7 @@ class RFM95: public SX1278 {
       \returns \ref status_codes
     */
     int16_t setFrequency(float freq);
-    
+
 #ifndef RADIOLIB_GODMODE
   private:
 #endif
diff --git a/src/modules/RFM96.cpp b/src/modules/RFM9x/RFM96.cpp
similarity index 100%
rename from src/modules/RFM96.cpp
rename to src/modules/RFM9x/RFM96.cpp
diff --git a/src/modules/RFM96.h b/src/modules/RFM9x/RFM96.h
similarity index 96%
rename from src/modules/RFM96.h
rename to src/modules/RFM9x/RFM96.h
index 9683ff2b..1288c797 100644
--- a/src/modules/RFM96.h
+++ b/src/modules/RFM9x/RFM96.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_RFM96_H
 #define _RADIOLIB_RFM96_H
 
-#include "TypeDef.h"
-#include "Module.h"
-#include "SX127x.h"
-#include "SX1278.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
+#include "../SX127x/SX127x.h"
+#include "../SX127x/SX1278.h"
 
 // SX127X_REG_VERSION
 #define RFM9X_CHIP_VERSION                            0x12  // according to datasheet, this should be 0x11, but all modules seem to have 0x12
diff --git a/src/modules/RFM97.cpp b/src/modules/RFM9x/RFM97.cpp
similarity index 100%
rename from src/modules/RFM97.cpp
rename to src/modules/RFM9x/RFM97.cpp
diff --git a/src/modules/RFM97.h b/src/modules/RFM9x/RFM97.h
similarity index 88%
rename from src/modules/RFM97.h
rename to src/modules/RFM9x/RFM97.h
index 7834efbf..b5dcbbdf 100644
--- a/src/modules/RFM97.h
+++ b/src/modules/RFM9x/RFM97.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_RFM97_H
 #define _RADIOLIB_RFM97_H
 
-#include "TypeDef.h"
-#include "Module.h"
-#include "SX127x.h"
-#include "SX1278.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
+#include "../SX127x/SX127x.h"
+#include "../SX127x/SX1278.h"
 #include "RFM95.h"
 
 /*!
diff --git a/src/modules/SX1231.cpp b/src/modules/SX1231/SX1231.cpp
similarity index 100%
rename from src/modules/SX1231.cpp
rename to src/modules/SX1231/SX1231.cpp
diff --git a/src/modules/SX1231.h b/src/modules/SX1231/SX1231.h
similarity index 94%
rename from src/modules/SX1231.h
rename to src/modules/SX1231/SX1231.h
index 06d16d86..d048fd02 100644
--- a/src/modules/SX1231.h
+++ b/src/modules/SX1231/SX1231.h
@@ -1,9 +1,9 @@
 #ifndef _RADIOLIB_SX1231_H
 #define _RADIOLIB_SX1231_H
 
-#include "TypeDef.h"
-#include "Module.h"
-#include "RF69.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
+#include "../RF69/RF69.h"
 
 #define SX1231_CHIP_REVISION_2_A                      0x21
 #define SX1231_CHIP_REVISION_2_B                      0x22
diff --git a/src/modules/SX1261.cpp b/src/modules/SX126x/SX1261.cpp
similarity index 100%
rename from src/modules/SX1261.cpp
rename to src/modules/SX126x/SX1261.cpp
diff --git a/src/modules/SX1261.h b/src/modules/SX126x/SX1261.h
similarity index 93%
rename from src/modules/SX1261.h
rename to src/modules/SX126x/SX1261.h
index 33be28cd..3331c1bc 100644
--- a/src/modules/SX1261.h
+++ b/src/modules/SX126x/SX1261.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_SX1261_H
 #define _RADIOLIB_SX1261_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 #include "SX126x.h"
 #include "SX1262.h"
 
diff --git a/src/modules/SX1262.cpp b/src/modules/SX126x/SX1262.cpp
similarity index 100%
rename from src/modules/SX1262.cpp
rename to src/modules/SX126x/SX1262.cpp
diff --git a/src/modules/SX1262.h b/src/modules/SX126x/SX1262.h
similarity index 98%
rename from src/modules/SX1262.h
rename to src/modules/SX126x/SX1262.h
index e0a207a5..de0b5888 100644
--- a/src/modules/SX1262.h
+++ b/src/modules/SX126x/SX1262.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_SX1262_H
 #define _RADIOLIB_SX1262_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 #include "SX126x.h"
 
 /*!
diff --git a/src/modules/SX1268.cpp b/src/modules/SX126x/SX1268.cpp
similarity index 100%
rename from src/modules/SX1268.cpp
rename to src/modules/SX126x/SX1268.cpp
diff --git a/src/modules/SX1268.h b/src/modules/SX126x/SX1268.h
similarity index 98%
rename from src/modules/SX1268.h
rename to src/modules/SX126x/SX1268.h
index af6f492b..8f989498 100644
--- a/src/modules/SX1268.h
+++ b/src/modules/SX126x/SX1268.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_SX1268_H
 #define _RADIOLIB_SX1268_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 #include "SX126x.h"
 
 //SX126X_CMD_SET_PA_CONFIG
@@ -95,7 +95,7 @@ class SX1268: public SX126x {
 #ifndef RADIOLIB_GODMODE
   private:
 #endif
-    
+
 };
 
 #endif
diff --git a/src/modules/SX126x.cpp b/src/modules/SX126x/SX126x.cpp
similarity index 100%
rename from src/modules/SX126x.cpp
rename to src/modules/SX126x/SX126x.cpp
diff --git a/src/modules/SX126x.h b/src/modules/SX126x/SX126x.h
similarity index 99%
rename from src/modules/SX126x.h
rename to src/modules/SX126x/SX126x.h
index c33bb9e7..4d4efaf7 100644
--- a/src/modules/SX126x.h
+++ b/src/modules/SX126x/SX126x.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_SX126X_H
 #define _RADIOLIB_SX126X_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 
-#include "../protocols/PhysicalLayer.h"
+#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
 
 // SX126X physical layer properties
 #define SX126X_CRYSTAL_FREQ                           32.0
diff --git a/src/modules/SX1272.cpp b/src/modules/SX127x/SX1272.cpp
similarity index 100%
rename from src/modules/SX1272.cpp
rename to src/modules/SX127x/SX1272.cpp
diff --git a/src/modules/SX1272.h b/src/modules/SX127x/SX1272.h
similarity index 99%
rename from src/modules/SX1272.h
rename to src/modules/SX127x/SX1272.h
index 2c707b63..dd90b739 100644
--- a/src/modules/SX1272.h
+++ b/src/modules/SX127x/SX1272.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_SX1272_H
 #define _RADIOLIB_SX1272_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 #include "SX127x.h"
 
 // SX1272 specific register map
@@ -262,7 +262,7 @@ class SX1272: public SX127x {
 #ifndef RADIOLIB_GODMODE
   private:
 #endif
-    
+
 };
 
 #endif
diff --git a/src/modules/SX1273.cpp b/src/modules/SX127x/SX1273.cpp
similarity index 100%
rename from src/modules/SX1273.cpp
rename to src/modules/SX127x/SX1273.cpp
diff --git a/src/modules/SX1273.h b/src/modules/SX127x/SX1273.h
similarity index 98%
rename from src/modules/SX1273.h
rename to src/modules/SX127x/SX1273.h
index 4a78229d..52ffafd1 100644
--- a/src/modules/SX1273.h
+++ b/src/modules/SX127x/SX1273.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_SX1273_H
 #define _RADIOLIB_SX1273_H
 
-#include "TypeDef.h"
+#include "../../TypeDef.h"
 #include "SX1272.h"
 
 /*!
diff --git a/src/modules/SX1276.cpp b/src/modules/SX127x/SX1276.cpp
similarity index 100%
rename from src/modules/SX1276.cpp
rename to src/modules/SX127x/SX1276.cpp
diff --git a/src/modules/SX1276.h b/src/modules/SX127x/SX1276.h
similarity index 98%
rename from src/modules/SX1276.h
rename to src/modules/SX127x/SX1276.h
index fbf7faae..8a320ec8 100644
--- a/src/modules/SX1276.h
+++ b/src/modules/SX127x/SX1276.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_SX1276_H
 #define _RADIOLIB_SX1276_H
 
-#include "TypeDef.h"
+#include "../../TypeDef.h"
 #include "SX1278.h"
 
 /*!
diff --git a/src/modules/SX1277.cpp b/src/modules/SX127x/SX1277.cpp
similarity index 100%
rename from src/modules/SX1277.cpp
rename to src/modules/SX127x/SX1277.cpp
diff --git a/src/modules/SX1277.h b/src/modules/SX127x/SX1277.h
similarity index 99%
rename from src/modules/SX1277.h
rename to src/modules/SX127x/SX1277.h
index 53727990..cee312a3 100644
--- a/src/modules/SX1277.h
+++ b/src/modules/SX127x/SX1277.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_SX1277_H
 #define _RADIOLIB_SX1277_H
 
-#include "TypeDef.h"
+#include "../../TypeDef.h"
 #include "SX1278.h"
 
 /*!
diff --git a/src/modules/SX1278.cpp b/src/modules/SX127x/SX1278.cpp
similarity index 100%
rename from src/modules/SX1278.cpp
rename to src/modules/SX127x/SX1278.cpp
diff --git a/src/modules/SX1278.h b/src/modules/SX127x/SX1278.h
similarity index 99%
rename from src/modules/SX1278.h
rename to src/modules/SX127x/SX1278.h
index 92322b25..c081e76c 100644
--- a/src/modules/SX1278.h
+++ b/src/modules/SX127x/SX1278.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_SX1278_H
 #define _RADIOLIB_SX1278_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 #include "SX127x.h"
 
 // SX1278 specific register map
@@ -271,7 +271,7 @@ class SX1278: public SX127x {
 #ifndef RADIOLIB_GODMODE
   private:
 #endif
-    
+
 };
 
 #endif
diff --git a/src/modules/SX1279.cpp b/src/modules/SX127x/SX1279.cpp
similarity index 100%
rename from src/modules/SX1279.cpp
rename to src/modules/SX127x/SX1279.cpp
diff --git a/src/modules/SX1279.h b/src/modules/SX127x/SX1279.h
similarity index 98%
rename from src/modules/SX1279.h
rename to src/modules/SX127x/SX1279.h
index d625ec0c..f0953ecd 100644
--- a/src/modules/SX1279.h
+++ b/src/modules/SX127x/SX1279.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_SX1279_H
 #define _RADIOLIB_SX1279_H
 
-#include "TypeDef.h"
+#include "../../TypeDef.h"
 #include "SX1278.h"
 
 /*!
@@ -65,7 +65,7 @@ class SX1279: public SX1278 {
 #ifndef RADIOLIB_GODMODE
   private:
 #endif
-    
+
 };
 
 #endif
diff --git a/src/modules/SX127x.cpp b/src/modules/SX127x/SX127x.cpp
similarity index 100%
rename from src/modules/SX127x.cpp
rename to src/modules/SX127x/SX127x.cpp
diff --git a/src/modules/SX127x.h b/src/modules/SX127x/SX127x.h
similarity index 99%
rename from src/modules/SX127x.h
rename to src/modules/SX127x/SX127x.h
index a1df3ee7..956f3c49 100644
--- a/src/modules/SX127x.h
+++ b/src/modules/SX127x/SX127x.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_SX127X_H
 #define _RADIOLIB_SX127X_H
 
-#include "TypeDef.h"
-#include "Module.h"
+#include "../../TypeDef.h"
+#include "../../Module.h"
 
-#include "../protocols/PhysicalLayer.h"
+#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
 
 // SX127x physical layer properties
 #define SX127X_CRYSTAL_FREQ                           32.0
diff --git a/src/modules/XBee.cpp b/src/modules/XBee/XBee.cpp
similarity index 100%
rename from src/modules/XBee.cpp
rename to src/modules/XBee/XBee.cpp
diff --git a/src/modules/XBee.h b/src/modules/XBee/XBee.h
similarity index 99%
rename from src/modules/XBee.h
rename to src/modules/XBee/XBee.h
index 6eca70f0..1cb9607a 100644
--- a/src/modules/XBee.h
+++ b/src/modules/XBee/XBee.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_XBEE_H
 #define _RADIOLIB_XBEE_H
 
-#include "ISerial.h"
-#include "TypeDef.h"
+#include "../../ISerial.h"
+#include "../../TypeDef.h"
 
 // API reserved characters
 #define XBEE_API_START                                0x7E
diff --git a/src/modules/nRF24.cpp b/src/modules/nRF24/nRF24.cpp
similarity index 100%
rename from src/modules/nRF24.cpp
rename to src/modules/nRF24/nRF24.cpp
diff --git a/src/modules/nRF24.h b/src/modules/nRF24/nRF24.h
similarity index 99%
rename from src/modules/nRF24.h
rename to src/modules/nRF24/nRF24.h
index 4ab07353..1ca8a080 100644
--- a/src/modules/nRF24.h
+++ b/src/modules/nRF24/nRF24.h
@@ -1,10 +1,10 @@
 #ifndef _RADIOLIB_NRF24_H
 #define _RADIOLIB_NRF24_H
 
-#include "Module.h"
-#include "TypeDef.h"
+#include "../../Module.h"
+#include "../../TypeDef.h"
 
-#include "../protocols/PhysicalLayer.h"
+#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
 
 // nRF24 physical layer properties (dummy only)
 #define NRF24_CRYSTAL_FREQ                            1.0
diff --git a/src/protocols/HTTP.cpp b/src/protocols/HTTP/HTTP.cpp
similarity index 100%
rename from src/protocols/HTTP.cpp
rename to src/protocols/HTTP/HTTP.cpp
diff --git a/src/protocols/HTTP.h b/src/protocols/HTTP/HTTP.h
similarity index 95%
rename from src/protocols/HTTP.h
rename to src/protocols/HTTP/HTTP.h
index cc5575b5..118df7ec 100644
--- a/src/protocols/HTTP.h
+++ b/src/protocols/HTTP/HTTP.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_HTTP_H
 #define _RADIOLIB_HTTP_H
 
-#include "TypeDef.h"
-#include "TransportLayer.h"
+#include "../../TypeDef.h"
+#include "../TransportLayer/TransportLayer.h"
 
 
 /*!
diff --git a/src/protocols/MQTT.cpp b/src/protocols/MQTT/MQTT.cpp
similarity index 100%
rename from src/protocols/MQTT.cpp
rename to src/protocols/MQTT/MQTT.cpp
diff --git a/src/protocols/MQTT.h b/src/protocols/MQTT/MQTT.h
similarity index 98%
rename from src/protocols/MQTT.h
rename to src/protocols/MQTT/MQTT.h
index 0062c1cd..b7a94bdb 100644
--- a/src/protocols/MQTT.h
+++ b/src/protocols/MQTT/MQTT.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_MQTT_H
 #define _RADIOLIB_MQTT_H
 
-#include "TypeDef.h"
-#include "TransportLayer.h"
+#include "../../TypeDef.h"
+#include "../TransportLayer/TransportLayer.h"
 
 // MQTT packet types
 #define MQTT_CONNECT                                  0x01
diff --git a/src/protocols/Morse.cpp b/src/protocols/Morse/Morse.cpp
similarity index 100%
rename from src/protocols/Morse.cpp
rename to src/protocols/Morse/Morse.cpp
diff --git a/src/protocols/Morse.h b/src/protocols/Morse/Morse.h
similarity index 96%
rename from src/protocols/Morse.h
rename to src/protocols/Morse/Morse.h
index 28d73a90..317a8066 100644
--- a/src/protocols/Morse.h
+++ b/src/protocols/Morse/Morse.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_MORSE_H
 #define _RADIOLIB_MORSE_H
 
-#include "TypeDef.h"
-#include "PhysicalLayer.h"
+#include "../../TypeDef.h"
+#include "../PhysicalLayer/PhysicalLayer.h"
 
 #define MORSE_LENGTH                                  52
 
diff --git a/src/protocols/PhysicalLayer.cpp b/src/protocols/PhysicalLayer/PhysicalLayer.cpp
similarity index 100%
rename from src/protocols/PhysicalLayer.cpp
rename to src/protocols/PhysicalLayer/PhysicalLayer.cpp
diff --git a/src/protocols/PhysicalLayer.h b/src/protocols/PhysicalLayer/PhysicalLayer.h
similarity index 99%
rename from src/protocols/PhysicalLayer.h
rename to src/protocols/PhysicalLayer/PhysicalLayer.h
index ec5b8728..38f2974d 100644
--- a/src/protocols/PhysicalLayer.h
+++ b/src/protocols/PhysicalLayer/PhysicalLayer.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_PHYSICAL_LAYER_H
 #define _RADIOLIB_PHYSICAL_LAYER_H
 
-#include "TypeDef.h"
+#include "../../TypeDef.h"
 
 /*!
   \class PhysicalLayer
diff --git a/src/protocols/RTTY.cpp b/src/protocols/RTTY/RTTY.cpp
similarity index 100%
rename from src/protocols/RTTY.cpp
rename to src/protocols/RTTY/RTTY.cpp
diff --git a/src/protocols/RTTY.h b/src/protocols/RTTY/RTTY.h
similarity index 98%
rename from src/protocols/RTTY.h
rename to src/protocols/RTTY/RTTY.h
index 646b45dd..5c22568c 100644
--- a/src/protocols/RTTY.h
+++ b/src/protocols/RTTY/RTTY.h
@@ -1,8 +1,8 @@
 #ifndef _RADIOLIB_RTTY_H
 #define _RADIOLIB_RTTY_H
 
-#include "TypeDef.h"
-#include "PhysicalLayer.h"
+#include "../../TypeDef.h"
+#include "../PhysicalLayer/PhysicalLayer.h"
 
 #define ITA2_FIGS                                     0x1B
 #define ITA2_LTRS                                     0x1F
diff --git a/src/protocols/TransportLayer.h b/src/protocols/TransportLayer/TransportLayer.h
similarity index 98%
rename from src/protocols/TransportLayer.h
rename to src/protocols/TransportLayer/TransportLayer.h
index bf17782a..ecf3ad5b 100644
--- a/src/protocols/TransportLayer.h
+++ b/src/protocols/TransportLayer/TransportLayer.h
@@ -1,7 +1,7 @@
 #ifndef _RADIOLIB_TRANSPORT_LAYER_H
 #define _RADIOLIB_TRANSPORT_LAYER_H
 
-#include "TypeDef.h"
+#include "../../TypeDef.h"
 
 /*!
   \class TransportLayer