Aktuelles

[Eigenbau] El-Cheapo Thunderbolt GPU - Pimp ein Macbook 2011 zum esports gaming Rig - 100€ Challenge

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Bildschirmfoto 2021-05-09 um 10.24.11.png


Ich bin ein großer SFX Fan!

Nachdem ich seit ein paar Jahren ein Akitio Thunder 2 mit eGPU mein eigen nenne hat es mich gereizt als neulich die kleine Schwester meiner Freundin meinte auf ihrem von ihrer Schwester geerbten Mac könne man ja gar keine esports-Titel zocken. Ihr Notebook ist zwar alt, hat aber Thunderbolt. Also ist der Plan entstanden eine eGPU für rund 100€ zu bauen.

Ziel ist es dass esports-Titel wie Fortnite, Valorant und Minecraft in nativer Auflösung 1280*800 bei mittleren bis hohen Grafikeinstellungen laufen. Die dafür angepeilte Leistung liegt ca. zwischen GT1030 und 1050. Während die 2C/4T Ivybridge CPU esports Titel wirklich noch schafft ist die HD4000 um ca. Faktor 10 zu langsam für.

Das System soll sehr kompakt werden damit es auf einen kleinen Schreibtisch passt. Außerdem soll es robust genug und portabel sein genau wie das Notebook selbst um auch mal bei Freunden zu zocken.


Komponenten:

Aufgrund des Budgets schaue ich mich auf dem gebrauchtmarkt um. AMD Karten sind leider meist recht voluminös, kommen also weniger in Frage und sind wegen Mining aktuell auch überbewertet. Also habe ich mich nach Entry Pascal Karten, Midrang Maxwell und Performance Kepler umgesehen. Letzteres ist es dann geworden.

Die GTX660 ist mit 960 Alus, 80TMUs und 24Rops noch recht gut als entrylevel Karte in 2021 mit dabei. Eine sparsame 750ti wird von der 660 noch um 20-30% umrundet und selbst die 950 ist spürbar langsamer, die 960 in schlagweite. Mit 100-120Watt Realverbrauch ist die GK106 Karte aber noch gut zu kühlen und passt ins Powerbudget meines externen Netzteils.

38 €: Gebrauchte PNY XLR8 GTX660 2Gb Referenzdesign Blower Karte von ebay

45 €: Transcend Jetdrive TS480GJDM825 Thunderbolt zu Apple Gumstick-SSD-Gehäuse von ebay Kleinanzeigen (ohne SSD, leergehäuse)

3,77 €: Aliexpress M.2 auf PCI-E 4X Riser-Karte für Bitcoin Mining :https://de.aliexpress.com/item/32861465503.html? Spm=a2g0s.12269583.0.0.e4bb3395VzacIm

kostenlos: M.2 zu Apple Gumstick SSD Adapter (lange Version). Ich hatte den besorgt um, mein MacBook auf NVME-SSD zu aktualisieren. Musste dann doch den teuren sintech adapter kaufen weil ich eine beidseitig bestückte SSD besitze, die nur mit einem kurzen Adapter funktioniert.

Dies ergibt ein hübsches kleines 3-PCB-Sandwich mit einem kurzen Thunderbolt-Kabel, das aus der Unterseite der Platine herauskommt: wahrscheinlich die kleinste DIY Thunderbolt EGPU-Lösung, die es bisher gab.
2021-04-27 14.42.00.jpg

Natürlich habe ich nich ca. 12€ für den Versand bezahlt, also habe ich die 100 € -Marke knapp verfehlt, aber es ist immerhin nah genug dran!

Netzteile:
- FSP150-AHAN2 150Watt Effizenzklasse VI mit 4-poligem Kycon-Anschluss und einigen PCIe- und SATA-Stromkabeln, die ich aus einem defekten bequiet Netzteil abgeschnitten habe.
- Regler XY-SJVA-4 Step down Regler für die 3,3V Leitung (der ist cc / cv und kann bis zu 3 Ampere leisten, was wahrscheinlich totaler Overkill ist, aber ich hatte noch einige davon herumliegen)
2021-04-27 15.01.37.jpg2021-04-27 15.01.56.jpg


Testing

