Verwendest Du eine Backplane auf der Unterseite der Platine,
siehe Anhang. Dort sind ja auch Kondensatoren platziert, wenn
ich Dein Layout ansehe (blaue Footprints).
Jap, hab das Original benutzt, das dabei war.
Die Backplate für LGA1151 passt wunderbar.
Glaub die sollten für 1151 alle gleich sein 🤔
edit: Die für 1150 1151 1155 1156 sehen wohl alle gleich aus.
Hab mit rev2 einen Bug auf dem Qaxe gefunden - zum Glück leicht zu beheben 😍
Die 330µF-Caps sind falsch platziert - die müssen direkt an den Buck.
Man kann dafür ein paar 100µFs entfernen - 4 sollten aber bleiben. Und einen der 100µ kann man stattdessen unter die ASICs packen.
Ergebnis ist dann:
1.2V Buck wird fast 20°C weniger heiß (bei meinen Tests hatte ich mit einem kleinen 40mm Lüfter oben drauf geblasen - der Unterschied vorher zu nachher ist schon echt ganz erheblich, mit aktiver Kühlung misst der 2te Temperatursensor auf der Unterseite des Boards unter dem Buck-Converter 48°C, vorher 65°C)
Stromaufnahme geringer (8 bis fast 10W) - läuft dann auf ziemlich genau 40W (laut meinem Netzteil)
485MHz ASIC Clock funktioniert jetzt so wie es soll 🥳
avg Hashrate mit Benchmarking-Program fast exakt 1,8TH und damit genauso schnell wie 4 PiAxe 😍
Werde das morgen dann im Board fixen und als rev3 comitten.
Wenn Deine 100uF C's einen schlechteren ESR haben,
dann warum nicht gleich alle am LTC befindlichen
durch 330uF ersetzen und die am ASIC so belassen, wie
vorgesehen?
Ich habe allerdings nicht im PCB Layout nachgesehen
ob es einen Größen-Unterschied beim vorgesehenen Pad
der 100uF und 330uF gibt.
Ich werde mal im DB des LTC's stöbern und mir Durchlesen
was der Hersteller empfiehlt.
Hast Du bei der Rev.2 nur einen Platzierungsfehler der
beiden C-Kategorien gemacht und den nur in Rev.3 ausgebessert,
oder hast Du festgestellt (durch Messung Temp. und Rippel)
dass mit den 330uF C's der LTC-Regler stabiler und effektiver
rennt?
Markus
Sorry wegen den zwei Anhängen. Erst zeigt der Hinzufügen
Button nichts an und dann hat man plötzlich zwei Anhänge dran.
Falls ein Mod. eins davon löschen kann, bitte ich darum.
Wenn Deine 100uF C's einen schlechteren ESR haben,
dann warum nicht gleich alle am LTC befindlichen
durch 330uF ersetzen und die am ASIC so belassen, wie
vorgesehen?
Was heißt denn "wie vorgesehen"? 🤔
Die am ASIC sind mehr oder weniger willkürlich platziert und offensichtlich wohl falsch, weshalb der Buck zum Oszillieren angefangen hat 😁
Die dicken Caps müssen an den LTC - sonst werden die Leiterbahnen dazwischen zum Inductor und destablisieren alles ... Denke ich zumindest
Hast Du auch eine derartige Beobachtung bei piaxe gemacht?
Kann Das von Dir beobachtete "Oszillieren" nicht auch von dem
Arbeitsverhalten der ASIC's stammen.
Die wechseln doch bestimmt von Auftrag zu Auftrag ihr Lastverhalten.
Markus
PS.: Ich werde zu meinen C's 330uF und 100uF kleine NPO/COG 10-100nF C's
parallel schalten. Die sind gut für die Transienten.
Kann Das von Dir beobachtete "Oszillieren" nicht auch von dem
Arbeitsverhalten der ASIC's stammen.
Die wechseln doch bestimmt von Auftrag zu Auftrag ihr Lastverhalten.
Mmhmm, was ich so beobachtet habe, laufen die einfach immer relativ gleichmäßig vorsichhin.
Man hält sie auch nicht an oder so, schiebt nur einen neuen Job rein.
Solltest Du noch eine weitere Release vom qaxe
vom Stapel laufen lassen, so kannst Du ja noch weitere
Pads für C's vorsehen, falls der Pltz es zulässt.
Zwei davon ... glaub einer würde nicht ganz reichen.
Hat allerdings Power-Bus, das man dann noch in der Firmware
implementieren müsste 🤔
Den verwende ich auch gerade für das 8er Design. An sich reicht der alleine aus. Muss aber aktiv/passiv definitiv gekühlt werden.
Der BUS ist nicht zwingend erforderlich. Die Einstellung kann auch über externe Spannungsgeiler realisiert werden.
Den verwende ich auch gerade für das 8er Design. An sich reicht der
alleine aus. Muss aber aktiv/passiv definitiv gekühlt werden.
Der BUS ist nicht zwingend erforderlich. Die Einstellung kann auch über
externe Spannungsgeiler realisiert werden.
Oh nice 😍
Wie machst du das mit 8 wenn jeder ASIC 10A+ schluckt und einer alleine nur 40 kann?
Ich nehme an Be N. nimmt zwei davon, jeweils einen für vier ASIC's
Der IC kostet ja nach Stückzahl zwischen 6 - 5 Euro (netto) z.B. bei
Mouser. (für 1, 10, 100 Stück.)
Die Frage, die sich mir stellt, ist wie weit man an die 40A bzw. 4x 10A
der vier Kanäle ran gehen darf und um wie viel % dieser Wert überschritten
werden kann, bei entsprechender Kühlung.
Ich nehme an Be N. nimmt zwei davon, jeweils einen für vier ASIC's
Der IC kostet ja nach Stückzahl zwischen 6 - 5 Euro (netto) z.B. bei
Mouser. (für 1, 10, 100 Stück.)
Die Frage, die sich mir stellt, ist wie weit man an die 40A bzw. 4x 10A
der vier Kanäle ran gehen darf und um wie viel % dieser Wert
überschritten
werden kann, bei entsprechender Kühlung.
Markus
Wenn wir mal davon ausgehen dass wir die Spannung auf 3.6V wandeln und einen Verbrauch des Qaxe von 50W haben würde das einer Stromlast von 13,88A entsprechen für den 3V6 Zweig. Schaut man sich dein Bild von Qaxe an sprechen wir von 4A bei 12V ;-)
Also einer wird hier ausreichen meiner Meinung nach oder hab ich einen Denkfehler?
Dann wäre die Leistung von Qaxe ja auch falsch. Wenn man mit 10A pro BM1366 rechnet wären wir allein bei 4 Chips bei einer Last von 144W, also das dreifache der aktuellen Leistungsaufnahme.
wenn Du Dir meine Frage an Thomas bezüglich der Board Rev.3 vom
21.01.2024 12:41 mit dem Schema-Ausschnitt anschaust, dann wirst Du
sehen, das der ASIC mit 1.2V vom LTC versorgt wird.
wenn Du Dir meine Frage an Thomas bezüglich der Board Rev.3 vom
21.01.2024 12:41 mit dem Schema-Ausschnitt anschaust, dann wirst Du
sehen, das der ASIC mit 1.2V vom LTC versorgt wird.
Markus
Ah ok, ja gut, ich versorge den mit 3V6... spannend...
Versorgung entsprechend meinem Beitrag weiter oben gegen den TPS546D24ARVFR getauscht und auf 40A ausgelegt. BUS wird wie gesagt nicht verwendet, aktuell
Und man sieht noch einen Nachteil.
Für die Kommunikation mit den jeweiligen ASIC's,
die auf den verschiedenen Versorgungsebenen hängen,
braucht man Level-Shifter sie anzusprechen oder auszulesen.
Seh ich aber nicht als Nachteil. Die Mehrkosten für die Levelshifter im Vergleich zu den Mehrkosten für die zusätzliche Spannungsversorgung sind sehr gering. Ganz zu schweigen von der Platzersparnis ;)
3S2P würde ich nicht empfehlen - das ganze ist noch komplett ungetestet und es ist noch nicht mal klar, ob das mit den Level Shiftern überhaupt funktioniert 🙈
Hast du mal versucht die ASICs mit 1.5V zu befeuern? Wenn wir auf 1.5V gehen würden würde die PowerStage mit dem TPS546D24ARVFR für 4 34A liefern. Bei 1.2V sind’s 42A
Hast du mal versucht die ASICs mit 1.5V zu befeuern? Wenn wir auf 1.5V
gehen würden würde die PowerStage mit dem TPS546D24ARVFR für 4 34A
liefern. Bei 1.2V sind's 42A
verstehe ich nicht!
1.5V vers 1.2 42A => (51W vers 50.4W)
Was willst Du damit ausdrücken? Oder ist das ein Tippo?
Hast du mal versucht die ASICs mit 1.5V zu befeuern? Wenn wir auf 1.5V
gehen würden würde die PowerStage mit dem TPS546D24ARVFR für 4 34A
liefern. Bei 1.2V sind's 42A
verstehe ich nicht!
1.5V vers 1.2 42A => (51W vers 50.4W)
Was willst Du damit ausdrücken? Oder ist das ein Tippo?
Markus
Ganz normale Leistungsrechnung. Je höher die Spannung umso geringer der Strom. Stromlast des TPS546D24ARVFR sinkt bei Erhöhung der Corespannung von 1.2V auf 1.5V.
1.2V: TPS546D24ARVFR müsste 42A liefern. Da max. 40A möglich sind bräuchte man zwei alleine schön für 4 ASICs
1.5V: TPS546D24ARVFR müsste knapp 33A liefern. Völlig in der Spezifikation, würde ausreichen.
Ganz normale Leistungsrechnung. Je höher die Spannung umso geringer der
Strom. Stromlast des TPS546D24ARVFR sinkt bei Erhöhung der Corespannung
von 1.2V auf 1.5V.
Weiß nicht, ob ich dich richtig verstanden habe, die ASICs sind aber keine Schaltregler sondern Widerstände.
Wenn du ihnen mehr Spannung gibst, ziehen sie auch mehr Strom. Vermutlich steigt die Verlustleistung im Quadrat zur Spannung (P = U^2/R)
Weiß nicht, wie dann deine Bilanz am Schaltregler aussieht ...
Ganz normale Leistungsrechnung. Je höher die Spannung umso geringer der
Strom. Stromlast des TPS546D24ARVFR sinkt bei Erhöhung der Corespannung
von 1.2V auf 1.5V.
Weiß nicht, ob ich dich richtig verstanden habe, die ASICs sind aber
keine Schaltregler sondern Widerstände.
Wenn du ihnen mehr Spannung gibst, ziehen sie auch mehr Strom.
Vermutlich steigt die Verlustleistung im Quadrat zur Spannung (P =
U^2/R)
Weiß nicht, wie dann deine Bilanz am Schaltregler aussieht ...
Dann sollten wir aber vom TPS546 Abstand nehmen und weiterhin mit externen Mosfets arbeiten die parallel geschalten sind um die Leistung zu erhöhen. Den TPS müsste man mindestens 3 mal für 8 ASICs vorsehen. Das sind Mehrkosten die sich nicht lohnen um externe Mosfets zu sparen
Dann sollten wir aber vom TPS546 Abstand nehmen und weiterhin mit
externen Mosfets arbeiten die parallel geschalten sind um die Leistung
zu erhöhen. Den TPS müsste man mindestens 3 mal für 8 ASICs vorsehen.
Das sind Mehrkosten die sich nicht lohnen um externe Mosfets zu sparen
Hmm ja, es hat schon einen Grund wieso Bitmain eine Seriel-Parallel Konfiguration benutzt.
Das wäre bei > 4 ASICs schon sinnvoll.
Du kannst natürlich 4S2P versuchen, solltest aber zumindest die Level-Shifter mal durchsimulieren, um sicher zu sein, dass das auch so funktioniert wie sie sollen.
Ich persönlich würde ADUM digitale Isolatoren bevorzugen - die gibt es mit zB 3 + 1 (3 TX, 1 RX). Aber die sind teurer ... 🙈
Manche Sachen benötigt man pro ASIC - wie die 0,8V und 1,8V Erzeugung und einen Oszillator.
Also ein Hex oder Octacore macht dann mit 1.2V Versorgungsspannung keinen Sinn außer man legt deine Stufe doppelt aus, also 8 Mosfets. Kenn mich aber nicht mit deinem Regler aus, daher "I don't know"
Bin grad am designen eines 6-Kerners.
Zwei mal Powerstage, gemeinsame Masse aber getrennte VDDs, 3S2P sozusagen. Dazu der STM, damit dürfte der Levelshifter entfallen. Beide Powerstages liefern 35A. Sollte mehr wie ausreichend sein.
Die Induktivitäten sind allerdings recht groß. Muss man berücksichtigen.
Beide Powerstages liegen auf GND, die eine Stage liefert VDD1, die andere VDD2. Jeweils drei ASICs werden pro Powerstage versorgt. Das Potential ist das gleiche
Vielleicht hab ich das auch falsch beschrieben. 3S2P ist es nicht direkt… ich versorge jeweils 3 ASICs mit den geregelten 1.2V der Powerstages. Beide liefern 1.2V 35A
Liegen alle auf der selben Masse. Die ersten drei ASICs werden über PS1 (VDD1 1.2V) versorgt und die anderen drei mit PS2 (VDD2 1.2V).
Somit dürfte der Levelshifter entfallen. Ich hoffe ich hab das jetzt verständlicher ausgedrückt
Wäre das rein theoretisch möglich das System zu kaskadieren? Sprich die Steuereinheit weglassen und ein Board mit PowerUnit und den ASICs fertigen und RX TX durchschleifen? Dürfte doch bis 12 ASICs funktionieren… rein theoretisch
Wäre das rein theoretisch möglich das System zu kaskadieren? Sprich die
Steuereinheit weglassen und ein Board mit PowerUnit und den ASICs
fertigen und RX TX durchschleifen? Dürfte doch bis 12 ASICs
funktionieren… rein theoretisch
Das funktioniert bis zu 127 ASICs soweit ich das gesehen habe.
Dann gibt es Limits im ASIC - man kann zB keinem ASIC die Chip-ID 128 geben.
Antminer S19 Pro oder so hat so 104 Chips kaskadiert.
The hash board consists of 204 BM1366 chips (PCB silk screen order BM1 to BM204), divided into 17 groups (domains), each domain consists of 12 ASIC chips. The operating domain voltage of the BM1366 chip used in the S19 XP Hyd hash board is around 1.14 to 1.25V. The chip VDDIO of domains 1 to 15 is powered by 1.2V&0.8V LDO. Each domain uses 4 LDOs for power supply (one LDO outputs 1.2V and 3 LDOs output 0.8V power supply). Each 0.8V LDO supplies power to 4 ASIC chips, as shown in Figure 4-1. Each of the 16th and 17th high-voltage domains has two MP2019s that output 2V to the LDO, and then the LDO supplies power to the chip VDDIO. Among them, one MP2019 supplies power to 1.2V & 0.8V LDO, and the other one supplies power to 0.8V LDO, a total of 2 groups, as shown in Figure 4-2. Comparing the 1366 hash board with other models, add 16 level_shifters to perform addition operations on the signals. A total of 16 are used from the second domain to the last domain. Level_shifter 1-13 is powered by the voltage of the previous domain, and 14, 15, and 16 are powered by 1 MP2019. There are 4 temperature sensors (T0 to T3), including 1 for inlet and outlet, and 2 for connection chips, as shown in Figure 4-3.
Habs geschafft das Gehäuse so zu lackieren, wie ich es mir vorgestellt habe.
Ist nicht perfekt - aber wenn man nicht genauer hinkuckt akzeptabel^^
Ist noch nicht fertig, Kühlergrill fehlt noch, mach ich voraussichtlich morgen.
Fällt mir ein, muss die STL Files noch in das Repository werfen 🤔
Und nochwas anderes - hab mit Bedauern festgestellt, dass der STM32L151C8T6 keinen DFU Bootloader eingebaut hat 🥺
Der Boot-Taster auf rev3 ist daher quasi sinnlos ... Das ist etwas, das mich an den STM32 früher schon genervt hat, man muss für jede Variante immer extra nachschauen, ob er einen DFU Bootloader hat oder nicht ... Beim L151 nahm ich es fällschlicherweise an 😑
Nicht alle L151 haben keinen DFU-Bootloader, es gibt wieder Varianten, die haben ihn ...
ich habe nun alle benötigten Teile beisammen um mir
vier qaxe und zwei piaxe aufzubauen.
Ein Kollege aus dem Forum hat sich an meine Bestellung dran
gehängt und bekommt zwei der qaxe boards bestückt.
Was mich Thomas interessiert, ist die Ansteuerung vom PC aus,
in meinem Fall eine Radxa X2L.
Steht im github Repo was dazu? Zu der Miner-SW meine ich.
Das geht wohl über RS232/USB Protokoll. Muss ich mir den
piaxe Code ansehen und selber Hand anlegen, oder hast Du da
schon den Code dazu und verfügbar gemacht?
Die zwei piaxe sollen nur den Unterschied zwischen AL/AG und den BS
ASICs verdeutlichen. Ich habe nur zwei der neuen Versionen geordert
und wollte nicht gleich das Geld für die qaxe Bestückung ausgeben,
erst wenn es signifikante Unterschiede beim Verbrauch und Rechen-
Leistung geben sollte.
Mittlerweile habe ich gesehen, das es auch eine BM1366BP Version gibt.
Habe aber leider immer noch keine Antwort vom Verkäufer erhalten, wie
sich die AG/AL/BS/BP Versionen voneinander unterscheiden.
Das geht wohl über RS232/USB Protokoll. Muss ich mir den
piaxe Code ansehen und selber Hand anlegen, oder hast Du da
schon den Code dazu und verfügbar gemacht?
Du musst nur die config.yml.example zu config.yml kopieren und den QAxe aktivieren.
Da fällt mir ein - ich wollte noch was einbauen, womit die Python Software die beiden virtuellen COM-Ports automatisch findet, dazu bin ich noch nicht gekommen 🤔 Derzeit muss man in dmesg kucken, welche ttyACMs quasi aktiviert wurden und sie in der Config eintragen.
Mittlerweile habe ich gesehen, das es auch eine BM1366BP Version gibt.
Habe aber leider immer noch keine Antwort vom Verkäufer erhalten, wie
sich die AG/AL/BS/BP Versionen voneinander unterscheiden.
Eventuell sind die Chips gebinnt ... Aber keine Ahnung auf was. Vlt auf Frequenz, vlt auf Hashrate, vlt auf Stromverbrauch.
Ich habe nur irgendwo gelesen, dass der AG für Luftkühlung und der
AL für Wasserkühlung eingesetzt werden, oder umgekehrt.
Ob das stimmt und wo der Unterschied dann liegt???
Möglicherweise kann man bei Wasserkühlung näher an die Chip-Maximal-
Werte herangehen, da diese Kühlungsart konstanter und verlässlicher
ist als der Luftstrom eines Lüfters. Ist aber nur eine Vermutung
und kein Fakt.
Markus
PS.: Mit Deiner Aufbaugeschwindigkeit kann ich leider nicht mithalten.
Habe auch Dein Künstliche-Last-Projekt bewundernd angesehen.
Scheinst in dieser Hinsicht sehr produktiv zu sein oder ist das
generell Dein "bread & butter"?
ge-bin-nt für binning wie das auch mit LEDs gemacht wird, um LEDs mit einigermaßen gleicher Charakteristik bei Produktstreuung in der Fertigung zu bekommen 😅
PS.: Mit Deiner Aufbaugeschwindigkeit kann ich leider nicht mithalten.
Habe auch Dein Künstliche-Last-Projekt bewundernd angesehen.
Scheinst in dieser Hinsicht sehr produktiv zu sein oder ist das
generell Dein "bread & butter"?
Nope, mache das alles in meiner Freizeit Abends oder am Wochenende und investiere zum Teil unhealthy-viel Zeit 🙈 Hauptberuflich bin ich Linux Server Admin.
Und dann kann es sein, dass ich wieder 5 Jahre garnichts baue, bis ich wieder etwas finde, was mich so richtig anfixt 😅
Möglicherweise kann man bei Wasserkühlung näher an die Chip-Maximal-
Werte herangehen, da diese Kühlungsart konstanter und verlässlicher
ist als der Luftstrom eines Lüfters.
Verlässlicher sicher nicht, da kann mehr schief gehen. Es is effektiver wegen der guten Wärmeabführung, weil das Wasser sehr viel Wärme aufnehmen kann, ohne groß Temperatur zu nehmen.
Ihr beide meint also die
Kategorisierung in "Bins" Fächern, wie es bei der
Selektion von Chips aus verschiedenen Regionen eines
Wafers der Fall ist, z.B nach Maximalem Takt oder min.
Timing oder Fehler/Verunreinigungen wie bei den Flash
Bausteinen.
Die Vorgehensweise ist mir zwar bekannt aber der zugehörige
Terminus war mir bis dato nicht geläufig.
Der o.g. Link bezieht sich wohl auf die u.g. X Meldung.
The newest member of the bitaxe lineup, the bitaxeSupra is working!
Single BM1368 ASIC (from the Antminer S21) running arround 620GH/s.
Open source everything.
PS.: Ich suche bereits eine Weile nach den Datenblättern
der ASIC's, konnte aber bis dato nur die der BM138X Serien
finden. Hat jemand was zu den BM136X ASIC's im Web gefunden?
Ich denke es ist auch im Vergleich nicht zu empfehlen auf den 1368 zu gehen. Er wird laut dem verlinkten Beitrag im 40/50$ Bereich liegen. Die Mehrkosten sind also nicht rentabel. Dazu müsste die Hashrate linear steigen. Das entspräche einem Anstieg der Hashrate auf 1.5TH/s…
Ich bleibe erstmal bei meiner Entwicklung bei dem 1366…
Hat zufällig jemand eine Idee, was man für so ein Schaltnetzteil Kabel verwenden sollte?
Hat 5V/60A und für + und - jeweils drei Schraubanschlüsse - also wenn man davon ausgeht, dass ich 50A "verbrennen" möchte 😁
Reichen da 6mm^2 Kabel pro Anschluss? 🤔🤔🤔
Und weiß jemand zufällig, was das für Schraubklemmen sind? Also Hersteller zB, weil ich würde gerne auf einer Platine ein entsprechendes Gegenstück montieren 🤔😅
Hat zufällig jemand eine Idee, was man für so ein Schaltnetzteil Kabel
verwenden sollte?
Hat 5V/60A und für + und - jeweils drei Schraubanschlüsse - also wenn
man davon ausgeht, dass ich 50A "verbrennen" möchte 😁
Reichen da 6mm^2 Kabel pro Anschluss? 🤔🤔🤔
Ja, 6mm^2 reichen. Als Daumenrichtwert kann man sagen dass bei 12V 6mm^2 60A möglich sind. Bei 5V reicht das aus. Wenn du auf Nummer sicher gehen willst 10mm^2
Ich schreibe Dir noch eine PN, da ich zu den zwei
Kondensatoren 100uF/6.3V auf der Unterseite noch
Fragen habe. In der BOM stehen sie als Keramik 1210
und auf dem PCB (rev. 0.2) haben sie einen größeren
Footprint!
Ich schreibe Dir noch eine PN, da ich zu den zwei
Kondensatoren 100uF/6.3V auf der Unterseite noch
Fragen habe. In der BOM stehen sie als Keramik 1210
und auf dem PCB (rev. 0.2) haben sie einen größeren
Footprint!
Der größte Unterschied von rev2 zu rev3 ist anderes Kondensator Placement.
Die dicken 330µF sind alle zum Buck gewandert - das kann man auf rev2 nachträglich noch umfummeln. Stattdessen sitzen auf der Rückseite in der Mitte der ASICs zwei 100µF in 1210
Optimal wäre es, wenn rev2 mit den Caps am Buck dann wie rev3 aussieht :)
habe heute die Erste Pltine fast fertig bestückt.
Es fehlen nur noch die ASIC's, die kommen aber erst drauf,
wenn ich die Versorgungen geprüft habe.
Dazu gleich eine Frage an Dich,
Nachdem beim Anschluss der 12V Nichts geraucht hat und auch
keine nennenswerte Erwärmung auf dem IR-Bild zu sehen ist
habe ich die Testpunkte mit einem DVM abgeklappert.
5V und 3.3V sind vorhanden. Beim LTC Regler bin ich mir nicht
sicher, ob er erst vom MC konfiguriert werden muß, damit er anläuft
und ich die 1.2V und 0.8V zu sehen bekomme.
Finished release [optimized + debuginfo] target(s) in 6.24s
22
warning: unused import: `BufRead`
23
--> src/bin/qaxe.rs:24:25
24
|
25
24 | use embedded_io_async::{BufRead, Read};
26
| ^^^^^^^
27
|
28
= note: `#[warn(unused_imports)]` on by default
29
30
warning: 1 warning emitted
1
>file qaxe-rev2.bin
2
qaxe-rev2.bin: ARM Cortex-M firmware, initial SP at 0x20004000, reset at 0x080000f4, NMI at 0x08009ece, HardFault at 0x0800c9d6, SVCall at 0x08009ece, PendSV at 0x08009ece
Der QAXE wird via 12V NT bestromt so dass ich kein Vcc
über den BMP liefern muss. Ist der (N)RST Pin auch zu
verbinden?
Mit meinem STLink V2 Klon hab ich Reset auch immer verwendet - dieser cmsis-dap Adapter scheint aber keinen Reset zu haben.
Falls du einen Reset-Pin an deinem Programmer hast, würde ich ihn verwenden 🤔
Ich kenne die Unterschiede zwischen normalem SWD und CMSIS-DAP nicht, vlt ist das ein anderes Protokoll, vlt ist das nur ein anderer Namen für das Selbe, idk 🙈
Wie sieht es aus, wenn der STM32 am Pin #44 (boot) auf 3.3V
gehievt wird - kommuniziert er dann wie USB-C im RS232 Mode?
Ja, der Bootloader kann UART (die C8-Variante kann leider kein USB-Bootloader, die CC-Variante hätte ihn), allerdings glaub ich macht er das nur an USART1 und da hängen die Level-Shifter dran.
SWD sollte normalerweise schon gehen, ganz sicher 🤔
Also 3,3V hat er ja, right? Dann fehlt eigentlich wirklich nicht mehr viel
3.3V am Regler habe ich gestern gemessen, allerdings
nicht direkt am MC.
Schaue mir am Abend die Platine nochmals genauer an und
werde versuchen auch den Takt am DSO darzustellen, denn nur
dann kann der MC ja funktionieren, oder hat diese Variante
auch einen internen RC-Taktgeber, der dann später den ext.
Takt aktiviert?
Was muss man an den diversen TP sehen (TP14,15)?
Die habe ich im Schema Versorgungsteil (v.0.2) nicht gefunden.
Takt und die 0.8V und 1.8V Versorgung sind vorhanden.
Ich werde mein Glück mit einem ST-Link II (Clone) versuchen,
muss mir nur eine Adapterplatine für das o.g. Flachband SWD
Kabel machen. Vielleicht klappt es dann mit dem Flashen.
Einmal mit angeschlossenem NT mit 12V und einmal ohne
mit 3.3V an beiden externen LED-Pins, die jeweils über 560
Ohm auf die 3.3V vom MC gehen. NRST ist auch angeschlossen,
hat aber nichts gebracht.
Ob jetzt die 560 || 560,also 280 Ohm in der 3.3V Versorgung des
MC's schon zu viel sind kann ich für die L-Variante des STM32L
nicht sagen. Hat jemand da Infos.
Der Output vom ST-Link V2 ist unten gelistet.
Für sachdienliche Hinweise bin ich dankbar.
Markus
PS.: die Adapter-Platine auf den kleinen Stecker ist von 1-bitsquered.
Hmm, das ist seltsam - kannst du nochmal den NRST prüfen, ob der wirklich richtig angeschlossen ist? 🤔
Und hast du zufällig einen Schaltplan deines Adapter-Moduls? Da kann ich schlecht prüfen, ob die richtigen Pins angeschlossen sind, weil das mehr als 2x5 ist.
Sorry, falls ich hier nicht so oft reinkucke, über Discord bin ich direkt zu erreichen.
NRST steht doch für Low active Reset, also ein Reset, wen der
Pin auf 0V Potential gezogen wird.
Da ich keinen Pin habe, an den ich direkt die 3.3V Versorgung
des MC's vom ST-Link V2 anlegen kann, habe ich zwei Leitungen
mit 3.3V vom ST-Link V2 zum Pin-Header der beiden externen LED's
gelegt (über die zwei 560 Ohm) und hoffe so daß der MC STM32L
genug Power erhält umprogrammiert werden zu können.
Ohne diese Versorgung habe ich auch die Platine via 12V vom NT
versorgt, hatte aber auch kein Erfolg beim Programmieren.
Am Montag werde ich den MC, von dem ich noch einen übrig habe
auf eine 48-Pin Adapterplatine löten um mal zu sehen, was ich
an Leitungen wirklich brauche um den Chip zu identifizieren.
Auf dem Adapter kann ich alle Leitungen herausführen, was auf dem
QAXE nicht so leicht geht.
Ich schreibe mit dem nächsten Post, wie ich die Verbindung von dem
ST-Link zum MC gemacht habe.
Da ich keinen Pin habe, an den ich direkt die 3.3V Versorgung
des MC's vom ST-Link V2 anlegen kann, habe ich zwei Leitungen
mit 3.3V vom ST-Link V2 zum Pin-Header der beiden externen LED's
gelegt (über die zwei 560 Ohm) und hoffe so daß der MC STM32L
genug Power erhält umprogrammiert werden zu können.
Man braucht keine externen 3,3V.
Einfach das Board an den Strom hängen und SWDIO, SWCLK und GND verbinden und ggfls den NRST.
So einen STLinkV2 Klon hab ich jahrelang benutzt und nie damit Probleme
gehabt.
Im MCFH Projekt, steht auch im MC-Forum habe ich auch einige STM32F4xx
geflashed und das ging immer ohne Probleme, allerdings habe ich
noch andere Leitungen wie z.B. SWIM verwendet.
Danke für die openocd Konfiguration.
Werde es damit auch mal versuchen.
Ich sehe den ST-Link während der Kommandierung blinken, aber er
erkennt das Target nicht.
Wenn ich ausschließe, daß ich noch irgendwo einen Pin-Kurzschluß
durch eine Lötzinn-Brücke habe, und eigentlich ist das der Fall,
da ich und mein Kollege mit einem Stereo-Mikroskop nach dem
Dampf-Phasen-Lötvorgang eine optische QA gemacht haben, kann es
nur noch an der Konfiguration des Programmers liegen.
Deshalb die Idee mit dem Adapterboard und dem verfügbaren MC, der
übrig geblieben ist, da man dann besser verschiedene Pins an den
ST-Link anschließen kann.
Nächste Woche bin ich Unterwegs, so daß ich mich erst danach melde,
sofern ich es bis Montag nicht geschafft habe den MC zu flashen.
Das Adafruit Board hat den SWD Connector anders belegt.
Meine Belegung kam von einem STLink V2 Klon, die ich für quasi alles übernommen hatte. Die Belegung von deinem Klon ist wieder anders. Ich glaub bei den Klons gabs 2, soweit ich weiß.
Zum Glück sind rein zufällig die fest-kurzgeschlossenen Ground Pins 3, 5, 7 und 9 Ground oder nicht benutzt - dann kannst du prinzipiell den Adapter benutzen.
Ich habe es auch mit einem J-Link nach gleicher Methoden
mittels des 1bitsquared Adapters versucht, aber irgendwie
klappt die Kommunikation zum MC noch nicht.
Ich muss wohl mein DSO rauskramen und ein paar Drähte an den
QAXE anlöten.
Ich habe noch ein Bild von meinem 1b2 Adapter angehängt,
da sich offensichtlich das PCB-Layout geringfügig geändert
hat. Meinen Adapter habe ich schon vor einigen Jahren auf
einer Messe erstanden (Embedded in Nü. oder auf der Electronica
in Mü.) Auf jeden Fall noch vor Corona.
Nachdem ich mit BMP, J-Link und ST-Link V2
diverse Versuche unternommen habe, die leider
nicht gefruchtet haben, habe ich mit einem anderen
älteren ST-Link V2 Platinchen Glück beim Flashen
den MC's gehabt.
Deine vorgeschlagene PIN-Belegung war soweit korrekt.
Siehe Anhang - Verkabelung, Flash-Vorgang und die
Antwort vom QAXE beim anstecken an den PC.
LG+Danke für Deine Hilfe und Mühe.
Hoffe meine Ausführungen können anderen Enthusiasten,
die einen QAXE aufbauen weiter helfen.
Markus
PS.: Nächste Woche werden die ASIC's auf die erste PCB
gelötet und die restlichen drei PCB's fertig bestückt.
Ich überlege, ob ich nicht gleich einen STM32F152 drauf
löten soll, der via USB geflasht werden kann.
Ich überlege, ob ich nicht gleich einen STM32F152 drauf
löten soll, der via USB geflasht werden kann.
Das würde ich aus diversen Gründen nicht machen.
Die Rust-Firmware müsste "portiert" werden. Embassy abstrahiert zwar viel, vieles müsste aber noch angepasst werden.
Der STM32L151CC hat einen USB-Bootloader, dafür müsste man den Pin PB2 per Pull-Down nach GND ziehen, dann würde er starten, wenn man einen Reset bei gedrückten Boot-Knopf macht (den gibts auf rev3). Das müsste in rev3.1 funktionieren. (rev3 ist mit CC-Variante und boot-Button, rev3.1 hat den nötigen Pull-Down, der noch gefehlt hat 🙈).
Wie geht es dann weiter, wenn der QAXE vom PC
erkannt wird. Einfach den BTC-Miner installieren
und eine Config-Datei entsprechen bereitstellen
oder wie wird der QAXE angesprochen?
@Markus, habe dir eine PN geschrieben.
Schön zu sehen wie das Projekt weitergeht, meine ASIC sind leider immer noch nicht da, Chinesisches Neujahr sei Dank.
EDIT: habe es gerade mal getestet, scheint zu funktionieren (2 Warnings)
Bricht bei mir dann aber ab, habe die Hardware nicht angeschloßen:
error: could not execute process probe-rs run --chip STM32L151C8xxA target/thumbv7m-none-eabi/release/qaxe (never executed)
danke für die Zusammenfassung der Rust Kommandos.
Habe ich schon gemacht. Unsere Postes haben sich wohl
überschnitten. Ich habe ja des .bin bereits geflashed und
auch eine Antwort vom MC an den PC bekommen.
D.h. das USB Interface funktioniert schon mit der
drauf gespielten FW.
Man installiert dann die Python Dependencies und passt die config.yml an und startet den Miner. Es gibt auch ein Example-Start-Script, wo man nur noch seine BTC Adresse eintragen muss.
Du kannst den Pyminer ohne ASICs starten, dann schaltet er die 1,2V an, die du dann prüfen kannst, bevor du die ASICs montierst :)
Bin bisher nicht mehr dazu gekommen meinen zu erweitern. Wie stellst du
das voltage-chaining an? Bzw. Das Serielle?
Ich hab für das serielle Chaining ADUM Digitale Isolatoren benutzt. Dann kann man quasi für den Input der nächsten Voltage domain die 1,8V und Signale von der vorherigen Voltage domain verwenden und muss sich quasi um nichts kümmern.
Netter Nebeneffekt ist, dass man auch ein einziges Modul an einen 5V Arduino hängen könnte, wenn man wollte 🙈
Im zweiten Bild sieht man das Ding fertig und in Betrieb.
Schafft sowas 7.2TH/s mit 205W. Die Kühlung hat sich bisserl verändert, mit den kleinen Lüfterchen war das nicht kühl zu bekommen.
Gibt’s dazu ein Repo? Sieht echt sehr verlockend aus
Noch nicht, das ist alles Kraut und Rüben gerade 🙈
Würde mir persönlich nichts ausmachen ob Kraut und Rüben :-D
Das ist letztendlich genau das was ich auch realisieren wollte. Wäre also sehr interessiert an den Ressourcen sofern die wieder OpenSource sind :)
Seh ich das richtig, dass die ASICs auf den ASIC-Modulen parallel geschalten sind? Würde ja bedeuten, dass du in deinem Fall (Bild) eine Spannungsversorgung von 4V8 liefern musst damit du die Module in Reihe betreiben kannst? Bedeutet die PowerStage liefert 4V8 bei 50A...
Das mit ADUM ist genial... Letztendlich benötigst du hier nur die Referenzspannung (Potential) des ursprünglichen Signals! Geniale Lösung!
An sich ein extrem modulares System! Freu mich auf das Repo!!!
Übrigens hab ich gesehen, dass bei OSMU man gewisse ICs günstiger bekommen kann wenn man abonniert? Sind da auch die ASICs mit enthalten bzw. Rs als auch Cs?
Als Privatperson zahlt man sich bei DigiKey bzw. Mouser ja dumm und dämlich :-/
Seh ich das richtig, dass die ASICs auf den ASIC-Modulen parallel
geschalten sind?
Ja, pro Modul sind es immer 4 ASICs, die parallel sind. Und 4 Module in Reihe.
Würde ja bedeuten, dass du in deinem Fall (Bild) eine
Spannungsversorgung von 4V8 liefern musst damit du die Module in Reihe
betreiben kannst? Bedeutet die PowerStage liefert 4V8 bei 50A...
Viel einfacher! Ich hab das Board so dimensioniert, dass ich ein fettes 5V@40A Netzteil anschließen kann. Das Netzteil kann man in gewissen Grenzen nachjustieren - sowas 4.5V bis 5.5V oder so.
Das Board hat selbst keinen Buck mehr für die ASICs.
Man spart sich dann den ganzen Buck Converter auf dem PCB und eine dicke Power-Supply braucht man eh, statt 12V + Buck kann man dann gleich 5V benutzen 😁
Übrigens hab ich gesehen, dass bei OSMU man gewisse ICs günstiger
bekommen kann wenn man abonniert? Sind da auch die ASICs mit enthalten
bzw. Rs als auch Cs?
Viel einfacher! Ich hab das Board so dimensioniert, dass ich ein fettes
5V@40A Netzteil anschließen kann. Das Netzteil kann man in gewissen
Grenzen nachjustieren - sowas 4.5V bis 5.5V oder so.
Das Board hat selbst keinen Buck mehr für die ASICs.
Man spart sich dann den ganzen Buck Converter auf dem PCB und eine dicke
Power-Supply braucht man eh, statt 12V + Buck kann man dann gleich 5V
benutzen 😁
Klingt auch gut, für mich müsste ich dann dennoch den Buck vorsehen. Ich habe vor den Miner an einem Balkonkraftwerk mit MPPT für KFZ-Batterien zu betreiben.
Natürlich wären dann 10 Module in Reihe möglich, dennoch müsste ich die Spannung auf 12V begrenzen.
Fürs erste möchte ich das mal so belassen.
Sprich würde es deiner Meinung nach reichen eine PowerStage mit vielfachem von 1V2 mit 40A auszulegen? Ich war der Meinung die ASICs brauchen >10A :-/
Interessant... Ich habe erstmal mit 3 ASICs pro Modul bei mir kalkuliert. Letztendlich das selbe Prinzip aber 3 statt 4 ASICs aufgrund der 40A...
Hmm, das ist seltsam ... da scheint irgendwas mit serial nicht zu passen 🤔
Das sollte sowas wie "aa55136600000000000005" sein und sich dann insgesamt 4 mal wiederholen 🤔
Muss mal nachdenken, wie das passieren kann 🤔 Eventuell hab ich eine Idee ... Die ASICs würde ich, wenn ich du wäre, nicht mehr anfassen. Das geht schon fast ...
Könntest du bitte den den commit-hash vom Stand des QAxe Repositories hier posten? Dann kann ich kucken, welchen Stand der Firmware du geflasht hast.
danke fürs Reinschauen.
Ich habe Deine QAXE githup Repos immer als zip-File heruntergeladen.
Wenn Du aber den Verdacht hast, dass mein Problem in der FW und nicht
HW liegt, kann ich auch gerne ein git clone machen um die FW herunter
zu laden und dann neu flashen.
Im Augenblick kann ich kein "commit-hash" erstellen.
Melde mich wieder, wenn ich das REPO geklone habe und die FW neu
aufgespielt habe.
Muss ich bei der FW was beachten?
Habe die PCB Version 0.2, weshalb ich auch aus diesem Repo die
FW gebaut habe. Sollte ich die V.3.2 nehmen?
LG
Markus
PS.: habe gerade das neuste Repo vom QAXE geclont.
git submodule update
Cloning into '/dev/shm/qaxe/firmware/embassy'...
Submodule path 'firmware/embassy': checked out '0549dd5fd7d874f4f071047db12702f58009931b'
mw@linux-kwm1:/dev/shm/qaxe
rustup target add thumbv7m-none-eabi
info: component 'rust-std' for target 'thumbv7m-none-eabi' is up to date
mw@linux-kwm1:/dev/shm/qaxe
cd firmware/
embassy/ fw-L052K8/ fw-L072CB/ fw-L151C8/ fw-L151CC/
Welche FW ist zu nehmen (sind das die MC-Versionen?)
Bei mir wäre es der 151C8.
file qaxe-fw-L151C8.bin
qaxe-fw-L151C8.bin: ARM Cortex-M firmware, initial SP at 0x20004000, reset at 0x080000f4, NMI at 0x0800a2a0, HardFault at 0x0800cdaa, SVCall at 0x0800a2a0, PendSV at 0x0800a2a0
Wie hast Du denn Deine QAXE in Betrieb genommen?
Gibt es noch eine andere Variante das FW Binary zu erzeugen?
LG
Markus
PS.: Hast Du einen kleinen FW-Code, mit dem man die
Kommunikation zu den ASICs testen kann?
Dann könnte ich am Montag die restlichen QAXE testen,
ob sie richtig bestückt sind.
und alles funktioniert. Über .cargo/config.toml in der [env] Sektion ist default "trace" eingestellt und das schmeckt der firmware wohl überhaupt nicht.
2024-04-19 23:17:21,290 - INFO - Starting server on solo.ckpool.org:3333
Das sind zwei Sachen, zum einen die "solo-mining-verifikation", die reingrätscht, weil ckpool 2% abzweigt und zum anderen kennt ckpool das "suggest_difficulty" nicht.
Kannst du zB public-pool benutzen oder die solo-verifikation in der config.yml abschalten und "suggest_difficulty" in der config auskommentieren.
beim publoc-pool bekomme ich nach einer weile
Shutdowns wegen Temperatur-Überschreitung, obwohl
die Temp. auf dem PCB und dem Kühlerblech kaum
wahrnehmbar ist.
Trotz verschiedener Abstands-Plätchen, um den Kontakt zum
ASIC und KK zu verbessern, komme ich selbst mit nur 275MHz
Takt an die 70°C, bei denen die FW/SW QAXE abschaltet.
Eventuell habe ich noch zu hohe Spannungen an den ASICs?
hast Du eine Ahnung, wo ich im Code vom Miner oder der FW
drehen müsste um den solo.ckpool.org zum Laufen zu bringen?
Bei meinen beiden Bitaxe läuft die Kommunikation mit diesem
Pool immer zuverlässig.
hast Du eine Ahnung, wo ich im Code vom Miner oder der FW
drehen müsste um den solo.ckpool.org zum Laufen zu bringen?
Bei meinen beiden Bitaxe läuft die Kommunikation mit diesem
Pool immer zuverlässig.
Ja das kuriose ist, dass einige Leute ckpool benutzen und eigentlich sollte es gehen (wenn man suggest_difficulty deaktiviert).
Ist das erste mal, dass es mit ckpool nicht gehen soll 🤔
Wie sind die 8TH/s beim QAXE zu erklären?
Public-Pool Dashboard Problem?
Jo, es kann natürlich zufällig passieren, dass man viele Hashes in sehr kurzer Zeit findet, aber ich würde eher davon ausgehen, dass Public-Pool einen Schluckauf hatte.
So mein Radxa X2L hat jetzt auch den python miner drauf
und läuft mit dem qaxe soweit stabil.
Als NT habe ich ein Meanwell 12V/12.5A (LRS-150) von Pollin,
mit dem ich zwei qaxe betreiben werde also mit 8A Last.
Im web.public-pool.io werden z.Z. acht QAXE angezeigt mit
einer gemeinsamen HR von knapp 13TH gelistet. Demnächst
sollten noch mindestens drei dazu kommen.
@Mampf
Danke nochmals für die Hilfe und das Projekt.
Werde die Entwicklung vom 0xaxe im Forum verfolgen.
Dein kreativer Projekt-Ausstoß ist ja echt
bemerkenswert und bewundernswert.
Piaxe, Qaxe und jetzt 0xaxe.
Und Deine programmierbare Load hier im Forum
auch nicht ohne.
hast Du oder sonst jemand aus dem Forum eine Empfehlung,
wo man sich in Bezug auf STM32 und Rust enlesen kann,
um z.B. sowas 0xaxe/firmware/fw-L072KZ/src/bin/qaxe.rs
zu prgrammieren?
hast Du oder sonst jemand aus dem Forum eine Empfehlung,
wo man sich in Bezug auf STM32 und Rust enlesen kann,
um z.B. sowas 0xaxe/firmware/fw-L072KZ/src/bin/qaxe.rs
zu prgrammieren?
Hmm ja, da gibt es eigentlich nur das github Repository von embassy-rs:
Hab da selbst auch ein paar Examples beigesteuert, weil ich Support für den ADC der L0 Familie selbst hinzufügen musste. Und noch irgendwas mit dem L151, ich glaube da musste ich noch Code beitragen, damit der interne USB Pullup auch funktioniert.
PS. ADC - Da ist mir aufgefallen, das die Spannungswerte 0V sind.
Kann die Platine vom QAXE keine Spannungen messen, oder liegt es an
dem Python Miner?
PS. ADC - Da ist mir aufgefallen, das die Spannungswerte 0V sind.
Kann die Platine vom QAXE keine Spannungen messen, oder liegt es an
dem Python Miner?
Ja genau, der QAxe hat keine Spannungsmessung.
Das wurde erst mit den 4 Voltage-Domains auf dem 0xAxe interessant.
Hmm, vlt sollte ich das irgendwie anders machen, damit man durch die 0-Werte nicht verunsichert wird 🤔
Verunsichert hat es mich nicht. Dachte schon sowas, da ja
nur Temp.-Sensoren verbaut sind.
War mir nicht klar, ob der MC eventuell via ADC was messen kann.
Da der Miner universell ist, kannst Du das aus meiner Sicht so lassen
oder eventuell in der config.yml ein disable dafür vorsehen, wenn
Dir der Aufwand nicht zu groß ist.
Wie ist eigentlich so eine Meldung zu interpretieren.
Spiele mich gerade mit unterschiedlichen Mining Pools.
Muss man sich eventuell bei manche anmelden und die
offentliche BTC Adr. registrieren, damit sie in der Miner
API während des Verbindens erkannt und akzeptiert wird?