feature: add support for a couple alternate models

- Antminer S19j Pro+, ANTMINER
 - Antminer S19 Pro A, VNISH
 - Antminer S19 XP, VNISH
 - Antminer L9, VNISH
 - DG1, ELPHAPEX

 Fixes: #354
This commit is contained in:
Brett Rowan
2025-07-21 09:35:00 -06:00
parent 7ef2540133
commit d4500be10c
25 changed files with 173 additions and 12 deletions

View File

@@ -157,6 +157,19 @@
show_root_heading: false show_root_heading: false
heading_level: 0 heading_level: 0
## S19j Pro+ (Stock)
- [x] Shutdowns
- [x] Power Modes
- [ ] Setpoints
- [ ] Presets
::: pyasic.miners.antminer.bmminer.X19.S19.BMMinerS19jProPlus
handler: python
options:
show_root_heading: false
heading_level: 0
## S19j XP (Stock) ## S19j XP (Stock)
- [x] Shutdowns - [x] Shutdowns
@@ -482,6 +495,19 @@
show_root_heading: false show_root_heading: false
heading_level: 0 heading_level: 0
## S19 Pro A (VNish)
- [x] Shutdowns
- [ ] Power Modes
- [x] Setpoints
- [x] Presets
::: pyasic.miners.antminer.vnish.X19.S19.VNishS19ProA
handler: python
options:
show_root_heading: false
heading_level: 0
## S19 Pro Hydro (VNish) ## S19 Pro Hydro (VNish)
- [x] Shutdowns - [x] Shutdowns
@@ -495,6 +521,19 @@
show_root_heading: false show_root_heading: false
heading_level: 0 heading_level: 0
## S19 XP (VNish)
- [x] Shutdowns
- [ ] Power Modes
- [x] Setpoints
- [x] Presets
::: pyasic.miners.antminer.vnish.X19.S19.VNishS19XP
handler: python
options:
show_root_heading: false
heading_level: 0
## S19a (VNish) ## S19a (VNish)
- [x] Shutdowns - [x] Shutdowns

View File

@@ -73,7 +73,7 @@
- [x] Setpoints - [x] Setpoints
- [x] Presets - [x] Presets
::: pyasic.miners.antminer.vnish.X3.L3.VnishL3Plus ::: pyasic.miners.antminer.vnish.X3.L3.VNishL3Plus
handler: python handler: python
options: options:
show_root_heading: false show_root_heading: false

View File

@@ -47,7 +47,7 @@
- [x] Setpoints - [x] Setpoints
- [x] Presets - [x] Presets
::: pyasic.miners.antminer.vnish.X7.L7.VnishL7 ::: pyasic.miners.antminer.vnish.X7.L7.VNishL7
handler: python handler: python
options: options:
show_root_heading: false show_root_heading: false

View File

@@ -105,6 +105,19 @@
show_root_heading: false show_root_heading: false
heading_level: 0 heading_level: 0
## L9 (VNish)
- [x] Shutdowns
- [ ] Power Modes
- [x] Setpoints
- [x] Presets
::: pyasic.miners.antminer.vnish.X9.L9.VNishL9
handler: python
options:
show_root_heading: false
heading_level: 0
## T9 (Hive) ## T9 (Hive)
- [ ] Shutdowns - [ ] Shutdowns

View File

@@ -1,6 +1,19 @@
# pyasic # pyasic
## DGX Models ## DGX Models
## DG1 (Stock)
- [ ] Shutdowns
- [ ] Power Modes
- [ ] Setpoints
- [ ] Presets
::: pyasic.miners.elphapex.daoge.DGX.DG1.ElphapexDG1
handler: python
options:
show_root_heading: false
heading_level: 0
## DG1+ (Stock) ## DG1+ (Stock)
- [ ] Shutdowns - [ ] Shutdowns

View File