Da dies mit einem 2011 Macbook betrieben werden soll, habe ich es nur für Stabilitätstests mit meiner Windows-Installation auf meinem 2014 Macbook getestet, das mit meinem akitio thunder 2 einwandfrei funktioniert:


Anstelle eines externen Monitors verwende ich einen HDMI-Stick, um die Anzeigeausgabe auf den internen Bildschirm klonen zu können, und gebe mir alle Optionen, um die Auflösung auf etwas Leistungsfreundlicheres als das native 2880x800 zu ändern. Zuerst habe ich es mit nur dem + 12V Netzteil gestartet, das an eine 6-polige PCIe und einen SATA-Stromanschluss für die M.2 an PCIe x4 angeschlossen ist.

Und es funktioniert irgendwie

2021-04-27 14.40.39.jpg



Nach ein paar Minuten stürzt es ab. Die GPU-Z hat einige verrückte Taktsprünge, die 5 Sekunden lang auf 1200 MHz springen und dann auf 785 MHz und manchmal sogar auf 330 MHz abfallen. Es zeigt Perfcap Reason = 4 und währnd es abstürzt, hatte es Perfacp Reason 14.

Dank des EGPU-Forums war ich gewarnt, dass nur TB3 ausreichend Strom und eine 3,3-Volt-Leistungsregelung liefern kann, nicht TB1 oder 2, da sie keine Stromversorgung haben. Bei ATX-Netzteil-Setups wie dem ADT-Link R43SG ist dies kein Problem, da sie 3,3 Volt vom 24-poligen ATX-Anschluss haben, aber ich fand diese viel zu groß und chaotisch für dieses winzige Setup

Da mein + 12V-Netzteil keine stabilen 3,3V für den PCIeslot liefert, habe ich mich gefragt, wie das überhaupt funktioniert? Die M.2 SSD von Transcend verbraucht ebenfalls 3,3 V und ich kann eine Spannungsreglerschaltung an Bord sehen, die wahrscheinlich die + 19,5 V DC vom Displayport / TB2-Anschluss verwendet, um eine Art 3,3 V-Stromversorgung herzustellen.


Also habe ich eine 12- auf 3,3-V-Reglerplatine hinzugefügt und sie an meinen benutzerdefinierten Kabelbaum und den Sata-Anschluss angeschlossen. Da ich nicht weiß, ob der Spannungsregler am Transcend eine Anti-Reverse-Diode hat und ich meine Macbooks Thunderbolt-Anschlüsse nicht riskieren wollte, habe ich beschlossen, alle 3,3-V-Pins vom Transcend-Adapter abzukleben. D
Dies ist wahrscheinlich nicht notwendig, da beide Geräte immer an derselben Masseleitung hängen, aber ich habe es zur Sicherheit trotzdem mit Kapton isoliert.
2021-05-01 18.12.48.jpg2021-05-01 18.13.45.jpg

Sowohl das Transcend- als auch das chinesische M.2-zu-PCIe-Mining-Board verfügen über ordentliche Power-Status-LEDs, mit denen ich überprüft habe, ob der Transcend-Adapter tatsächlich nicht mehr mit dem M-2 versorgt wird.
2021-05-01 18.14.17.jpg2021-05-02 14.53.03.jpg


Was soll ich sagen? Es läuft jetzt ziemlich stabil. Es war also definitiv die 3,3V Stromversorgung die für die Instabilität gesorgt hatte.

2021-05-01 19.36.08.jpg




Was meint ihr, lieber ein großes Gehäuse für die Karte mit Originalkühler?

Das wäre ideal zwecks Kompatibilität und Aufrüstung, ist aber auch relativ groß. Performant und leise ist der blower unter Last, nur im idle überwiegt das PWMklackern und Spulenrasseln der Karte. Kommt auf maximal 70°C in Furmark bei ca. 40% Lüfterdrehzahl

Bildschirmfoto 2021-05-02 um 23.03.26.png



Alternativ kann ich einen experimentellen Boxed heatsink Mod machen, womit die Karte nur noch 174mm lang ist. Ungefähr 1050, 1650, 1660 Länge, also immer noch Raum für Aufrüstung. Wäre auf jeden Fall ein Contender für "worlds smallest DIYeGPU.
Sieht allerdings für die Kids von heute vielleicht auch weniger Leistungsfähig aus :sneaky:

