Author

Topic: [TUTORIAL] How to overclock your KNC November Saturn with 0.99.2-E firmware (Read 1304 times)

full member
Activity: 194
Merit: 100
anyone try to overclock a Oct. Saturn?
hero member
Activity: 491
Merit: 514
Just applied this to a Nov Jupiter and initially only 1 core was disabled and it appeared to be running fine at 730Gh/s but after about 5 minutes temps broke 65C and I got FAULT 4 errors on a few VRM's. I have it running in a 72F cooled server room so I'll probably have to take the lid off and point a fan at it like my OC'ed October Jupiter to get it stable. Thanks for the info...
full member
Activity: 129
Merit: 100
I wanted to post this because it took me a bit of time to get this actually working and adapt it from the information in the other overclocking threads.

I took my November Saturn from 333 GHZ stock to 360GHZ. Temperature increase was about 8 C.

Step 1 - Check your Miner temperature on their web status page. Do not proceed if it is already 65+C. Also, I've only tested this with my 8VRM Nov saturn. Make sure you actually have a 8VRM Nov Saturn before proceeding.

Step 2 - Use putty or another SSH terminal and ssh into your Miner

Step 3 - type "cd /etc/init.d"

Step 4 - type "cp cgminer.sh cgminer.bak"

Step 5 - type "cat > cgminer.sh" and paste in the following:

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

use_bfgminer=
if [ -f /config/miner.conf ]; then
        . /config/miner.conf  #if bfgminer is enabled, this file contains: use_bfgminer="true"
fi
if [ "$use_bfgminer" = true ] ; then
        DAEMON=/usr/bin/bfgminer
        NAME=bfgminer
        DESC="BFGMiner daemon"
        EXTRA_OPT="-S knc:auto"
else
        DAEMON=/usr/bin/cgminer
        NAME=cgminer
        DESC="Cgminer daemon"
        EXTRA_OPT=
fi


set -e

test -x "$DAEMON" || exit 0

do_start() {
        # Stop SPI poller
        spi_ena=0
        i2cset -y 2 0x71 2 $spi_ena

        good_ports=""
        bad_ports=""

        # CLear faults in megadlynx's
        for b in 3 4 5 6 7 8 ; do
                for d in 0 1 2 3 4 5 6 7 ; do
                        i2cset -y $b 0x1$d 3 >/dev/null 2>&1 || true
                done
        done

        for p in 0 1 2 3 4 5 ; do
                i2cset -y 2 0x71 1 $((p+1))
                good_flag=0
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,3,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,2,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,1,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi
                ar="$(spi-test -s 50000 -OHC -D /dev/spidev1.0 0x80,0,0,0,0,0,0,0 | tail -c 13)"
                if [ "x$ar" = "x00 30 A0 01" ] ; then
                        good_flag=1
                fi

                if [ "$good_flag" = "1" ] ; then
                        good_ports=$good_ports" $p"
                else
                        bad_ports=$bad_ports" $p"
                fi
        done




        if [ -n "$good_ports" ] ; then
                for p in $good_ports ; do
                        # Re-enable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x86,0x%02X,0x02,0x65" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                                cmd=$(printf "0x85,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done


                        # re-enable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 1
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena | (1 << $p) ))
                done
        fi
        if [ -n "$bad_ports" ] ; then
                for p in $bad_ports ; do
                        # Disable PLL
                        i2cset -y 2 0x71 1 $((p+1))
                        for c in 0 1 2 3 ; do
                                cmd=$(printf "0x84,0x%02X,0,0" $c)
                                spi-test -s 50000 -OHC -D /dev/spidev1.0 $cmd >/dev/null
                        done

                        # disable all cores
                        i=0
                        while [[ $i -lt 192 ]] ; do
                                i2cset -y 2 0x2$p $i 0
                                i=$((i+1))
                        done
                        spi_ena=$(( spi_ena & ~(1 << $p) ))
                done
        fi

        # Disable direct SPI
        i2cset -y 2 0x71 1 0

        # Enable SPI poller
        i2cset -y 2 0x71 2 $spi_ena

        start-stop-daemon -b -S -x screen -- -S cgminer -t cgminer -m -d "$DAEMON" --api-listen -c /config/cgminer.conf $EXTRA_OPT
}

do_stop() {
        killall -9 bfgminer cgminer 2>/dev/null || true
}
case "$1" in
  start)
        echo -n "Starting $DESC: "
        do_start
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        do_stop
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        do_stop
        do_start
        echo "$NAME."
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0


Step 6 - press CTRL-D

Step 7 - type "./cgminer.sh restart"

Step 8 - You are done! Check the miner status page

You should get around 360GH now. Congrats on the 10% improvement in performance.

If something goes wrong, run "cp cgminer.bak cgminer.sh" and then "./cgminer.sh restart" and you will be back to your original configuration.



-Mike


Jump to: