diff --git a/Boards.h b/Boards.h
new file mode 100644
index 0000000..751a373
--- /dev/null
+++ b/Boards.h
@@ -0,0 +1,55 @@
+// Copyright (C) 2024, Mark Qvist
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see .
+
+#import "Modem.h"
+
+#ifndef BOARDS_H
+  #define BOARDS_H
+  
+    #define PLATFORM_AVR   0x90
+    #define PLATFORM_ESP32 0x80
+    #define PLATFORM_NRF52 0x70
+
+    #define MCU_1284P 0x91
+    #define MCU_2560  0x92
+    #define MCU_ESP32 0x81
+    #define MCU_NRF52 0x71
+
+    #define BOARD_RNODE         0x31
+    #define BOARD_HMBRW         0x32
+    #define BOARD_TBEAM         0x33
+    #define BOARD_HUZZAH32      0x34
+    #define BOARD_GENERIC_ESP32 0x35
+    #define BOARD_LORA32_V2_0   0x36
+    #define BOARD_LORA32_V2_1   0x37
+    #define BOARD_LORA32_V1_0   0x39
+    #define BOARD_HELTEC32_V2   0x38
+    #define BOARD_RNODE_NG_20   0x40
+    #define BOARD_RNODE_NG_21   0x41
+    #define BOARD_RNODE_NG_22   0x42
+    #define BOARD_GENERIC_NRF52 0x50
+    #define BOARD_RAK4630       0x51
+
+    #if BOARD_MODEL == BOARD_RAK4630
+      #define MODEM SX1262
+    #elif BOARD_MODEL == BOARD_RNODE_NG_22
+      #define MODEM SX1262
+    #elif BOARD_MODEL == BOARD_GENERIC_NRF52
+      #define MODEM SX1262
+    #else
+      #define MODEM SX1276
+    #endif
+
+#endif
\ No newline at end of file
diff --git a/Config.h b/Config.h
index 17bcccd..bee7efb 100644
--- a/Config.h
+++ b/Config.h
@@ -14,6 +14,7 @@
 // along with this program.  If not, see .
 
 #include "ROM.h"
+#include "Boards.h"
 #include "Modem.h"
 
 #ifndef CONFIG_H
@@ -22,30 +23,6 @@
 	#define MAJ_VERS  0x01
 	#define MIN_VERS  0x46
 
-	#define PLATFORM_AVR   0x90
-  #define PLATFORM_ESP32 0x80
-    #define PLATFORM_NRF52 0x70
-
-	#define MCU_1284P 0x91
-	#define MCU_2560  0x92
-	#define MCU_ESP32 0x81
-	#define MCU_NRF52 0x71
-
-	#define BOARD_RNODE         0x31
-	#define BOARD_HMBRW         0x32
-	#define BOARD_TBEAM         0x33
-	#define BOARD_HUZZAH32      0x34
-	#define BOARD_GENERIC_ESP32 0x35
-	#define BOARD_LORA32_V2_0   0x36
-	#define BOARD_LORA32_V2_1   0x37
-	#define BOARD_LORA32_V1_0   0x39
-	#define BOARD_HELTEC32_V2   0x38
-	#define BOARD_RNODE_NG_20   0x40
-	#define BOARD_RNODE_NG_21   0x41
-	#define BOARD_RNODE_NG_22   0x42
-	#define BOARD_GENERIC_NRF52 0x50
-	#define BOARD_RAK4630       0x51
-
 	#define MODE_HOST 0x11
 	#define MODE_TNC  0x12
 
@@ -308,9 +285,6 @@
 			#define HAS_NP true
 			#define HAS_SD false
             #define HAS_EEPROM true
-			#define MODEM_MISO 3
-			#define MODEM_MOSI 6
-			#define MODEM_CLK 5
 			const int pin_cs = 7;
 			const int pin_reset = 8;
 			const int pin_dio = 33;
