Jump to content
HWBOT Community Forums

Wiggles

Members
  • Posts

    54
  • Joined

  • Last visited

Posts posted by Wiggles

  1. Im nearly done with a prototype for PCB production. Im waiting on a SATA Power connector and TFT touch screen to test. Digikey and Mouser have no cheap TFTs or even a SATA Power connector, alas I have resorted to 3rd party to get sparse details.

     

    I should have a PCB by the end of next month to program fully. This thing is badass, I designed it from the ground up using an ATmega2560.

  2. - Ill be going stag.

     

    - I might get a room. Most likely not.

     

    - 5960X x2, 6700K >2(Im still in the process of binning), 6320, AMD Athlon II, 3x 9800/8800s, 980 Matrix, 980 Ti KPE, 680 Lightning. CPU/GPU Pot.

     

    - I can loan loads of AFR Hynix/D Die DDR4. Maybe universal GPU waterblock and my pots depending on my stage of overclocking.

     

    - http://hwbot.org/user/wiggles5289/

    http://www.overclock.net/u/426118/wiggles5289

  3. 5930K- $450 OBO

     

    Was able to pass XTU 5.1G @1.565V, 4.7G@1.4 32M(Voltage might be lower, I think I was trying to get 4.8G but it just wouldnt go).

     

    4690K- $160

     

    Great IMC, weakish core. Came out of my LAN rig.

     

    ASRock Z170 OCF- SOLD

     

    This thing is a CPU Killer, 3 6700Ks souls passed through it before I figured it was killing them. No bent pins just instant death for all procs that enter it. Yellow Mama is gone.

  4. So far I have a 2 Channel device that will display Target/Read voltages but Im having trouble getting the data to read on one line.

     

    I have the code fully written to support 1 Chip with a range of 100K/10K in 256 steps. Once I get this simple version working 100% Im confident I can add a channel select button and have a serial setup of MCP4XXXX pots to be made into a full range(1M to 500 ohm analog pot) version.

     

    Any help would be great.

    /* WIGGLES' Universal VMod tool V0.2
     This program is used to control up to 6 differenct voltage rails up to 5V 
     utilizing a MCP42XXX or MCP41XXX series digital potentiometer. Currently 
     uses USB Console to view set and read voltages. -Wiggles5289, Overclock.net
    
       ISSUES:
     1: NEED TO CONVERT CHxVRead and CHxVtgt from 100ths to  without interference
       from logic in voltageAdjust
     2: Result of Issue 1 is that the program goes at an arduious rate of 1 complete cycle of void loop()
       every 5 seconds. adjustVoltage() is the cause of this, it should stop if only voltage values are
       compared in 100ths instead of near infinate.
    
       To Do:
     1: Add code and support for 2.2 TFT Screen and 2.8 CAP Touch TFT Screen
     2: Add "Channel Select" function
     3: Add code and support for serial MCP4XXXX chips
     4: Add Temp Probe code and support
     5: Switch unnecessary Delay() to millis() to eliminate unnecessary pauses
    
     CHANGE LOG:
     Disabled printOut() as wrong or no values were being printed on console
     Added print function to readVoltage()
    
     This code used to control the digital potentiometer
     MCP4XXXX connected to  arduino Board
     CS >>> D10
     SCLK >> D13
     DI  >>> D11
     PA0 TO VCC
     PBO TO GND
     SHDN >> 9
     PW0 TO led with resistor 100ohm. JUST TO TEST.
    
     Thanks to all who helped, Ill be listing people here.
    */
    const int buttonUpCH0Pin = 2;
    const int buttonDownCH0Pin = 3;
    const int buttonUpCH1Pin = 4;
    const int buttonDownCH1Pin = 5;
    const int sensor0Val = A0;
    const int sensor1Val = A1;
    
    int buttonUpCH0State = 0;
    int buttonDownCH0State = 0;
    int buttonUpCH1State = 0;
    int buttonDownCH1State = 0;
    int lastButtonUpCH0State = 0;
    int lastButtonDownCH0State = 0;
    int lastButtonUpCH1State = 0;
    int lastButtonDownCH1State = 0;
    int CH0VRead = 0;
    int CH1VRead = 0;
    float CH0Vtgt = 0; // May change to 1.0V for stabilization
    float CH1Vtgt = 0; // May change to 1.0V for stabilizationÆ’
    
    #include <SPI.h>
    byte addressPot0 = 0b00010001;      //To define potentiometer use last two BITS 01= POT 0
    byte addressPot1 = 0b00010010;      //To define potentiometer use last two BITS 10= POT 1
    byte addressPot0and1 = 0b00010011;  //To define potentiometer use last two BITS 10= POT 0 and 1
    byte addressPotNA = 0b00000000; //To define no write to potentiometer use BITS 5 and 6 or last two BITS= 00
    byte CS= 10;    //Chip control goes to pin 10
    byte SHDN = 9;  //Chip SHUTDOWN - PIN 9
    byte RS = 8;    //Chip RESET - PIN 8
    
    void setup()
    {
     pinMode (CS, OUTPUT); //CS - When High, sets chip to read the data.
     pinMode (SHDN, OUTPUT); //CS - When High, sets chip to read the data.
     pinMode (RS, OUTPUT); //CS - When High, sets chip to read the data.
     pinMode(buttonUpCH0Pin, INPUT);
     pinMode(buttonDownCH0Pin, INPUT);
     pinMode(buttonUpCH1Pin, INPUT);
     pinMode(buttonDownCH1Pin, INPUT);
     CH0Vtgt+= 1.09;
     CH1Vtgt+= 1.09;
    
     Serial.begin(9600); 
     digitalWrite(SHDN, HIGH); //Power ON (HIGH)
     digitalWrite(RS, HIGH); //Power NO RESET (LOW)
     SPI.begin();
    
     delay(0); // Increase to 3000 to allow for breakout boards to initialize or external device boot
    }
    
    void loop(){
     setVoltageCH0(); // Sets voltage via 2 buttons
     setVoltageCH1(); // Sest voltage via 2 buttons but will be changed to 1 set and a single "Channel Select" button
     readVoltage(); // Reads voltage from Analog pins
     voltageAdjust(); // Determines if the voltage needs to be changed based upon read voltage
     //printOut(); // DISABLED What to display in serial soon to be display
    
     delay(10); //Delay to allow Pots to adjust voltage feedback.
    }
    
    
    void setVoltageCH0() {
     // Sets resistance up or down from 100 to 210 with 2 buttons:
     buttonUpCH0State = digitalRead(buttonUpCH0Pin);
    
     if (buttonUpCH0State != lastButtonUpCH0State) {
       if (buttonUpCH0State == HIGH) {
         Serial.println("UP CH0"); // REMOVE POST DEBUG
           if (CH0Vtgt >= 1.00 && CH0Vtgt < 2.10){
             CH0Vtgt += 0.01;
             }
       } else {
         Serial.println("UP CH0 Released"); // REMOVE POST DEBUG
       }
       delay(5);
     }
    
     buttonDownCH0State = digitalRead(buttonDownCH0Pin);
    
     if (buttonDownCH0State != lastButtonDownCH0State) {
       if (buttonDownCH0State == HIGH) {
         Serial.println("DOWN CH0"); // REMOVE POST DEBUG
           if (CH0Vtgt > 1.00 && CH0Vtgt <= 2.10){
             CH0Vtgt -= 0.01;
             }
       } else {
         Serial.println("Down CH0 Released"); // REMOVE POST DEBUG
       }
       delay(5);
     }
         Serial.print("Channel 1 Target: ");
         Serial.print(CH0Vtgt);
         Serial.print("\t");
    
     lastButtonDownCH0State = buttonDownCH0State;  
     lastButtonUpCH0State = buttonUpCH0State;
    }
    
    void setVoltageCH1() {
     // Sets resistance up or down from 100 to 210 with 2 buttons:
     buttonUpCH1State = digitalRead(buttonUpCH1Pin);
    
     if (buttonUpCH1State != lastButtonUpCH1State) {
       if (buttonUpCH1State == HIGH) {
         Serial.println("UP CH1"); // REMOVE POST DEBUG
           if (CH1Vtgt >= 1.00 && CH1Vtgt < 2.10){
             CH1Vtgt += 0.01;
             }
       } else {
         Serial.println("UP CH1 Released"); // REMOVE POST DEBUG
       }
       delay(5);
     }
    
     buttonDownCH1State = digitalRead(buttonDownCH1Pin);
    
     if (buttonDownCH1State != lastButtonDownCH1State) {
       if (buttonDownCH1State == HIGH) {
         Serial.println("DOWN CH1"); // REMOVE POST DEBUG
           if (CH1Vtgt > 1.00 && CH1Vtgt <= 2.10){
             CH1Vtgt -= 0.01;
             }
       } else {
         Serial.println("Down CH1 Released"); // REMOVE POST DEBUG
       }
       delay(5);
     }
         Serial.print("Channel 2 Target: ");
         Serial.print(CH1Vtgt);
         Serial.print("\t");
    
     lastButtonDownCH1State = buttonDownCH1State;  
     lastButtonUpCH1State = buttonUpCH1State;
    }
    
    void readVoltage() {
     // Reads voltage from Analog Pins
     {
       int sensor0Val = analogRead(A0);
       float CH0VRead = sensor0Val * (5.0 / 1023.0); 
       Serial.print("Channel 1 Voltage:    ");
       Serial.print(CH0VRead); // LAST VALUE NEEDS TO BE CHANGED TO REMOVE DECIMAL
       Serial.print("\t");
     }
     {
       int sensor1Val = analogRead(A1);
       float CH1VRead = sensor1Val * (5.0 / 1023.0);
       Serial.print("Channel 2 Voltage:    ");
       Serial.println(CH1VRead); // LAST VALUE NEEDS TO BE CHANGED TO REMOVE DECIMAL
     }
     //Duplicate or simplify above code for up to 6 channels
     delay(10); //delay between readys for Pot adj CAN BE REMOVED
    }
    
    void voltageAdjust(){
     // Adjusts Voltage
    if (CH0VRead != CH0Vtgt || CH1VRead != CH1Vtgt) { //REMOVE ACTUAL
     if (CH0VRead > CH0Vtgt && CH0VRead != CH0Vtgt) { //REMOVE ACTUAL
       voltageDecrease(addressPot0);
     } else {
       voltageIncrease(addressPot0);
     }
    
     if (CH1VRead > CH1Vtgt && CH1VRead != CH1Vtgt) {
       voltageDecrease(addressPot1);
     } else {
       voltageIncrease(addressPot1);
     }
    
     delay(10); //Delay to allow for voltage feedback
    }
    }
    
    void voltageDecrease(byte address){
     // Decreases Voltage increasing resistance 1/255 away from Terminal A(Pin PAx)
      for (int i = 0; i <= 255; i++){
       digitalPotWrite(i, address);
       delay(10);
      }
    }
    
    void voltageIncrease(byte address){
      // Increases Voltage by decreasing resistance 1/255 towards Terminal A(Pin PAx)
     for (int i = 255; i >= 0; i--){
       digitalPotWrite(i, address);
       delay(10);
     }
    }
    
    /* void printOut(){
     // What to display via Serial
     Serial.print("Channel 1 Voltage:     ");
     Serial.println(CH0VRead); // LAST VALUE NEEDS TO BE CHANGED TO REMOVE DECIMAL
     Serial.print("\t");
    
     Serial.print("Channel 1 Target Voltage:     ");
     Serial.println(CH0Vtgt); // LAST VALUE NEEDS TO BE CHANGED TO REMOVE DECIMAL
     Serial.print("\t");
    
     Serial.print("Channel 2 Voltage:     ");
     Serial.println(sensor1Val); // LAST VALUE NEEDS TO BE CHANGED TO REMOVE DECIMAL
     Serial.print("\t");
    
     Serial.print("Channel 2 Target Voltage:     ");
     Serial.println(CH1Vtgt, 2); // LAST VALUE NEEDS TO BE CHANGED TO REMOVE DECIMAL
    
    } */ //DISABLED CODE
    
    int digitalPotWrite(byte value, byte address)
    { //SPI Write program. Single Chip, 2 Channels.
     digitalWrite(CS, LOW); //Set Chip Active
     SPI.transfer(address);
     SPI.transfer(value);
     digitalWrite(CS, HIGH); //Set Chip Inactive
    }

     

    EDIT: Fixed a button issue.

    EDIT DEUCE: Got it 99% working, I have a problem with the voltage being compared has to be exact instead of 100ths of volts causeing an adjustVoltage loop. Other than that its working!

  5. I came up with an idea to implement voltage tracking with up to 6 channels utilizing the analog pins on an arduino.

     

    The idea is to monitor voltages via USB and convert the data into a visual form. I want to monitor the voltages in graphical form or clear text in realtime.

    Heres an example of what I want to do: http://www.instructables.com/id/Make-a-Mini-Arduino-programmable-4-channel-DC-DVM/

     

    The 6 analog pins only have a voltage range up to +5V. So if you wanted to measure a 12V line you need a divider like this:

    FC8DO06HSRZOG79.LARGE.jpg

     

    You could implement this into your device or even attach a thermocouple amplifier with analog output(https://www.adafruit.com/products/1778) instead of a voltage read point. All of this together would be pretty sweet.

  6. I bought a Intel D5400XS a few days ago knowing it was broken for cheap trying to fix it.

     

     

    the board has no bent pins that are interfering with others, has working processors(2x Xeon X5460), 4 FBDimm RAM modules that work, EVGA 1200W PSU, and a GTX 980.

     

    It posts from a cold startup with a CLR CMOS to the memory check 28->29. As soon as it tries to check the PCI check the POST Led displays 01, and the CPU Overheat light comes on for CPU1 but only dimly.

     

    I tried swapping processors, different ram, different slots for the GPU(even a 9800GTX just incase the 980 was incompatible or broken), CLR CMOS, and visual inspection of the VRM and socket.

     

    I believe the socket is an issue as none of the VRMs seem damaged. The other CPU has no errors even when swapped. Looking at datasheets for the socket Ive found the PROCHOT# pin(AL2) and checked the resistance. The CPU0(good socket) pin AL2 has a ~155 Ohm resisance to ground and CPU1's AL2 pin is ~140 Ohm. Im not sure on how much this plays a factor but if a 10 Ohm resistance variation(accounting for accuracy of DMM) can cause an overheat error Id like to find a way to bypass that.

     

    If anyone has any info on how to remove/modify the overheat signal to allow it to post that would be awesome.

  7. 1. Who is going? Wiggles 5289, Interested depending on finances before I get the tickets.

    2. World Tour or freestyle only? Why not both?

    3. Who can assist for the OC Workshop? Sure.

    4. Transport mode ? Bringing Dewar? Car with 2x Dewars

    5. Are you ready to share place / room for sleeping? I might get a 2 bed hotel room to share.

  8. As a follow up here... I didn't have it all figured out :rolleyes:

     

    Thanks to @crustytheclown, I do now (I think)! I'll try to get some BIOS images next week but for the time being, I hope text will do.

     

    When benching with two DIMM's, this is what the BIOS will look like to get 40/40/56/57/4/4/6/6 or 40/56/40/57/4/6/4/6, depending on how you like to write it.

     

    [b]Memory Timings Channel A:[/b]
    Round Trip Latency (DIMM0/Rank0)		40
    Round Trip Latency (DIMM0/Rank1)		Auto
    Round Trip Latency (DIMM1/Rank0)		56
    Round Trip Latency (DIMM1/Rank1)		Auto
    IoLatR0D0					4
    IoLatR1D0					Auto
    IoLatR0D1					6
    IoLatR1D1					Auto
    
    [b]Memory Timings Channel B:[/b]
    Round Trip Latency (DIMM0/Rank0)		40
    Round Trip Latency (DIMM0/Rank1)		Auto
    Round Trip Latency (DIMM1/Rank0)		57
    Round Trip Latency (DIMM1/Rank1)		Auto
    IoLatR0D0					4
    IoLatR1D0					Auto
    IoLatR0D1					6
    IoLatR1D1					Auto

     

    This was around the same settings I got with my G.Skill DDR4-4000 kit. Im starting to see a trend that anything above the 3866MHz range on E Die and G.Skill kits arent liked by any mobo. Ive tried on several Z170 boards(ASR OC Formula, GB SOC Force, ASUS M8Hero) and no matter what I try I have only been able to boot into windows once with lackluster results at 4000MHz.

     

    Im going to be near a microcenter and try to get a D Die this weekend to see if theres an improvement with IMC.

     

    On a positive note, I got a few amazing results with 65/65/65/65/6/6/6/6 at 3866MHz

    I dont think I saved the score but even with 66/66/66/66/7/7/7/7 I managed to get 2417.0 on MaxMemm: http://hwbot.org/submission/3038781_wiggles5289_maxxmem_ddr4_sdram_2417_marks

     

    Ill be following up more on this RAM/Mobo. Im loving Skylake and the Z170 SOC Force so far.

  9. I had a submission flagged/reported by another user for my HWBot x265 score. The reason was for suspected cheating with HPET Timer disabled, my score is within the 5% tolerance and but does not have the HPET Timer active.

     

    My question is: Does HPET have to be enabled for the benchmark with Windows 7 or can I use the default TSC+ACPI timer?

     

    I don't think this should be an issue with Windows 7 but the documentation on this benchmark with respect to the timers is limited It says only Windows 8/8.1/10 requires it but I would still like a definitive answer.

  10. Ill have the Asic quality up in a few hours I need to mess with it some more haha. Just note, Im in the novice league and really not an expert. Its a decent card believe it or not in my opinion, I haven't even pushed the card yet and at stock it performs a bit better(synthetically at least) than the 290X. Once I figure out how to remove power limits and/or mod the bios Im actually excited to see what this card can do.

×
×
  • Create New...