Forum: Projekte & Code 10W Bitcoin miner mit 450GH/s für Raspberry Pi


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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.

Lochabstand 75mm.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Oh vlt sind doch nicht alle gleich 🤔

Ich hab den Xilence I402

Backplate sieht so aus:
https://i.ebayimg.com/images/g/N5IAAOSwZHBj7jFT/s-l1600.jpg

von Be N. (ben90)


Lesenswert?


von Mampf F. (mampf) Benutzerseite


Lesenswert?

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.

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Thomas,

sehe ich das richtig, dass Du folgende Mod. verschlägst,
siehe Anhang.

Die 330u C's weg vom ASIC und nahe an den LTC Chip und dafür die
100u C's an die ASIC's?

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Hallo Thomas,
>
> sehe ich das richtig, dass Du folgende Mod. verschlägst,
> siehe Anhang.
>
> Die 330u C's weg vom ASIC und nahe an den LTC Chip und dafür die
> 100u C's an die ASIC's?
>
> Markus

Ja genau, ich hab das Repository schon aktualisiert. :)

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

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.

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Kann nicht sagen, was da los ist.
Jetzt hängen schon vier Bilder vom LTC IC dran.

Bei mir sieht es aber so aus:

Markus

PS.: Mod bitte nun die drei Anhänge löschen. Danke!

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Hier gibts noch den Schaltplan vom Eval-Board:

https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/dc1580a.html

Hab ich mehr oder weniger nur kopiert und abgespeckt.

von Markus W. (dl8mby)


Lesenswert?

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.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Hast Du auch eine derartige Beobachtung bei piaxe gemacht?

Das weiß ich ehrlich gesagt nicht - ausschließen würde ich es nicht.

Der Buck wird ja auch sehr warm, vlt ist das der gleiche Grund.

Und die Verteilung der Cs ist beim PiAxe ähnlich wie beim Bitaxe - also 
vlt dort auch das gleiche 🤔

Muss ich mal testen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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.

Markus W. schrieb:
> 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.

Das ist sicherlich eine gute Idee - da sind eh viel zu wenig 100nFs 
drauf auf dem Board.

Der Bitaxe hatte überall schon 1µF Cs, hab mich immer gewundert, ob das 
so sein soll oder "künstlerische Freiheit" war.

von Markus W. (dl8mby)


Lesenswert?

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.

Markus

von Christian (dragony)


Lesenswert?

Mampf F. schrieb:
> Der Bitaxe hatte überall schon 1µF Cs, hab mich immer gewundert, ob das
> so sein soll oder "künstlerische Freiheit" war.

Naja... sind halt 10A... bei 100n und 10% Spannungstoleranz sind wir 
hier bei 1.2ns. Und das gilt dann auch nur für die C0Gs :D

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Hab nochwas herausgefunden ...

Qaxe rev1 hatte das Problem, dass es bei 485MHz ASIC Clock nicht auf die 
1,8TH/s avg gekommen ist.

Waren dann nur 1,5TH und bei 100% CPU-Kühlung sogar noch deutlich 
weniger ... 1TH bis 1.2TH 🙈

Hab die Core-Spannung erhöht um 0,05V (R6 statt 20k sind jetzt 22k) und 
jetzt klappt es.

1.8TH bei 32°C bei 100% Lüfter 🥳

Wenn das wegen ein paar Millivolt so empfindlich ist, könnte der Ripple 
vom Buck Konverter schon echt was ausmachen ...

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Mampf F. schrieb:
> Wenn das wegen ein paar Millivolt so empfindlich ist, könnte der Ripple
> vom Buck Konverter schon echt was ausmachen ...

Jemand hat mir noch den Tipp gegeben, dass ich meine Alu-Polymer Cs 
durch MLCCs ersetzen sollte.

Die gibts mit 330µF in 1210 und haben nur 1/3tel so hohen ESR.

Er meinte aber auch, ich sollte lieber gleich meinen uralt LTC3856 
entsorgen und was modernes mit eigenbauten MOSFETs benutzen 😂

von Markus W. (dl8mby)


Lesenswert?

>entsorgen und was modernes mit eigenbauten MOSFETs benutzen.

Den Tipp was das sein könnte hat er Dir aber nicht gegeben :-( ?

>Er meinte aber auch, ich sollte lieber gleich meinen uralt LTC3856
>entsorgen und was modernes mit eigenbauten MOSFETs benutzen.

Macht Sinn, dann werden die Schaltstrukturen kleiner, das Routing
einfacher und wahrscheinlich das EMI und der Wirkungsgrad besser.

Markus

PS.:

Die Preise von den 330uF MLCC's sind auch nicht schlecht.
Eventuell ist die 6.3V Version zu hoch gegriffen.
Der ASIC hat ja max. 1.2V+x

https://www.mouser.de/c/passive-components/capacitors/?q=MLCC%20330UF&capacitance=330%20uF&case%20code%20-%20in=1210&product=General%20Type%20MLCCs&voltage%20rating%20dc=6.3%20VDC&NewSearch=1

100uF 16V:

https://www.mouser.de/c/passive-components/capacitors/ceramic-capacitors/mlccs-multilayer-ceramic-capacitors/multilayer-ceramic-capacitors-mlcc-smd-smt/?capacitance=100%20uF&case%20code%20-%20in=1210&dielectric=X5R&voltage%20rating%20dc=16%20VDC

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Den Tipp was das sein könnte hat er Dir aber nicht gegeben :-( ?

Doch, den hier zum Beispiel:

https://www.ti.com/product/TPS546D24A

Zwei davon ... glaub einer würde nicht ganz reichen.

Hat allerdings Power-Bus, das man dann noch in der Firmware 
implementieren müsste 🤔

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Markus W. schrieb:
>> Den Tipp was das sein könnte hat er Dir aber nicht gegeben :-( ?
>
> Doch, den hier zum Beispiel:
>
> https://www.ti.com/product/TPS546D24A
>
> 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.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

> 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?

von Markus W. (dl8mby)


Lesenswert?

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

von Be N. (ben90)


Lesenswert?

Markus W. schrieb:
> 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.

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Wenn ich das richtig verstanden habe, nehmen doch die ASIC's
bei 1,2V+-Delta die 10A auf - oder?

Das sind dann die besagten 12W pro ASIC in der AL, AG und eventuell
etwas weniger bei der BS Version.

Und die 4x 10A sind doch die Ausgangsströme des TPS Reglers.

Sehe ich das richtig?

Markus

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

TPS546D24A Ausschnitt aus dem DB.

Markus

von Be N. (ben90)


Lesenswert?

Markus W. schrieb:
> Wenn ich das richtig verstanden habe, nehmen doch die ASIC's
> bei 1,2V+-Delta die 10A auf - oder?
>
> Das sind dann die besagten 12W pro ASIC in der AL, AG und eventuell
> etwas weniger bei der BS Version.
>
> Und die 4x 10A sind doch die Ausgangsströme des TPS Reglers.
>
> Sehe ich das richtig?
>
> Markus

VDD sind 3V6 nicht 1V2... Ich glaub wir laufen grad irgendwo umher :D

von Be N. (ben90)


Angehängte Dateien:

Lesenswert?

Aktuell siehts bei mir so aus...

von Markus W. (dl8mby)


Lesenswert?

@Be N.

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

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Markus W. schrieb:
> @Be N.
>
> 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...

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Nochmal zum besseren Verständnis.

Siehe Block-Schema.

Das mit den 3.6 Volt von Dir stimmt auch, aber ich glaube
die Leistung liegt auf der 1.2V Schiene.

Thomas kann dazu wahrscheinlich mehr schreiben.

Markus

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Ich habe das im Block-Schema jetzt eingekreist.
Da wird Power-Good und Power-Start bei 1.2V angewendet.
Das ist die wichtige Versorgungs-Rail!


Markus

PS.: die 3.3V bzw 3.6V werden wohl nur für die Kommunikation
zum MC, (d.h. eingebaute Level-Shifter) gebraucht.

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Markus W. schrieb:
> Ich habe das im Block-Schema jetzt eingekreist.
> Da wird Power-Good und Power-Start bei 1.2V angewendet.
> Das ist die wichtige Versorgungs-Rail!
>
> Markus

Also ich hab mir da den BitAxeHex als Vorlage genommen. Dort werden die 
ASICs mit 3V6 versorgt...

Siehe hier. Würde die Last an der Spannungsversorgung reduzieren

https://github.com/skot/bitaxeHex

von Be N. (ben90)


Lesenswert?

Be N. schrieb:
> Also ich hab mir da den BitAxeHex als Vorlage genommen. Dort werden die
> ASICs mit 3V6 versorgt...
>
> Siehe hier. Würde die Last an der Spannungsversorgung reduzieren
>
> https://github.com/skot/bitaxeHex

Versorgung entsprechend meinem Beitrag weiter oben gegen den 
TPS546D24ARVFR getauscht und auf 40A ausgelegt. BUS wird wie gesagt 
nicht verwendet, aktuell

von Be N. (ben90)


Lesenswert?

Bei 1V2 ist klar, dann sprechen wir von ü40A was der TPS546D24ARVFR 
liefern muss... Dann müssen da klar mindestens zwei parallel eingeplant 
werden

von Markus W. (dl8mby)


Lesenswert?

Das u.g. ist nicht richtig!

Es sind zwei jeweils parallel und dann 3x in Serie - sorry.


Das liegt daran, dass sie dort in Serie verschaltet sind,
3S2P (1+1+1) || (1+1+1).
3x 1.2V = 3.6V.

So mein Verständnis.

Ist eine andere Anordnung der ASIC's

Markus

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Markus W. schrieb:
> Das liegt daran, dass sie dort in Serie verschaltet sind,
> 3S2P (1+1+1) || (1+1+1).
> 3x 1.2V = 3.6V.
>
> So mein Verständnis.
>
> Ist eine andere Anordnung der ASIC's
>
> Markus

OMG hast recht... Bin ich doof... Für den Ocxe muss das auf 4V8... Oh 
man...

Danke. Hab ich total übersehen...

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

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.

Siehe Schema-Ausschnitt.

Markus

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

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 ;)

von Mampf F. (mampf) Benutzerseite


Lesenswert?

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 🙈

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kleines Update ... die +0.05V bringen es echt.

Jetzt gehen 550MHz auch (mehr hab ich noch nicht probiert).

2TH/s average auf 33°C mit 50W 😍

von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Kleines Update ... die +0.05V bringen es echt.
>
> Jetzt gehen 550MHz auch (mehr hab ich noch nicht probiert).
>
> 2TH/s average auf 33°C mit 50W 😍

Dann sollten wir doch die 8 in Reihe nehmen mit 1.2 bzw 1.5V… bedeutet 
aber auch doppelte Leistungsstufe

von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Kleines Update ... die +0.05V bringen es echt.
> Jetzt gehen 550MHz auch (mehr hab ich noch nicht probiert).
> 2TH/s average auf 33°C mit 50W 😍

Sieht top aus! Hast du den Schaltplan mit deinen lokalen Änderungen 
schon committed?

von Be N. (ben90)


Lesenswert?

@Mampf

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

von Markus W. (dl8mby)


Lesenswert?

@Be N.

>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

von Be N. (ben90)


Lesenswert?

Markus W. schrieb:
> @Be N.
>
>>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.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> 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 ...


Be N. schrieb:
> Sieht top aus! Hast du den Schaltplan mit deinen lokalen Änderungen
> schon committed?

Jap, hab ich als rev3 gepusht.

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Be N. schrieb:
>> 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

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> 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.

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

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"

Ich erarbeite mal ein Konzept

von Be N. (ben90)


Lesenswert?

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.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> Zwei mal Powerstage, gemeinsame Masse aber getrennte VDDs, 3S2P
> sozusagen. Dazu der STM, damit dürfte der Levelshifter entfallen.

Hmm leider verstehe ich nicht so recht, was du meinst.

Bei 3S2P hat man keine gemeinsame Masse bei allen ASICs - könntest du 
das bitte nochmal kurz näher erklären, wie du dir das überlegt hast?

von Be N. (ben90)


Lesenswert?

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

von Be N. (ben90)


Lesenswert?

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

3P*2 würde es besser beschreiben

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> 3P*2 würde es besser beschreiben

Ahja, oki, ja so hab ich es verstanden 😅 Danke dafür :)

von Be N. (ben90)


Lesenswert?

Wobei mir heute Nacht noch eine bessere Idee gekommen ist. Die muss ich 
aber erst noch evaluieren 😅

von Be N. (ben90)


Lesenswert?

@Mampf

Nutzt du nicht auch einen Pegelwandler? Von 3V3 auf 1V8 und umgekehrt?

von Cyblord -. (cyblord)


Lesenswert?

Be N. schrieb:
> Wobei mir heute Nacht noch eine bessere Idee gekommen ist. Die muss ich
> aber erst noch evaluieren 😅

Das Geld für die Miner in ETFs zu investieren und tatsächlich Gewinn 
machen?

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> @Mampf
>
> Nutzt du nicht auch einen Pegelwandler? Von 3V3 auf 1V8 und umgekehrt?

Jap, leider funktioniert bei den STM32L0/1 USB nicht auf 1,8V - sonst 
hätte man sich das sparen können 🥺

von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Be N. schrieb:
>> @Mampf
>>
>> Nutzt du nicht auch einen Pegelwandler? Von 3V3 auf 1V8 und umgekehrt?
>
> Jap, leider funktioniert bei den STM32L0/1 USB nicht auf 1,8V - sonst
> hätte man sich das sparen können 🥺

Hab ich grad gesehen für TX/RX auf den ASIC... Meine Idee bleibt erstmal 
aus. wird erstmal auf einen Hex rauslaufen wie oben beschrieben

von Be N. (ben90)


Lesenswert?

Wenn wir das irgendwie schaffen könnten RX/TX von 2V4 auf 1V2 wandeln zu 
können dann wär ein Achtcore möglich mit deiner bestehenden PowerStage

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kleines Update an einer "Neben-Front".

Gehäuse konnte ich jetzt erfolgreich im 2.Versuch drucken.

Mit PETG hatte ich noch nicht soviele Erfahrungen, aber es hat jetzt 
geklappt.

Etwas spooky, imho, das Ding senkrecht zu drucken, weil man eine recht 
kleine Standfläche und dafür eine recht hohe Höhe hat.

Man benötigt dann keinerlei Supports und kann den Qaxe von hinten 
einfach hineinschieben.

Es fehlen noch ein paar Kleinigkeiten ... "Kühlergrill" vorne, schwarze 
Streifen auf der "Motorhaube" und Flammenaufkleber auf der Seite 😅

: Bearbeitet durch User
von Der mit dem Wolf T. (dermitdemwolf_t)


Lesenswert?

Stellst du die stl datein bereit?
Ist das model dann für piaxe oder qaxe?

Ah soory qaxe das Bild hatte noch nicht geladen.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Der mit dem Wolf T. schrieb:
> Stellst du die stl datein bereit?
> Ist das model dann für piaxe oder qaxe?

Jap, das kommt dann ins Repository und auf Thingiverse.

von Be N. (ben90)


Lesenswert?


von Be N. (ben90)


Lesenswert?

@Mampf

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

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> 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.

Spricht nichts dagegen  :)

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Gerade gefunden:

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.

