diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp
index cbbda86f..76387991 100644
--- a/src/modules/RF69/RF69.cpp
+++ b/src/modules/RF69/RF69.cpp
@@ -219,7 +219,7 @@ int16_t RF69::packetMode() {
   return(this->mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_PACKET_MODE, 6, 5));
 }
 
-void RF69::setAESKey(uint8_t* key) {
+void RF69::setAESKey(const uint8_t* key) {
   this->mod->SPIwriteRegisterBurst(RADIOLIB_RF69_REG_AES_KEY_1, key, 16);
 }
 
@@ -364,7 +364,7 @@ bool RF69::fifoAdd(uint8_t* data, int totalLen, int* remLen) {
 
 bool RF69::fifoGet(volatile uint8_t* data, int totalLen, volatile int* rcvLen) {
   // get pointer to the correct position in data buffer
-  uint8_t* dataPtr = (uint8_t*)&data[*rcvLen];
+  uint8_t* dataPtr = const_cast<uint8_t*>(&data[*rcvLen]);
 
   // check how much data are we still expecting
   uint8_t len = RADIOLIB_RF69_FIFO_THRESH - 1;
@@ -692,7 +692,7 @@ int16_t RF69::setOutputPower(int8_t pwr, bool highPower) {
   return(state);
 }
 
-int16_t RF69::setSyncWord(uint8_t* syncWord, size_t len, uint8_t maxErrBits) {
+int16_t RF69::setSyncWord(const uint8_t* syncWord, size_t len, uint8_t maxErrBits) {
   // check constraints
   if((maxErrBits > 7) || (len > 8)) {
     return(RADIOLIB_ERR_INVALID_SYNC_WORD);
diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h
index d30e8c31..9015d66d 100644
--- a/src/modules/RF69/RF69.h
+++ b/src/modules/RF69/RF69.h
@@ -577,7 +577,7 @@ class RF69: public PhysicalLayer {
       \brief Sets AES key.
       \param key Key to be used for AES encryption. Must be exactly 16 bytes long.
     */
-    void setAESKey(uint8_t* key);
+    void setAESKey(const uint8_t* key);
 
     /*!
       \brief Enables AES encryption.
@@ -789,7 +789,7 @@ class RF69: public PhysicalLayer {
       \param len Sync word length in bytes.
       \param maxErrBits Maximum allowed number of bit errors in received sync word. Defaults to 0.
     */
-    int16_t setSyncWord(uint8_t* syncWord, size_t len, uint8_t maxErrBits = 0);
+    int16_t setSyncWord(const uint8_t* syncWord, size_t len, uint8_t maxErrBits = 0);
 
     /*!
       \brief Sets preamble length.
diff --git a/src/modules/SX123x/SX1231.h b/src/modules/SX123x/SX1231.h
index 6dc37357..fae3aabf 100644
--- a/src/modules/SX123x/SX1231.h
+++ b/src/modules/SX123x/SX1231.h
@@ -108,7 +108,7 @@ class SX1231: public RF69  {
       \param preambleLen Preamble Length in bits. Defaults to 16 bits.
       \returns \ref status_codes
     */
-    int16_t begin(float freq = 434.0, float br = 4.8, float freqDev = 5.0, float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16);
+    virtual int16_t begin(float freq = 434.0, float br = 4.8, float freqDev = 5.0, float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16);
 
 #if !RADIOLIB_GODMODE
   protected:
diff --git a/src/modules/SX123x/SX1233.h b/src/modules/SX123x/SX1233.h
index bf9bb148..2cff2c66 100644
--- a/src/modules/SX123x/SX1233.h
+++ b/src/modules/SX123x/SX1233.h
@@ -38,7 +38,7 @@ class SX1233: public SX1231  {
       \param preambleLen Preamble Length in bits. Defaults to 16 bits.
       \returns \ref status_codes
     */
-    int16_t begin(float freq = 434.0, float br = 4.8, float freqDev = 5.0, float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16);
+    int16_t begin(float freq = 434.0, float br = 4.8, float freqDev = 5.0, float rxBw = 125.0, int8_t power = 10, uint8_t preambleLen = 16) override;
 
     /*!
       \brief Sets bit rate. Allowed values range from 0.5 to 300.0 kbps.