Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e07bd3bffb | ||
|
|
dcce944390 | ||
|
|
03ecd118a3 |
@@ -78,7 +78,9 @@ Supported miner types are here on this list. If your miner (or miner version) i
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="/miners/whatsminer/M3X/#m31sve20">VE20</a></li>
|
<li><a href="/miners/whatsminer/M3X/#m31sve20">VE20</a></li>
|
||||||
<li><a href="/miners/whatsminer/M3X/#m31sv40">V40</a></li>
|
<li><a href="/miners/whatsminer/M3X/#m31sv40">V40</a></li>
|
||||||
|
<li><a href="/miners/whatsminer/M3X/#m31sv60">V60</a></li>
|
||||||
<li><a href="/miners/whatsminer/M3X/#m31sv80">V80</a></li>
|
<li><a href="/miners/whatsminer/M3X/#m31sv80">V80</a></li>
|
||||||
|
<li><a href="/miners/whatsminer/M3X/#m31sv90">V90</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
@@ -138,6 +138,14 @@
|
|||||||
show_root_heading: false
|
show_root_heading: false
|
||||||
heading_level: 4
|
heading_level: 4
|
||||||
|
|
||||||
|
## M31S+V60
|
||||||
|
|
||||||
|
::: pyasic.miners.whatsminer.btminer.M3X.M31S_Plus.BTMinerM31SPlusV60
|
||||||
|
handler: python
|
||||||
|
options:
|
||||||
|
show_root_heading: false
|
||||||
|
heading_level: 4
|
||||||
|
|
||||||
## M31S+V80
|
## M31S+V80
|
||||||
|
|
||||||
::: pyasic.miners.whatsminer.btminer.M3X.M31S_Plus.BTMinerM31SPlusV80
|
::: pyasic.miners.whatsminer.btminer.M3X.M31S_Plus.BTMinerM31SPlusV80
|
||||||
@@ -146,6 +154,14 @@
|
|||||||
show_root_heading: false
|
show_root_heading: false
|
||||||
heading_level: 4
|
heading_level: 4
|
||||||
|
|
||||||
|
## M31S+V90
|
||||||
|
|
||||||
|
::: pyasic.miners.whatsminer.btminer.M3X.M31S_Plus.BTMinerM31SPlusV90
|
||||||
|
handler: python
|
||||||
|
options:
|
||||||
|
show_root_heading: false
|
||||||
|
heading_level: 4
|
||||||
|
|
||||||
## M32
|
## M32
|
||||||
|
|
||||||
::: pyasic.miners.whatsminer.btminer.M3X.M32.BTMinerM32
|
::: pyasic.miners.whatsminer.btminer.M3X.M32.BTMinerM32
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ class BOSMiner(BaseMiner):
|
|||||||
"Stable",
|
"Stable",
|
||||||
"Testing performance profile",
|
"Testing performance profile",
|
||||||
]:
|
]:
|
||||||
_error = board["Status"]
|
_error = board["Status"].split(" {")[0]
|
||||||
_error = _error[0].lower() + _error[1:]
|
_error = _error[0].lower() + _error[1:]
|
||||||
errors.append(
|
errors.append(
|
||||||
BraiinsOSError(f"{board_map[_id]} {_error}")
|
BraiinsOSError(f"{board_map[_id]} {_error}")
|
||||||
@@ -451,7 +451,7 @@ class BOSMiner(BaseMiner):
|
|||||||
"Stable",
|
"Stable",
|
||||||
"Testing performance profile",
|
"Testing performance profile",
|
||||||
]:
|
]:
|
||||||
_error = board["Status"]
|
_error = board["Status"].split(" {")[0]
|
||||||
_error = _error[0].lower() + _error[1:]
|
_error = _error[0].lower() + _error[1:]
|
||||||
data.errors.append(
|
data.errors.append(
|
||||||
BraiinsOSError(f"{board_map[_id]} {_error}")
|
BraiinsOSError(f"{board_map[_id]} {_error}")
|
||||||
|
|||||||
@@ -42,10 +42,28 @@ class M31SPlusV40(BaseMiner):
|
|||||||
self.fan_count = 2
|
self.fan_count = 2
|
||||||
|
|
||||||
|
|
||||||
|
class M31SPlusV60(BaseMiner):
|
||||||
|
def __init__(self, ip: str):
|
||||||
|
super().__init__()
|
||||||
|
self.ip = ip
|
||||||
|
self.model = "M31S+ V60"
|
||||||
|
self.nominal_chips = 156
|
||||||
|
self.fan_count = 2
|
||||||
|
|
||||||
|
|
||||||
class M31SPlusV80(BaseMiner):
|
class M31SPlusV80(BaseMiner):
|
||||||
def __init__(self, ip: str):
|
def __init__(self, ip: str):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
self.model = "M31S+ V40"
|
self.model = "M31S+ V80"
|
||||||
self.nominal_chips = 129
|
self.nominal_chips = 129
|
||||||
self.fan_count = 2
|
self.fan_count = 2
|
||||||
|
|
||||||
|
|
||||||
|
class M31SPlusV90(BaseMiner):
|
||||||
|
def __init__(self, ip: str):
|
||||||
|
super().__init__()
|
||||||
|
self.ip = ip
|
||||||
|
self.model = "M31S+ V90"
|
||||||
|
self.nominal_chips = 117
|
||||||
|
self.fan_count = 2
|
||||||
|
|||||||
@@ -22,7 +22,14 @@ from .M30S_Plus_Plus import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from .M31S import M31S
|
from .M31S import M31S
|
||||||
from .M31S_Plus import M31SPlus, M31SPlusVE20, M31SPlusV40, M31SPlusV80
|
from .M31S_Plus import (
|
||||||
|
M31SPlus,
|
||||||
|
M31SPlusVE20,
|
||||||
|
M31SPlusV40,
|
||||||
|
M31SPlusV80,
|
||||||
|
M31SPlusV60,
|
||||||
|
M31SPlusV90,
|
||||||
|
)
|
||||||
|
|
||||||
from .M32 import M32, M32V20
|
from .M32 import M32, M32V20
|
||||||
from .M32S import M32S
|
from .M32S import M32S
|
||||||
|
|||||||
@@ -198,7 +198,9 @@ MINER_CLASSES = {
|
|||||||
"BTMiner": BTMinerM31SPlus,
|
"BTMiner": BTMinerM31SPlus,
|
||||||
"E20": BTMinerM31SPlusVE20,
|
"E20": BTMinerM31SPlusVE20,
|
||||||
"40": BTMinerM31SPlusV40,
|
"40": BTMinerM31SPlusV40,
|
||||||
|
"60": BTMinerM31SPlusV60,
|
||||||
"80": BTMinerM31SPlusV80,
|
"80": BTMinerM31SPlusV80,
|
||||||
|
"90": BTMinerM31SPlusV90,
|
||||||
},
|
},
|
||||||
"M32S": {
|
"M32S": {
|
||||||
"Default": BTMinerM32S,
|
"Default": BTMinerM32S,
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ from pyasic.miners._types import (
|
|||||||
M31SPlus,
|
M31SPlus,
|
||||||
M31SPlusVE20,
|
M31SPlusVE20,
|
||||||
M31SPlusV40,
|
M31SPlusV40,
|
||||||
|
M31SPlusV60,
|
||||||
M31SPlusV80,
|
M31SPlusV80,
|
||||||
|
M31SPlusV90,
|
||||||
) # noqa - Ignore access to _module
|
) # noqa - Ignore access to _module
|
||||||
|
|
||||||
|
|
||||||
@@ -39,7 +41,19 @@ class BTMinerM31SPlusV40(BTMiner, M31SPlusV40):
|
|||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
|
||||||
|
class BTMinerM31SPlusV60(BTMiner, M31SPlusV60):
|
||||||
|
def __init__(self, ip: str) -> None:
|
||||||
|
super().__init__(ip)
|
||||||
|
self.ip = ip
|
||||||
|
|
||||||
|
|
||||||
class BTMinerM31SPlusV80(BTMiner, M31SPlusV80):
|
class BTMinerM31SPlusV80(BTMiner, M31SPlusV80):
|
||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
|
||||||
|
class BTMinerM31SPlusV90(BTMiner, M31SPlusV90):
|
||||||
|
def __init__(self, ip: str) -> None:
|
||||||
|
super().__init__(ip)
|
||||||
|
self.ip = ip
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ from .M31S_Plus import (
|
|||||||
BTMinerM31SPlus,
|
BTMinerM31SPlus,
|
||||||
BTMinerM31SPlusVE20,
|
BTMinerM31SPlusVE20,
|
||||||
BTMinerM31SPlusV40,
|
BTMinerM31SPlusV40,
|
||||||
|
BTMinerM31SPlusV60,
|
||||||
BTMinerM31SPlusV80,
|
BTMinerM31SPlusV80,
|
||||||
|
BTMinerM31SPlusV90,
|
||||||
)
|
)
|
||||||
|
|
||||||
from .M32 import BTMinerM32, BTMinerM32V20
|
from .M32 import BTMinerM32, BTMinerM32V20
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "pyasic"
|
name = "pyasic"
|
||||||
version = "0.17.7"
|
version = "0.17.8"
|
||||||
description = "A set of modules for interfacing with many common types of ASIC bitcoin miners, using both their API and SSH."
|
description = "A set of modules for interfacing with many common types of ASIC bitcoin miners, using both their API and SSH."
|
||||||
authors = ["UpstreamData <brett@upstreamdata.ca>"]
|
authors = ["UpstreamData <brett@upstreamdata.ca>"]
|
||||||
repository = "https://github.com/UpstreamData/pyasic"
|
repository = "https://github.com/UpstreamData/pyasic"
|
||||||
|
|||||||
Reference in New Issue
Block a user