von Be N. (ben90)


Angehängte Dateien:

Lesenswert?

Das Bild hab ich dazu gefunden

Und das ist der genutzte Levelshifter:

https://www.zeusbtc.com/ASIC-Miner-Repair/Parts-Tools-Details.asp?ID=2715

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> The chip VDDIO of domains
> 1 to 15 is powered by 1.2V&0.8V LDO

Das ist interessant - dann wäre die korrekte I/O Voltage nicht 1,8V 
sondern 1,2V 🤔

von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Be N. schrieb:
>> The chip VDDIO of domains
>> 1 to 15 is powered by 1.2V&0.8V LDO
>
> Das ist interessant - dann wäre die korrekte I/O Voltage nicht 1,8V
> sondern 1,2V 🤔

Hier das gesamte Dokument

https://www.zeusbtc.com/manuals/4915-antminer-s19-xp-hydro-hash-board-repair-guide

von Be N. (ben90)


Lesenswert?

Das sind aber nur die Domänen 1-15, 16 und 17 werden glaub mit 2V 
befeuert.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kleines Update ...

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 ...

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

So jetzt komplett mit "Kühlergrill" 😅

Beitrag #7601018 wurde von einem Moderator gelöscht.
Beitrag #7601032 wurde von einem Moderator gelöscht.
Beitrag #7601188 wurde von einem Moderator gelöscht.
von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> So jetzt komplett mit "Kühlergrill" 😅

Geil gemacht! Gefällt mir gut!

In Gelb als Bumblebee wäre eher meins aber echt gute Idee!

Beitrag #7601267 wurde von einem Moderator gelöscht.
Beitrag #7601285 wurde von einem Moderator gelöscht.
Beitrag #7601399 wurde von einem Moderator gelöscht.
Beitrag #7601400 wurde von einem Moderator gelöscht.
Beitrag #7601402 wurde von einem Moderator gelöscht.
Beitrag #7601405 wurde von einem Moderator gelöscht.
Beitrag #7601410 wurde von einem Moderator gelöscht.
Beitrag #7601412 wurde von einem Moderator gelöscht.
von Markus W. (dl8mby)


Lesenswert?

@Mampf F.,

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.

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> ich habe nun alle benötigten Teile beisammen um mir
> vier qaxe und zwei piaxe aufzubauen

Wow, ist ja schon fast Massenproduktion 😅

Markus W. schrieb:
> 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 Miner-Software ist fix und fertig:

https://github.com/shufps/piaxe-miner/

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.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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.

Das weiß man leider nicht.

von Markus W. (dl8mby)


Lesenswert?

gebinnt? (gepinnt?)

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"?

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> gebinnt? (gepinnt?)

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 😅

Markus W. schrieb:
> 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 😅

: Bearbeitet durch User
von Bernd G. (Gast)


Lesenswert?

Mampf F. schrieb:
> Markus W. schrieb:
>> gebinnt? (gepinnt?)

Binnung für Bündelung.

Markus W. schrieb:
> 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.

von Markus W. (dl8mby)


Lesenswert?

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.

Danke für die Erklärung.

Markus

von Der mit dem Wolf T. (dermitdemwolf_t)


Lesenswert?

Wie Skot Gepostet hat wurde der BS1368 auf dem Bitaxe gelötet
https://twitter.com/skot9000/status/1755262407197303119

Weis nicht ob der auf dem Aktuellen board ohne änderungen eingebaut 
werden kann.

Grüße

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Der mit dem Wolf T. schrieb:
> Wie Skot Gepostet hat wurde der BS1368 auf dem Bitaxe gelötet
> https://twitter.com/skot9000/status/1755262407197303119
>
> Weis nicht ob der auf dem Aktuellen board ohne änderungen eingebaut
> werden kann.

Nice, das ist mir total entgangen obwohl ich in deren Community aktiv 
bin 🙈

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Da ist nochmal ein Bug in der Qaxe BOM - der lm1117 ist die Adj Version, 
man braucht aber die 3,3V 🙈

Werde das asap korrigieren 🙈

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

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.

Siehe auch dazu den Link:

https://bitcointalk.org/index.php?topic=5484442.0

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?

https://file12.bitmain.com/shop-product/firmware/BM1384_Datasheet_v2.1.pdf
https://file12.bitmain.com/shop-product/firmware/BM1382_Datasheet_v3.0.pdf
https://file12.bitmain.com/shop-product/firmware/BM1380_Datasheet_v1.0.pdf

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Hat jemand was zu den BM136X ASIC's im Web gefunden?

Nope, da haben schon viele danach gesucht und niemand hat was gefunden 🙈

von Be N. (ben90)


Lesenswert?

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…

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> Ich bleibe erstmal bei meiner Entwicklung bei dem 1366…

Vielen Dank für die Info!

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

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 🤔😅

: Bearbeitet durch User
von Der mit dem Wolf T. (dermitdemwolf_t)


Lesenswert?

Hi mampf,
Also wenn du von der Steckdose zum Netzteil gehst reichen 1.5qm^2

Vom Netzteil zum abnehmer kommt es auf die Kabellänge an.
Beispiel 1 meter Kabel
Reichen 6qm^2

https://www.amumot-shop.de/rechner/batteriekabel-querschnitt

Hier kannst du aber auch selber mal schauen. 12v durch 2 dann hättest du 
Werte für 6 volt

Grüße

von Markus W. (dl8mby)


Lesenswert?

Du hast doch drei V- und drei V+ Anschlüsse an der Leiste,
d.h. 20A pro Anschluß und Kabel und für 20A reichen 2mm2.

Markus

von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> 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

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Vielen Dank, das hat mir weitergeholfen!

von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

hast Du die STL Files für Dein Gehäuse ins Github von QAXE
eingepflegt, oder kannst sie bitte noch einstellen.

LG+Danke
Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> hast Du die STL Files für Dein Gehäuse ins Github von QAXE
> eingepflegt, oder kannst sie bitte noch einstellen.

Hab ich gerade gemacht :)

von Markus W. (dl8mby)


Lesenswert?

Danke!

Bestückung vom QAXE ist angelaufen.
PCB-BOT ist fast fertig, in vierfacher Ausführung.

Siehe Links:

https://pixshare.de/oWvCht
https://pixshare.de/oWvfY4

Markus

PS.: Die Links sind nur eine Woche gültig!

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!

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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 
:)

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

>Mitte der ASICs zwei 100µF in 1210

die C's aus der BOM sind aber keramisch 1210,
die Footprints gehören eher zu Tantal-C's

Die 1210 C's passen nicht zu den FP, die PAD's
sind zu weit auseinander.

