diff --git a/docs/miners/avalonminer/nano.md b/docs/miners/avalonminer/nano.md
index 7a1faf2c..72b46a4b 100644
--- a/docs/miners/avalonminer/nano.md
+++ b/docs/miners/avalonminer/nano.md
@@ -14,3 +14,16 @@
show_root_heading: false
heading_level: 0
+## Avalon Nano 3s (Stock)
+
+- [ ] Shutdowns
+- [ ] Power Modes
+- [ ] Setpoints
+- [ ] Presets
+
+::: pyasic.miners.avalonminer.cgminer.nano.nano3.CGMinerAvalonNano3s
+ handler: python
+ options:
+ show_root_heading: false
+ heading_level: 0
+
diff --git a/docs/miners/supported_types.md b/docs/miners/supported_types.md
index d36b3d7b..714bb949 100644
--- a/docs/miners/supported_types.md
+++ b/docs/miners/supported_types.md
@@ -554,6 +554,9 @@ details {
+
A15X Series:
diff --git a/pyasic/device/models.py b/pyasic/device/models.py
index f952e705..ebaba5aa 100644
--- a/pyasic/device/models.py
+++ b/pyasic/device/models.py
@@ -451,6 +451,7 @@ class AvalonminerModels(MinerModelType):
Avalon1246 = "Avalon 1246"
Avalon1566 = "Avalon 1566"
AvalonNano3 = "Avalon Nano 3"
+ AvalonNano3s = "Avalon Nano 3s"
def __str__(self):
return self.value
diff --git a/pyasic/miners/avalonminer/cgminer/nano/__init__.py b/pyasic/miners/avalonminer/cgminer/nano/__init__.py
index 24841730..e4432bfb 100644
--- a/pyasic/miners/avalonminer/cgminer/nano/__init__.py
+++ b/pyasic/miners/avalonminer/cgminer/nano/__init__.py
@@ -14,4 +14,4 @@
# limitations under the License. -
# ------------------------------------------------------------------------------
-from .nano3 import CGMinerAvalonNano3
+from .nano3 import CGMinerAvalonNano3, CGMinerAvalonNano3s
diff --git a/pyasic/miners/avalonminer/cgminer/nano/nano3.py b/pyasic/miners/avalonminer/cgminer/nano/nano3.py
index b71b3e00..7e85a60d 100644
--- a/pyasic/miners/avalonminer/cgminer/nano/nano3.py
+++ b/pyasic/miners/avalonminer/cgminer/nano/nano3.py
@@ -24,7 +24,7 @@ from pyasic.miners.data import (
RPCAPICommand,
WebAPICommand,
)
-from pyasic.miners.device.models import AvalonNano3
+from pyasic.miners.device.models import AvalonNano3, AvalonNano3s
from pyasic.web.avalonminer import AvalonMinerWebAPI
AVALON_NANO_DATA_LOC = DataLocations(
@@ -105,3 +105,7 @@ class CGMinerAvalonNano3(AvalonMiner, AvalonNano3):
return mac.upper()
except (KeyError, ValueError):
pass
+
+
+class CGMinerAvalonNano3s(AvalonMiner, AvalonNano3s):
+ pass
diff --git a/pyasic/miners/device/models/avalonminer/nano/__init__.py b/pyasic/miners/device/models/avalonminer/nano/__init__.py
index 68a0893b..643285a6 100644
--- a/pyasic/miners/device/models/avalonminer/nano/__init__.py
+++ b/pyasic/miners/device/models/avalonminer/nano/__init__.py
@@ -1 +1 @@
-from .nano3 import AvalonNano3
+from .nano3 import AvalonNano3, AvalonNano3s
diff --git a/pyasic/miners/device/models/avalonminer/nano/nano3.py b/pyasic/miners/device/models/avalonminer/nano/nano3.py
index 6b8dedf5..58b1d02a 100644
--- a/pyasic/miners/device/models/avalonminer/nano/nano3.py
+++ b/pyasic/miners/device/models/avalonminer/nano/nano3.py
@@ -10,3 +10,12 @@ class AvalonNano3(AvalonMinerMake):
expected_chips = 10
expected_fans = 1
algo = MinerAlgo.SHA256
+
+
+class AvalonNano3s(AvalonMinerMake):
+ raw_model = MinerModel.AVALONMINER.AvalonNano3s
+
+ expected_hashboards = 1
+ expected_chips = 12
+ expected_fans = 1
+ algo = MinerAlgo.SHA256
diff --git a/pyasic/miners/factory.py b/pyasic/miners/factory.py
index 084accb9..5fb9be12 100644
--- a/pyasic/miners/factory.py
+++ b/pyasic/miners/factory.py
@@ -506,6 +506,7 @@ MINER_CLASSES = {
"AVALONMINER 1166PRO": CGMinerAvalon1166Pro,
"AVALONMINER 1246": CGMinerAvalon1246,
"AVALONMINER NANO3": CGMinerAvalonNano3,
+ "AVALON NANO3S": CGMinerAvalonNano3s,
"AVALONMINER 15-194": CGMinerAvalon1566,
},
MinerTypes.INNOSILICON: {
diff --git a/pyproject.toml b/pyproject.toml
index ce7b77d1..815c57fe 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "pyasic"
-version = "0.72.4"
+version = "0.72.5"
description = "A simplified and standardized interface for Bitcoin ASICs."
authors = [{name = "UpstreamData", email = "brett@upstreamdata.ca"}]