4141RNS .logtimefmt = "%H:%M:%S"
4242RNS .compact_log_fmt = True
4343
44- program_version = "2.2 .0"
44+ program_version = "2.3 .0"
4545eth_addr = "0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73"
4646btc_addr = "35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH"
4747xmr_addr = "87HcDx6jRSkMQ9nPRd5K9hGGpZLn2s7vWETjMaVM5KfV4TD36NcYa8J8WSxhTSvBzzFpqDwp2fg5GX2moZ7VAP9QMZCZGET"
@@ -123,77 +123,80 @@ def escape(data):
123123 return data
124124
125125class ROM ():
126- PLATFORM_AVR = 0x90
127- PLATFORM_ESP32 = 0x80
128- PLATFORM_NRF52 = 0x70
129-
130- MCU_1284P = 0x91
131- MCU_2560 = 0x92
132- MCU_ESP32 = 0x81
133- MCU_NRF52 = 0x71
134-
135- PRODUCT_RNODE = 0x03
136- MODEL_A1 = 0xA1
137- MODEL_A6 = 0xA6
138- MODEL_A4 = 0xA4
139- MODEL_A9 = 0xA9
140- MODEL_A3 = 0xA3
141- MODEL_A8 = 0xA8
142- MODEL_A2 = 0xA2
143- MODEL_A7 = 0xA7
144- MODEL_A5 = 0xA5
145- MODEL_AA = 0xAA
146- MODEL_AC = 0xAC
147-
148- PRODUCT_T32_10 = 0xB2
149- MODEL_BA = 0xBA
150- MODEL_BB = 0xBB
151-
152- PRODUCT_T32_20 = 0xB0
153- MODEL_B3 = 0xB3
154- MODEL_B8 = 0xB8
155-
156- PRODUCT_T32_21 = 0xB1
157- MODEL_B4 = 0xB4
158- MODEL_B9 = 0xB9
159- MODEL_B4_TCXO = 0x04 # The TCXO model codes are only used here to select the
160- MODEL_B9_TCXO = 0x09 # correct firmware, actual model codes in firmware is
161- # still 0xB4 and 0xB9.
162-
163- PRODUCT_H32_V2 = 0xC0
164- MODEL_C4 = 0xC4
165- MODEL_C9 = 0xC9
166-
167- PRODUCT_H32_V3 = 0xC1
168- MODEL_C5 = 0xC5
169- MODEL_CA = 0xCA
170-
171- PRODUCT_TBEAM = 0xE0
172- MODEL_E4 = 0xE4
173- MODEL_E9 = 0xE9
174- MODEL_E3 = 0xE3
175- MODEL_E8 = 0xE8
176-
177- PRODUCT_TBEAM_S_V1 = 0xEA
178- MODEL_DB = 0xDB
179- MODEL_DC = 0xDC
180-
181- PRODUCT_TDECK = 0xD0
182- MODEL_D4 = 0xD4
183- MODEL_D9 = 0xD9
184-
185- PRODUCT_RAK4631 = 0x10
186- MODEL_11 = 0x11
187- MODEL_12 = 0x12
188- MODEL_13 = 0x13
189- MODEL_14 = 0x14
190- PRODUCT_OPENCOM_XL = 0x20
191- MODEL_21 = 0x21
192-
193-
194- PRODUCT_TECHO = 0x15
195- MODEL_T4 = 0x16
196- MODEL_T9 = 0x17
126+ PLATFORM_AVR = 0x90
127+ PLATFORM_ESP32 = 0x80
128+ PLATFORM_NRF52 = 0x70
129+
130+ MCU_1284P = 0x91
131+ MCU_2560 = 0x92
132+ MCU_ESP32 = 0x81
133+ MCU_NRF52 = 0x71
134+
135+ PRODUCT_RNODE = 0x03
136+ MODEL_A1 = 0xA1
137+ MODEL_A6 = 0xA6
138+ MODEL_A4 = 0xA4
139+ MODEL_A9 = 0xA9
140+ MODEL_A3 = 0xA3
141+ MODEL_A8 = 0xA8
142+ MODEL_A2 = 0xA2
143+ MODEL_A7 = 0xA7
144+ MODEL_A5 = 0xA5
145+ MODEL_AA = 0xAA
146+ MODEL_AC = 0xAC
147+
148+ PRODUCT_T32_10 = 0xB2
149+ MODEL_BA = 0xBA
150+ MODEL_BB = 0xBB
151+
152+ PRODUCT_T32_20 = 0xB0
153+ MODEL_B3 = 0xB3
154+ MODEL_B8 = 0xB8
155+
156+ PRODUCT_T32_21 = 0xB1
157+ MODEL_B4 = 0xB4
158+ MODEL_B9 = 0xB9
159+ MODEL_B4_TCXO = 0x04 # The TCXO model codes are only used here to select the correct firmware,
160+ MODEL_B9_TCXO = 0x09 # actual model codes in firmware is still 0xB4 and 0xB9.
161+ PRODUCT_H32_V2 = 0xC0
162+ MODEL_C4 = 0xC4
163+ MODEL_C9 = 0xC9
164+
165+ PRODUCT_H32_V3 = 0xC1
166+ MODEL_C5 = 0xC5
167+ MODEL_CA = 0xCA
168+
169+ PRODUCT_TBEAM = 0xE0
170+ MODEL_E4 = 0xE4
171+ MODEL_E9 = 0xE9
172+ MODEL_E3 = 0xE3
173+ MODEL_E8 = 0xE8
174+
175+ PRODUCT_TBEAM_S_V1 = 0xEA
176+ MODEL_DB = 0xDB
177+ MODEL_DC = 0xDC
178+
179+ PRODUCT_TDECK = 0xD0
180+ MODEL_D4 = 0xD4
181+ MODEL_D9 = 0xD9
182+
183+ PRODUCT_RAK4631 = 0x10
184+ MODEL_11 = 0x11
185+ MODEL_12 = 0x12
186+ MODEL_13 = 0x13
187+ MODEL_14 = 0x14
188+
189+ PRODUCT_OPENCOM_XL = 0x20
190+ MODEL_21 = 0x21
191+
192+ PRODUCT_TECHO = 0x15
193+ MODEL_T4 = 0x16
194+ MODEL_T9 = 0x17
195+
196+ PRODUCT_HELTEC_T114 = 0xC2
197+ BOARD_HELTEC_T114 = 0x3C
198+ MODEL_C6 = 0xC6 # Heltec Mesh Node T114, 470-510 MHz (HT-n5262-LF)
199+ MODEL_C7 = 0xC7 # Heltec Mesh Node T114, 863-928 MHz (HT-n5262-HF)
197200
198201 PRODUCT_HMBRW = 0xF0
199202 MODEL_FF = 0xFF
@@ -245,6 +248,7 @@ class ROM():
245248 ROM .PRODUCT_TECHO : "LilyGO T-Echo" ,
246249 ROM .PRODUCT_RAK4631 : "RAK4631" ,
247250 ROM .PRODUCT_OPENCOM_XL : "openCom XL" ,
251+ ROM .PRODUCT_HELTEC_T114 : "Heltec Mesh Node T114" ,
248252}
249253
250254platforms = {
@@ -282,8 +286,10 @@ class ROM():
282286 0xBB : [850000000 , 950000000 , 17 , "850 - 950 MHz" , "rnode_firmware_lora32v10.zip" , "SX1276" ],
283287 0xC4 : [420000000 , 520000000 , 17 , "420 - 520 MHz" , "rnode_firmware_heltec32v2.zip" , "SX1278" ],
284288 0xC9 : [850000000 , 950000000 , 17 , "850 - 950 MHz" , "rnode_firmware_heltec32v2.zip" , "SX1276" ],
285- 0xC5 : [420000000 , 520000000 , 21 , "420 - 520 MHz" , "rnode_firmware_heltec32v3.zip" , "SX1268" ],
286- 0xCA : [850000000 , 950000000 , 21 , "850 - 950 MHz" , "rnode_firmware_heltec32v3.zip" , "SX1262" ],
289+ 0xC5 : [420000000 , 520000000 , 22 , "420 - 520 MHz" , "rnode_firmware_heltec32v3.zip" , "SX1268" ],
290+ 0xCA : [850000000 , 950000000 , 22 , "850 - 950 MHz" , "rnode_firmware_heltec32v3.zip" , "SX1262" ],
291+ 0xC6 : [420000000 , 520000000 , 22 , "420 - 520 MHz" , "rnode_firmware_heltec_t114.zip" , "SX1268" ],
292+ 0xC7 : [850000000 , 950000000 , 22 , "850 - 950 MHz" , "rnode_firmware_heltec_t114.zip" , "SX1262" ],
287293 0xE4 : [420000000 , 520000000 , 17 , "420 - 520 MHz" , "rnode_firmware_tbeam.zip" , "SX1278" ],
288294 0xE9 : [850000000 , 950000000 , 17 , "850 - 950 MHz" , "rnode_firmware_tbeam.zip" , "SX1276" ],
289295 0xD4 : [420000000 , 520000000 , 22 , "420 - 520 MHz" , "rnode_firmware_tdeck.zip" , "SX1268" ],
@@ -1166,9 +1172,10 @@ def ensure_firmware_file(fw_filename):
11661172 RNS .log ("The selected firmware for this board is version " + selected_version )
11671173
11681174 else :
1169- RNS .log ("Online firmware version check was disabled, but no firmware version specified for install." )
1170- RNS .log ("use the --fw-version option to manually specify a version." )
1171- graceful_exit (98 )
1175+ if selected_version == None :
1176+ RNS .log ("Online firmware version check was disabled, but no firmware version specified for install." )
1177+ RNS .log ("use the --fw-version option to manually specify a version." )
1178+ graceful_exit (98 )
11721179
11731180 # if custom firmware url, use it
11741181 if fw_url != None :
@@ -1661,30 +1668,31 @@ def print_donation_block():
16611668
16621669 print ("" )
16631670 print ("What kind of device is this?\n " )
1664- print ("[1] A specific kind of RNode" )
1665- print (" ." )
1666- print (" / \\ Select this option if you have an RNode of a specific " )
1667- print (" | type, built from a recipe or bought from a vendor. " )
1671+ print (" | Select this option if you have an RNode of a specific " )
1672+ print (" \\ / type, built from a recipe or bought from a vendor ." )
1673+ print (" ' " )
1674+ print ("[1] A specific kind of RNode " )
16681675 print ("" )
1669- print ("[2] Homebrew RNode" )
1670- print (" ." )
1671- print (" / \\ Select this option if you have put toghether an RNode " )
1672- print (" | of your own design, or if you are prototyping one. " )
1676+ print (" | Select this option if you have put toghether an RNode" )
1677+ print (" \\ / of your own design, or if you are prototyping one ." )
1678+ print (" ' " )
1679+ print ("[2] Homebrew RNode " )
16731680 print ("" )
1674- print ("[3] LilyGO LoRa32 v2.1 (aka T3 v1.6 / T3 v1.6.1)" )
1675- print ("[4] LilyGO LoRa32 v2.0" )
1676- print ("[5] LilyGO LoRa32 v1.0" )
1677- print ("[6] LilyGO T-Beam" )
1678- print ("[7] Heltec LoRa32 v2" )
1679- print ("[8] Heltec LoRa32 v3" )
1680- print ("[9] LilyGO LoRa T3S3" )
1681+ print (" | Select one of these options if you want to easily turn" )
1682+ print (" \\ / a supported development board into an RNode." )
1683+ print (" '" )
1684+ print ("[3] LilyGO LoRa32 v2.1 (aka T3 v1.6 / T3 v1.6.1)" )
1685+ print ("[4] LilyGO LoRa32 v2.0" )
1686+ print ("[5] LilyGO LoRa32 v1.0" )
1687+ print ("[6] LilyGO T-Beam" )
1688+ print ("[7] Heltec LoRa32 v2" )
1689+ print ("[8] Heltec LoRa32 v3" )
1690+ print ("[9] LilyGO LoRa T3S3" )
16811691 print ("[10] RAK4631" )
16821692 print ("[11] LilyGo T-Echo" )
16831693 print ("[12] LilyGO T-Beam Supreme" )
16841694 print ("[13] LilyGO T-Deck" )
1685- print (" ." )
1686- print (" / \\ Select one of these options if you want to easily turn" )
1687- print (" | a supported development board into an RNode." )
1695+ print ("[14] Heltec T114" )
16881696 print ("" )
16891697 print ("---------------------------------------------------------------------------" )
16901698 print ("\n Enter the number that matches your device type:\n ? " , end = "" )
@@ -1693,7 +1701,7 @@ def print_donation_block():
16931701 try :
16941702 c_dev = int (input ())
16951703 c_mod = False
1696- if c_dev < 1 or c_dev > 13 :
1704+ if c_dev < 1 or c_dev > 14 :
16971705 raise ValueError ()
16981706 elif c_dev == 1 :
16991707 selected_product = ROM .PRODUCT_RNODE
@@ -1876,6 +1884,20 @@ def print_donation_block():
18761884 print ("who would like to experiment with it. Hit enter to continue." )
18771885 print ("---------------------------------------------------------------------------" )
18781886 input ()
1887+ elif c_dev == 14 :
1888+ selected_product = ROM .PRODUCT_HELTEC_T114
1889+ clear ()
1890+ print ("" )
1891+ print ("---------------------------------------------------------------------------" )
1892+ print (" Heltec T114 RNode Installer" )
1893+ print ("" )
1894+ print ("Important! Using RNode firmware on Heltec T114 devices should currently be" )
1895+ print ("considered experimental. It is not intended for production or critical use." )
1896+ print ("The currently supplied firmware is provided AS-IS as a courtesey to those" )
1897+ print ("who would like to experiment with it. Hit enter to continue." )
1898+ print ("---------------------------------------------------------------------------" )
1899+ input ()
1900+
18791901 except Exception as e :
18801902 print ("That device type does not exist, exiting now." )
18811903 graceful_exit ()
@@ -2192,6 +2214,28 @@ def print_donation_block():
21922214 except Exception as e :
21932215 print ("That band does not exist, exiting now." )
21942216 exit ()
2217+
2218+ elif selected_product == ROM .PRODUCT_HELTEC_T114 :
2219+ selected_mcu = ROM .MCU_NRF52
2220+ print ("\n What band is this Heltec T114 for?\n " )
2221+ print ("[1] 433 MHz" )
2222+ print ("[2] 868 MHz" )
2223+ print ("[3] 915 MHz" )
2224+ print ("[4] 923 MHz" )
2225+ try :
2226+ c_model = int (input ())
2227+ if c_model < 1 or c_model > 4 :
2228+ raise ValueError ()
2229+ elif c_model == 1 :
2230+ selected_model = ROM .MODEL_C6
2231+ selected_platform = ROM .PLATFORM_NRF52
2232+ elif c_model > 1 :
2233+ selected_model = ROM .MODEL_C7
2234+ selected_platform = ROM .PLATFORM_NRF52
2235+ except Exception as e :
2236+ print ("That band does not exist, exiting now." )
2237+ exit ()
2238+
21952239 elif selected_product == ROM .PRODUCT_RAK4631 :
21962240 selected_mcu = ROM .MCU_NRF52
21972241 print ("\n What band is this RAK4631 for?\n " )
0 commit comments