Sollen jetzt an diese Stelle keramische oder elektrolyt
C's hin?

LG
Markus

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Markus W. schrieb:
> die C's aus der BOM sind aber keramisch 1210,
> die Footprints gehören eher zu Tantal-C's

Bei rev2 waren die keramischen 100µF 1210 alle am Buck, die 330µF alle 
auf der Rückseite.

> Die 1210 C's passen nicht zu den FP, die PAD's
> sind zu weit auseinander.

Rev3 hat die passenden Footprints. Bei Rev2 kann man mit genügend 
Lötzinn die 1210er Cs dort hinlöten, wo die Alu-Polymer Caps waren.

> Sollen jetzt an diese Stelle keramische oder elektrolyt
> C's hin?

Auf der Rückseite die keramischen, die dicken Alu-Polymer an den Buck.

Ich hab dir von rev3 screenshots der 3D-View angehängt.

Man kriegt es auf rev2 so hin, dass es wie auf rev3 aussieht.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Ok, Danke!

Werde es nach Deinem Vorschlag realisieren.
Wenn die 0.2. Version läuft melde ich mich wieder
wegen FW Einspielen und an PC in betrieb nehmen.

LG
Markus

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

Markus W. schrieb:
> PS.: Die Links sind nur eine Woche gültig!

und dann machen die sich noch die Mühe und kleistern ihr Logo ins Bild.
Nutzungsvoraussetzungen = Abgabe des Copyrights von Deinen Bildern?

von Markus W. (dl8mby)


Lesenswert?

@DesIntegrator

Hast Du eine bessere File-Share Alternative?

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

@Mampf,

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.

Der LTC3856 hat ja einen RUN-Pin.

Ist das so?

Hätte mir die Antwort selber geben können.

Laut DB steht da:

RUN (Pin 2/Pin 30): Run Control Input. A voltage above
1.22V on this pin turns on the IC.

Also muss der MC laufen, um die Konverter zu aktivieren
und erst dann sehe ich die ASIC Versorgungen 0.8V & 1.2V.

kannst Du das so bestätigen, oder hängt der Pin irgendwo
fix an einem Spannungsteiler?

Markus

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

@Mampf,

ich habe mir gerade die FW für rev 0.2 via rust compiliert.
Wie muss ich das File mittels run.sh auf den MC bringen.

PCB an 12V Versorgung und via PC-USB oder anders an den PC anschließen?
Irgend einen Jumper setzen - hast Du mal erwähnt.

file ./target/thumbv7m-none-eabi/release/qaxe
./target/thumbv7m-none-eabi/release/qaxe: ELF 32-bit LSB executable, 
ARM, EABI5 version 1 (SYSV), statically linked, with debug_info, not 
stripped

LG+Danke!
Markus

von Markus W. (dl8mby)


Lesenswert?

Habe mich durchgebissen und konnte das Binery für den STM32 erzeugen, 
s.u.

Markus
1
mw@linux-kwm1:/dev/shm/QAXE/FW/qaxe/firmware/fw-rev2
2
>cargo objcopy --release --bin qaxe -- -O binary qaxe-rev2.bin
3
   Compiling defmt-macros v0.3.6
4
   Compiling defmt v0.3.5
5
   Compiling embedded-io v0.6.1
6
   Compiling embassy-net-driver v0.2.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-net-driver)
7
   Compiling embassy-time v0.3.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-time)
8
   Compiling embassy-usb-driver v0.1.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-usb-driver)
9
   Compiling bxcan v0.7.0
10
   Compiling embassy-hal-internal v0.1.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-hal-internal)
11
   Compiling embassy-executor v0.5.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-executor)
12
   Compiling embedded-io-async v0.6.1
13
   Compiling panic-probe v0.3.1
14
   Compiling defmt-rtt v0.4.0
15
   Compiling embassy-sync v0.5.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-sync)
16
   Compiling embassy-net-driver-channel v0.2.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-net-driver-channel)
17
   Compiling embassy-embedded-hal v0.1.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-embedded-hal)
18
   Compiling embassy-usb v0.1.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-usb)
19
   Compiling embassy-stm32 v0.1.0 (/dev/shm/QAXE/FW/qaxe/firmware/embassy/embassy-stm32)
20
   Compiling embassy-stm32l1-examples v0.1.0 (/dev/shm/QAXE/FW/qaxe/firmware/fw-rev2)
21
    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

[Mod: Code-Tags eingefügt]

: Bearbeitet durch Moderator
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Also muss der MC laufen, um die Konverter zu aktivieren
> und erst dann sehe ich die ASIC Versorgungen 0.8V & 1.2V.
>
> kannst Du das so bestätigen, oder hängt der Pin irgendwo
> fix an einem Spannungsteiler?

Ja genau das ist richtig für die 1,2V. Die 0.8V und 1.8V sollten auch so 
gehen, weil die hängen an den 3.3V

Markus W. schrieb:
> Habe mich durchgebissen und konnte das Binery für den STM32 erzeugen,
> s.u.

Sehr gut, dann muss es nur noch "irgendwie" in den stm32.

Falls den CMSIS-DAP Adapter nachgebaut hast [1], reicht es, das "run.sh" 
script im firmware-Verzeichnis auszuführen.

Du kannst das Binary aber auch mit einem anderen SWD-fähigen Adapter 
flashen.


[1]: https://github.com/shufps/raspi-pico-dap

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Ich versuche den MC mit einer BMP (black magic probe)
zu Programmieren. SWDIO und SWCLK sowie GND sind schon
richtig verbunden.

Leider wird das STM32 Device noch nicht erkannt.

gdb>
target extended-remote /dev/ttyACM0

monitor swdp_scan

Brauche ich noch andere Leitungen?

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?

LG
Markus

PS.:

Nachdem was unter
https://github.com/shufps/raspi-pico-dap
braucht man nur drei Leitungen.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Nachdem was unter
> https://github.com/shufps/raspi-pico-dap
> braucht man nur drei Leitungen.

Ja genau, man braucht nur drei Leitungen.

Markus W. schrieb:
> 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 🙈

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

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?

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

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.

Markus

von Markus W. (dl8mby)


Lesenswert?

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.

Markus

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Mampf und Forum,

will noch nicht recht klappen mit dem Flashen,

Habe es jetzt mit einem ST-Link V2 versucht.

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.
1
Mar 01 19:55:28 linux-kwm1 kernel: usb 1-1: new full-speed USB device number 64 using xhci_hcd
2
Mar 01 19:55:28 linux-kwm1 kernel: usb 1-1: New USB device found, idVendor=0483, idProduct=3748, bcdDevice= 1.00
3
Mar 01 19:55:28 linux-kwm1 kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
4
Mar 01 19:55:28 linux-kwm1 kernel: usb 1-1: Product: STM32 STLink
5
Mar 01 19:55:28 linux-kwm1 kernel: usb 1-1: Manufacturer: STMicroelectronics
6
Mar 01 19:55:28 linux-kwm1 kernel: [37B blob data]
7
8
>st-info --probe
9
Found 1 stlink programmers
10
  version:    V2J17S4
11
  serial:     303030303030303030303031
12
  flash:      0 (pagesize: 0)
13
  sram:       0
14
  chipid:     0x000
15
  dev-type:   unknown
16
17
>st-info --chipid
18
Failed to enter SWD mode
19
0x0000
20
21
>st-info --descr
22
unknown
23
24
st-flash --connect-under-reset write /dev/shm/QAXE/FW/qaxe/firmware/fw-rev2/qaxe-rev2.bin 0x8000000
25
st-flash 1.8.0-13-g40ee5f4
26
2024-03-01T22:31:28 WARN common.c: NRST is not connected
27
2024-03-01T22:31:28 ERROR common.c: Soft reset failed: error write to AIRCR
28
2024-03-01T22:31:28 ERROR common.c: Can not connect to target. Please use 'connect under reset' and try again
29
Failed to connect to target

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> WARN common.c: NRST is not connected

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.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

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.



LG
Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> NRST steht doch für Low active Reset, also ein Reset, wen der
> Pin auf 0V Potential gezogen wird.

Jup, das ist korrekt.

Markus W. schrieb:
> 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.

Markus W. schrieb:
> Ohne diese Versorgung habe ich auch die Platine via 12V vom NT
> versorgt, hatte aber auch kein Erfolg beim Programmieren.

Okay verstehe, das ist seltsam.

Markus W. schrieb:
> Ich schreibe mit dem nächsten Post, wie ich die Verbindung von dem
> ST-Link zum MC gemacht habe.

Ok, bin gespannt!

So einen STLinkV2 Klon hab ich jahrelang benutzt und nie damit Probleme 
gehabt.

Du könntest auch mal kucken, ob openocd den µC erkennt per
1
openocd -f qaxe.cfg

und das hier die config:
1
source [find interface/stlink-v2.cfg]
2
3
source [find target/stm32l0.cfg]
4
5
# use hardware reset, connect under reset
6
#reset_config srst_only srst_nogate
7
reset_config none separate

Du kannst beide reset-Konfigurationen mal ausprobieren, das was aktiv 
ist, ist das, was ich seit Jahren benutze.

Du hast auch mehrere Qaxe Boards, right? Machen alle das gleiche?

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

>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.

LG+SWE

Markus


PS.: OpenOCD Zugriff, s.u.

1
Versorgung ST-Link 3.3V am Lüfter-Pin
2
=====================================
3
4
>openocd -f /dev/shm/QAXE/qaxe_openocd.cfg 
5
Open On-Chip Debugger 0.12.0
6
Licensed under GNU GPL v2
7
For bug reports, read
8
        http://openocd.org/doc/doxygen/bugs.html
9
WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg
10
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
11
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
12
none separate
13
14
Info : Listening on port 6666 for tcl connections
15
Info : Listening on port 4444 for telnet connections
16
Info : clock speed 300 kHz
17
Info : STLINK V2J17S4 (API v2) VID:PID 0483:3748
18
Info : Target voltage: 6.246943
19
Error: init mode failed (unable to connect to the target)
20
21
22
Versorgung: 12V NT
23
===================
24
>openocd -f /dev/shm/QAXE/qaxe_openocd.cfg 
25
Open On-Chip Debugger 0.12.0
26
Licensed under GNU GPL v2
27
For bug reports, read
28
        http://openocd.org/doc/doxygen/bugs.html
29
WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg
30
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
31
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
32
none separate
33
34
Info : Listening on port 6666 for tcl connections
35
Info : Listening on port 4444 for telnet connections
36
Info : clock speed 300 kHz
37
Info : STLINK V2J17S4 (API v2) VID:PID 0483:3748
38
Info : Target voltage: 6.182248
39
Error: init mode failed (unable to connect to the target)



>Info : Target voltage: 6.182248  - verstehe ich nicht!

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Noch einmal die Bilder zu meinem Prog-Adapter.

SWDIO: or
SWCLK: ge
NRST:  gn
GND:   bl

