Pages:
Author

Topic: Hacking the S7 - improving efficiency through minor hardware manipulation - page 3. (Read 26509 times)

jr. member
Activity: 75
Merit: 1
Early on, a post mentioned the temp sensor.  Has anyone figured out which chip it is?  The PIC looks like it's at the air inlet side of the board, so I don't think it's just reading an internal sensor.  Most of the chips I see around the board are voltage regulators with SMT discretes around them.  I've got one board that reads zero and one that reads low and intermittently shows what I think is the correct value.

Thanks
newbie
Activity: 39
Merit: 0
Here's an updated script that tries to keep temps consistent. What I added was the ability to view/fetch the logs though http.

Code:
#!/bin/sh
#
# Installation instructions:
#   - Place in /config/hashcheck.sh
#   - Set execute flag on file (chmod 0744)
#   - Create log file: touch /config/log.txt
#   - Create link to view from http: ln -s /config/log.txt /www/pages/.
#   - Run with: /config/hashcheck.sh &
#
# How to obtain log from http
#   - http://[ip of miner]/log.txt
#
# ADJUST THESE VARS ONLY --------------------------------------
#
restart=14400    #hours in seconds
#minhash=290000  #min hash rate 2900.00 ghs without the decimal
minhash=100000   #min hash rate 2900.00 ghs without the decimal
minfan=12        #min fan speed
maxfan=34        #max fan speed
mintemp=60       #min avg temp
maxtemp=65       #max avg temp
pwm=20           #starting pwm speed
maxloglines=70   #max log lines to save in file
#
#--------------------------------------------------------------

resetcgminer () {
    restartcount=$((restartcount+1))
    restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
    elapsedtime=$E

    if [ "$1" = "1" ]; then
        logger "| applying new fan speed"
        sed -i "/bitmain-fan-pwm/c\"bitmain-fan-pwm\" : \"$pwm\"," /config/cgminer.conf
    fi

    logger "| restarting cgminer"
    /etc/init.d/cgminer.sh stop > /dev/null
    sleep 5
    /etc/init.d/cgminer.sh start > /dev/null

    logger "| miner restarted: $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), up at $restarttime for $elapsedtime seconds"
    tailit
    sleep 60
}

getstats () {
    S=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16- | tr -d '.')
    E=$(cgminer-api summary | grep 'Elapsed]' | cut -c 17-)
    T=$(cgminer-api stats | grep 'temp_avg] =>' | cut -c 18-)
    T1=$(cgminer-api stats | grep 'temp1] =>' | cut -c 15-)
    T2=$(cgminer-api stats | grep 'temp2] =>' | cut -c 15-)
    T3=$(cgminer-api stats | grep 'temp3] =>' | cut -c 15-)
    HASH=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
}

logger () {
    echo $(date +%Y-%m-%d:%H:%M:%S) "$1 " >> /config/log.txt
}

tailit () {
    tail -$maxloglines /config/log.txt > /config/log2.txt && cp /config/log2.txt /config/log.txt
}

rm /config/log.txt
touch /config/log.txt

logger "| hashcheck monitor started. reboot every $restart seconds or if hash lower than $minhash Ghs"
logger "| tempcheck monitor started"

restartcount=0
T=0
T1=0
T2=0
T3=0
PCT="%"

resetcgminer 1

sleep 60

while true
do
    getstats

    if [ $T1 -gt "75" ] || [ $T2 -gt "75" ] || [ $T3 -gt "75" ] && [ $pwm -lt "100" ]; then
        pwm=100
        logger "| failed too hot: setting fan to 100$PCT, $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
        resetcgminer 1
        continue
   fi

   if [ $E -gt $restart ]; then
        logger "| miner scheduled restart: $restarthash GH/s, $T1 $T2 $T3 deg ($T AVG), up for $elapsedtime seconds"
        resetcgminer 0
        continue
   fi

   if [ -z "S$" ] || [ $S -eq "0" ]; then
        logger "| failed low hash: $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
        resetcgminer 0
        continue
   fi


   if [ $S -lt $minhash ] && [ $E -gt "120" ]; then
        logger "| rechecking in 120s low hash: $HASH $T1 $T2 $T3 deg, $restartcount restarts"

        sleep 120

        getstats

        if [ $S -lt $minhash ]; then
            logger "| failed low hash: $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
            resetcgminer 0
            continue
        else
            logger "| recovered: $HASH MH/s, $E seconds, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
        fi
   fi

   if [ $T -lt $mintemp ] && [ $pwm -gt $minfan ] && [ $E -gt "120" ]; then
        logger "| rechecking in 120s low temp: $HASH GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"

        sleep 120

        getstats

        if [ $S -lt $minhash ]; then
            logger "| failed low hash: $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
            resetcgminer 0
            continue
        else
            if [ $T -lt $mintemp ] && [ $pwm -gt $minfan ]; then
                pwm=$((pwm-2))
                logger "| failed too cold: setting fan to $pwm$PCT, $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
                resetcgminer 1
                continue
            else
                logger "| recovered: $HASH GH/s, $E seconds, $T1 $T2 $T3 deg ($T avg)"
            fi
        fi
   fi

   if [ $T -gt $maxtemp ] && [ $pwm -lt $maxfan ] && [ $E -gt "120" ]; then
        pwm=$((pwm+2))
        logger "| failed too hot: setting fan to $pwm$PCT, $restarthash GH/s, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
        resetcgminer 1
        continue
   else
        logger "| normal operation: fan at $pwm$PCT, $HASH GH/s, $E seconds, $T1 $T2 $T3 deg ($T avg), $restartcount restarts"
   fi

   tailit

   sleep 60
