So ive had my s7s for quite awhile now.. hacking them i ran into a some issues..
so far i have my boards at 660mv and im running the s7s at 525m
this puts me at 3500ghs right at 900 watts.. for .257j/ghs
one of the issues i have is at random times one of the boards drop out.. it goes to 30c and the hash rate drops down to 0 on that board.. a simple restart of cgminer fixes this.
this seems to happen worse if the board is cold.. i get about the best performance from the boards if they are kept above 60c.
this is where the other issue i am having starts.. the auto fan sucks.. its set to like 80-100 pwm and not much lower..
on my s7s i used the fans from my s5s that i have laying around as the intake fan and a delta afb1212she as exhaust.
https://www.amazon.com/Delta-Electronics-AFB1212SHE-120x120x38mm-connector/dp/B004Y1HLA8this keeps the s7 nice and cool.. but since we are getting into winter, the problem i had was during the day i have to set to 60% fan and at night i have to set to 40% fan.
so i made a script.. if anyone wants it here it is..
what this script does is 3 things..
one it reboots the cgminer every 6 hours.. i mine on zpool and for some reason if you went longer then that your speed would start to drop down and it affected payouts.
two it checks the hash rate, and reboots cgminer if it drops below a set amount.
three, it checks the temps, and sets the fan to stay within the set temp range..
it also has a 70c cutoff, that sets the fans to 100% if any board hits 70c.
all these values can be adjusted.. you may have to tweak the temp one to keep the fan from being slowed down and sped up over and over..
installing this script is easy.. just save this text as hashcheck.sh and upload it to the /config folder in the s7 with winscp. then make it executable by clicking properties and checking the X box.
you then ssh into the s7 and run the script /config/hashchecksh.sh &
dont forget the & this allows you to close putty and have the script stay running..
this will also make a hashcheck.txt file in the config you can read to see whats going on.
in order for this to work, before running it, you have to have the box checked for manual fan speed.. then save and restart and run this script.
also every time you turn off and on the s7 it will need to be ran again.
tell me if you guys have any issues.. or think of ways to make it better.
#!/bin/sh
restart=21600 # 6 hours in seconds
echo $(date) "| hashcheck monitor started. reboot every $restart seconds or if lower then $minhash " > /config/hashcheck.txt
echo $(date) "| tempcheck monitor started." >> /config/hashcheck.txt
restartcount=0
######adjust here
minhash=280000 #min hash rate 2800.00 ghs without the decimal.
minfan=30 #min fan speed
maxfan=100 #max fan speed
mintemp=59 #min avg temp
maxtemp=64 #max avg temp
pwm=80 #starting pwm speed
#######
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
sed -i "/bitmain-fan-pwm/c\"bitmain-fan-pwm\" : \"$pwm\"," /config/cgminer.conf && \
/etc/init.d/cgminer.sh start > /dev/null
sleep 60
while true
do
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-)
E=$(cgminer-api summary | grep 'Elapsed]' | cut -c 17-)
S=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16- | tr -d '.')
HASH=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
if [ $T1 -gt "70" ] || [ $T2 -gt "70" ] || [ $T3 -gt "70" ] && [ $pwm -lt "100" ]; then
pwm=100
restartcount=$((restartcount+1))
restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
restarttime=$(date)
elapsedtime=$E
echo $(date) "| failed too hot: setting fan to 100 % $restarthash GH/s $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
sed -i "/bitmain-fan-pwm/c\"bitmain-fan-pwm\" : \"$pwm\"," /config/cgminer.conf && \
/etc/init.d/cgminer.sh start > /dev/null
echo $(date) "| miner restarted $restartcount times: $restarthash GH/s $T1 $T2 $T3 DEG $T AVG , at $restarttime for $elapsedtime seconds" >> /config/hashcheck.txt
sleep 60
continue
fi
if [ $E -gt $restart ]; then
restartcount=$((restartcount+1))
restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
restarttime=$(date)
elapsedtime=$E
echo $(date) "| miner scheduled restart $restartcount times: $restarthash GH/s $T1 $T2 $T3 DEG $T AVG , at $restarttime for $elapsedtime seconds" >> /config/hashcheck.txt
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
/etc/init.d/cgminer.sh start > /dev/null
sleep 60
continue
fi
if [ $S -lt $minhash ] && [ $E -gt "120" ]; then
echo $(date) "| rechecking in 120s low hash : $HASH $T1 $T2 $T3 DEG" >> /config/hashcheck.txt
sleep 120
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-)
if [ $S -lt $minhash ]; then
restartcount=$((restartcount+1))
restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
restarttime=$(date)
elapsedtime=$E
echo $(date) "| failed low hash : $restarthash GH/s $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
/etc/init.d/cgminer.sh start > /dev/null
echo $(date) "| miner restarted $restartcount times: $restarthash GH/s $T1 $T2 $T3 DEG $T AVG , at $restarttime for $elapsedtime seconds" >> /config/hashcheck.txt
sleep 60
continue
else
echo $(date) "| recovered: $HASH MH/s $E seconds $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
fi
fi
if [ $T -lt $mintemp ] && [ $pwm -gt $minfan ] && [ $E -gt "120" ]; then
echo $(date) "| rechecking in 120s low temp : $HASH GH/s $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
sleep 120
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-)
if [ $S -lt $minhash ]; then
restartcount=$((restartcount+1))
restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
restarttime=$(date)
elapsedtime=$E
echo $(date) "| failed low hash : $restarthash GH/s $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
/etc/init.d/cgminer.sh start > /dev/null
echo $(date) "| miner restarted $restartcount times: $restarthash GH/s $T1 $T2 $T3 DEG $T AVG , at $restarttime for $elapsedtime seconds" >> /config/hashcheck.txt
sleep 60
continue
else
if [ $T -lt $mintemp ] && [ $pwm -gt $minfan ]; then
pwm=$((pwm-5))
restartcount=$((restartcount+1))
restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
restarttime=$(date)
elapsedtime=$E
echo $(date) "| failed too cold: setting fan to $pwm % $restarthash GH/s $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
sed -i "/bitmain-fan-pwm/c\"bitmain-fan-pwm\" : \"$pwm\"," /config/cgminer.conf && \
/etc/init.d/cgminer.sh start > /dev/null
echo $(date) "| miner restarted $restartcount times: $restarthash GH/s $T1 $T2 $T3 DEG $T AVG , at $restarttime for $elapsedtime seconds" >> /config/hashcheck.txt
sleep 60
continue
else
echo $(date) "| recovered: $HASH GH/s $E seconds $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
fi
fi
fi
if [ $T -gt $maxtemp ] && [ $pwm -lt $maxfan ] && [ $E -gt "120" ]; then
pwm=$((pwm+5))
restartcount=$((restartcount+1))
restarthash=$(cgminer-api | grep 'GHS 5s] => ' | cut -c 16-)
restarttime=$(date)
elapsedtime=$E
echo $(date) "| failed too hot: setting fan to $pwm % $restarthash GH/s $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
/etc/init.d/cgminer.sh stop > /dev/null
sleep 5
sed -i "/bitmain-fan-pwm/c\"bitmain-fan-pwm\" : \"$pwm\"," /config/cgminer.conf && \
/etc/init.d/cgminer.sh start > /dev/null
echo $(date) "| miner restarted $restartcount times: $restarthash GH/s $T1 $T2 $T3 DEG $T AVG , at $restarttime for $elapsedtime seconds" >> /config/hashcheck.txt
sleep 60
continue
else
echo $(date) "| normal operation: fan at $pwm % $HASH GH/s $E seconds $T1 $T2 $T3 DEG $T AVG" >> /config/hashcheck.txt
fi
sleep 60
done