Markus

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Noch einmal die Bilder zu meinem Prog-Adapter.
>
> SWDIO: or
> SWCLK: ge
> NRST:  gn
> GND:   bl
>
> Markus

Das kann ich leider nicht prüfen, weil ich nicht weiß, wie dein 1,27mm 
Adapter auf 2,54mm Adapter verdrahtet ist.

1-zu-1 kann es ja schlecht sein, der 2,54mm Pinheader hat deutlich mehr 
Pins.

Kann man das bitte irgendwie nachvollziehbar machen?

Mit Schaltplan oder soetwas?

edit: Das hier scheint es wohl zu sein:
https://www.adafruit.com/product/2094

Ansonsten, hatte ich dich schon gefragt, ob du 3,3V am lm1117 misst, 
wenn er an 12V hängt?

> Target voltage: 6.182248
Hmm, das ist wirklich sehr sonderbar

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Oh ah ich versteh jetzt, was du gemacht hast ...

Ups, es gibt keine Standard-10pol SWD Belegung 🙈

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.

Musst nur kucken, wo welches Signal hingehört.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

es ist der Adapter von 1bitsquared und nicht adafruit.

Siehe u.g. Links.

https://1bitsquared.com/collections/accessories/products/20pin-jtag-adapter
https://1bitsquared.com/cdn/shop/products/20pin_jtag_adapter_schematic_1024x1024.png

LG+Danke!
Markus

von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

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.

Trotzdem danke für Deine Mühe.

Markus
1
>JLinkSTM32
2
SEGGER J-Link Unlock tool for STM32 devices
3
Compiled Feb 29 2024 10:29:52
4
(c) 2009-2015 SEGGER Microcontroller GmbH, www.segger.com
5
              Solutions for real time microcontroller applications
6
7
This program is designed to reset the option bytes of a STM32 device to their factory settings. If read protection of the device is enabled, reset the option bytes will cause a mass erase.
8
9
Options:
10
  [0] Exit
11
  [1] STM32C0xxxx
12
  [2] STM32F0xxxx
13
  [3] STM32F1xxxx
14
  [4] STM32F2xxxx
15
  [5] STM32F3xxxx
16
  [6] STM32F4xxxx
17
  [7] STM32F72xxx, STM32F73xxx
18
  [8] STM32F74xxx, STM32F75xxx
19
  [9] STM32F76xxx, STM32F77xxx
20
  [10] STM32G0x0xx
21
  [11] STM32G0x1xx
22
  [12] STM32G4xxxx
23
  [13] STM32H743_53_50
24
  [14] STM32H745_47_55_57
25
  [15] STM32L0xxxx
26
  [16] STM32L1xxxx
27
  [17] STM32L4xxxx
28
  [18] STM32L5xxxx
29
  [19] STM32U5xxxx
30
  [20] STM32WBxxxx
31
  [21] STM32WLxxxx
32
Please select the correct device family: 16
33
Connecting to J-Link via USB...O.K.
34
Using SWD as target interface.
35
Target interface speed: 1000 kHz.
36
VTarget = 0.000V
37
Target voltage too low
38
Press any key to exit.

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

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.

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Ich muss wohl mein DSO rauskramen und ein paar Drähte an den
> QAXE anlöten.

Nein, du musst keine Drähte an den QAxe anlöten 🙈

So sollte es funktionieren:
1
NRST 1 
2
SWDIO 5
3
SWCLK 13
4
GND 4

Die Pin-Nummern sind die Pins am großen Header. Einfach deinen STLink 
Dongle mit den Signalen an den oben gelisteten Pins verdrahten.

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Thomas,

danke für Deine Mühe, leider klappt es so auch nicht.
Verkabelung siehe Anhänge.

NRST -> 1 verstehe ich nicht. Da ist doch Vcc.
NRST -> 15 sollte die Position am 20 Pin Header sein.

LG
Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> NRST -> 1 verstehe ich nicht. Da ist doch Vcc.

Nein, da ist der Silkscreen Aufdruck "VCC", das hat aber nichts mit dem 
eigentlichen Pinning zu tun.

Die Belegung des 1,27mm Pinheader wird nicht durch den Silkscreen auf 
dem Adapter festgelegt sondern durch die Platine vom QAxe.

Qaxe:
1
1: NRST
2
2: SWDIO
3
6: SWCLK
4
3: GND

Wenn du dir anschaust, wo die Leitungen vom 1,27mm Pinheader auf deinem 
Adapter zum 2,54mm Pinheader gehen, dann siehst du:
1
1,27mm | 2,54mm
2
---------------
3
1     -> 1
4
2     -> 7
5
6     -> 13
6
3     -> 4, 6, 8, ...

Dann müsste es passen, wenn du deine Kabel vom STLink kommend so 
anschließt:
1
NRST -> 1
2
SWDIO -> 7
3
SWCLK -> 13
4
GND -> 4

Aber du hast das, soweit ich das erkennen kann, schon korrekt 
verdrahtet.

Mein STLink Klon hat nie 3,3V benötigt ... Hmm, vlt ist deiner 
unterschiedlich, idk 🤔 Das könntest du gemeint haben mit, du musst ein 
Kabel ziehen.

Ausprobieren kann man es mal 🙈

edit: Oh gerade gesehen, Pin 2 geht auf Pin7!!! Bitte korrigieren, sorry 
hab das falsch auf dem Board gesehen

Das sollte richtig sein:
1
NRST -> 1
2
SWDIO -> 7
3
SWCLK -> 13
4
GND -> 4

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Thomas,

was lange währt, wird endlich gut.

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.

Was meinst Du?

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Yay, super! Freut mich, dass es jetzt geklappt hat!


Markus W. schrieb:
> 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.

1. Die Rust-Firmware müsste "portiert" werden. Embassy abstrahiert zwar 
viel, vieles müsste aber noch angepasst werden.

2. 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 🙈).

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

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

von Der mit dem Wolf T. (dermitdemwolf_t)


Lesenswert?

Herzlichen Glückwunsch ich hab es mit Spannung verfolgt ob es klappt und 
ich muss sagen das ich das nicht so einfach hinbekommen hätte.

Weil ich davon keine Ahnung habe ;)

: Bearbeitet durch User
von Roland (r_fischer)


Lesenswert?

@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.

Zu deiner Frage an Mampf:
# install curl
sudo apt install curl

# install rust
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

# add to ~/.bash.rc (afterwards, opening a new terminal is needed)
echo 'source "$HOME/.cargo/env"' >> ~/.bashrc

# clone repository
git clone https://github.com/shufps/qaxe

# clone submodules
cd qaxe
git submodule init
git submodule update

# add rust target for rev2/3
rustup target add thumbv7m-none-eabi

# or add rust target for rev1
rustup target add thumbv6m-none-eabi

# build firmware for rev2
cd firmware/fw-rev2
# or
cd firmware/fw-rev3
./build.sh

# run firmware (this also flashes it to the stm32)
./run.sh

siehe hier: https://github.com/shufps/qaxe

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)

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

@Roland F.,

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.

Markus

PS.: Die PN schaue ich mir gleich an.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

So geht es dann weiter:

https://github.com/shufps/piaxe-miner/blob/master/README.md#installation

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 :)

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

>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 :)

Danke für den Tipp!

Markus

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kleines Update ... Hab jetzt ein modulare Design gebastelt und die 
ersten 4 Module funktionieren schon. (1-Modul-Testboard im 2ten Bild).

Das besondere ist, dass man die Module super-einfach sowohl serial- als 
auch voltage-chainen kann.

Nächster Schritt ist ein Carrier-Board für 4 dieser Module.

Falls es geht, ist es ein 16-ASIC Miner mit ca. 7.2TH/s und ~200W 
Leistung 😁

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Das sieht sehr verlockend aus!

Bin bisher nicht mehr dazu gekommen meinen zu erweitern. Wie stellst du 
das voltage-chaining an? Bzw. Das Serielle?

Gibt’s dazu ein Repo? Sieht echt sehr verlockend aus

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Be N. schrieb:
> Das sieht sehr verlockend aus!
>
> 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 🙈

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Gefällt mir sehr gut!

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 :-/

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> 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 😁

Be N. schrieb:
> Ü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?

Das weiß ich leider nicht 🥺

Be N. schrieb:
> Würde mir persönlich nichts ausmachen ob Kraut und Rüben :-D

Ich schau, dass ich das asap mal aufräume 🙈

Der nächste logische Schritt wäre dann 10 Voltage Domains an 12V lol 🥴

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> 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...

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> 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 ja, rein rechnerisch habe ich 10,25A pro Modul Stromverbrauch.

205W benötigt der Miner insgesamt - gemessen direkt an den 230V.

Also 10A pro ASIC ist schon sehr knapp, sollte man wohl eher mit idk 12A 
rechnen.

Ah und ich hab mich vertan, mein 5V Netzteil liefert max 60A ... Also 
glaube schon, dass mehr als 40A gebraucht werden 🙈

: Bearbeitet durch User
von Be N. (ben90)


Lesenswert?

Mampf F. schrieb:
> Ah und ich hab mich vertan, mein 5V Netzteil liefert max 60A ... Also
> glaube schon, dass mehr als 40A gebraucht werden 🙈

Denke ich mir, ich geh erstmal mit 3 parallel ins Rennen mit meiner 
jetztigen PowerStage oder mit Quaxe PowerStage auf 1,2V*X Module 
hochskaliert.

Ich denke das sollte passen. Bin mal gespannt auf deine Files :)

Werd mich heut Abend auch mal wieder mit der Thematik auseinandersetzen

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Be N. schrieb:
> Ich denke das sollte passen. Bin mal gespannt auf deine Files :)

Der erste Satz Files ist hier:

https://github.com/shufps/flexaxe

Das Modul und ein 1-Modul Testboard. Das 4-Modul-Board kommt später.

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Mampf,

hat bischen gedauert, bis ich meinen eigenen Qaxe in den Händen
halten kann.

Aufau ist soweit fertig, bis aufs Gehäuse, das in Arbeit ist.

MC ist geflashed und Kühler montiert.

Kein Rauch beim Anschließen ans NT.

Stromverbrauch beim starten des Miners vai Python-skript 1A.

python pyminer.py -o solo.ckpool.org:3333 
stratum+tcp://solo.ckpool.org:3333 -u bc....q1 -p x
1
>cat config.yml
2
debug_bm1366: false
3
verify_solo: true
4
miner: qaxe
5
suggest_difficulty: 2048
6
7
qaxe:
8
  name: QAxe
9
  chips: 4
10
  fan_speed_1: 1.0
11
  fan_speed_2: 1.0
12
  asic_frequency: 485
13
  extranonce2_interval: 1.9
14
  serial_port_asic: "/dev/ttyACM0"
15
  serial_port_ctrl: "/dev/ttyACM1"