Bildschirmfoto 2021-05-03 um 11.26.00.png


Was haltet ihr vom OEM Look der Karte mit dem Boxedkühler?
2021-05-03 11.27.41.jpg
 

Anhänge

  • Bildschirmfoto 2021-05-02 um 23.01.04.png
    Bildschirmfoto 2021-05-02 um 23.01.04.png
    209,2 KB · Aufrufe: 181
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.

legendMOD

Enthusiast
Mitglied seit
23.10.2009
Beiträge
830
Ort
Leipzig
Sehr interessantes Projekt, tendenziell würde ich den Ansatz verfolgen möglichst kompakt zu werden.
 

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Leider musste ich die symmetrischen vier Verschraubungen aufgeben, bzw. anpassen. Sonst passt dann mit der Hardware nicht. Und lieber ein paar zu viele Schrauben als zu wenige . Was nützt es wenn es gut aussieht aber das Plexi biegt oder bricht?
Bildschirmfoto 2021-05-09 um 10.26.27.png

Bildschirmfoto 2021-05-09 um 10.24.11.png




Bin gestern Abend noch kurz in die Werkstatt und habe die Teile aus 3mm weißem Acrylglas ausgeschnitten:

2021-05-08 19.12.25.jpg


2021-05-08 19.40.33.jpg


2021-05-08 20.36.44.jpg
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Das Referenzdesign der GTX660 hat einen schönen VRM Heatsink, meine PNY Karte kühlt das leide rnur mit dem Luftstrom vom Blower.
Wenn ich den Blower weglasse und auf einen Axiallüfter direkt auf der GPU setze mus sich die VRMs irgendwie kühlen.

Also mal eben einen VRM heatsink gesägt:
2021-05-08 20.22.25-1.jpg

2021-05-09 12.46.56.jpg



Bei der Kühlung muss ich mich jetzt zwischen einer "Vollkupfer" Variante mit Zalman VF900 (der zurechtgeschliffene VRM Heatsink ist orange eloxiertes Alu) und einer Aluminium Variante mit Intel Boxedkühler und Alu VRM Heatsink entscheiden:
2021-05-09 12.43.33.jpg


2021-05-09 12.41.29.jpg
 

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Habe mich für die Aluminium-Version entschieden.
2021-05-09 13.26.30.jpg



Upcycling vom Boxedkühler passt einfach besser zu dem low-budget Anspruch.

2021-05-09 13.15.55.jpg



Ich möchte auch lieber beim weißen Theme bleiben, da passt Kupfer nicht so:


2021-05-09 13.43.48.jpg





Weiter gehts mit der I/O Blende. Leider ist der M4 Schraubenkopf Etwas zu breit, glücklicherweise hatte ich noch eine Abstandshülse herumliegen.

Wer sich fragt was das da für für ein verzinkter secchskantiger 90Grad Gewindeverbinder ist: Der ist von Bürklin, die haben eine Reihe von Gewindewürfeln die sehr praktisch zum Casemodding / Casecon sind.

2021-05-09 14.42.39.jpg





Zur Verbindung der Lamellen habe ich mich für Gewindehülsen entschieden. Sechskanthülsen wären zu groß und würden Raum für die Grafikarte wegnehmen bzw. das Plexiglas sehr schmal machen, dahe rhabe ich mich für 5mm dünne M4-Hülsen von A.R.T. entschieden.
Leider habe ich die nicht in der benötigten 51mm Länge. Also habe ich die aus mehreren einzelstücken selber gebaut:

2021-05-09 14.04.55.jpg




Bodenplatte mit Füßchen, Abstandshaltern und GPU zum probesitzen:
2021-05-09 15.02.44.jpg
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
M2 Abstandshalter für das Thunderbolt Board einschrauben, M2.5 Schrauben mit Gummiringen für Das Netzteil. Ich montiere die Platinen versetzt übereinander, sonst würde das nicht passen.
2021-05-09 16.21.43.jpg