done
sr. member
Activity: 336
Merit: 258
I started a topic on the D3 with a hardware mod. This is for steady hands only for now  Cool
https://bitcointalksearch.org/topic/antminer-d3-blissz-firmware-1012-v112-update-2346161
legendary
Activity: 3416
Merit: 1865
Curmudgeonly hardware guy
Changing your 12V won't do anything, until you get your 12V rail below the output voltage of the main regulator. At that point it'll either start to freak out, shut down, or best case hit 100% duty cycle and push your rail straight through. But it's very likely you don't have a power supply both that adjustable and that powerful.

The circuit looks more like what's on an S9, which I haven't spent enough time around to know how to mess with. By merit of they're still effing expensive. If I had a chip-dead donor board with a good regulator I could at least try to play with it, but I'd also have to have time. In addition to manufacturing and my own miner R&D and other projects I just got volunteered to help a friend build a custom 3D printer for his lab work, so free hours are scarce.

It's likely possible to hack the PIC and make the thing volt-adjustable like an S7, but the circuit's not the same and the mechanism won't be the same either.
sr. member
Activity: 336
Merit: 258
Whether or not autotune miners can be changed depends on how the controller code would react to failing to set the board-level voltage. Failing to get any response out of the PIC at all.

Honestly I have no idea about the D3. I've never seen one, and I'm certainly not going to buy one just to mess with. I know this S7 hack doesn't work on the S9, as its regulator control system is completely different.

thanks for the answer on the s9. I am aware this topic is for the bitcoin miner, but as it's made by the same brand, you probably can help us a bit forward.
The miner allows for manual settings the frequency of the asics, but I really don;t like the power usage vs hashrate graph. I.e. 500mhz = 1200watt, 250 = 600 watts etc...
I am pretty sure there is quite some room for undervolting.

Here is a clear pic of the circuit power circuit on the hashing board. It differs from the s7 unfortunately.
 I really want to know what that "ADP BDY +" chip is for, as that's probably driving the mosfet switching power supply circuit isn't it?



My goal is to lower the voltage and power usage a bit to get better efficiency.
Not sure if it makes sense, but here are some things I consider to tame the beast a bit:

