Eğer S19 Pro'nuz o vaat ettiği 110 TH/s'yi vermeyi kestiyse ve arayüzde 76 çip yerine kocaman bir 0 veya kopuk bir zincir görüyorsanız, kartı tamir tezgahına alma vakti gelmiş demektir. Vakaların %90'ında aşırı ısınmadan kaynaklı çip lehim kopması (soğuk lehim), LDO regülatör patlaması veya PCB üzerinde kılcal çatlaklarla karşılaşıyoruz.
S19 Pro Hash Kartı Mimarisi: Voltaj Alanları ve Sinyal Hattı
Antminer S19 Pro hash kartı üzerinde 19 adet seri voltaj alanına (domain) bölünmüş toplam 76 adet BM1398 çip bulunur (her alanda 4 çip). Ana veri yolundaki toplam voltaj (yazılıma göre yaklaşık 12.5–15V), bu alanlar arasında bölüştürülür. Domain başına ortalama 0.7–0.8V düşerken, çip çekirdeğinin kendisi VCORE üzerinden 0.32–0.42V bandında beslenir.
Sinyaller, kontrol kartı soketinin yanındaki 1. çipten başlayıp 76. çipe kadar seri olarak akar:
- CLK (25 MHz): Saat (Clock) sinyali. Mesela 30. çipte kesilirse, arkasından gelen bütün çipler karanlığa gömülür.
- CO (Command Output): Kontrol kartından gelen komut giriş hattı.
- RI (Return Input): Kontrol kartına dönen yanıt hattı. Ters yönde ilerler; yani 76. çipten 1. çipe doğru akar.
- RST (Reset): Reset hattı. Buradaki düşük lojik seviye, çipi sert bir reset moduna sokar.
- BO (Busy Output): Hattın meşguliyet durumunu bildiren sinyal.
Adım Adım Arıza Tespiti: Log Okumadan Ölçü Aletine
Arayüz üzerinden Kernel Log'u veya kullandığınız özel yazılımın (VNish, HiveOS) log ekranını açıyoruz. Zincirin tam olarak nerede patladığını tespit ediyoruz.
Loglarda ne aramalıyız:
- Chain 1: found 0 asics — RI hattından hiçbir yanıt gelmiyor. Doğrudan 1. çipe, çipin LDO beslemesine veya sinyal kablosunun soketine odaklanın.
- Chain 2: only 42 asics found — Sinyal 42 veya 43. çipte takılmış. Doğrudan o bölgeye müdahale ediyoruz.
- Read temp sensor failed — TMP75 sıcaklık sensörü uçmuş. S19 Pro'da bu sensörler birkaç farklı domain üzerine dağıtılmıştır. Sensör ölü olursa kart koruma moduna geçer ve hiç start almaz.
Test Noktaları (Test Points) Üzerinden Ölçüm
Kartı servis güç kaynağından veya test cihazından besleyin (veri yoluna yüksek akım vermeden) ve multimetrenizi diyot test moduna alın (kırmızı prob GND / şaseye).
[Çip 42] ---> (CO / CLK / RST) ---> [Çip 43]
[Çip 42] <--- (RI / BO) <--- [Çip 43]Şaseye kıyasla test noktalarındaki sinyal hatlarının direnç değerleri kartın tamamında aşağı yukarı aynı olmalıdır:
- CLK, CO, RI, RST: Yaklaşık 450–600 Ohm civarında.
Eğer 43. çipteki CLK noktası 0 Ohm veriyorsa (kısa devre) veya sonsuz direnç (açık devre) gösteriyorsa, o çip çöp olmuştur, değişim ister.
LDO Beslemeleri
Her domain, çipin iç lojik devrelerini beslemek için yardımcı voltajlara ihtiyaç duyar. Bunları küçük LDO regülatörleri sağlar:
- VDD 1.8V: Sinyal arayüz devrelerini besler.
- VDD 0.8V: Dahili çekirdek lojistiğini besler.
Çipte 1.8V var ama 0.8V yoksa, o çip CLK sinyalini bir sonraki elemana iletemez ve kart zinciri tam orada keser.
Neden Osiloskop Şart ve Nasıl Kullanılır?
Multimetre size sadece ortalama bir DC voltaj gösterir. Ancak voltaj normal göründüğü halde sinyalde gürültü varsa veya genlik çökmüşse multimetre tamamen çaresiz kalır. Bayağı yanıltıcı olabilir; osiloskop ise dalga formunu doğrudan önünüze koyar.
En az 100 MHz bant genişliğine sahip bir cihaz ve 10X kademeli bir prob işinizi görecektir.
CLK Ölçümü (25 MHz Saat Sinyali):
Prob ucunu CLK test noktasına değdirin. Temiz bir sinüs veya tepeden tepeye yaklaşık 1.8V genliğinde kare dalga görmeniz gerekir. Düzgün bir sinyal yerine 0.4V genlikli ezik bir testere dişi dalga görüyorsanız, çipin tampon (buffer) devresi yanmıştır ve sinyali ileri taşıyamıyordur.
CO/RI Paketlerinin Kontrolü:
Kart açılırken kısa veri paketleri fırlatır. Bunlar osiloskop ekranında hızlı anlık patlamalar (Burst) olarak görünür. 43. çipin girişine veri paketi geliyor ama çıkışından tık yoksa, o çip ölmüştür ya da RST hattı sıfıra çakılı kalmıştır.
Güç Hattındaki Parazitler (Ripple):
Osiloskop girişini AC moduna (kaplin) alın ve doğrudan çipin göbeğindeki/arkasındaki kondansatörleri ölçün. 30–40 mV üzerindeki dalgalanmalar, çip çevresindeki seramik kondansatörlerin sürekli ısıdan dolayı değer kaybettiğini gösterir.
Test Noktaları Referans Tablosu (Antminer S19 Pro / BM1398)
| Hat | Normal V (DC) | Osiloskop Sinyali | GND Direnci | Kopukluk Belirtisi |
|---|---|---|---|---|
| CLK | 0.8–0.9V | 25 MHz Sinüs, 1.8Vpp | 500–600 Ohm | Zincir arızalı çipte kesilir |
| CO | 0–0.2V | Sorgu anında 1.8V veri paketleri | 500–600 Ohm | Çip sorgulama adımı durur |
| RI | 1.7–1.8V | Yanıt anında veri paketleri | 500–600 Ohm | 0 ASIC hatası verir veya kartın arkasını görmez |
| RST | 1.8V | Yüksek lojik seviye (High) | 500–650 Ohm | Çipler reset durumundan çıkamaz |
| VDD 1.8V | 1.8V | Temiz hat (AC gürültü < 20 mV) | 1–3 kOhm | Giriş-çıkış tamponları çalışmaz |
| VDD 0.8V | 0.8V | Temiz hat (AC gürültü < 15 mV) | 100–300 Ohm | Çip çekirdeği devreye girmez |
Lehimleme Pratiği: BM1398 Sökme ve Takma İşlemleri
S19 Pro'nun alüminyum gövdeli kartları devasa bir ısı emici (heatsink) gibi davranır. Çipi sadece sıcak hava tabancasıyla üstten sökmeye çalışmak, alt katmanı yakmanın ve pad'leri (lehim yollarını) koparmanın en garanti yoludur.
İhtiyacınız olan malzemeler:
- Alt ısıtıcı / Preheater (160–180°C sıcaklık profili).
- Sıcak hava istasyonu (çip boyutuna uygun nozul ile).
- Yıkanma gerektirmeyen (No-Clean) BGA flux (NC-559, Martin veya RMA-223).
- 0.35 mm kurşunlu bilya veya Sn63/Pb37 kurşunlu lehim pastası (Kurşunlu lehim 183°C'de erir, fabrikasyon kurşunsuza göre işinizi inanılmaz kolaylaştırır).
İşlem sırası:
- Kartı alt ısıtıcıya yerleştirin, tatlı tatlı 150–160°C seviyesine kadar ısıtın. Acele ederseniz alüminyum ile PCB arasındaki genleşme farkından dolayı kart muz gibi bükülür.
- Çipin altına hafifçe flux sürün.
- Üstten sıcak hava tabancasıyla destekleyin (hava sıcaklığı yaklaşık 340–360°C, orta hava akışı). Dairesel hareketlerle ısıtın.
- Çipe cımbızla hafifçe dokunun: Bilyalar üzerinde "yüzmeye" başladığı an, dikey açıyla sakince yukarı kaldırın.
- Karta kalan lehim artıklarını reçineli bakır örgüyle temizleyin, ardından selülozik tiner veya izopropil alkol ile pırıl pırıl yıkayın.
- Yeni çipi kalıp (stencil) kullanarak kurşunlu pasta veya bilyalarla reball yapın.
- Çipi yönüne dikkat ederek yerleştirin (çip üzerindeki nokta işareti ile PCB üzerindeki baskı örtüşmeli), hizalayın.
- Alt ısıtıcı ve üst sıcak hava desteğiyle çip oturana kadar ısıtın. Çip, sıvı lehimin yüzey gerilimi sayesinde kendiliğinden tam yerine oturacaktır.
Hızlı Arıza Tespiti İçin Python Log Ayrıştırıcı (Parser)
Log dosyaları arasında boğulmamak için işte size pratik bir script. Miner'dan aldığınız logu atıyorsunuz, patlayan zinciri cımbızla çeker gibi bulup multimetreyi hangi çipe basmanız gerektiğini direkt söylüyor.
#!/usr/bin/env python3
import re
import sys
EXPECTED_ASICS = 76
def parse_asic_log(filepath):
chain_pattern = re.compile(
r"Chain\[(\d+)\]:\s*found\s*(\d+)\s*asics",
re.IGNORECASE
)
sensor_pattern = re.compile(
r"sensor[\[\s]*(\d+)[\]\s]*.*temp.*error",
re.IGNORECASE
)
issues_found = False
problem_chains = []
reported_sensors = set()
print(f"[*] Log inceleniyor: {filepath}\n")
try:
with open(filepath, "r", errors="ignore") as f:
for num, line in enumerate(f, 1):
# Zincirdeki çip sayısı kontrolü
c_match = chain_pattern.search(line)
if c_match:
chain_id = int(c_match.group(1))
found = int(c_match.group(2))
if found < EXPECTED_ASICS:
issues_found = True
problem_chains.append(
(chain_id, found, EXPECTED_ASICS)
)
print(
f"[!] Zincir {chain_id}: "
f"{EXPECTED_ASICS} çip yerine {found} çip bulundu."
)
if found == 0:
print(
" -> Zincirdeki ilk çip algılanamadı."
)
print(
" -> Kart beslemesini, RI, "
"RST, BOOT ve saat sinyalini kontrol edin."
)
else:
print(
f" -> #{found} numaralı çipin çıkışını (CLK/CO) "
f"kontrol edin."
)
print(
f" -> #{found + 1} numaralı çipin girişini (RI) ve "
f"LDO beslemesini kontrol edin."
)
print()
# Sıcaklık sensörlerinin kontrolü
s_match = sensor_pattern.search(line)
if s_match:
sensor_id = int(s_match.group(1))
if sensor_id not in reported_sensors:
issues_found = True
reported_sensors.add(sensor_id)
print(
f"[!] Sıcaklık sensör hatası "
f"#{sensor_id} (Satır {num})."
)
print(
" -> TMP75 entegresini, sensör beslemesini "
"ve I2C hatlarını kontrol edin."
)
print()
# Özet Rapor
print("=" * 60)
print("SONUÇ ÖZETİ")
print("=" * 60)
if not issues_found:
print("[+] Şablonlara uyan herhangi bir sorun tespit edilmedi.")
return False
if problem_chains:
print("\nSorunlu Zincirler:")
for chain_id, found, expected in problem_chains:
print(
f" - Chain {chain_id}: "
f"{found}/{expected} ASIC"
)
if reported_sensors:
print("\nSıcaklık Sensör Hataları:")
for sensor_id in sorted(reported_sensors):
print(f" - Sensor {sensor_id}")
print()
return True
except FileNotFoundError:
print(f"[-] Dosya bulunamadı: {filepath}")
return True
except Exception as e:
print(f"[-] Dosya işlenirken hata oluştu: {e}")
return True
if __name__ == "__main__":
if len(sys.argv) < 2:
print(
f"Kullanım: {sys.argv[0]} <log_dosyasi_yolu.txt> "
f"[beklenen_asik_sayisi]"
)
sys.exit(1)
if len(sys.argv) >= 3:
try:
EXPECTED_ASICS = int(sys.argv[2])
except ValueError:
print("[-] beklenen_asik_sayisi bir sayı olmalıdır.")
sys.exit(1)
has_issues = parse_asic_log(sys.argv[1])
sys.exit(1 if has_issues else 0)Çalıştırma Örnekleri:
python diag.py kernel.log
Farklı çip sayısına sahip kartlar için:
- python diag.py kernel.log 63
- python diag.py kernel.log 72
- python diag.py kernel.log 80
Kasaya Toplamadan Önce Son Kontrol Listesi (Checklist)
- VCORE Hat Kontrolü: Şaseye göre direnç sıfır olmamalı (kısa devre kontrolü).
- Yüksüz LDO Kontrolü: Servis PSU'sundan voltaj verip değiştirdiğiniz çipteki 1.8V ve 0.8V değerlerini teyit edin.
- Sinyal Sürekliliği: Osiloskopla 25 MHz sinyalinin lehimlediğiniz çipten geçip yola devam ettiğinden emin olun.
- Yüksek Yük Testi: Cihazı toplayın, kendi fanlarını bağlayın, orijinal yazılımla 2–3 saat yük altında çalıştırıp o zincirdeki HW (Hardware) hata oranlarını izleyin.