Um 1cm falsch gemessen :cry: - kommt auch mal vor. Leider passte dann die Gesamtkonstruktuíon nicht mehr, das TB PCB stößt gegen das 3,3V Netzteil. habe daher vorsichtig 5mm seitlich vomTranscend Thunderbolt Adapter abgefeilt. Das ist ein 0.6mm 6-Layer PCB, zum glück an meiner Stelle nur Massefläche und Ground Vias 😅

2021-05-09 16.36.43.jpg

Beitrag automatisch zusammengeführt:

Das aufwändigste beim Zusammenbau ist dann das Abziehen der Schutzfolie vom Plexi :LOL:

2021-05-09 17.25.44.jpg


2021-05-09 21.56.35.jpg


2021-05-09 21.56.26.jpg
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Mit der Kühlung gabs dann ein paar Probleme. Im Idle sehr leise, 1100rpm sind bei dem Intel slim Fan kaum zu hören, auch kein PWM klackern.


2021-05-09 19.53.41.jpg

Nach 5min Furmark waren es dann 94°C, das war mir zuviel, also habe ich das schnell abgebrochen (leider kein Foto) und dann vorsichtig mal mit offenem Deckel analysiert:
IMGT0054.PNG


Die Spannungswandler und Ramchips sind extrem heiß (75°C auf der boardrückseite unter den spawas). Selbst wenn eine GPU bei 80-90°C noch gut funktioniert ist mir das etwas viel Hitze auf der Platine. Mehr Airflow muss her!



Anscheinend dreht der Lüfter sehr lange auf niedriger Drehzahl. Erst ab 75°C etwas auf (1500rpm) und erreicht dann bei 84°C eine Maximaldrehzahl von ca. 2450rpm. Dabei kann der eigentlich 3400rpm machen, bei 100% PWM.

Mit offenem Deckel sind die Temperaturen zwar nur in den 80ern statt 90ern, aber wie es aussieht hat PNY dem Lüfter im BIOS auf 74% PWM limitiert. Auch mit Afterburner komme ich nicht höher.
2021-05-09 19.53.33.jpg




Also habe ich die Karte wieder ausgebaut und in meinem Desktopsystem mal das BIOS angeschaut. Tatsächlich gibt es ein limit bei 74% Lüfterdrehzahl.
Mit dem Kepler BIOS Editor und NVflash habe ich das BIOS modifiziert, nebenbei die Kernspannung um 25mv gesenkt und 55% Minimaldrehzahl eingestellt.
bei 55% bzw. 1900rpm ist der Lüfter noch erträglich. Solange die Box leiser ist als der CPUlüfter vom Notebook unter Gaminglast ist sowieso alles okay. Für non-gaming Betrieb, Desktop/Idle wird die GPU ja gar nicht angeschlossen, das kann mir also egal sein.

Zusätzlich habe ich dann noch Ramkühler aufgeklebt, die zum Glück um ein Haar flach genug sind um unter den Intelkühler zu passen.
Die Rückseite wird nun um die 50Grad warm und die Ramkühler sind unter Furmark noch gerade so anfassbar.


2021-05-10 13.10.20.jpg

Beitrag automatisch zusammengeführt:

Ein beinahe fataler Bug ist mir dann nach dem zweiten Testlauf aufgefallen.:
- Die drei Schrauben direkt neben dem Netzteilanschluss können sehr leicht einen Netzteil Kurzschluss verursachen wenn man nicht genau den Anschluss trifft. Die Halbrund- und Zylinderkopfschrauben sind gerade Lang genug um die vier Pins mit +12V und GND im Inneren des Kycon-Steckers zu erreichen.

Also mussten Senkkopfschrauben her: Leider habe ich die M3 Seko nicht in Schwarz vernickelt wie die anderen Schrauben :cry:
2021-05-10 14.21.33.jpg
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Als kleinen Gimmick habe ich noch einen RGB-LED-Streifen (Side-LEDs) gelötet.

2021-05-10 11.14.39.jpg


Angesteuert wird der von einem Arduino Nano, welcher an einem USB Step down Wandler direkt an +12V vom Netzteil hängt.
Leider habe ich aktuell keinen DS18B20 Temperaturfühler da, sonst hätte ich die Beleuchtungsfarbe wohl noch temperaturabhängig gemacht (Blau Kalt, bis Rot heiß, pulsierend).
Daher gibt es aktuell erstmal nur ein pulsierendes blaues Licht mit einem langsam drehenden roten Schimmer.

