Skip to content

Commit e2ea397

Browse files
committed
Added Heltec v4 to rnodeconf
1 parent 25a73e6 commit e2ea397

File tree

1 file changed

+75
-15
lines changed

1 file changed

+75
-15
lines changed

RNS/Utilities/rnodeconf.py

Lines changed: 75 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ class ROM():
167167
MODEL_B9 = 0xB9
168168
MODEL_B4_TCXO = 0x04 # The TCXO model codes are only used here to select the correct firmware,
169169
MODEL_B9_TCXO = 0x09 # actual model codes in firmware is still 0xB4 and 0xB9.
170+
170171
PRODUCT_H32_V2 = 0xC0
171172
MODEL_C4 = 0xC4
172173
MODEL_C9 = 0xC9
@@ -175,6 +176,9 @@ class ROM():
175176
MODEL_C5 = 0xC5
176177
MODEL_CA = 0xCA
177178

179+
PRODUCT_H32_V4 = 0xC3
180+
MODEL_C8 = 0xC8 # 868/915/923 MHz with PA
181+
178182
PRODUCT_TBEAM = 0xE0
179183
MODEL_E4 = 0xE4
180184
MODEL_E9 = 0xE9
@@ -270,6 +274,7 @@ class ROM():
270274
ROM.PRODUCT_T32_21: "LilyGO LoRa32 v2.1",
271275
ROM.PRODUCT_H32_V2: "Heltec LoRa32 v2",
272276
ROM.PRODUCT_H32_V3: "Heltec LoRa32 v3",
277+
ROM.PRODUCT_H32_V4: "Heltec LoRa32 v4",
273278
ROM.PRODUCT_TECHO: "LilyGO T-Echo",
274279
ROM.PRODUCT_RAK4631: "RAK4631",
275280
ROM.PRODUCT_OPENCOM_XL: "openCom XL",
@@ -314,6 +319,7 @@ class ROM():
314319
0xC9: [850000000, 950000000, 17, "850 - 950 MHz", "rnode_firmware_heltec32v2.zip", "SX1276"],
315320
0xC5: [420000000, 520000000, 22, "420 - 520 MHz", "rnode_firmware_heltec32v3.zip", "SX1268"],
316321
0xCA: [850000000, 950000000, 22, "850 - 950 MHz", "rnode_firmware_heltec32v3.zip", "SX1262"],
322+
0xC8: [850000000, 950000000, 22, "850 - 950 MHz", "rnode_firmware_heltec32v4pa.zip", "SX1262"],
317323
0xC6: [420000000, 520000000, 22, "420 - 520 MHz", "rnode_firmware_heltec_t114.zip", "SX1268"],
318324
0xC7: [850000000, 950000000, 22, "850 - 950 MHz", "rnode_firmware_heltec_t114.zip", "SX1262"],
319325
0xE4: [420000000, 520000000, 17, "420 - 520 MHz", "rnode_firmware_tbeam.zip", "SX1278"],
@@ -1730,13 +1736,14 @@ def print_donation_block():
17301736
print("[6] LilyGO T-Beam")
17311737
print("[7] Heltec LoRa32 v2")
17321738
print("[8] Heltec LoRa32 v3")
1733-
print("[9] LilyGO LoRa T3S3")
1734-
print("[10] RAK4631")
1735-
print("[11] LilyGo T-Echo")
1736-
print("[12] LilyGO T-Beam Supreme")
1737-
print("[13] LilyGO T-Deck")
1738-
print("[14] Heltec T114")
1739-
print("[15] Seeed XIAO ESP32S3 Wio-SX1262")
1739+
print("[9] Heltec LoRa32 v4")
1740+
print("[10] LilyGO LoRa T3S3")
1741+
print("[11] RAK4631")
1742+
print("[12] LilyGo T-Echo")
1743+
print("[13] LilyGO T-Beam Supreme")
1744+
print("[14] LilyGO T-Deck")
1745+
print("[15] Heltec T114")
1746+
print("[16] Seeed XIAO ESP32S3 Wio-SX1262")
17401747
print("")
17411748
print("---------------------------------------------------------------------------")
17421749
print("\nEnter the number that matches your device type:\n? ", end="")
@@ -1745,7 +1752,7 @@ def print_donation_block():
17451752
try:
17461753
c_dev = int(input())
17471754
c_mod = False
1748-
if c_dev < 1 or c_dev > 15:
1755+
if c_dev < 1 or c_dev > 16:
17491756
raise ValueError()
17501757
elif c_dev == 1:
17511758
selected_product = ROM.PRODUCT_RNODE
@@ -1782,7 +1789,7 @@ def print_donation_block():
17821789
print("who would like to experiment with it. Hit enter to continue.")
17831790
print("---------------------------------------------------------------------------")
17841791
input()
1785-
elif c_dev == 12:
1792+
elif c_dev == 13:
17861793
selected_product = ROM.PRODUCT_TBEAM_S_V1
17871794
clear()
17881795
print("")
@@ -1798,7 +1805,7 @@ def print_donation_block():
17981805
print("who would like to experiment with it. Hit enter to continue.")
17991806
print("---------------------------------------------------------------------------")
18001807
input()
1801-
elif c_dev == 13:
1808+
elif c_dev == 14:
18021809
selected_product = ROM.PRODUCT_TDECK
18031810
clear()
18041811
print("")
@@ -1873,7 +1880,7 @@ def print_donation_block():
18731880
print("who would like to experiment with it. Hit enter to continue.")
18741881
print("---------------------------------------------------------------------------")
18751882
input()
1876-
elif c_dev == 9:
1883+
elif c_dev == 10:
18771884
selected_product = ROM.PRODUCT_RNODE
18781885
c_mod = True
18791886
clear()
@@ -1902,7 +1909,21 @@ def print_donation_block():
19021909
print("who would like to experiment with it. Hit enter to continue.")
19031910
print("---------------------------------------------------------------------------")
19041911
input()
1905-
elif c_dev == 10:
1912+
elif c_dev == 9:
1913+
selected_product = ROM.PRODUCT_H32_V4
1914+
clear()
1915+
print("")
1916+
print("---------------------------------------------------------------------------")
1917+
print(" Heltec LoRa32 v4 RNode Installer")
1918+
print("")
1919+
print("Important! Using RNode firmware on Heltec devices should currently be")
1920+
print("considered experimental. It is not intended for production or critical use.")
1921+
print("")
1922+
print("The currently supplied firmware is provided AS-IS as a courtesy to those")
1923+
print("who would like to experiment with it. Hit enter to continue.")
1924+
print("---------------------------------------------------------------------------")
1925+
input()
1926+
elif c_dev == 11:
19061927
selected_product = ROM.PRODUCT_RAK4631
19071928
clear()
19081929
print("")
@@ -1915,7 +1936,7 @@ def print_donation_block():
19151936
print("who would like to experiment with it. Hit enter to continue.")
19161937
print("---------------------------------------------------------------------------")
19171938
input()
1918-
elif c_dev == 11:
1939+
elif c_dev == 12:
19191940
selected_product = ROM.PRODUCT_TECHO
19201941
clear()
19211942
print("")
@@ -1928,7 +1949,7 @@ def print_donation_block():
19281949
print("who would like to experiment with it. Hit enter to continue.")
19291950
print("---------------------------------------------------------------------------")
19301951
input()
1931-
elif c_dev == 14:
1952+
elif c_dev == 15:
19321953
selected_product = ROM.PRODUCT_HELTEC_T114
19331954
clear()
19341955
print("")
@@ -1941,7 +1962,7 @@ def print_donation_block():
19411962
print("who would like to experiment with it. Hit enter to continue.")
19421963
print("---------------------------------------------------------------------------")
19431964
input()
1944-
elif c_dev == 15:
1965+
elif c_dev == 16:
19451966
selected_product = ROM.PRODUCT_XIAO_S3
19461967
clear()
19471968
print("")
@@ -2264,6 +2285,7 @@ def print_donation_block():
22642285
print("[2] 868 MHz")
22652286
print("[3] 915 MHz")
22662287
print("[4] 923 MHz")
2288+
print("\n? ", end="")
22672289
try:
22682290
c_model = int(input())
22692291
if c_model < 1 or c_model > 4:
@@ -2278,13 +2300,32 @@ def print_donation_block():
22782300
print("That band does not exist, exiting now.")
22792301
exit()
22802302