diff --git a/LoRa.cpp b/LoRa.cpp
index 3a9667c..3637a08 100644
--- a/LoRa.cpp
+++ b/LoRa.cpp
@@ -4,6 +4,7 @@
 // Modifications and additions copyright 2023 by Mark Qvist
 // Obviously still under the MIT license.
 
+#include "Boards.h"
 #include "LoRa.h"
 #include "Modem.h"
 
@@ -38,6 +39,12 @@
   #define ISR_VECT
 #endif
 
+#if BOARD_MODEL == BOARD_RNODE_NG_22
+  #define MODEM_MISO 3
+  #define MODEM_MOSI 6
+  #define MODEM_CLK  5
+#endif
+
 #if MODEM == SX1262
     #define OP_FIFO_WRITE            0x0E
     #define OP_FIFO_READ             0x1E
diff --git a/Makefile b/Makefile
index 82f1c74..effaa0a 100644
--- a/Makefile
+++ b/Makefile
@@ -55,55 +55,55 @@ upload-spiffs:
 	python ./Release/esptool/esptool.py --chip esp32 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin
 
 firmware:
-	arduino-cli compile --fqbn unsignedio:avr:rnode --build-property "compiler.cpp.extra_flags=\"-DMODEM=0x01\""
+	arduino-cli compile --fqbn unsignedio:avr:rnode
 
 firmware-mega2560:
-	arduino-cli compile --fqbn arduino:avr:mega --build-property "compiler.cpp.extra_flags=\"-DMODEM=0x01\""
+	arduino-cli compile --fqbn arduino:avr:mega
 
 firmware-tbeam:
-	arduino-cli compile --fqbn esp32:esp32:t-beam -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x33\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:t-beam -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x33\""
 
 firmware-lora32_v10:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x39\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x39\""
 
 firmware-lora32_v10_extled:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x39\" \"-DEXTERNAL_LEDS=true\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x39\" \"-DEXTERNAL_LEDS=true\""
 
 firmware-lora32_v20:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x36\" \"-DEXTERNAL_LEDS=true\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x36\" \"-DEXTERNAL_LEDS=true\""
 
 firmware-lora32_v21:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DMODEM=0x01\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DMODEM=0x01\""
 
 firmware-lora32_v21_extled:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DEXTERNAL_LEDS=true\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DEXTERNAL_LEDS=true\""
 
 firmware-lora32_v21_tcxo:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DENABLE_TCXO=true\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x37\" \"-DENABLE_TCXO=true\""
 
 firmware-heltec32_v2:
-	arduino-cli compile --fqbn esp32:esp32:heltec_wifi_lora_32_V2 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x38\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:heltec_wifi_lora_32_V2 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x38\""
 
 firmware-heltec32_v2_extled:
-	arduino-cli compile --fqbn esp32:esp32:heltec_wifi_lora_32_V2 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x38\" \"-DEXTERNAL_LEDS=true\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:heltec_wifi_lora_32_V2 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x38\" \"-DEXTERNAL_LEDS=true\""
 
 firmware-rnode_ng_20:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x40\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x40\""
 
 firmware-rnode_ng_21:
-	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x41\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:ttgo-lora32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x41\""
 
 firmware-rnode_ng_22:
-	arduino-cli compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=cdc" -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x42\" \"-DMODEM=0x03\""
+	arduino-cli compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=cdc" -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x42\""
 
 firmware-featheresp32:
-	arduino-cli compile --fqbn esp32:esp32:featheresp32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x34\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:featheresp32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x34\""
 
 firmware-genericesp32:
-	arduino-cli compile --fqbn esp32:esp32:esp32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x35\" \"-DMODEM=0x01\""
+	arduino-cli compile --fqbn esp32:esp32:esp32 -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x35\""
 
 firmware-rak4630:
-	arduino-cli compile --fqbn rakwireless:nrf52:WisCoreRAK4631Board -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x51\" \"-DMODEM=0x03\""
+	arduino-cli compile --fqbn rakwireless:nrf52:WisCoreRAK4631Board -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x51\""
 
 upload:
 	arduino-cli upload -p /dev/ttyUSB0 --fqbn unsignedio:avr:rnode