2021-05-10 13.21.54.jpg




Mit der ganzen Kabelage sieht es dann unter der Haube so aus: Da könnte man noch ein wenig aufräumen, nicht? Vo allem die farbigen Kabel unten stören mich etwas, der Rest verschwindet ja noch unter der weißen Blende.

2021-05-10 14.20.56.jpg



Kabel aufgeräumt und mit dem Shield auf der GPU

2021-05-10 16.23.25.jpg


Die fehlende Schraube hinten habe ich später schon noch reingedreht 😉

2021-05-10 16.24.38.jpg



Hm, irgendwie wirkt das durchsichtige Plexi echt unruhig, überlege doch ob nicht mattes Plexi besser gewesen wäre, oder ob es einen weißen Rahmen braucht.:unsure:
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
So, meine Reste an mattem 3mm Plexiglas waren leider zu klein für ein neues Seitenteil.

Stattdessen habe ich einen Rahmen aus weißer Folie gelasert und auf das transparente Plexiglas geklebt. Probesitzen wirkt schonmal nicht schlecht imo:
2021-05-25 21.04.49.jpg




Bei der Beleuchtung bin ich auch weitergekommen. Die normalen WS2812 Streifen sind auf jeden Fall heller als die sideleds.
Statt der Rotation bzw. einem Lauflicht habe ich nun ein langsames Pulsieren implementiert, das wirkt ruhiger.

Den Temperatursensor habe ich auch angeschlossen (Dallas DS18B20)und er liefert sehr genaue Readings.
Habe das so programmiert dass bei 20°C es blau pulsiert. Bei höheren Temperaturen ändert sich das zu Türkis, Grün, Gelb, Orange bis es schließlich ab 65°C voll rot pulsiert.

Leider braucht die Dallas Library extrem lange für die Initialisierung des Sensors und die Messung. Ca. 750ms wodurch die Animation zur Slideshow wird.

Ich habe schon einen Code gefunden der die Messung "non blocking" macht, bzw. man kann einstellen dass nur alle 8Sekunden neu gemessen wird. Das bedeutet aber immer noch dass die Animation immer mal wieder kurz hängt und es bei schnellem Tempwechsel abrupte Farbübergänge gibt.

Hat jemand einen Lösungsvorschlag?

Hier der Code:

C-ähnlich:
#include <FastLED.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>



// Pins for Nano

#define LED_PIN 3                         // hardware SPI pin SCK
#define NUM_LEDS 16
#define MIN_BRIGHTNESS 8                   // watch the power!
#define MAX_BRIGHTNESS 255                   // watch the power!
 
#define ONE_WIRE_BUS 2              // DS18B20
#define MAX_ATTACHED_DS18B20  1


unsigned long MEASUREMENT_INTERVAL = 8000;       // Time to wait between reads (in milliseconds).


OneWire oneWire(ONE_WIRE_BUS);                    // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
DallasTemperature sensors(&oneWire);              // Pass the oneWire reference to Dallas Temperature.
float lastTemperature[MAX_ATTACHED_DS18B20];      // creates an array to hold the previous temperature measurements for each possible sensor.
int numSensors=0;                                 // variable to contain the number of found attached sensors.
boolean receivedConfig = false;                   // I have no idea what this does.
boolean metric = true;                            // Probably used by the Dallas library as an indication if the temperature should be calculated in Celsius (metric) or Fahrenheit.
boolean CURRENTLY_MEASURING = true;               // Used to indicate when the time is right for a new measurement to be made.
boolean CURRENTLY_CALCULATING = false;            // Used to bridge the time that is needed to calculate the temperature values by the Dallas library.
unsigned long CURRENT_MILLIS = 0;                 // The millisecond clock in the main loop.
unsigned long PREVIOUS_MEASUREMENT_MILLIS = 0;    // Used to remember the time of the last temperature measurement.
int16_t CONVERSION_TIME = 0;                      // Used to store the time needed to calculate the temperature from measurements.


CRGB leds[NUM_LEDS];
uint8_t hue = 160;