1
Journalctl -f output:
2
Apr 16 15:33:02 linux-kwm1 kernel: usb 1-1: Product: Qaxe
3
Apr 16 15:33:02 linux-kwm1 kernel: usb 1-1: Manufacturer: Microengineer
4
Apr 16 15:33:02 linux-kwm1 kernel: usb 1-1: SerialNumber: rev2
5
Apr 16 15:33:02 linux-kwm1 kernel: cdc_acm 1-1:1.0: ttyACM0: USB ACM device
6
Apr 16 15:33:02 linux-kwm1 kernel: cdc_acm 1-1:1.2: ttyACM1: USB ACM device

Leider bekomme ich die Fehlermeldung - Anzahl der ASICS 0.
1
4-16 17:12:02,234 - DEBUG - rx len: b'\x00'
2
2024-04-16 17:12:07,234 - INFO - Initializing BM1366
3
2024-04-16 17:12:07,235 - DEBUG - -> 0b080110031a050430783030
4
2024-04-16 17:12:07,236 - DEBUG - rx len: b'\x02'
5
2024-04-16 17:12:07,236 - DEBUG - <- 0801
6
2024-04-16 17:12:12,737 - DEBUG - -> 0b080210031a050430783030
7
2024-04-16 17:12:12,738 - DEBUG - rx len: b'\x02'
8
2024-04-16 17:12:12,739 - DEBUG - <- 0802
9
2024-04-16 17:12:19,259 - ERROR - Uncaught exception
10
Traceback (most recent call last):
11
  File "/dev/shm/piaxe-miner-master/./pyminer.py", line 566, in <module>
12
    piaxeMiner.init()
13
  File "/dev/shm/piaxe-miner-master/piaxe/miner.py", line 590, in init
14
    chip_counter = bm1366.init(self.hardware.get_asic_frequency(), self.hardware.get_chip_count(), chips_enabled)
15
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 310, in init
17
    return send_init(frequency, expected, chips_enabled)
18
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 257, in send_init
20
    raise Exception(f"chips mismatch. expected: {expected}, actual: {chip_counter}")
21
Exception: chips mismatch. expected: 4, actual: 0

Bevor ich ans Messen gehe, wollte ich Dich nach den sinnvollen
Testpunkten fragen.

Offensichtlich klappt noch nicht die Kommunikation zu den ASICs.

Im Anhang einige Bilder zum Aufbau.

LG
Markus

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Kleiner Nachtrag yu den ASICs,

sie sehen nur auf dem ersten Bild etwas sonderbar
durch die Lichtspiegelung aus, sind aber alle gleich.

Besseres Bild im Anhang.

Markus

von Markus W. (dl8mby)


Lesenswert?

Noch etwas mehr debug Daten mit dem Switch in der config.yml

debug_bm1366: true
1
(piaxe-miner-master) mw@localhost:/dev/shm/piaxe-miner-master> ./start_mainnet_publicpool.sh
2
2024-04-17 19:12:03,597 - DEBUG - -> 0b10011a0706080110641864
3
2024-04-17 19:12:03,599 - DEBUG - rx len: b'\x00'
4
2024-04-17 19:12:08,599 - INFO - Initializing BM1366
5
2024-04-17 19:12:08,600 - DEBUG - -> 0b080110031a050430783030
6
2024-04-17 19:12:08,601 - DEBUG - rx len: b'\x02'
7
2024-04-17 19:12:08,601 - DEBUG - <- 0801
8
2024-04-17 19:12:14,102 - DEBUG - -> 0b080210031a050430783030
9
2024-04-17 19:12:14,104 - DEBUG - rx len: b'\x02'
10
2024-04-17 19:12:14,104 - DEBUG - <- 0802
11
2024-04-17 19:12:19,605 - DEBUG - -> 55aa510900a49000ffff1c
12
2024-04-17 19:12:19,606 - DEBUG - -> 55aa510900a49000ffff1c
13
2024-04-17 19:12:19,609 - DEBUG - -> 55aa510900a49000ffff1c
14
2024-04-17 19:12:19,611 - DEBUG - -> 55aa520500000a
15
2024-04-17 19:12:19,623 - DEBUG - serial_rx: 11
16
2024-04-17 19:12:19,623 - DEBUG - <- aa551300000055660000aa
17
2024-04-17 19:12:20,625 - DEBUG - -> 55aa5305000003
18
2024-04-17 19:12:20,626 - ERROR - Uncaught exception
19
Traceback (most recent call last):
20
  File "/dev/shm/piaxe-miner-master/./pyminer.py", line 566, in <module>
21
    piaxeMiner.init()
22
  File "/dev/shm/piaxe-miner-master/piaxe/miner.py", line 590, in init
23
    chip_counter = bm1366.init(self.hardware.get_asic_frequency(), self.hardware.get_chip_count(), chips_enabled)
24
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 310, in init
26
    return send_init(frequency, expected, chips_enabled)
27
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 257, in send_init
29
    raise Exception(f"chips mismatch. expected: {expected}, actual: {chip_counter}")
30
Exception: chips mismatch. expected: 4, actual: 0

Falls jemand noch diesen Thread mitlesen tut.

Markus

PS.:

Jetzt habe ich das Oszi rausgeholt und messe mal die
Signale zu den ASICs.

Melde mich später.

von Markus W. (dl8mby)



Lesenswert?

Die ersten Messungen zu meinem QAXE:

TP1:  5.088V
TP14: 1.269V
U30 3.3V

Unterseite bei den ASICs:

TP12:
TP11:
TP7:
TP5:
TP2:
TP3:
TP6:
TP9:
TP13:

siehe DSO Bilder.

Gruß
Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Oh sorry, hatte vergessen hier mal wieder reinzukucken 🙈

Markus W. schrieb:
> 2024-04-17 19:12:19,623 - DEBUG - serial_rx: 11
> 2024-04-17 19:12:19,623 - DEBUG - <- aa551300000055660000aa

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.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

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.

commit c2a55399750ce480e7872cc3ef803c5b26006bd7 (HEAD -> main, 
origin/main, origin/HEAD)
Author: Thomas Shufps <shufps80@gmail.com>
Date:   Wed Apr 3 08:04:14 2024 +0200


>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

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Leider klappt es immer noch nicht!

Habe gerade die FW direct aus dem Brunch V3.2 geclonet und gebaut.
1
mw@linux-kwm1:/dev/shm/qaxe/firmware/fw-L151C8
2
>cargo objcopy --release --bin qaxe -- -O binary qaxe-fw-L151C8.bin
3
   Compiling defmt-macros v0.3.6
4
   Compiling defmt v0.3.5
5
   Compiling embedded-io v0.6.1
6
   Compiling embassy-net-driver v0.2.0 (/dev/shm/qaxe/firmware/embassy/embassy-net-driver)
7
   Compiling embassy-usb-driver v0.1.0 (/dev/shm/qaxe/firmware/embassy/embassy-usb-driver)
8
   Compiling embassy-time v0.3.0 (/dev/shm/qaxe/firmware/embassy/embassy-time)
9
   Compiling embassy-hal-internal v0.1.0 (/dev/shm/qaxe/firmware/embassy/embassy-hal-internal)
10
   Compiling embassy-executor v0.5.0 (/dev/shm/qaxe/firmware/embassy/embassy-executor)
11
   Compiling panic-probe v0.3.1
12
   Compiling defmt-rtt v0.4.0
13
   Compiling embedded-io-async v0.6.1
14
   Compiling embassy-sync v0.5.0 (/dev/shm/qaxe/firmware/embassy/embassy-sync)
15
   Compiling embassy-embedded-hal v0.1.0 (/dev/shm/qaxe/firmware/embassy/embassy-embedded-hal)
16
   Compiling embassy-net-driver-channel v0.2.0 (/dev/shm/qaxe/firmware/embassy/embassy-net-driver-channel)
17
   Compiling embassy-usb v0.1.0 (/dev/shm/qaxe/firmware/embassy/embassy-usb)
18
   Compiling embassy-stm32 v0.1.0 (/dev/shm/qaxe/firmware/embassy/embassy-stm32)
19
   Compiling embassy-stm32l1-examples v0.1.0 (/dev/shm/qaxe/firmware/fw-L151C8)
20
    Finished release [optimized + debuginfo] target(s) in 5.84s
21
22
23
mw@linux-kwm1:/dev/shm/qaxe/firmware/fw-L151C8
24
>ls -l
25
total 104
26
-rw------- 1 mw users   171 Apr 19 09:18 build.rs
27
-rwx------ 1 mw users    60 Apr 19 09:18 build.sh
28
-rw------- 1 mw users 22397 Apr 19 09:18 Cargo.lock
29
-rw------- 1 mw users  1347 Apr 19 09:18 Cargo.toml
30
-rwx------ 1 mw users 61416 Apr 19 09:42 qaxe-fw-L151C8.bin
31
-rw------- 1 mw users    68 Apr 19 09:18 README.md
32
-rwx------ 1 mw users    58 Apr 19 09:18 run.sh
33
drwx------ 3 mw users    60 Apr 19 09:18 src
34
drwx------ 4 mw users   120 Apr 19 09:37 target
35
36
>file qaxe-fw-L151C8.bin
37
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
38
39
>st-flash --connect-under-reset write /dev/shm/qaxe/firmware/fw-L151C8/qaxe-fw-L151C8.bin 0x8000000
40
st-flash 1.8.0-13-g40ee5f4
41
2024-04-19T10:02:26 WARN common.c: NRST is not connected
42
2024-04-19T10:02:26 ERROR common.c: Soft reset failed: error write to AIRCR
43
2024-04-19T10:02:26 INFO common.c: STM32L1xx_Cat_2: 32 KiB SRAM, 64 KiB flash in at least 256 byte pages.
44
file /dev/shm/qaxe/firmware/fw-L151C8/qaxe-fw-L151C8.bin md5 checksum: a6f2cc6014e7fce45c36346d29e959c, stlink checksum: 0x0061ae42
45
2024-04-19T10:02:26 INFO common_flash.c: Attempting to write 61416 (0xefe8) bytes to stm32 address: 134217728 (0x8000000)
46
-> Flash page at 0x8000000 erased (size: 0x100)
47
-> Flash page at 0x8000100 erased (size: 0x100)
48
-> Flash page at 0x8000200 erased (size: 0x100)
49
...
50
-> Flash page at 0x800ee00 erased (size: 0x100)
51
-> Flash page at 0x800ef00 erased (size: 0x100)
52
53
2024-04-19T10:02:27 INFO flash_loader.c: Starting Flash write for L0
54
2024-04-19T10:02:27 INFO flash_loader.c: Successfully loaded flash loader in sram
55
2024-04-19T10:02:27 INFO flash_loader.c: Clear DFSR
56
  1/479 halfpages written
57
  2/479 halfpages written
