epic: add BlockMiner eLITE, S19k Pro Dualie

This commit is contained in:
John-Paul Compagnone
2025-03-18 10:53:36 -04:00
committed by Brett Rowan
parent 640dc6d8c2
commit 655cf6d0ac
11 changed files with 64 additions and 3 deletions

View File

@@ -677,6 +677,19 @@
show_root_heading: false show_root_heading: false
heading_level: 0 heading_level: 0
## S19k Pro Dual (ePIC)
- [x] Shutdowns
- [ ] Power Modes
- [ ] Setpoints
- [ ] Presets
::: pyasic.miners.antminer.epic.X19.S19.ePICS19kProDual
handler: python
options:
show_root_heading: false
heading_level: 0
## S19 (Hive) ## S19 (Hive)
- [ ] Shutdowns - [ ] Shutdowns

View File

@@ -27,3 +27,16 @@
show_root_heading: false show_root_heading: false
heading_level: 0 heading_level: 0
## BlockMiner eLITE 1.0 (ePIC)
- [x] Shutdowns
- [ ] Power Modes
- [ ] Setpoints
- [ ] Presets
::: pyasic.miners.blockminer.epic.blockminer.blockminer.ePICBlockMinerELITEv1
handler: python
options:
show_root_heading: false
heading_level: 0

View File