void setup() {
    Serial.begin(9600);
    sensors.setResolution(9);
    sensors.begin();                                // Startup up the OneWire library
    FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS);
    delay(300);
    FastLED.setBrightness(MAX_BRIGHTNESS);
    FastLED.clear();
    fill_solid(leds, NUM_LEDS, CRGB::White);
 }

void loop() {
 
CURRENT_MILLIS = millis(); // The time since the sensor started, counted in milliseconds. This script tries to avoid using the Sleep function, so that it could at the same time be a MySensors repeater.
  // Let's measure the temperature
  if(CURRENTLY_MEASURING == true && CURRENT_MILLIS - PREVIOUS_MEASUREMENT_MILLIS >= MEASUREMENT_INTERVAL){ // If we'e not calculating, and enough time has passed, we'll start again.
    CURRENTLY_MEASURING == false; // We're measuring, so let's take it off our to-do list.
    Serial.println("Starting new measurement(s)\n");
    PREVIOUS_MEASUREMENT_MILLIS = CURRENT_MILLIS; // Mark the time of the initialiation of this measurement.
    sensors.requestTemperatures();   // Fetch temperatures from Dallas sensors
    CURRENTLY_CALCULATING = true; //Next step is to re-calculate the temperature again.
  }

  float breath = (exp(sin(millis()/4000.0*PI)) - 0.36787944)*108.0;
  breath = map(breath, 0, 255, MIN_BRIGHTNESS, MAX_BRIGHTNESS);
  FastLED.setBrightness(breath);
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV (hue, MAX_BRIGHTNESS, 255);
  }
  uint8_t temp = sensors.getTempCByIndex(0);
  Serial.print("Temp: ");
  Serial.println(temp); // print temperature
  Serial.print("Hue: ");
  Serial.println(hue); // print current hue
  if (temp > 65){
    hue = 0;
   }
  else {
    hue = 180-((temp*4)-80);
   }
  FastLED.show();
  delay(5);
}


Und hier ein Video:
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Praktisch würde es schon helfen, wenn ich wüsste wieviele Millisekunden eine Animation dauert. Dann könnte ich die Messung immer genau dazwischen machen wenn die LEDs fast aus sind.

Da ich den Code aber nicht selber geschrieben habe, sondern nur aus verschiedenen samples zusammenkopiert und angepasst habe, habe ich keine ahnung wie sich genau der animationszeitraum zusammensetzt bzw. wie die fastled library die laufzeit berechnet.
Kennt sich jemand mit Fastled aus oder kann eine andere LED Library empfehlen mit der ich eine LED Animation mit fester Laufzeit schreiben kann?



EDIT: Okay ich habe mir die Frage selber beantwortet - das war einfach 😅

Wenn man die Messungen immer dann machen will wenn die LEDs fast aus sind, reicht es den float breathe zu überwachen. Immer dann wenn der denselben Wert wie "MIN_BRIGHTNESS" beträgt, ist die Breathing-Animation gerade am Tiefpunkt:
C-ähnlich:
if (breath==MIN_BRIGHTNESS) {
    sensors.requestTemperatures();                // Fetch temperatures from Dallas sensors
  }


Funktioniert jetzt perfekt 🤞 ohne sichtbares Ruckeln und mit ausreichender Abtastrate, ca. alle 4 Sekunden wird die Temp gemessen und damit die Animationsfarbe geändert 😍


Code ist auch kürzer geworden:
C-ähnlich:
#include <FastLED.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>


// Pins for Nano

#define LED_PIN 3                                 // hardware SPI pin SCK
#define NUM_LEDS 16
#define MIN_BRIGHTNESS 0                          // watch the power!
#define MAX_BRIGHTNESS 255                        // watch the power!
 
#define ONE_WIRE_BUS 2                            // DS18B20


OneWire oneWire(ONE_WIRE_BUS);                    // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
DallasTemperature sensors(&oneWire);              // Pass the oneWire reference to Dallas Temperature.


CRGB leds[NUM_LEDS];
uint8_t hue = 160;

void setup() {
    Serial.begin(9600);
    sensors.setResolution(9);
    sensors.begin();                              // Startup up the OneWire library
    FastLED.addLeds<NEOPIXEL, LED_PIN>(leds, NUM_LEDS);
    sensors.requestTemperatures();                // Fetch temperatures from Dallas sensors
    delay(300);
    FastLED.setBrightness(MAX_BRIGHTNESS);
    FastLED.clear();
    fill_solid(leds, NUM_LEDS, CRGB::White);
 }

void loop() {
  uint8_t temp = sensors.getTempCByIndex(0);    // using int8 to get a value of 0-255 instead of 0-1023
  float breath = (exp(sin(millis()/4000.0*PI)) - 0.36787944)*108.0;
  breath = map(breath, 0, 255, MIN_BRIGHTNESS, MAX_BRIGHTNESS);  // correct breathing value to brightness range
  FastLED.setBrightness(breath);                   //set brightness to breathing value
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV (hue, MAX_BRIGHTNESS, 255);
  }                                               //turn all LEDs on and set hue, brightness and saturation
  if (breath==MIN_BRIGHTNESS) {      // Start Measurement only once every animation (takes 750ms)
    sensors.requestTemperatures();                // Fetch temperatures from Dallas sensors
    Serial.print("Temp: ");
    Serial.println(temp);                           // print temperature
    Serial.print("Hue: ");
    Serial.println(hue);                            // print current hue
  }
  else{                       // set temperature based color hue  and 180 being the minimum at 20 degree roomtemp
    if (temp > 65){           // 65deg is the Maximum, fully red (hue = 0)
     hue = 0;
     }
    else {                       // 180 is sorta the Minimum (fully blue)
     hue = 180-((temp*4)-80);   // temperatures lower than 20deg will be purple instead of blue, kinda works
    }
  FastLED.show();
  delay(5);
  }
}
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Im Einsatz:
WhatsApp Image 2021-11-06 at 13.29.42.jpeg


Genshin Impact läuft mit 30-50FPS all medium settings + TAA

Läuft nur mittels externem HDMI Dongle auf der eGPU auf dem internen labtop LCD. Als primärer monitor muss in windows der Dongle ausgewählt sein, sonst versucht er es auf der internen HD3000 zu starten, was crasht da die keinen vollständigen DX11 support hat.


WhatsApp Image 2021-11-06 at 15.59.20.jpeg

Wärmeabhängige Beleuchtung funktioniert:

WhatsApp Image 2021-11-06 at 16.01.34.jpeg



Video:


Wie man hört übertönt das coil whining leider noch deutlich das Lüfterrauschen. Da aber mit Headset gespielt wird ist es sehr erträglich - auch im Vergleich zu modernen GPUs die unter Last noch lauter werden.
Beitrag automatisch zusammengeführt:

Ich dachte ja dass man da mal ne 1660ti oder super einbauen kann sobald sich die GPU-Preise wieder normalisiert haben. Das wär ca. die 3fache Leistung und miut 6GB auch der 3fache VRAM.

Ein Ende der GPU-Durstzeit ist aber leider noch nicht absehbar. Trotzdem gibts mittlerweile schon die 4-fache Leistung mitsamt 8GB VRAM bei gleicher TDP, in Form der RX6600.
 
Zuletzt bearbeitet:

davidzo

Enthusiast
Thread Starter
Mitglied seit
18.10.2005
Beiträge
661
Leider war der Spaß nicht von Dauer. Die karte ist nach 2 Wochen Dauer gaminglast abgeraucht :cry:

Symptome: Fans 100%, kein Bild, kein Gerätemanager (auch im desktop getestet). Hab sie jetzt 2mal versucht zu backen, aber hat nicht mehr geholfen.


Wir suchen nun Ersatz im Bereich 750ti, 950 (kurzeK ompaktmodelle), RX460, RX560, 1050, 1050ti, 1060(kurz) bis 1660 oder 5500xt.
Weiß jemand wo man das derzeit herbekommt ohne horrende Aufschläge zu bezahlen?

Zur Not laser ich auch ein größeres Gehäuse, aber die TDP von 140Watt ist fix (Netzteil-limitiert, 10Watt reserve für das TB board und den 3,3V Wandler).

Besteht Interesse an den DXF Files zum Nachbauen?
 
Zuletzt bearbeitet:
Oben Unten