Switch from board variant being set separately to using model number instead.
This commit is contained in:
		
							parent
							
								
									63eab05014
								
							
						
					
					
						commit
						ba2d36add9
					
				
							
								
								
									
										12
									
								
								Boards.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Boards.h
									
									
									
									
									
								
							| @ -14,6 +14,7 @@ | |||||||
| // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | ||||||
| 
 | 
 | ||||||
| #include "Interfaces.h" | #include "Interfaces.h" | ||||||
|  | #include "ROM.h" | ||||||
| 
 | 
 | ||||||
| #ifndef BOARDS_H | #ifndef BOARDS_H | ||||||
|   #define BOARDS_H |   #define BOARDS_H | ||||||
| @ -41,11 +42,6 @@ | |||||||
|   #define BOARD_GENERIC_NRF52 0x50 |   #define BOARD_GENERIC_NRF52 0x50 | ||||||
|   #define BOARD_RAK4631       0x51 |   #define BOARD_RAK4631       0x51 | ||||||
| 
 | 
 | ||||||
|   // Variants
 |  | ||||||
|   #define BOARD_T3S3_SX1262 0x01 |  | ||||||
|   #define BOARD_T3S3_SX1280 0x02 |  | ||||||
|   #define BOARD_T3S3_SX1280_PA 0x03 |  | ||||||
| 
 |  | ||||||
|   // Displays
 |   // Displays
 | ||||||
|   #define OLED 0x01 |   #define OLED 0x01 | ||||||
|   #define EINK_BW 0x02 |   #define EINK_BW 0x02 | ||||||
| @ -592,7 +588,7 @@ | |||||||
|         #endif |         #endif | ||||||
|       #endif |       #endif | ||||||
| 
 | 
 | ||||||
|       #if BOARD_VARIANT == BOARD_T3S3_SX1262 |       #if BOARD_VARIANT == MODEL_A1 | ||||||
|       const uint8_t interfaces[INTERFACE_COUNT] = {SX1262}; |       const uint8_t interfaces[INTERFACE_COUNT] = {SX1262}; | ||||||
|       const bool interface_cfg[INTERFACE_COUNT][3] = {  |       const bool interface_cfg[INTERFACE_COUNT][3] = {  | ||||||
|                     // SX1262
 |                     // SX1262
 | ||||||
| @ -602,10 +598,10 @@ | |||||||
|               true  // DIO2_AS_RF_SWITCH
 |               true  // DIO2_AS_RF_SWITCH
 | ||||||
|           },  |           },  | ||||||
|       }; |       }; | ||||||
|       #elif BOARD_VARIANT == BOARD_T3S3_SX1280_PA |       #elif BOARD_VARIANT == MODEL_A5 // SX1280 with PA 
 | ||||||
|       const uint8_t interfaces[INTERFACE_COUNT] = {SX1280}; |       const uint8_t interfaces[INTERFACE_COUNT] = {SX1280}; | ||||||
|       const bool interface_cfg[INTERFACE_COUNT][3] = {  |       const bool interface_cfg[INTERFACE_COUNT][3] = {  | ||||||
|                     // SX1262
 |                     // SX1280
 | ||||||
|           { |           { | ||||||
|               false, // DEFAULT_SPI
 |               false, // DEFAULT_SPI
 | ||||||
|               false, // HAS_TCXO
 |               false, // HAS_TCXO
 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @ -72,10 +72,10 @@ firmware-tbeam_sx126x: | |||||||
| 	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=0x03\"" | 	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=0x03\"" | ||||||
| 
 | 
 | ||||||
| firmware-t3s3_sx1262: | firmware-t3s3_sx1262: | ||||||
| 	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\" \"-DBOARD_VARIANT=0x01\"" | 	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\" \"-DBOARD_VARIANT=0xA1\"" | ||||||
| 
 | 
 | ||||||
| firmware-t3s3_sx1280_pa: | firmware-t3s3_sx1280_pa: | ||||||
| 	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\" \"-DBOARD_VARIANT=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\" \"-DBOARD_VARIANT=0xA5\"" | ||||||
| 
 | 
 | ||||||
| firmware-lora32_v10: | 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\"" | 	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\"" | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								ROM.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ROM.h
									
									
									
									
									
								
							| @ -29,7 +29,9 @@ | |||||||
|     #define PRODUCT_RAK4631 0x10 |     #define PRODUCT_RAK4631 0x10 | ||||||
|     #define MODEL_11 0x11 |     #define MODEL_11 0x11 | ||||||
|     #define MODEL_12 0x12 |     #define MODEL_12 0x12 | ||||||
|  |     #define MODEL_13 0x13 // RAK4631 with WisBlock SX1280 module (LIBSYS002)
 | ||||||
| 	#define MODEL_A1 0xA1 | 	#define MODEL_A1 0xA1 | ||||||
|  |     #define MODEL_A5 0xA5 // T3S3 SX1280 PA
 | ||||||
| 	#define MODEL_A6 0xA6 | 	#define MODEL_A6 0xA6 | ||||||
| 	#define MODEL_A4 0xA4 | 	#define MODEL_A4 0xA4 | ||||||
| 	#define MODEL_A9 0xA9 | 	#define MODEL_A9 0xA9 | ||||||
|  | |||||||
							
								
								
									
										163
									
								
								Radio.cpp
									
									
									
									
									
								
							
							
						
						
									
										163
									
								
								Radio.cpp
									
									
									
									
									
								
							| @ -2192,11 +2192,118 @@ void sx128x::disableTCXO() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void sx128x::setTxPower(int level, int outputPin) { | void sx128x::setTxPower(int level, int outputPin) { | ||||||
|     // PA calculation currently only works for the LoRa1280F27. Support for
 |     uint8_t tx_buf[2]; | ||||||
|     // other assemblies would be appreciated in a PR.
 |     #if BOARD_VARIANT == MODEL_13 | ||||||
|     if (outputPin == PA_OUTPUT_PA_BOOST_PIN) { |     // RAK4631 with WisBlock SX1280 module (LIBSYS002)
 | ||||||
|         if (level > 27) { |     if (level > 27) { | ||||||
|             level = 27; |         level = 27; | ||||||
|  |     } else if (level < 0) { | ||||||
|  |         level = 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     _txp = level; | ||||||
|  | 
 | ||||||
|  |     int reg_value; | ||||||
|  | 
 | ||||||
|  |     switch (level) { | ||||||
|  |         case 0: | ||||||
|  |             reg_value = -18; | ||||||
|  |             break; | ||||||
|  |         case 1: | ||||||
|  |             reg_value = -17; | ||||||
|  |             break; | ||||||
|  |         case 2: | ||||||
|  |             reg_value = -16; | ||||||
|  |             break; | ||||||
|  |         case 3: | ||||||
|  |             reg_value = -15; | ||||||
|  |             break; | ||||||
|  |         case 4: | ||||||
|  |             reg_value = -14; | ||||||
|  |             break; | ||||||
|  |         case 5: | ||||||
|  |             reg_value = -13; | ||||||
|  |             break; | ||||||
|  |         case 6: | ||||||
|  |             reg_value = -12; | ||||||
|  |             break; | ||||||
|  |         case 7: | ||||||
|  |             reg_value = -10; | ||||||
|  |             break; | ||||||
|  |         case 8: | ||||||
|  |             reg_value = -9; | ||||||
|  |             break; | ||||||
|  |         case 9: | ||||||
|  |             reg_value = -8; | ||||||
|  |             break; | ||||||
|  |         case 10: | ||||||
|  |             reg_value = -7; | ||||||
|  |             break; | ||||||
|  |         case 11: | ||||||
|  |             reg_value = -6; | ||||||
|  |             break; | ||||||
|  |         case 12: | ||||||
|  |             reg_value = -5; | ||||||
|  |             break; | ||||||
|  |         case 13: | ||||||
|  |             reg_value = -4; | ||||||
|  |             break; | ||||||
|  |         case 14: | ||||||
|  |             reg_value = -3; | ||||||
|  |             break; | ||||||
|  |         case 15: | ||||||
|  |             reg_value = -2; | ||||||
|  |             break; | ||||||
|  |         case 16: | ||||||
|  |             reg_value = -1; | ||||||
|  |             break; | ||||||
|  |         case 17: | ||||||
|  |             reg_value = 0; | ||||||
|  |             break; | ||||||
|  |         case 18: | ||||||
|  |             reg_value = 1; | ||||||
|  |             break; | ||||||
|  |         case 19: | ||||||
|  |             reg_value = 2; | ||||||
|  |             break; | ||||||
|  |         case 20: | ||||||
|  |             reg_value = 3; | ||||||
|  |             break; | ||||||
|  |         case 21: | ||||||
|  |             reg_value = 4; | ||||||
|  |             break; | ||||||
|  |         case 22: | ||||||
|  |             reg_value = 5; | ||||||
|  |             break; | ||||||
|  |         case 23: | ||||||
|  |             reg_value = 6; | ||||||
|  |             break; | ||||||
|  |         case 24: | ||||||
|  |             reg_value = 8; | ||||||
|  |             break; | ||||||
|  |         case 25: | ||||||
|  |             reg_value = 9; | ||||||
|  |             break; | ||||||
|  |         case 26: | ||||||
|  |             reg_value = 12; | ||||||
|  |             break; | ||||||
|  |         case 27: | ||||||
|  |             reg_value = 13; | ||||||
|  |             break; | ||||||
|  |         default: | ||||||
|  |             reg_value = 0; | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     tx_buf[0] = reg_value; | ||||||
|  |     tx_buf[1] = 0xE0; // ramping time - 20 microseconds
 | ||||||
|  | 
 | ||||||
|  |     executeOpcode(OP_TX_PARAMS_8X, tx_buf, 2); | ||||||
|  | 
 | ||||||
|  |     #elif BOARD_VARIANT == MODEL_A5 | ||||||
|  |     // T3S3 SX1280 PA
 | ||||||
|  |         if (level > 20) { | ||||||
|  |             level = 20; | ||||||
|         } else if (level < 0) { |         } else if (level < 0) { | ||||||
|             level = 0; |             level = 0; | ||||||
|         } |         } | ||||||
| @ -2206,7 +2313,7 @@ void sx128x::setTxPower(int level, int outputPin) { | |||||||
|         int reg_value; |         int reg_value; | ||||||
| 
 | 
 | ||||||
|         switch (level) { |         switch (level) { | ||||||
|             case 0: |             /*case 0:
 | ||||||
|                 reg_value = -18; |                 reg_value = -18; | ||||||
|                 break; |                 break; | ||||||
|             case 1: |             case 1: | ||||||
| @ -2265,57 +2372,31 @@ void sx128x::setTxPower(int level, int outputPin) { | |||||||
|                 break; |                 break; | ||||||
|             case 19: |             case 19: | ||||||
|                 reg_value = 2; |                 reg_value = 2; | ||||||
|                 break; |                 break;*/ | ||||||
|             case 20: |             case 20: | ||||||
|                 reg_value = 3; |                 reg_value = 3; | ||||||
|                 break; |                 break; | ||||||
|             case 21: |             default: | ||||||
|                 reg_value = 4; |                 reg_value = 0; | ||||||
|                 break; |  | ||||||
|             case 22: |  | ||||||
|                 reg_value = 5; |  | ||||||
|                 break; |  | ||||||
|             case 23: |  | ||||||
|                 reg_value = 6; |  | ||||||
|                 break; |  | ||||||
|             case 24: |  | ||||||
|                 reg_value = 8; |  | ||||||
|                 break; |  | ||||||
|             case 25: |  | ||||||
|                 reg_value = 9; |  | ||||||
|                 break; |  | ||||||
|             case 26: |  | ||||||
|                 reg_value = 12; |  | ||||||
|                 break; |  | ||||||
|             case 27: |  | ||||||
|                 reg_value = 13; |  | ||||||
|                 break; |                 break; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| 
 |         tx_buf[0] = level; | ||||||
|         uint8_t tx_buf[2]; |  | ||||||
| 
 |  | ||||||
|         tx_buf[0] = reg_value; |  | ||||||
|         tx_buf[1] = 0xE0; // ramping time - 20 microseconds
 |         tx_buf[1] = 0xE0; // ramping time - 20 microseconds
 | ||||||
| 
 |     #else | ||||||
|         executeOpcode(OP_TX_PARAMS_8X, tx_buf, 2); |     // For SX1280 boards with no specific PA requirements
 | ||||||
|     } else { |  | ||||||
|         if (level > 13) { |         if (level > 13) { | ||||||
|             level = 13; |             level = 13; | ||||||
|         } else if (level < -18) { |         } else if (level < -18) { | ||||||
|             level = -18; |             level = -18; | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|         _txp = level; |         _txp = level; | ||||||
| 
 | 
 | ||||||
|         level = level + 18; |  | ||||||
| 
 |  | ||||||
|         uint8_t tx_buf[2]; |  | ||||||
| 
 |  | ||||||
|         tx_buf[0] = level; |         tx_buf[0] = level; | ||||||
|         tx_buf[1] = 0xE0; // ramping time - 20 microseconds
 |         tx_buf[1] = 0xE0; // ramping time - 20 microseconds
 | ||||||
| 
 |     #endif | ||||||
|         executeOpcode(OP_TX_PARAMS_8X, tx_buf, 2); |     executeOpcode(OP_TX_PARAMS_8X, tx_buf, 2); | ||||||
|     } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint8_t sx128x::getTxPower() { | uint8_t sx128x::getTxPower() { | ||||||
|  | |||||||
| @ -984,6 +984,7 @@ void setTXPower(RadioInterface* radio, int txp) { | |||||||
|     if (model == MODEL_A2) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); |     if (model == MODEL_A2) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); | ||||||
|     if (model == MODEL_A3) radio->setTxPower(txp, PA_OUTPUT_RFO_PIN); |     if (model == MODEL_A3) radio->setTxPower(txp, PA_OUTPUT_RFO_PIN); | ||||||
|     if (model == MODEL_A4) radio->setTxPower(txp, PA_OUTPUT_RFO_PIN); |     if (model == MODEL_A4) radio->setTxPower(txp, PA_OUTPUT_RFO_PIN); | ||||||
|  |     if (model == MODEL_A5) radio->setTxPower(txp, PA_OUTPUT_RFO_PIN); | ||||||
|     if (model == MODEL_A6) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); |     if (model == MODEL_A6) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); | ||||||
|     if (model == MODEL_A7) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); |     if (model == MODEL_A7) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); | ||||||
|     if (model == MODEL_A8) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); |     if (model == MODEL_A8) radio->setTxPower(txp, PA_OUTPUT_PA_BOOST_PIN); | ||||||
| @ -1333,7 +1334,7 @@ bool eeprom_model_valid() { | |||||||
| 	#elif BOARD_MODEL == BOARD_RNODE_NG_21 | 	#elif BOARD_MODEL == BOARD_RNODE_NG_21 | ||||||
| 	if (model == MODEL_A2 || model == MODEL_A7) { | 	if (model == MODEL_A2 || model == MODEL_A7) { | ||||||
| 	#elif BOARD_MODEL == BOARD_T3S3 | 	#elif BOARD_MODEL == BOARD_T3S3 | ||||||
| 	if (model == MODEL_A1 || model == MODEL_A6) { | 	if (model == MODEL_A1 || model == MODEL_A5 || model == MODEL_A6) { | ||||||
| 	#elif BOARD_MODEL == BOARD_HMBRW | 	#elif BOARD_MODEL == BOARD_HMBRW | ||||||
| 	if (model == MODEL_FF || model == MODEL_FE) { | 	if (model == MODEL_FF || model == MODEL_FE) { | ||||||
| 	#elif BOARD_MODEL == BOARD_TBEAM | 	#elif BOARD_MODEL == BOARD_TBEAM | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user