- Try to mess a bit with the resistors near the "ADP BDY +" chip and see if it affects the output voltage
- capture the serial data to the hashing boards, to see if it makes any sense...
- somehow lower the 12v rail voltage by hacking the power supply. (hopefully the circuit won't compensates for that)

legendary
Activity: 3416
Merit: 1865
Curmudgeonly hardware guy
Whether or not autotune miners can be changed depends on how the controller code would react to failing to set the board-level voltage. Failing to get any response out of the PIC at all.

Honestly I have no idea about the D3. I've never seen one, and I'm certainly not going to buy one just to mess with. I know this S7 hack doesn't work on the S9, as its regulator control system is completely different.
legendary
Activity: 3822
Merit: 2703
Evil beware: We have waffles!
Any chance that this could work on an antminer d3? Or is the code on the microcontroller very specific for each type of asic?
I really would like have the ability to undervolt the d3 boards (without too much underclocking) and see how much it can be undervolted before it gives any errors.
a. While related to BTC via the s7 connection, this really belongs in altcoins - and AFAIK Sidehack could care less about alts.

b. Does that altcoin miner use autotune? Since it uses 16nm node chips I suspect it does. If so - forget it as autotune miners cannot be changed.

c. As far as code being the same, you would need to see what PIC they use. If it is the same as the one in s7 yes you can talk to it but autotune will override what you program in.
sr. member
Activity: 336
Merit: 258
Any chance that this could work on an antminer d3? Or is the code on the microcontroller very specific for each type of asic?
I really would like have the ability to undervolt the d3 boards (without too much underclocking) and see how much it can be undervolted before it gives any errors.
newbie
Activity: 56
Merit: 0

Ugh. I would strongly suspect that the sense line shorted to ground (given the not quite precise soldering) and therefore put 12v or so across the chain, which would be 'only' 0.8v if averaged. But the chips don't level out well at high voltages, so it's likely to have blown a group of ASICs.

Not bad value if that's the only fault on the board.

legendary
Activity: 3822
Merit: 2703
Evil beware: We have waffles!
I do hope you caught https://bitcointalksearch.org/topic/m.18293399 right after Sidehack's reply... Your s7 does not have the regulator talked about in this thread nor the 'Cheap and simple repair of S7 hash board' thread... No big honking power inductor (and 54 chips) = no Vcore regulation.
full member
Activity: 279
Merit: 107
Well for a start, what is the voltage into and out of the big power inductor?

The regulator's voltage is set by a digital potentiometer ... The default value is right in the middle, which is why some "dead" S7 will start to 9.3V ... the value gets updated by a little microcontroller (PIC12F1572), which pushes out a fresh value from memory as soon as it kicks on.

Why are you using a USB scope to look for 1572? It's something you look for with your eyes. It's written on top of the chip. Without a board in front of me I have no idea what the silkscreen label is, but I do know it's the 8-pin SOIC device with PIC12F1572 written on it. Which is all information you had.

But anyways, first thing you need to do is measure the voltage at the place you've been told to measure the voltage (I'm pretty sure there are even clearly labeled pictures in the potentiometer fix thread). If it's not in the range you've been told to look for to see if the PIC is dead, you don't need to worry about all the other information you were given because it's not the fix you need - which is also information you were given.

Sorry if my criticality comes across as dickish. I'm well aware I tend to expect more out of people than they're used to and am frequently disappointed, but I don't intend to change. It either makes people leave me alone or work to be better, which in the long run are both winning outcomes.

I understand your frustration, if you was to ask me about certain isolations, EICR tests, permits, earth loop impedance, remote I/O, Ifix, Calculating motor size/torque/Rpm /Wattage etc i would be the same.....lol

I wish your first answer to ' what is the coil thing' i presumed it was some form of inductor BUT on Youtube some nutter ( i will find it and and post it, i will make you even angrier as i think he is checking the main caps with ONLY a Mulimeter..lol
)  If you has said it was  the inductor i would have been testing this ages ago...

Anyway thanks again for 'putting up with'

'I will be back'....lol
legendary
Activity: 3822
Merit: 2703
Evil beware: We have waffles!
Remember when I mentioned you should do some research on how buck regulators work?

Note also the explanation in the first post. The PIC sends a signal to the digital potentiometer tied to the buck regulator, and that adjusts the voltage. Remember how NotFuzzyWarm told you to measure your voltage at the big inductor?

Note how in this thread there's talk of using a PIC programmer on the 6-pin header. That's because the 6-pin header is ONLY USED TO PROGRAM THE PIC. There is no measuring of voltage going on there. The voltage people are referring to (~9V for a dead PIC, >10V for a working one) are measured at the buck regulator output. That's been stated multiple times in this thread and the potentiometer fix thread.

Also note that the 8-pin SOIC I told you to look at says "1572" on it. That's the PIC12F1572.

So what you do is exactly what's been told to you so far. You fire up the board (make sure it's got 12V power and is plugged to the IO board by the 18-pin cable) and measure the main buck regulator output voltage (at the inductor). If it's around 9.3 volts, your PIC isn't setting the voltage probably because it's dead. Buy a new one, flash it with the firmware given in this thread (aaron6 linked you to it) and then power up the board again, see if the voltage is better.

If you power up the board and it's reading over 10 volts, this is not the fix you need.

I have red up on buck regulators, ant that the PIC is just a digital pot, and people are just replacing it with a standard screw pot.

What i don't know is where the 'BIG Inductor' is even after reading his thread ?

When i have replaced pics in the past i have always programed them via my PIC Programmer, just plug it into the correct slot/position on programming board and 'flash it' with the  FW aaro6 linked me.

I tried to find a pic with '1572, but not ecen my usb scope could pick it up, why not just state it is labelled U3 on pcb, and the 6 in header linked to the pic is P1 and the GND P2 ?

I am still reading the threads and looking on how to 'measure the main buck regulator output voltage (at the inductor)' Huh