58
...
59
478/479 halfpages written
60
479/479 halfpages written
61
62
2024-04-19T10:02:36 INFO common_flash.c: Starting verification of write complete
63
2024-04-19T10:02:38 INFO common_flash.c: Flash written and verified! jolly good!
64
65
66
cat ./start_mainnet_publicpool.sh
67
python3 ./pyminer.py -o stratum+tcp://solo.ckpool.org:3333 -d -P -u bc1....q1 -p x
68
69
>./start_mainnet_publicpool.sh
70
2024-04-19 10:08:02,822 - DEBUG - -> 0b10011a0706080110641864
71
2024-04-19 10:08:02,823 - DEBUG - rx len: b'\x00'
72
2024-04-19 10:08:07,824 - INFO - Initializing BM1366
73
2024-04-19 10:08:07,824 - DEBUG - -> 0b080110031a050430783030
74
2024-04-19 10:08:07,825 - DEBUG - rx len: b'\x02'
75
2024-04-19 10:08:07,825 - DEBUG - <- 0801
76
2024-04-19 10:08:13,326 - DEBUG - -> 0b080210031a050430783030
77
2024-04-19 10:08:13,327 - DEBUG - rx len: b'\x02'
78
2024-04-19 10:08:13,328 - DEBUG - <- 0802
79
2024-04-19 10:08:19,848 - ERROR - Uncaught exception
80
Traceback (most recent call last):
81
  File "/dev/shm/piaxe-miner-master/./pyminer.py", line 566, in <module>
82
    piaxeMiner.init()
83
  File "/dev/shm/piaxe-miner-master/piaxe/miner.py", line 590, in init
84
    chip_counter = bm1366.init(self.hardware.get_asic_frequency(), self.hardware.get_chip_count(), chips_enabled)
85
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
86
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 310, in init
87
    return send_init(frequency, expected, chips_enabled)
88
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
89
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 257, in send_init
90
    raise Exception(f"chips mismatch. expected: {expected}, actual: {chip_counter}")
91
Exception: chips mismatch. expected: 4, actual: 0
92
(piaxe-miner-master) mw@linux-kwm1:/dev/shm/piaxe-miner-master

Hast Du noch eine Idee.
Eventuell ist ja doch noch was auf dem PCB wie es nicht sein soll.

LG
Markus

Ein erneuter Versuch mit dem BM1366 Debug Flag in der config.yml
1
>./start_mainnet_publicpool.sh
2
2024-04-19 10:23:08,389 - DEBUG - -> 0b10011a0706080110641864
3
2024-04-19 10:23:08,390 - DEBUG - rx len: b'\x00'
4
2024-04-19 10:23:13,391 - INFO - Initializing BM1366
5
2024-04-19 10:23:13,391 - DEBUG - -> 0b080110031a050430783030
6
2024-04-19 10:23:13,392 - DEBUG - rx len: b'\x02'
7
2024-04-19 10:23:13,392 - DEBUG - <- 0801
8
2024-04-19 10:23:18,893 - DEBUG - -> 0b080210031a050430783030
9
2024-04-19 10:23:18,895 - DEBUG - rx len: b'\x02'
10
2024-04-19 10:23:18,895 - DEBUG - <- 0802
11
2024-04-19 10:23:24,396 - DEBUG - -> 55aa510900a49000ffff1c
12
2024-04-19 10:23:24,397 - DEBUG - -> 55aa510900a49000ffff1c
13
2024-04-19 10:23:24,399 - DEBUG - -> 55aa510900a49000ffff1c
14
2024-04-19 10:23:24,402 - DEBUG - -> 55aa520500000a
15
2024-04-19 10:23:24,413 - DEBUG - serial_rx: 11
16
2024-04-19 10:23:24,414 - DEBUG - <- aa55660000051300000055
17
2024-04-19 10:23:25,415 - DEBUG - -> 55aa5305000003
18
2024-04-19 10:23:25,416 - ERROR - Uncaught exception
19
Traceback (most recent call last):
20
  File "/dev/shm/piaxe-miner-master/./pyminer.py", line 566, in <module>
21
    piaxeMiner.init()
22
  File "/dev/shm/piaxe-miner-master/piaxe/miner.py", line 590, in init
23
    chip_counter = bm1366.init(self.hardware.get_asic_frequency(), self.hardware.get_chip_count(), chips_enabled)
24
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 310, in init
26
    return send_init(frequency, expected, chips_enabled)
27
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 257, in send_init
29
    raise Exception(f"chips mismatch. expected: {expected}, actual: {chip_counter}")
30
Exception: chips mismatch. expected: 4, actual: 0

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 2024-04-19 10:23:24,414 - DEBUG - <- aa55660000051300000055

Die firmware die du geflasht hast, sollte funktionieren.

Ich frag mich gerade, was es für Gründe geben könnte, dass was über 
serial "verschluckt" wird.

Kannst du mal die temp-sensoren in der firmware tot legen?

Das wäre quasi:
https://github.com/shufps/qaxe/blob/main/firmware/fw-L151C8/src/bin/qaxe.rs#L583

Kannst du da die for-schleife löschen / auskommentieren und es nochmal 
versuchen?

Die Temp-Sensoren arbeiten "blocking", evtl stimmt mit ihnen etwas nicht 
...

von Markus W. (dl8mby)


Lesenswert?

Hallo Thomas,

danke - werde ich machen und mich dann wieder melden.
1
       for i in 0..2 {
2
            continue;

Einfach gleich wieder raus zu gehen reicht doch auch?

LG
Markus
1
#[embassy_executor::task]
2
async fn temp_manager(mut i2c: I2c<'static, I2C2>) {
3
    loop {
4
        Timer::after_millis(5000).await;
5
6
//       for i in 0..2 {
7
//          let mut data = [0u8; 2];
8
//          if let Err(e) = i2c.blocking_read(0x48 + i, &mut data) {
9
//              error!("i2c error: {:?}", e);
10
//              continue;
11
//          }
12
//
13
//          let mut temp_data = ((data[0] as u16) << 4) | ((data[1] as u16) >> 4);
14
//
15
//          if temp_data > 2047 {
16
//              temp_data -= 4096
17
//          }
18
//
19
//          info!("read temp{}: {}", i + 1, temp_data);
20
//
21
//          if i == 0 {
22
//              let mut temp1 = TEMP1.lock().await;
23
//              *temp1 = temp_data;
24
//          } else {
25
//              let mut temp2 = TEMP2.lock().await;
26
//              *temp2 = temp_data;
27
//          }
28
//      }
29
30
    }
31
}
32
33
34
35
>cargo objcopy --release --bin qaxe -- -O binary qaxe-fw-L151C8-notmps.bin
36
   Compiling embassy-stm32l1-examples v0.1.0 (/dev/shm/qaxe/firmware/fw-L151C8)
37
    Finished release [optimized + debuginfo] target(s) in 1.24s
38
warning: unused variable: `i2c`
39
   --> src/bin/qaxe.rs:579:27
40
    |
41
579 | async fn temp_manager(mut i2c: I2c<'static, I2C2>) {
42
    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_i2c`
43
    |
44
    = note: `#[warn(unused_variables)]` on by default
45
46
warning: variable does not need to be mutable
47
   --> src/bin/qaxe.rs:579:23
48
    |
49
579 | async fn temp_manager(mut i2c: I2c<'static, I2C2>) {
50
    |                       ----^^^
51
    |                       |
52
    |                       help: remove this `mut`
53
    |
54
    = note: `#[warn(unused_mut)]` on by default
55
56
warning: 2 warnings emitted
57
58
>st-flash --connect-under-reset write /dev/shm/qaxe/firmware/fw-L151C8/qaxe-fw-L151C8-notmps.bin 0x8000000
59
st-flash 1.8.0-13-g40ee5f4
60
2024-04-19T11:30:23 WARN common.c: NRST is not connected
61
2024-04-19T11:30:23 ERROR common.c: Soft reset failed: timeout
62
2024-04-19T11:30:23 INFO common.c: STM32L1xx_Cat_2: 32 KiB SRAM, 64 KiB flash in at least 256 byte pages.
63
file /dev/shm/qaxe/firmware/fw-L151C8/qaxe-fw-L151C8-notmps.bin md5 checksum: 9ed16821d6a79af24b5aa5bd2bdd9758, stlink checksum: 0x005fad49
64
2024-04-19T11:30:23 INFO common_flash.c: Attempting to write 60264 (0xeb68) bytes to stm32 address: 134217728 (0x8000000)
65
-> Flash page at 0x8000000 erased (size: 0x100)
66
-> Flash page at 0x8000100 erased (size: 0x100)
67
...
68
-> Flash page at 0x800ea00 erased (size: 0x100)
69
-> Flash page at 0x800eb00 erased (size: 0x100)
70
71
2024-04-19T11:30:25 INFO flash_loader.c: Starting Flash write for L0
72
2024-04-19T11:30:25 INFO flash_loader.c: Successfully loaded flash loader in sram
73
2024-04-19T11:30:25 INFO flash_loader.c: Clear DFSR
74
  1/470 halfpages written
75
  2/470 halfpages written
76
...
77
469/470 halfpages written
78
470/470 halfpages written
79
80
2024-04-19T11:30:34 INFO common_flash.c: Starting verification of write complete
81
2024-04-19T11:30:35 INFO common_flash.c: Flash written and verified! jolly good!
82
83
(piaxe-miner-master) mw@linux-kwm1:/dev/shm/piaxe-miner-master
84
>./start_mainnet_publicpool.sh
85
2024-04-19 11:31:31,032 - DEBUG - -> 0b10011a0706080110641864
86
2024-04-19 11:31:31,033 - DEBUG - rx len: b'\x00'
87
2024-04-19 11:31:36,033 - INFO - Initializing BM1366
88
2024-04-19 11:31:36,034 - DEBUG - -> 0b080110031a050430783030
89
2024-04-19 11:31:36,035 - DEBUG - rx len: b'\x02'
90
2024-04-19 11:31:36,035 - DEBUG - <- 0801
91
2024-04-19 11:31:41,536 - DEBUG - -> 0b080210031a050430783030
92
2024-04-19 11:31:41,537 - DEBUG - rx len: b'\x02'
93
2024-04-19 11:31:41,537 - DEBUG - <- 0802
94
2024-04-19 11:31:47,038 - DEBUG - -> 55aa510900a49000ffff1c
95
2024-04-19 11:31:47,039 - DEBUG - -> 55aa510900a49000ffff1c
96
2024-04-19 11:31:47,041 - DEBUG - -> 55aa510900a49000ffff1c
97
2024-04-19 11:31:47,044 - DEBUG - -> 55aa520500000a
98
2024-04-19 11:31:47,055 - DEBUG - serial_rx: 11
99
2024-04-19 11:31:47,055 - DEBUG - <- aa55660000051300000055
100
2024-04-19 11:31:48,057 - DEBUG - -> 55aa5305000003
101
2024-04-19 11:31:48,058 - ERROR - Uncaught exception
102
Traceback (most recent call last):
103
  File "/dev/shm/piaxe-miner-master/./pyminer.py", line 566, in <module>
104
    piaxeMiner.init()
105
  File "/dev/shm/piaxe-miner-master/piaxe/miner.py", line 590, in init
106
    chip_counter = bm1366.init(self.hardware.get_asic_frequency(), self.hardware.get_chip_count(), chips_enabled)
107
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
108
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 310, in init
109
    return send_init(frequency, expected, chips_enabled)
110
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
111
  File "/dev/shm/piaxe-miner-master/piaxe/bm1366.py", line 257, in send_init
112
    raise Exception(f"chips mismatch. expected: {expected}, actual: {chip_counter}")
113
Exception: chips mismatch. expected: 4, actual: 0

Hat leider noch nicht geholfen.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Ich versuche mal die Signale auf den u.g. Leitungen
via DSO beim generell und beim Starten des Miner-Skripts abzufragen.

BM1366 CLKD PIN 21, CLKI PIN 8

CLK U8 PIN3 25MHz

U29/38 TXU0101 PIN4 U38 RXD PIN3 U29 TXD (Vom MC)
               PIN3     RO  PIN4     CI  (Zum ASIC)

RO PIN7 ASIC  CI PIN9 ASIC

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 2024-04-19 11:31:47,055 - DEBUG - <- aa55660000051300000055

ja weißt du, was seltsam ist ... ein Freund hat gerade exakt das gleiche 
Problem ...

Es wird also aktiv daran gearbeitet, das Problem zu lösen 🙈

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Hilfe ist nah - evtl hängt es mit dem dfu-util zusammen.

Ich konnte es jetzt gerade auf meinem 0xAxe reproduzieren.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Also es scheint so, dass das Binary das bei "cargo objdump" herauskommt, 
seltsame Sachen macht.

Wenn ich per SWD die Firmware installiere, das Binary mit dfu-util 
herunter und das selbe wieder hoch lade funktioniert es.

Aber das Binary von objdump geht nicht ... ich untersuche das noch 
weiter.

von Markus W. (dl8mby)


Lesenswert?

Danke für Deine Mühe.

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.

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Wie hast Du denn Deine QAXE in Betrieb genommen?

per SWD.

> Gibt es noch eine andere Variante das FW Binary zu erzeugen?

Jap, da scheint das richtige Binary rauszukommen:
1
# erst elf-file builden
2
./build.sh
3
4
# dann nach binary
5
arm-none-eabi-objcopy -O binary  -S ./target/thumbv7m-none-eabi/release/qaxe qaxe.bin

Und das geht dann ganz sicher auch mit dfu-util!

Ich weiß nicht, was cargo objcopy macht, aber es scheint es wohl nicht 
nur zu dumpen sondern anders zu kompilieren.

: Bearbeitet durch User
von T. (ueberregulator)


Lesenswert?

Ab morgen hat der Miner nur noch die halbe Leistung.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Ah ich hab es herausgefunden ...
1
DEFMT_LOG=info cargo objcopy --release -- -O binary qaxe.bin

und alles funktioniert. Über .cargo/config.toml in der [env] Sektion ist 
default "trace" eingestellt und das schmeckt der firmware wohl überhaupt 
nicht.

: Bearbeitet durch User
von Der mit dem Wolf T. (dermitdemwolf_t)


Lesenswert?

@ueberregulator Wenn du falschliegst erst am Sonntag.

Aber die Leistung bleibt gleich.
Es wird nur der bitcoin reward halbiert.
Grüße

: Bearbeitet durch User
von T. (ueberregulator)


Lesenswert?

Erst am Sonntag wäre sehr unwahrscheinlich, jetzt sind es noch 24 
Blöcke, also sollte das Halving in grob 4 Stunden sein.

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

;-))))))))))))))))))))

2024-04-19 22:46:28,253 - INFO - 4 chips were found!
2024-04-19 22:46:28,253 - INFO - Setting job ASIC mask to 511
2024-04-19 22:46:28,253 - DEBUG - -> 55aa51090014000080ff04
2024-04-19 22:46:28,254 - DEBUG - -> 0b080310021a050430783030
2024-04-19 22:46:28,255 - DEBUG - rx len: b'\r'
2024-04-19 22:46:28,255 - INFO - receiving thread started ...

Details im angehängtem Log.

Verstehe noch nicht alles, bin aber wohl Dank Mampf einen Schritt
weiter und wohl möglich auch am Ziel.

LG+Besten Dank!
Markus

Noch ein Nachtrag,

Komme zum Miningpool noch nicht hin - Muss der Port 3333 in dem
Router freigeschaltet werden, oder habe ich eine Problem beim
Rückkanal?

2024-04-19 23:17:21,290 - INFO - Starting server on solo.ckpool.org:3333
2024-04-19 23:17:21,519 - ERROR - Exception in RPC thread: tcp 
connection closed ...
2024-04-19 23:17:21,519 - ERROR - error flag set ... ending 
handle_incoming_rpc thread
2024-04-19 23:17:22,184 - INFO - temperature and voltage: {'temp': 
[29.75, 67.375, 0, 0], 'voltage': [0, 0, 0, 0]}
2024-04-19 23:17:23,165 - INFO - no job ...


Habe auch bei einem weiteren Pool die connection Errors.

2024-04-19 23:41:12,243 - INFO - Starting server on 
sha256.auto.nicehash.com:9200
2024-04-19 23:41:12,258 - DEBUG - send successful
2024-04-19 23:41:12,258 - DEBUG - JSON-RPC Server < {"id": 1, "method": 
"mining.suggest_difficulty", "params": [2048]}
2024-04-19 23:41:12,259 - DEBUG - send successful
2024-04-19 23:41:12,259 - DEBUG - JSON-RPC Server < {"id": 2, "method": 
"mining.subscribe", "params": ["QAxe/0.1"]}
2024-04-19 23:41:12,259 - DEBUG - waiting for error
2024-04-19 23:41:12,287 - ERROR - Exception in RPC thread: tcp 
connection closed ...
2024-04-19 23:41:12,287 - ERROR - error flag set ... ending 
handle_incoming_rpc thread
2024-04-19 23:41:12,288 - DEBUG - error received
2024-04-19 23:41:12,288 - DEBUG - joining rpc_thread
2024-04-19 23:41:12,288 - DEBUG - joining done

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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.

Ich würde Public-Pool empfehlen ...

Also:
1
verify_solo: false
2
#suggest_difficulty: 2048

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Danke werde es versuchen.

LG
Markus

PS.: Kannst Du mir bitte via Mail oder PN eine Einladung
zu Deinem Telegramm Kanal schicken - Danke!

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Hallo Mampf,

beim solo.ckpool.org bekomme ich noch keinen Durchbruch.
Meine piaxe kann ich sehen aber nicht den qaxe.

Siehe auch Anhang.
1
2024-04-20 13:03:38,794 - DEBUG - work received 48
2
2024-04-20 13:03:38,794 - DEBUG - header: 00c0c921040ea97d8faa227247ba730e0ddc159cc5bbc5549828010000000000000000008300a59ef5c5e29f03c5d0546e427bf6bf6ac0f3b506a306b8ff5c726a5234b9ffa02366194203175602f317
3
2024-04-20 13:03:38,795 - DEBUG - network-target: 0000000000000000000342190000000000000000000000000000000000000000 (78)
4
2024-04-20 13:03:38,795 - DEBUG - pool-target:    0000000000068db22d0e56040000000000000000000000000000000000000000 (45)
5
2024-04-20 13:03:38,795 - DEBUG - found hash:     0000000000029fc15341355b99c908255031a4a4a2228f0c66da692ce6bb0770 (46)
6
2024-04-20 13:03:38,795 - DEBUG - mask_nonce:   0001 0111 1111 0011 0000 0010 0101 0110  (17f30256)
7
2024-04-20 13:03:38,795 - DEBUG - mask_version: 0000 1001 1100 0001 1100 0000 0000 0000  (09c1c000)
8
2024-04-20 13:03:38,795 - DEBUG - result from asic 0
9
2024-04-20 13:03:38,795 - DEBUG - hash rate: 71.582788 GH/s
10
2024-04-20 13:03:38,796 - INFO - valid result
11
2024-04-20 13:03:38,796 - ERROR - send failed: [Errno 9] Bad file descriptor
12
2024-04-20 13:03:38,797 - DEBUG - JSON-RPC Server < {"id": 3, "method": "mining.submit", "params": [null, "64851638000e8678", "000000005ee429ee", "6623a0ff", "17f30256", "01c9c000"]}
13
2024-04-20 13:03:39,086 - DEBUG - -> 0b083610021a050430783030

LG
Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 2024-04-20 13:03:38,796 - ERROR - send failed: [Errno 9] Bad file
> descriptor

Ööööööh ... hmm ...

Was ist denn das für ein seltsamer Fehler ... 🤔

Versuch es bitte mal mit public pool:
1
python3 ./pyminer.py -o stratum+tcp://public-pool.io:21496 -d -P -u YOURBTCADDRESS.qaxe -p x -l mainnet.log

Aber aktivier das "suggest_difficulty" wieder dann, weil der fängt dann 
mit 10000000 oder so an, was totaler Blödsinn ist, imho.

: Bearbeitet durch User
von Markus W. (dl8mby)


Lesenswert?

