AMD RX 580 Ethereum Mining Memory Strap Overclock Setup

This guide will walk you through setting up the AMD RX 580 for mining ethereum on nanopool and dual mining Decred on suprnova.  This is info I pieced together from across the internet and put together for some friends.  I figured I might as well share it with the world. If you find this guide helpful I would gladly accept ETH donations: 0x1bb1d103c870a8e719a0fb8cfb31d356a347ffed

The RX580 is a great card for mining ETH, but out of the box it only sees a ~23mh/s hash rate that takes a huge hit when dual mining.  Fortunately with a few tweaks you can easily get it dual mining ETH and DCR at around 30mh/s and 900mh/s respectively.

Before you start you will want to download the tools below.

Download Tools:

Set GPU Workload and Memory Straps

Follow the steps below to update the memory straps in each cards bios and set the workload to compute.

  1. Install the latest AMD graphics card drivers and reboot.  I have seen some guides that suggest specific versions, but I found the latest drivers had the best performance and have been keeping up to date. Reboot as needed.
  2. Open AMD Radeon Settings and go to Gaming > Global Settings and click through each card in the tabs along the top and make sure AMD Cross fire is turned off for each card.  This may take multiple restarts of the tool.
  3. Open AMD Radeon Settings and go to Gaming > Global Settings and click through each card in and set GPU Workload to “Compute”.  This may take multiple restarts of the tool. 
  4. Run ATI Win Flash 2.77 to copy the bios off your cards
    1. Be sure to right click on the executable and run as administrator! If you don’t do this it doesn’t seem to run right until you reboot.
    2. This UI in this tool only supports 3 graphics cards.  If you have more than 3 connected you will want to disconnect any beyond 3 and do this to them 3 at a time.
    3. Select the first card in the list and then click the “Save” button to save a copy of the cards bios off to a file.  Make sure the bios you copy off is the same one you load back on!  Different revisions of the same card may have different bios and could break the card if you load the wrong one on the wrong card.  Label carefully and keep this file in a safe spot.  It is the original bios in case you want to load it back on for resale.
  5. Run Polaris BIOS Editor to adjust the memory timings
    1. Click the “OPEN BIOS” button in the top left and locate the file you saved out above in step 3 to open it
    2. Click the “ONE CLICK TIMING PATCH” button in the bottom right corner to apply the timings
    3. Click the “SAVE AS” button to save the modified bios.  Don’t overwrite your original bios and make sure you label or number it correctly so you know which one to load back on the appropriate card.
  6. Run ATI Win Flash 2.77 (or switch back to it if it is already open)
    1. Click the button in the bottom left that should have the name of your card in it (It might also say load)  
    2. Select the modified bios file that you created in step 5 to load back onto the card
    3. Click the program button to load the bios onto the card.
    4. Reboot as needed (you may be able to program multiple cards without reboot)
  7. Return to step 4 and repeat until all cards are programmed.
  8. Download GPU-Z and find out what memory your card has and make a note (this will be important later, be sure to run as Administrator if you are having trouble).  I found some of my cards had Samsung and others had Hynix.

Now that you have adjusted your memory straps and set the GPU workload to “Compute” your RX 580 should be a beast when mining.  With some undervaluing and some overclocks you should be able to get it working great.  Fortunately Claymore supports adjusting these parameters at the command line on AMD cards!  You can see my command line arguments below.

EthDcrMiner64.exe -epool -ewal YOURWALLETADDRESS -epsw x -eworker etherworkername -dpool -dwal yourusername.workername -dpsw x -allpools 1 -dcri 30 -cclock 1200 -cvddc 900 -mclock 2050,2050,2000,2050 -mvddc 850 -tstop 80 -tt 65 -fanmin 25 -fanmax 100

A breakdown of the arguments above for those curious:

  • -dcri 30
    • This controls the intensity of the dual mining effort (decred in this case).    30 is the default which works great on the samsung memory cards.  If you find your cards are getting too hot or pulling too much power you can lower this to significantly reduce their power consumption.
  • -cclock 1200
    • Sets the GPU processor clock to 1200mhz.  This is lower than the stock clock so it is an under clock.
  • -cvddc 900
    • Sets the voltage for the GPU.  This is lower than the stock voltage so it is an under volt.  This is one of the more important things to lower because it decreases power consumption significantly and keeps the cards running cooler.  Generally the GPU clock must be lowered along with this value or the card will become unstable.
  • -mclock 2050, 2050, 2000, 2050
    • This sets the memory clock to 2050mhz on all but the 3rd card.  2050mhz is an overclock over the stock 2000mhz. I have 4 cards so the 4 different values are given for the different cards.  All of the command line values will accept multiple values like this if you find one card performing differently.  In this case my hynix card became very unstable when overclocking.  Many people online have reported having luck with much higher overclocks and squeezing a bit more performance out, but these worked great for me and were super stable.
  • -mvddc 850
    • This sets the memory voltage to 850mv, a slight under volt.  This helps keep cards running cool and using less power.
  • -tstop 80
    • Maximum temperature (in celcius) that a card is allowed to get to before the miner shuts down.  This is a good thing to set for safety.
  • -tt 65
    • Target temperature (in celsius) that the card will attempt to cool it to.  The fans will speed up until the card maintains this temp.
  • -fanmin 25
    • The fan will always spin at at least this speed while the miner is running (in %)
  • -fanmax 100
    • The maximum speed that the fan will spin at to attempt to reach the target temperature set with -tt

If you find this guide helpful I would gladly accept ETH donations: 0x1bb1d103c870a8e719a0fb8cfb31d356a347ffed

Announcing pyTunesConnect

After years of iPhone development one of my biggest annoyances was getting sales and re-download numbers, having them in a central easy to access place that I could give others access to. Sure there are some iPhone apps that will download the reports and several desktop software packages but you have to remember to run them on a regular basis and give anyone with access the credentials for your master iTunesConnect account. I was learning the Python programming language in one of my classes at CU and was given the task of a final project that automated a complicated or annoying process so I decided it would be the perfect excuse to create a solution and pyTunesConnect was born.

pyTunesConnect is a Python script that will is designed to be run as a cron that will automatically download your daily sales reports so you don’t have to remember to daily with the AppDailySales project pyTunesConnect is bundled with. After downloading the sales report it will insert the data into a mySQL database for easy access. pyTunesConnect also providers a very thin web based view layer to visualize your sales and re-downloads. It uses the Google Chart API to generate interactive java charts that allow you to mouse over data points and see exact sales numbers for a day. pyTunesConnect also shows an intensity map of the world that give you a quick overview of where in the world people are downloading your applications. Raw revenue data is also presented by country in an interactive java table that allows you to sort it by clicking on the column headers. If you don’t want to use my front end I also built a web service into pyTunesConnect so you can easily embed the charts in your existing web pages.

There are still a lot of cooler things it could do but I only had so much time this semester so I decided to make it my first open source project and see how it goes. If you would like to contribute and help make it better please let me know.

If you would like to use pyTunesConnect you can find the latest version on the Google Code page I created for it.

Some screenshots:

Interactive charts for new downloads and re-installs.
Intensity maps showing where your application is being downloaded
An interactive table showing you revenue data breakdowns by day and currency.
Main menu gives you quick access to all your applications sales data.

Boulder Fires

I took some pictures of the fires in Boulder, Colorado tonight.  The sky is still full of ash and smoke but we can’t see any more fires.

From the lookout over boulder
From the lookout over boulder

it begins

I finally got around to getting a blog up and running.  I might post some stuff too…. if you are lucky.