Why does a blank i need to flashed via the 6 pin header?  Never seen tha done beore always used a PIC prgrammer board and relevent program....
Cheers
I think you have one of the very early batch number s7's... They have no Vcore regulator, the ASICs are directly fed from the PSU.

I think we kit a key point about the s7's - and s9's: What batch number is it? With the s7 batches 1-5 with 54 chips per board have NO Vcore voltage control. ergo no DPOT, no regulator chip, no inductor, etc. and I think no PIC. Only the later batches with 45 chips have the Vcore regulator goodies...


All the chips are in 1 big series string with Vcore set by how many chips in the string divided into the PSU supply voltage. As with any string topology, any break in the string from a bad chip or bypass cap and the whole board dies.

A decent read on buck regulators, https://en.wikipedia.org/wiki/Buck_converter
legendary
Activity: 3416
Merit: 1865
Curmudgeonly hardware guy
Well for a start, what is the voltage into and out of the big power inductor?

The regulator's voltage is set by a digital potentiometer ... The default value is right in the middle, which is why some "dead" S7 will start to 9.3V ... the value gets updated by a little microcontroller (PIC12F1572), which pushes out a fresh value from memory as soon as it kicks on.

Why are you using a USB scope to look for 1572? It's something you look for with your eyes. It's written on top of the chip. Without a board in front of me I have no idea what the silkscreen label is, but I do know it's the 8-pin SOIC device with PIC12F1572 written on it. Which is all information you had.

But anyways, first thing you need to do is measure the voltage at the place you've been told to measure the voltage (I'm pretty sure there are even clearly labeled pictures in the potentiometer fix thread). If it's not in the range you've been told to look for to see if the PIC is dead, you don't need to worry about all the other information you were given because it's not the fix you need - which is also information you were given.

Sorry if my criticality comes across as dickish. I'm well aware I tend to expect more out of people than they're used to and am frequently disappointed, but I don't intend to change. It either makes people leave me alone or work to be better, which in the long run are both winning outcomes.
full member
Activity: 279
Merit: 107
Remember when I mentioned you should do some research on how buck regulators work?

Note also the explanation in the first post. The PIC sends a signal to the digital potentiometer tied to the buck regulator, and that adjusts the voltage. Remember how NotFuzzyWarm told you to measure your voltage at the big inductor?

Note how in this thread there's talk of using a PIC programmer on the 6-pin header. That's because the 6-pin header is ONLY USED TO PROGRAM THE PIC. There is no measuring of voltage going on there. The voltage people are referring to (~9V for a dead PIC, >10V for a working one) are measured at the buck regulator output. That's been stated multiple times in this thread and the potentiometer fix thread.

Also note that the 8-pin SOIC I told you to look at says "1572" on it. That's the PIC12F1572.

So what you do is exactly what's been told to you so far. You fire up the board (make sure it's got 12V power and is plugged to the IO board by the 18-pin cable) and measure the main buck regulator output voltage (at the inductor). If it's around 9.3 volts, your PIC isn't setting the voltage probably because it's dead. Buy a new one, flash it with the firmware given in this thread (aaron6 linked you to it) and then power up the board again, see if the voltage is better.

If you power up the board and it's reading over 10 volts, this is not the fix you need.

I have red up on buck regulators, ant that the PIC is just a digital pot, and people are just replacing it with a standard screw pot.

What i don't know is where the 'BIG Inductor' is even after reading his thread ?

When i have replaced pics in the past i have always programed them via my PIC Programmer, just plug it into the correct slot/position on programming board and 'flash it' with the  FW aaro6 linked me.

I tried to find a pic with '1572, but not ecen my usb scope could pick it up, why not just state it is labelled U3 on pcb, and the 6 in header linked to the pic is P1 and the GND P2 ?

I am still reading the threads and looking on how to 'measure the main buck regulator output voltage (at the inductor)' Huh

Why does a blank i need to flashed via the 6 pin header?  Never seen tha done beore always used a PIC prgrammer board and relevent program....

Cheers

legendary
Activity: 3416
Merit: 1865
Curmudgeonly hardware guy
Remember when I mentioned you should do some research on how buck regulators work?

Note also the explanation in the first post. The PIC sends a signal to the digital potentiometer tied to the buck regulator, and that adjusts the voltage. Remember how NotFuzzyWarm told you to measure your voltage at the big inductor?

Note how in this thread there's talk of using a PIC programmer on the 6-pin header. That's because the 6-pin header is ONLY USED TO PROGRAM THE PIC. There is no measuring of voltage going on there. The voltage people are referring to (~9V for a dead PIC, >10V for a working one) are measured at the buck regulator output. That's been stated multiple times in this thread and the potentiometer fix thread.