@@ -86,6 +86,7 @@ details {
<li><a href="../antminer/X19#s19j-no-pic-stock">S19j No PIC (Stock)</a></li> <li><a href="../antminer/X19#s19j-no-pic-stock">S19j No PIC (Stock)</a></li>
<li><a href="../antminer/X19#s19-pro_1-stock">S19 Pro+ (Stock)</a></li> <li><a href="../antminer/X19#s19-pro_1-stock">S19 Pro+ (Stock)</a></li>
<li><a href="../antminer/X19#s19j-pro-stock">S19j Pro (Stock)</a></li> <li><a href="../antminer/X19#s19j-pro-stock">S19j Pro (Stock)</a></li>
<li><a href="../antminer/X19#s19j-pro_1-stock">S19j Pro+ (Stock)</a></li>
<li><a href="../antminer/X19#s19-xp-stock">S19 XP (Stock)</a></li> <li><a href="../antminer/X19#s19-xp-stock">S19 XP (Stock)</a></li>
<li><a href="../antminer/X19#s19a-stock">S19a (Stock)</a></li> <li><a href="../antminer/X19#s19a-stock">S19a (Stock)</a></li>
<li><a href="../antminer/X19#s19a-pro-stock">S19a Pro (Stock)</a></li> <li><a href="../antminer/X19#s19a-pro-stock">S19a Pro (Stock)</a></li>
@@ -695,6 +696,12 @@ details {
<li><a href="../antminer/X7#l7-vnish">L7 (VNish)</a></li> <li><a href="../antminer/X7#l7-vnish">L7 (VNish)</a></li>
</ul> </ul>
</details> </details>
<details>
<summary>X9 Series:</summary>
<ul>
<li><a href="../antminer/X9#l9-vnish">L9 (VNish)</a></li>
</ul>
</details>
<details> <details>
<summary>X17 Series:</summary> <summary>X17 Series:</summary>
<ul> <ul>
@@ -710,12 +717,14 @@ details {
<li><a href="../antminer/X19#s19-pro-vnish">S19 Pro (VNish)</a></li> <li><a href="../antminer/X19#s19-pro-vnish">S19 Pro (VNish)</a></li>
<li><a href="../antminer/X19#s19j-vnish">S19j (VNish)</a></li> <li><a href="../antminer/X19#s19j-vnish">S19j (VNish)</a></li>
<li><a href="../antminer/X19#s19i-vnish">S19i (VNish)</a></li> <li><a href="../antminer/X19#s19i-vnish">S19i (VNish)</a></li>
<li><a href="../antminer/X19#s19-xp-vnish">S19 XP (VNish)</a></li>
<li><a href="../antminer/X19#s19j-pro-vnish">S19j Pro (VNish)</a></li> <li><a href="../antminer/X19#s19j-pro-vnish">S19j Pro (VNish)</a></li>
<li><a href="../antminer/X19#s19j-pro-vnish">S19j Pro (VNish)</a></li> <li><a href="../antminer/X19#s19j-pro-vnish">S19j Pro (VNish)</a></li>
<li><a href="../antminer/X19#s19j-pro-vnish">S19j Pro (VNish)</a></li> <li><a href="../antminer/X19#s19j-pro-vnish">S19j Pro (VNish)</a></li>
<li><a href="../antminer/X19#s19a-vnish">S19a (VNish)</a></li> <li><a href="../antminer/X19#s19a-vnish">S19a (VNish)</a></li>
<li><a href="../antminer/X19#s19-hydro-vnish">S19 Hydro (VNish)</a></li> <li><a href="../antminer/X19#s19-hydro-vnish">S19 Hydro (VNish)</a></li>
<li><a href="../antminer/X19#s19a-pro-vnish">S19a Pro (VNish)</a></li> <li><a href="../antminer/X19#s19a-pro-vnish">S19a Pro (VNish)</a></li>
<li><a href="../antminer/X19#s19-pro-a-vnish">S19 Pro A (VNish)</a></li>
<li><a href="../antminer/X19#s19-pro-hydro-vnish">S19 Pro Hydro (VNish)</a></li> <li><a href="../antminer/X19#s19-pro-hydro-vnish">S19 Pro Hydro (VNish)</a></li>
<li><a href="../antminer/X19#s19k-pro-vnish">S19k Pro (VNish)</a></li> <li><a href="../antminer/X19#s19k-pro-vnish">S19k Pro (VNish)</a></li>
<li><a href="../antminer/X19#t19-vnish">T19 (VNish)</a></li> <li><a href="../antminer/X19#t19-vnish">T19 (VNish)</a></li>
@@ -955,6 +964,7 @@ details {
<summary>DGX Series:</summary> <summary>DGX Series:</summary>
<ul> <ul>
<li><a href="../elphapex/DGX#dg1_1-stock">DG1+ (Stock)</a></li> <li><a href="../elphapex/DGX#dg1_1-stock">DG1+ (Stock)</a></li>
<li><a href="../elphapex/DGX#dg1-stock">DG1 (Stock)</a></li>
</ul> </ul>
</details> </details>
</ul> </ul>

View File

@@ -54,6 +54,7 @@ class AntminerModels(MinerModelType):
S19ProPlusHydro = "S19 Pro+ Hydro" S19ProPlusHydro = "S19 Pro+ Hydro"
S19KPro = "S19K Pro" S19KPro = "S19K Pro"
S19kPro = "S19k Pro" S19kPro = "S19k Pro"
S19ProA = "S19 Pro A"
S19kProNoPIC = "S19k Pro No PIC" S19kProNoPIC = "S19k Pro No PIC"
S19jXP = "S19j XP" S19jXP = "S19j XP"
T19 = "T19" T19 = "T19"
@@ -558,6 +559,7 @@ class BraiinsModels(MinerModelType):
class ElphapexModels(MinerModelType): class ElphapexModels(MinerModelType):
DG1 = "DG1"
DG1Plus = "DG1+" DG1Plus = "DG1+"

View File

@@ -26,6 +26,7 @@ from pyasic.miners.device.models import (
S19j, S19j,
S19jNoPIC, S19jNoPIC,
S19jPro, S19jPro,
S19jProPlus,
S19jXP, S19jXP,
S19KPro, S19KPro,
S19Plus, S19Plus,
@@ -102,3 +103,7 @@ class BMMinerS19KPro(AntminerModern, S19KPro):
class BMMinerS19jXP(AntminerModern, S19jXP): class BMMinerS19jXP(AntminerModern, S19jXP):
pass pass
class BMMinerS19jProPlus(AntminerModern, S19jProPlus):
pass

View File

@@ -23,6 +23,7 @@ from .S19 import (
BMMinerS19j, BMMinerS19j,
BMMinerS19jNoPIC, BMMinerS19jNoPIC,
BMMinerS19jPro, BMMinerS19jPro,
BMMinerS19jProPlus,
BMMinerS19jXP, BMMinerS19jXP,
BMMinerS19KPro, BMMinerS19KPro,
BMMinerS19L, BMMinerS19L,

View File

@@ -27,6 +27,7 @@ from pyasic.miners.device.models import (
S19kPro, S19kPro,
S19NoPIC, S19NoPIC,
S19Pro, S19Pro,
S19ProA,
S19ProHydro, S19ProHydro,
) )
@@ -59,6 +60,10 @@ class VNishS19aPro(VNish, S19aPro):
pass pass
class VNishS19ProA(VNish, S19ProA):
pass
class VNishS19i(VNish, S19i): class VNishS19i(VNish, S19i):
pass pass
@@ -77,3 +82,7 @@ class VNishS19ProHydro(VNish, S19ProHydro):
class VNishS19kPro(VNish, S19kPro): class VNishS19kPro(VNish, S19kPro):
pass pass
class VNishS19ProA(VNish, S19ProA):
pass

View File

@@ -25,6 +25,7 @@ from .S19 import (
VNishS19kPro, VNishS19kPro,
VNishS19NoPIC, VNishS19NoPIC,
VNishS19Pro, VNishS19Pro,
VNishS19ProA,
VNishS19ProHydro, VNishS19ProHydro,
VNishS19XP, VNishS19XP,
) )

View File

@@ -18,5 +18,5 @@ from pyasic.miners.backends import VNish
from pyasic.miners.device.models import L3Plus from pyasic.miners.device.models import L3Plus
class VnishL3Plus(VNish, L3Plus): class VNishL3Plus(VNish, L3Plus):
pass pass

View File

@@ -14,4 +14,4 @@
# limitations under the License. - # limitations under the License. -
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
from .L3 import VnishL3Plus from .L3 import VNishL3Plus

View File

@@ -18,5 +18,5 @@ from pyasic.miners.backends import VNish
from pyasic.miners.device.models import L7 from pyasic.miners.device.models import L7
class VnishL7(VNish, L7): class VNishL7(VNish, L7):
pass pass

View File

@@ -14,4 +14,4 @@
# limitations under the License. - # limitations under the License. -
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
from .L7 import VnishL7 from .L7 import VNishL7

View File

@@ -0,0 +1,22 @@
# ------------------------------------------------------------------------------
# Copyright 2022 Upstream Data Inc -
# -
# Licensed under the Apache License, Version 2.0 (the "License"); -
# you may not use this file except in compliance with the License. -
# You may obtain a copy of the License at -
# -
# http://www.apache.org/licenses/LICENSE-2.0 -
# -
# Unless required by applicable law or agreed to in writing, software -
# distributed under the License is distributed on an "AS IS" BASIS, -
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
# See the License for the specific language governing permissions and -
# limitations under the License. -
# ------------------------------------------------------------------------------
from pyasic.miners.backends import VNish
from pyasic.miners.device.models import L9
class VNishL9(VNish, L9):
pass

View File

@@ -0,0 +1,17 @@
# ------------------------------------------------------------------------------
# Copyright 2022 Upstream Data Inc -
# -
# Licensed under the Apache License, Version 2.0 (the "License"); -
# you may not use this file except in compliance with the License. -
# You may obtain a copy of the License at -
# -
# http://www.apache.org/licenses/LICENSE-2.0 -
# -
# Unless required by applicable law or agreed to in writing, software -
# distributed under the License is distributed on an "AS IS" BASIS, -
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
# See the License for the specific language governing permissions and -
# limitations under the License. -
# ------------------------------------------------------------------------------
from .L9 import VNishL9

View File

@@ -16,6 +16,7 @@
from .X3 import * from .X3 import *
from .X7 import * from .X7 import *
from .X9 import *
from .X17 import * from .X17 import *
from .X19 import * from .X19 import *
from .X21 import * from .X21 import *

View File

@@ -216,6 +216,15 @@ class S19KPro(AntMinerMake):
algo = MinerAlgo.SHA256 algo = MinerAlgo.SHA256
class S19ProA(AntMinerMake):
raw_model = MinerModel.ANTMINER.S19ProA
expected_chips = 114
expected_fans = 4
expected_hashboards = 3
algo = MinerAlgo.SHA256
class S19jXP(AntMinerMake): class S19jXP(AntMinerMake):
raw_model = MinerModel.ANTMINER.S19jXP raw_model = MinerModel.ANTMINER.S19jXP

View File

@@ -35,6 +35,7 @@ from .S19 import (
S19NoPIC, S19NoPIC,
S19Plus, S19Plus,
S19Pro, S19Pro,
S19ProA,
S19ProHydro, S19ProHydro,
S19ProPlus, S19ProPlus,
S19ProPlusHydro, S19ProPlusHydro,

View File

@@ -18,6 +18,15 @@ from pyasic.device.models import MinerModel
from pyasic.miners.device.makes import ElphapexMake from pyasic.miners.device.makes import ElphapexMake
class DG1(ElphapexMake):
raw_model = MinerModel.ELPHAPEX.DG1
expected_chips = 144
expected_hashboards = 4
expected_fans = 4
algo = MinerAlgo.SCRYPT
class DG1Plus(ElphapexMake): class DG1Plus(ElphapexMake):
raw_model = MinerModel.ELPHAPEX.DG1Plus raw_model = MinerModel.ELPHAPEX.DG1Plus

View File

@@ -1 +1 @@
from .DG1 import DG1Plus from .DG1 import DG1, DG1Plus

View File

@@ -1,6 +1,10 @@
from pyasic.miners.backends.elphapex import ElphapexMiner from pyasic.miners.backends.elphapex import ElphapexMiner
from pyasic.miners.device.models import DG1Plus from pyasic.miners.device.models import DG1, DG1Plus
class ElphapexDG1Plus(ElphapexMiner, DG1Plus): class ElphapexDG1Plus(ElphapexMiner, DG1Plus):
pass pass
class ElphapexDG1(ElphapexMiner, DG1):
pass

View File

@@ -1 +1 @@
from .DG1 import ElphapexDG1Plus from .DG1 import ElphapexDG1, ElphapexDG1Plus

View File

@@ -108,6 +108,7 @@ MINER_CLASSES = {
"ANTMINER S19J88NOPIC": BMMinerS19jNoPIC, "ANTMINER S19J88NOPIC": BMMinerS19jNoPIC,
"ANTMINER S19PRO+": BMMinerS19ProPlus, "ANTMINER S19PRO+": BMMinerS19ProPlus,
"ANTMINER S19J PRO": BMMinerS19jPro, "ANTMINER S19J PRO": BMMinerS19jPro,
"ANTMINER S19J PRO+": BMMinerS19jProPlus,
"ANTMINER S19 XP": BMMinerS19XP, "ANTMINER S19 XP": BMMinerS19XP,
"ANTMINER S19A": BMMinerS19a, "ANTMINER S19A": BMMinerS19a,
"ANTMINER S19A PRO": BMMinerS19aPro, "ANTMINER S19A PRO": BMMinerS19aPro,
@@ -565,9 +566,10 @@ MINER_CLASSES = {
}, },
MinerTypes.VNISH: { MinerTypes.VNISH: {
None: VNish, None: VNish,
"L3+": VnishL3Plus, "L3+": VNishL3Plus,
"ANTMINER L3+": VnishL3Plus, "ANTMINER L3+": VNishL3Plus,
"ANTMINER L7": VnishL7, "ANTMINER L7": VNishL7,
"ANTMINER L9": VNishL9,
"ANTMINER S17+": VNishS17Plus, "ANTMINER S17+": VNishS17Plus,
"ANTMINER S17 PRO": VNishS17Pro, "ANTMINER S17 PRO": VNishS17Pro,
"ANTMINER S19": VNishS19, "ANTMINER S19": VNishS19,
@@ -575,12 +577,14 @@ MINER_CLASSES = {
"ANTMINER S19 PRO": VNishS19Pro, "ANTMINER S19 PRO": VNishS19Pro,
"ANTMINER S19J": VNishS19j, "ANTMINER S19J": VNishS19j,
"ANTMINER S19I": VNishS19i, "ANTMINER S19I": VNishS19i,
"ANTMINER S19 XP": VNishS19XP,
"ANTMINER S19J PRO": VNishS19jPro, "ANTMINER S19J PRO": VNishS19jPro,
"ANTMINER S19J PRO A": VNishS19jPro, "ANTMINER S19J PRO A": VNishS19jPro,
"ANTMINER S19J PRO BB": VNishS19jPro, "ANTMINER S19J PRO BB": VNishS19jPro,
"ANTMINER S19A": VNishS19a, "ANTMINER S19A": VNishS19a,
"ANTMINER S19 HYD.": VNishS19Hydro, "ANTMINER S19 HYD.": VNishS19Hydro,
"ANTMINER S19A PRO": VNishS19aPro, "ANTMINER S19A PRO": VNishS19aPro,
"ANTMINER S19 PRO A": VNishS19ProA,
"ANTMINER S19 PRO HYD.": VNishS19ProHydro, "ANTMINER S19 PRO HYD.": VNishS19ProHydro,
"ANTMINER S19K PRO": VNishS19kPro, "ANTMINER S19K PRO": VNishS19kPro,
"ANTMINER T19": VNishT19, "ANTMINER T19": VNishT19,
@@ -691,6 +695,7 @@ MINER_CLASSES = {
MinerTypes.ELPHAPEX: { MinerTypes.ELPHAPEX: {
None: type("ElphapexUnknown", (ElphapexMiner, ElphapexMake), {}), None: type("ElphapexUnknown", (ElphapexMiner, ElphapexMake), {}),
"DG1+": ElphapexDG1Plus, "DG1+": ElphapexDG1Plus,
"DG1": ElphapexDG1,
}, },
} }