Files
NecroHash/switch_mode.py
2026-01-21 15:05:30 +00:00

59 lines
1.5 KiB
Python

import serial
import time
import glob
import binascii
import sys
# Gridseed Befehle (Hex Strings)
# Scrypt Reset: 55AA1F2816000000 + 55AA1F2817000000
# SHA256 Reset (Vermutung/Standard): 55AA1F2800000000
# Init: 55AAC000C0C0C0C00500000001000000
CMDS = {
"1": ("SHA256 Force (00)", "55AA1F2800000000"),
"2": ("Scrypt Force (16)", "55AA1F2816000000"),
"3": ("Dual/Unkown (04)", "55AA1F2804000000"),
"4": ("Reset Chip", "55AAC000808080800000000001000000"),
"5": ("Full Init", "55AAC000C0C0C0C00500000001000000")
}
def send_command(port, hex_cmd):
try:
ser = serial.Serial(port, 115200, timeout=1)
cmd_bytes = binascii.unhexlify(hex_cmd)
print(f"Sending to {port}: {hex_cmd}")
ser.write(cmd_bytes)
time.sleep(0.1)
ser.close()
return True
except Exception as e:
print(f"Error on {port}: {e}")
return False
def main():
print("=== Gridseed Mode Switcher ===")
print("Miner MUSS gestoppt sein!")
ports = glob.glob('/dev/ttyACM*')
if not ports:
print("Keine Gridseeds gefunden (/dev/ttyACM*)")
return
print(f"Gefundene Geräte: {ports}")
print("\nWähle Befehl:")
for k, v in CMDS.items():
print(f"{k}: {v[0]}")
choice = input("Auswahl (1-5): ")
if choice in CMDS:
desc, cmd = CMDS[choice]
print(f"Sende {desc}...")
for port in ports:
send_command(port, cmd)
else:
print("Ungültige Auswahl")
if __name__ == "__main__":
main()