@@ -736,6 +736,7 @@ details {
<li><a href="../antminer/X19#s19k-pro-epic">S19k Pro (ePIC)</a></li> <li><a href="../antminer/X19#s19k-pro-epic">S19k Pro (ePIC)</a></li>
<li><a href="../antminer/X19#s19-xp-epic">S19 XP (ePIC)</a></li> <li><a href="../antminer/X19#s19-xp-epic">S19 XP (ePIC)</a></li>
<li><a href="../antminer/X19#s19j-pro-dual-epic">S19j Pro Dual (ePIC)</a></li> <li><a href="../antminer/X19#s19j-pro-dual-epic">S19j Pro Dual (ePIC)</a></li>
<li><a href="../antminer/X19#s19k-pro-dual-epic">S19k Pro Dual (ePIC)</a></li>
</ul> </ul>
</details> </details>
<details> <details>
@@ -751,6 +752,7 @@ details {
<ul> <ul>
<li><a href="../blockminer/blockminer#blockminer-520i-epic">BlockMiner 520i (ePIC)</a></li> <li><a href="../blockminer/blockminer#blockminer-520i-epic">BlockMiner 520i (ePIC)</a></li>
<li><a href="../blockminer/blockminer#blockminer-720i-epic">BlockMiner 720i (ePIC)</a></li> <li><a href="../blockminer/blockminer#blockminer-720i-epic">BlockMiner 720i (ePIC)</a></li>
<li><a href="../blockminer/blockminer#blockminer-elite-1.0-epic">BlockMiner eLITE 1.0 (ePIC)</a></li>
</ul> </ul>
</details> </details>
</ul> </ul>

View File

@@ -480,7 +480,9 @@ class GoldshellModels(MinerModelType):
class ePICModels(MinerModelType): class ePICModels(MinerModelType):
BM520i = "BlockMiner 520i" BM520i = "BlockMiner 520i"
BM720i = "BlockMiner 720i" BM720i = "BlockMiner 720i"
eLITEv1 = "BlockMiner eLITE 1.0"
S19jProDual = "S19j Pro Dual" S19jProDual = "S19j Pro Dual"
S19kProDual = "S19k Pro Dual"
def __str__(self): def __str__(self):
return self.value return self.value

View File

@@ -59,3 +59,9 @@ class ePICS19jProDual(ePIC, S19jPro):
raw_model = MinerModel.EPIC.S19jProDual raw_model = MinerModel.EPIC.S19jProDual
expected_fans = S19jPro.expected_fans * 2 expected_fans = S19jPro.expected_fans * 2
expected_hashboards = S19jPro.expected_hashboards * 2 expected_hashboards = S19jPro.expected_hashboards * 2
class ePICS19kProDual(ePIC, S19kPro):
raw_model = MinerModel.EPIC.S19kProDual
expected_fans = S19kPro.expected_fans * 2
expected_hashboards = S19kPro.expected_hashboards * 2

View File

@@ -21,6 +21,7 @@ from .S19 import (
ePICS19jProDual, ePICS19jProDual,
ePICS19jProPlus, ePICS19jProPlus,
ePICS19kPro, ePICS19kPro,
ePICS19kProDual,
ePICS19Pro, ePICS19Pro,
ePICS19XP, ePICS19XP,
) )

View File

@@ -21,7 +21,7 @@ from pyasic.config import MinerConfig
from pyasic.data import Fan, HashBoard from pyasic.data import Fan, HashBoard
from pyasic.data.error_codes import MinerErrorData, X19Error from pyasic.data.error_codes import MinerErrorData, X19Error
from pyasic.data.pools import PoolMetrics, PoolUrl from pyasic.data.pools import PoolMetrics, PoolUrl
from pyasic.device.algorithm import AlgoHashRate from pyasic.device.algorithm import AlgoHashRate, ScryptAlgo
from pyasic.errors import APIError from pyasic.errors import APIError
from pyasic.logger import logger from pyasic.logger import logger
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
@@ -138,6 +138,8 @@ class ePIC(ePICFirmware):
await self.web.set_ptune_algo(conf["ptune"]) await self.web.set_ptune_algo(conf["ptune"])
## Pools ## Pools
if self.algo == ScryptAlgo:
conf["pools"]["coin"] = "Ltc"
await self.web.set_pools(conf["pools"]) await self.web.set_pools(conf["pools"])
except APIError: except APIError:
pass pass
@@ -338,6 +340,9 @@ class ePIC(ePICFirmware):
tuned = tuned and web_summary["Status"]["Operating State"] == "Mining" tuned = tuned and web_summary["Status"]["Operating State"] == "Mining"
active = active and web_summary["Status"]["Operating State"] == "Mining" active = active and web_summary["Status"]["Operating State"] == "Mining"
if web_capabilities is not None and self.expected_hashboards is None:
self.expected_hashboards = web_capabilities.get("Max HBs", 3)
hb_list = [ hb_list = [
HashBoard(slot=i, expected_chips=self.expected_chips) HashBoard(slot=i, expected_chips=self.expected_chips)
for i in range(self.expected_hashboards) for i in range(self.expected_hashboards)

View File

@@ -14,4 +14,4 @@
# limitations under the License. - # limitations under the License. -
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
from .blockminer import ePICBlockMiner520i, ePICBlockMiner720i from .blockminer import *

View File

@@ -15,7 +15,11 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
from pyasic.miners.backends import ePIC from pyasic.miners.backends import ePIC
from pyasic.miners.device.models import BlockMiner520i, BlockMiner720i from pyasic.miners.device.models import (
BlockMiner520i,
BlockMiner720i,
BlockMinerELITEv1,
)
class ePICBlockMiner520i(ePIC, BlockMiner520i): class ePICBlockMiner520i(ePIC, BlockMiner520i):
@@ -24,3 +28,7 @@ class ePICBlockMiner520i(ePIC, BlockMiner520i):
class ePICBlockMiner720i(ePIC, BlockMiner720i): class ePICBlockMiner720i(ePIC, BlockMiner720i):
pass pass
class ePICBlockMinerELITEv1(ePIC, BlockMinerELITEv1):
pass

View File

@@ -19,3 +19,12 @@ class BlockMiner720i(ePICMake):
expected_fans = 4 expected_fans = 4
expected_hashboards = 3 expected_hashboards = 3
algo = MinerAlgo.SHA256 algo = MinerAlgo.SHA256
class BlockMinerELITEv1(ePICMake):
raw_model = MinerModel.EPIC.eLITEv1
expected_chips = 105
expected_fans = 4
expected_hashboards = 3
algo = MinerAlgo.SCRYPT

View File

@@ -592,8 +592,10 @@ MINER_CLASSES = {
"ANTMINER S21 PRO": ePICS21Pro, "ANTMINER S21 PRO": ePICS21Pro,
"ANTMINER T21": ePICT21, "ANTMINER T21": ePICT21,
"ANTMINER S19J PRO DUAL": ePICS19jProDual, "ANTMINER S19J PRO DUAL": ePICS19jProDual,
"ANTMINER S19K PRO DUAL": ePICS19kProDual,
"BLOCKMINER 520I": ePICBlockMiner520i, "BLOCKMINER 520I": ePICBlockMiner520i,
"BLOCKMINER 720I": ePICBlockMiner720i, "BLOCKMINER 720I": ePICBlockMiner720i,
"BLOCKMINER ELITE V1.0": ePICBlockMinerELITEv1,
}, },
MinerTypes.HIVEON: { MinerTypes.HIVEON: {
None: HiveonModern, None: HiveonModern,