Hallo Mampf,

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.
1
2024-04-20 13:42:43,045 - INFO - Setting Frequency to 468.75MHz (468.75)
2
2024-04-20 13:42:43,146 - INFO - Setting Frequency to 475.00MHz (475.00)
3
2024-04-20 13:42:43,246 - INFO - 4 chips were found!
4
2024-04-20 13:42:43,246 - INFO - Setting job ASIC mask to 511
5
2024-04-20 13:42:43,247 - INFO - receiving thread started ...
6
2024-04-20 13:42:43,247 - INFO - job thread started ...
7
2024-04-20 13:42:43,248 - INFO - temperature and voltage: {'temp': [23.5, 36.1875, 0, 0], 'voltage': [0, 0, 0, 0]}
8
2024-04-20 13:42:43,248 - INFO - uptime counter thread started ...
9
2024-04-20 13:42:43,248 - INFO - LED thread started ...
10
2024-04-20 13:42:43,248 - INFO - Starting server on public-pool.io:21496
11
2024-04-20 13:42:43,699 - INFO - Setting job ASIC mask to 524287
12
2024-04-20 13:42:43,844 - INFO - starting new job 1971a13
13
2024-04-20 13:42:44,748 - INFO - temperature and voltage: {'temp': [24.4375, 40.25, 0, 0], 'voltage': [0, 0, 0, 0]}
14
2024-04-20 13:42:46,249 - INFO - temperature and voltage: {'temp': [24.4375, 40.25, 0, 0], 'voltage': [0, 0, 0, 0]}
15
2024-04-20 13:42:47,750 - INFO - temperature and voltage: {'temp': [24.4375, 40.25, 0, 0], 'voltage': [0, 0, 0, 0]}
16
2024-04-20 13:42:49,251 - INFO - temperature and voltage: {'temp': [25.8125, 46.6875, 0, 0], 'voltage': [0, 0, 0, 0]}
17
2024-04-20 13:42:50,751 - INFO - temperature and voltage: {'temp': [25.8125, 46.6875, 0, 0], 'voltage': [0, 0, 0, 0]}
18
2024-04-20 13:42:52,253 - INFO - temperature and voltage: {'temp': [25.8125, 46.6875, 0, 0], 'voltage': [0, 0, 0, 0]}
19
2024-04-20 13:42:53,753 - INFO - temperature and voltage: {'temp': [26.875, 52.5, 0, 0], 'voltage': [0, 0, 0, 0]}
20
2024-04-20 13:42:55,254 - INFO - temperature and voltage: {'temp': [26.875, 52.5, 0, 0], 'voltage': [0, 0, 0, 0]}
21
2024-04-20 13:42:56,755 - INFO - temperature and voltage: {'temp': [26.875, 52.5, 0, 0], 'voltage': [0, 0, 0, 0]}
22
2024-04-20 13:42:58,255 - INFO - temperature and voltage: {'temp': [26.875, 52.5, 0, 0], 'voltage': [0, 0, 0, 0]}
23
2024-04-20 13:42:59,756 - INFO - temperature and voltage: {'temp': [27.625, 54.9375, 0, 0], 'voltage': [0, 0, 0, 0]}
24
2024-04-20 13:43:01,257 - INFO - temperature and voltage: {'temp': [27.625, 54.9375, 0, 0], 'voltage': [0, 0, 0, 0]}
25
2024-04-20 13:43:02,758 - INFO - temperature and voltage: {'temp': [27.625, 54.9375, 0, 0], 'voltage': [0, 0, 0, 0]}
26
2024-04-20 13:43:04,258 - INFO - temperature and voltage: {'temp': [28.25, 56.1875, 0, 0], 'voltage': [0, 0, 0, 0]}
27
2024-04-20 13:43:05,759 - INFO - temperature and voltage: {'temp': [28.25, 56.1875, 0, 0], 'voltage': [0, 0, 0, 0]}
28
2024-04-20 13:43:07,260 - INFO - temperature and voltage: {'temp': [28.25, 56.1875, 0, 0], 'voltage': [0, 0, 0, 0]}
29
2024-04-20 13:43:08,760 - INFO - temperature and voltage: {'temp': [28.6875, 58.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
30
2024-04-20 13:43:10,261 - INFO - temperature and voltage: {'temp': [28.6875, 58.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
31
2024-04-20 13:43:11,762 - INFO - temperature and voltage: {'temp': [28.6875, 58.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
32
2024-04-20 13:43:13,263 - INFO - temperature and voltage: {'temp': [28.6875, 58.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
33
2024-04-20 13:43:14,764 - INFO - temperature and voltage: {'temp': [29.125, 60.5, 0, 0], 'voltage': [0, 0, 0, 0]}
34
2024-04-20 13:43:16,264 - INFO - temperature and voltage: {'temp': [29.125, 60.5, 0, 0], 'voltage': [0, 0, 0, 0]}
35
2024-04-20 13:43:17,765 - INFO - temperature and voltage: {'temp': [29.125, 60.5, 0, 0], 'voltage': [0, 0, 0, 0]}
36
2024-04-20 13:43:19,266 - INFO - temperature and voltage: {'temp': [29.4375, 62.625, 0, 0], 'voltage': [0, 0, 0, 0]}
37
2024-04-20 13:43:20,766 - INFO - temperature and voltage: {'temp': [29.4375, 62.625, 0, 0], 'voltage': [0, 0, 0, 0]}
38
2024-04-20 13:43:22,267 - INFO - temperature and voltage: {'temp': [29.4375, 62.625, 0, 0], 'voltage': [0, 0, 0, 0]}
39
2024-04-20 13:43:23,768 - INFO - temperature and voltage: {'temp': [29.6875, 64.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
40
2024-04-20 13:43:25,269 - INFO - temperature and voltage: {'temp': [29.6875, 64.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
41
2024-04-20 13:43:26,770 - INFO - temperature and voltage: {'temp': [29.6875, 64.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
42
2024-04-20 13:43:28,270 - INFO - temperature and voltage: {'temp': [29.6875, 64.3125, 0, 0], 'voltage': [0, 0, 0, 0]}
43
2024-04-20 13:43:29,771 - INFO - temperature and voltage: {'temp': [30.0, 65.625, 0, 0], 'voltage': [0, 0, 0, 0]}
44
2024-04-20 13:43:31,272 - INFO - temperature and voltage: {'temp': [30.0, 65.625, 0, 0], 'voltage': [0, 0, 0, 0]}
45
2024-04-20 13:43:32,772 - INFO - temperature and voltage: {'temp': [30.0, 65.625, 0, 0], 'voltage': [0, 0, 0, 0]}
46
2024-04-20 13:43:34,273 - INFO - temperature and voltage: {'temp': [30.25, 66.6875, 0, 0], 'voltage': [0, 0, 0, 0]}
47
2024-04-20 13:43:35,775 - INFO - temperature and voltage: {'temp': [30.25, 66.6875, 0, 0], 'voltage': [0, 0, 0, 0]}
48
2024-04-20 13:43:37,275 - INFO - temperature and voltage: {'temp': [30.25, 66.6875, 0, 0], 'voltage': [0, 0, 0, 0]}
49
2024-04-20 13:43:38,776 - INFO - temperature and voltage: {'temp': [30.4375, 67.75, 0, 0], 'voltage': [0, 0, 0, 0]}
50
2024-04-20 13:43:40,277 - INFO - temperature and voltage: {'temp': [30.4375, 67.75, 0, 0], 'voltage': [0, 0, 0, 0]}
51
2024-04-20 13:43:40,394 - INFO - starting new job 1971a2c
52
2024-04-20 13:43:41,777 - INFO - temperature and voltage: {'temp': [30.4375, 67.75, 0, 0], 'voltage': [0, 0, 0, 0]}
53
2024-04-20 13:43:43,278 - INFO - temperature and voltage: {'temp': [30.4375, 67.75, 0, 0], 'voltage': [0, 0, 0, 0]}
54
2024-04-20 13:43:44,779 - INFO - temperature and voltage: {'temp': [30.625, 68.9375, 0, 0], 'voltage': [0, 0, 0, 0]}
55
2024-04-20 13:43:46,279 - INFO - temperature and voltage: {'temp': [30.625, 68.9375, 0, 0], 'voltage': [0, 0, 0, 0]}
56
2024-04-20 13:43:47,780 - INFO - temperature and voltage: {'temp': [30.625, 68.9375, 0, 0], 'voltage': [0, 0, 0, 0]}
57
2024-04-20 13:43:49,281 - INFO - temperature and voltage: {'temp': [30.75, 70.125, 0, 0], 'voltage': [0, 0, 0, 0]}
58
2024-04-20 13:43:49,281 - ERROR - too hot, shutting down ...
59
2024-04-20 13:43:49,281 - INFO - shutdown miner ...

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?

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 2024-04-20 13:43:49,281 - INFO - temperature and voltage: {'temp':
> [30.75, 70.125, 0, 0], 'voltage': [0, 0, 0, 0]}

Ah das ist der zweite Temperatur-Sensor auf der Unterseite des Boards 
unter dem Buck-Converter.

Versuch mal einen kleinen Kühlkörper auf die 4 MOSFETs zu pappen 🙈

von Markus W. (dl8mby)


Lesenswert?

Ei-ei,

und ich such mir den Wolf bei den ASICs.

Werde gleich einen KK draufkleben.

Gut auch der Hinweis mit dem -l Parameter fürs Logging,
da brauche ich mich nicht mit tee und Co (2>&1) abkämpfen.

Danke für die sachdienlichen Hinweise ;-)

Langsam nimmt es Gestalt an und man lernt einiges dazu.

LG
Markus

Ich lenke den Hauptlüfter-Luftstrom mittels einer 45° Klappe
auf den Versorgungsteil der PCB. jetzt ist die Temp im grünen
Bereich - Danke!

: Bearbeitet durch User
von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Na endlich, nun hat das QAXE-Mining angefangen.

@Mampf
Danke für Deine Hilfe und Geduld.

Stromaufnahme wie bei Dir 4A bei 12V.

Jetzt mache ich das 12V NT und den SBC
(Radxa X2L) für's Mining fertig.

Die o.g. Versuche waren jetzt am NB und via
12V Akku um potentialfrei zu sein.

Ich dachte schon ich müsste HW Fehler suchen
und den Logikanalyzer zur Hilfe nehmen.
Bileb mit aber erspart ;-)

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Stromaufnahme wie bei Dir 4A bei 12V.
>
> Jetzt mache ich das 12V NT und den SBC
> (Radxa X2L) für's Mining fertig.

Sehr gut, freut mich, dass es klappt 🥳

von Markus W. (dl8mby)


Lesenswert?

Hallo Mampf,

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.

LG
Markus

von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

Wie sind die 8TH/s beim QAXE zu erklären?
Public-Pool Dashboard Problem?

Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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 🤔

Markus W. schrieb:
> 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.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hast du eigentlich schon den neuen 0xAxe gesehen? 😅

Beitrag #7649686 wurde vom Autor gelöscht.
von Markus W. (dl8mby)


Lesenswert?

Ja hatte es schon im Discord Forum bewundert und
mir auch durch gerechnet, was die ASIC's so kosten würden.
Ob es ein 10ner-Rabatt gibt?

Muss erst meine vier QAXE beenden.
Da sind ja auch 16 ASIC's verbaut.

Markus

: Bearbeitet durch User
von Markus W. (dl8mby)



Lesenswert?

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.

LG
Markus

von Markus W. (dl8mby)


Lesenswert?

@Mampf,

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.

Hut ab vor Deinem Können.

https://github.com/shufps/0xaxe

LG
Markus

von Markus W. (dl8mby)


Lesenswert?

@Mampf,

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?

LG+Danke!
Markus

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Piaxe, Qaxe und jetzt 0xaxe.
> Und Deine programmierbare Load hier im Forum
> auch nicht ohne.

Nach jedem Projekt denke ich mir, das war jetzt das letzte ... aber 
glaub noch größer als den 0xAxe mach ich dann nicht mehr 😂

> Hut ab vor Deinem Können.

Vielen Dank 🤗

Ich glaub das Hauptproblem ist, etwas fertig zu machen, was man 
angefangen hat, glaub daran scheitern viele 🙈

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Markus W. schrieb:
> 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:

https://github.com/embassy-rs/embassy

Da gibts für verschiedene Microcontroller Familien auch Examples:

https://github.com/embassy-rs/embassy/tree/main/examples

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.

von Markus W. (dl8mby)


Lesenswert?

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?
1
INFO - temperature and voltage: {'temp': [33.5625, 69.4375, 0, 0], 'voltage': [0, 0, 0, 0]}

Markus

Danke für die Links zu der MC Programmierung in Rust.

Der Link zur Embassy für MC's

https://embassy.dev/
und
https://embassy.dev/book/dev/getting_started.html

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?