2303+
elif selected_product == ROM.PRODUCT_H32_V4:
2304+
selected_mcu = ROM.MCU_ESP32
2305+
print("\nWhat band is this Heltec LoRa32 V4 for?\n")
2306+
print("[1] 868 MHz (28 dBm output)")
2307+
print("[2] 915 MHz (28 dBm output)")
2308+
print("[3] 923 MHz (28 dBm output)")
2309+
print("\n? ", end="")
2310+
try:
2311+
c_model = int(input())
2312+
if c_model < 1 or c_model > 3:
2313+
raise ValueError()
2314+
else:
2315+
selected_model = ROM.MODEL_C8
2316+
selected_platform = ROM.PLATFORM_ESP32
2317+
except Exception as e:
2318+
print("That band does not exist, exiting now.")
2319+
exit()
2320+
22812321
elif selected_product == ROM.PRODUCT_HELTEC_T114:
22822322
selected_mcu = ROM.MCU_NRF52
22832323
print("\nWhat band is this Heltec T114 for?\n")
22842324
print("[1] 433 MHz")
22852325
print("[2] 868 MHz")
22862326
print("[3] 915 MHz")
22872327
print("[4] 923 MHz")
2328+
print("\n? ", end="")
22882329
try:
22892330
c_model = int(input())
22902331
if c_model < 1 or c_model > 4:
@@ -2304,6 +2345,7 @@ def print_donation_block():
23042345
print("\nWhat band is this XIAO esp32s3 wio module for?\n")
23052346
print("[1] 433 MHz")
23062347
print("[2] 868 MHz")
2348+
print("\n? ", end="")
23072349
try:
23082350
c_model = int(input())
23092351
if c_model < 1 or c_model > 2:
@@ -2875,6 +2917,24 @@ def get_flasher_call(platform, fw_filename):
28752917
"0x210000",UPD_DIR+"/"+selected_version+"/console_image.bin",
28762918
"0x8000", UPD_DIR+"/"+selected_version+"/rnode_firmware_heltec32v3.partitions",
28772919
]
2920+
elif fw_filename == "rnode_firmware_heltec32v4pa.zip":
2921+
return [
2922+
sys.executable, flasher,
2923+
"--chip", "esp32-s3",
2924+
"--port", args.port,
2925+
"--baud", args.baud_flash,
2926+
"--before", "default_reset",
2927+
"--after", "hard_reset",
2928+
"write_flash", "-z",
2929+
"--flash_mode", "dio",
2930+
"--flash_freq", "80m",
2931+
"--flash_size", "16MB",
2932+
"0xe000", UPD_DIR+"/"+selected_version+"/rnode_firmware_heltec32v4pa.boot_app0",
2933+
"0x0", UPD_DIR+"/"+selected_version+"/rnode_firmware_heltec32v4pa.bootloader",
2934+
"0x10000", UPD_DIR+"/"+selected_version+"/rnode_firmware_heltec32v4pa.bin",
2935+
"0x210000",UPD_DIR+"/"+selected_version+"/console_image.bin",
2936+
"0x8000", UPD_DIR+"/"+selected_version+"/rnode_firmware_heltec32v4pa.partitions",
2937+
]
28782938
elif fw_filename == "rnode_firmware_featheresp32.zip":
28792939
if numeric_version >= 1.55:
28802940
return [

0 commit comments

Comments
 (0)