Also note that the 8-pin SOIC I told you to look at says "1572" on it. That's the PIC12F1572.

So what you do is exactly what's been told to you so far. You fire up the board (make sure it's got 12V power and is plugged to the IO board by the 18-pin cable) and measure the main buck regulator output voltage (at the inductor). If it's around 9.3 volts, your PIC isn't setting the voltage probably because it's dead. Buy a new one, flash it with the firmware given in this thread (aaron6 linked you to it) and then power up the board again, see if the voltage is better.

If you power up the board and it's reading over 10 volts, this is not the fix you need.
full member
Activity: 279
Merit: 107
You know, the first few paragraphs of the first post in this thread told you the PIC part number, as well as what the PIC does in the circuit and what to look for to diagnose a dead one. Except for explicitly stating what ISP programmer to use, it answered basically all of your questions from the last few days.

I have read that post and have noted the 2 pin header is ground and the 6 pin is connected to the pic, but what i can not find is which pin on the 6 in header i need to measure voltage on or do i do it between the 8pin pic and GND and or between one of the 6 pin headers and ground.

http://ww1.microchip.com/downloads/en/DeviceDoc/40001723D.pdf

You mention it is a PIC12F1572, I have googled the hell out of , trying to learn,'ve evn had a USN scope on the pic i presume it is, but i can get no info off it.

From what i think i correct the 2 header GND are labelled P2, the 6 pin header that connects to an 8 pin PICip12F1572 is labeled P1.

I'm sill learning but if his is the chip it looks VERY simple to replace....BUT i can not find any info at what points between GND and/or the the PIC or 6 pin header

http://imgur.com/a/TMHhK

I am SORRY if i am frustrating people BUT i am still learning as a newbie, i hope you can take this into consideration, even the mention of the PIC12F1572 had me googing the board fo it, searching forum for hours and even using a USB scope to see if i could find it lablelled 'PIC12F1572'

Do i simply need to measure between VSS and VDD or VSS and GND pin.


Cheers
legendary
Activity: 3416
Merit: 1865
Curmudgeonly hardware guy
You know, the first few paragraphs of the first post in this thread told you the PIC part number, as well as what the PIC does in the circuit and what to look for to diagnose a dead one. Except for explicitly stating what ISP programmer to use, it answered basically all of your questions from the last few days.
full member
Activity: 279
Merit: 107
Cheers mate that was EXACTLY what i was looking for, can't find my pic programmer yet, pretty sure i only used to program chips for the rapid fire/extra 2 buttons on the Xbox...lol
legendary
Activity: 1736
Merit: 1006
t
Well for a start, what is the voltage into and out of the big power inductor? One side should be fed from the PCIe plug through MOSFETS and will be a chopped 12v, the output side needs to 10v or more depending what the PIC is setup for. (Sidehack confirm?) Somewhere in this thread the output is mentioned.

Anyhow, if the low side of the inductor is less than that, probably dead PIC and the regulator/depot is working off of preset defaults. If the voltage is zero the I'd guess the FET's failed open but typically they fail as a short.

I suppose if you have a PICkit programmer you can follow the heart of this thread and try to readout what the PIC has stored in it. After saving that (possibly corrupt) file might as well see if the PIC can accept a reprogram for lower voltage better eff...

I have tried x5 psu's bit get the same situation/problem....I do not Know if i need a PIC programmer, as i do not know id]s my pic is withing ing the the correct parameters (Voltage).

I do have various pic programmers from over the years for old |NTL/Virgin pics, plus xbox  etc....

I just need to the pic first, do my faults (AS ABOVE), relate to a dodgy chip ?

Can anyone confirm this, i've read and read/saved 70 odd replies, ans still do not know which pic it is it is ' i have a Willem/Nexus programmers..lol and i have a Pic Programmer somewhere, not sure where it is but remember putting in the 6 pin chips...MUST off been to to with 'Ful package TV' YEARS ago 15 years ago at least...

Thanks guys, i will keep searching..

the PIC is a 12F1572.. its powered by 3.3v

i used a pickit3.
the program i used is MPLAB IDE 3.5

the hex files are in this thread..

id start by flashing the default ones.. think its 720mV or something.. altho i run my s7s at 670mV with speed 600. it puts them at 4000GH/s and about 980 watts at the wall.

here is the how-to and the download link for the hex files
https://bitcointalksearch.org/topic/m.15298837

here is where you get the software
http://www.microchip.com/mplab/mplab-x-ide

Pages:
Jump to: