Bitcoin Forum
June 19, 2024, 05:48:51 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 »
  Print  
Author Topic: Efudd Z-Series Fuddware 2.3 -Z11/Z11e/Z11j/Z9/Mini  (Read 45460 times)
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 02:07:23 AM
 #741

Jason,
I have a question about 2.2 and chip / board temperatures. Did something crazy here: I took 2.2 firm for a big guy and put it on the z9 mini with 4 hash boards (it will be immersed in a little while) - the sucker is kicking ass at 681 it is stable and I get 22-24 K the only thing is it shows stupid temperatures like 7C or 1C   - not a big deal cause it will be immersed after all but was wondering if I can adjust something so it shows correct ones....


Thank You

Yeah, the memory offsets for reading sensors is different between the units. To be honest, I don’t plan on doing that... but I am hoping to bring all the releases in-line at some point.

My mini variant is really languishing vs what folk are doing with the minis now.

-j

Wolfy10
Newbie
*
Offline Offline

Activity: 29
Merit: 0


View Profile
May 18, 2019, 04:13:24 AM
 #742

Luxor's Announcement regarding the partnership with Efudd!  Shocked

https://medium.com/@LuxorTechTeam/unlock-your-asic-potential-with-efudd-x-luxor-672e73a1d185
Draeth85
Jr. Member
*
Offline Offline

Activity: 34
Merit: 8


View Profile WWW
May 18, 2019, 04:15:29 AM
 #743

Quick Question. So from what I gathered, I need to do the following:

1. Load the Z11StockSSHNoSignature.zip onto an sd card, turn off the miner, load the SD card in, and boot the miner up
2. Via the web interface, flash the EFUDD Z11_2.3.tar.gz firmwawre
3. Changes settings to whatever you want


Is this correct?

Yessir, that sounds about right: Off->AddSD->ON and WAIT for Lights to go out->Off->RemoveSD->ON->Load whatever you want via web.

Here are the instructions for loading from SD card:

1) Format SD card 32GB or less as FAT32
2) Extract zip file contents to root of SD card
3) Power off miner.
4) Insert SD card, power on miner.
5) WAIT (30-60 seconds) for lights to go off to the right of the ethernet port.
6) Unplug miner, remove SD card.
7) Plug miner back in.

You can use a larger card in step#1 -- you just have to create a partition 32GB or less (max of FAT32) for what it is worth.

Thank you,

Jason

Awesome, works perfectly! Thanks!!
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 05:01:32 AM
Last edit: May 18, 2019, 03:30:38 PM by efudd
 #744


Folk,

The Luxor team and I are proud to announce a partnership to bring the best of Fuddware for Z11, Z9, and Z9Mini (v2.3 for mini will be posted soon) with Luxor for equihash ASICs. Luxor supports the top equihash coins, ZEC, ZEN, and ARRR (Piratecoin) and is one of the top 10 equihash pools by volume!

When using Fuddware version 2.3 or higher, there will be no dev-fees in conjunction with Luxor. This will turn your release into a paid release when mining on Luxor!

Additionally, Luxor is providing users of Fuddware a 0.5% PPS fee for the next 30 days!

Savings: 3.4% Dev-fee + 0.5% PPS fee + whatever you are paying at your current pool... depending on your pool, it's like getting a free overclock of 5% or more on top of what Fuddware already provides you.

Details are available at https://medium.com/@LuxorTechTeam/unlock-your-asic-potential-with-efudd-x-luxor-672e73a1d185

If you have any questions, please feel free to post them here or on the Luxor or Equihash (in my signature) discord.

Thank you!

Jason (and Luxor Team)

nordmann666
Member
**
Offline Offline

Activity: 361
Merit: 16


View Profile
May 18, 2019, 11:53:59 AM
 #745

so for tuning:

if i set mv to low and/or mhz to high the board will only hash with 15-20k?!

it´s very difficulty to find good mv/mhz cause one board get instant 50k and both other boards are between 30-45ksol with more or less HW errors
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 12:39:35 PM
 #746

so for tuning:

if i set mv to low and/or mhz to high the board will only hash with 15-20k?!

it´s very difficulty to find good mv/mhz cause one board get instant 50k and both other boards are between 30-45ksol with more or less HW errors



Yes... first, ignore the HW errors for now. Start with something simple like 761(or 3... whatever is in the pull down) and the factory voltage (870), and go up or down from there.

Focusing on the average is more important that the real-time. Per board realtimes are going to vary and a swing there between 30 and 70 (in some extremes) would not be unusual.

I would love to have a good tuning guide written for this, and ultimately automate it.. but as you have observed it can be fiddly.

My real hope is that users will share what works for them so others can use the knowledge.

Catch me on discord and we can set up a time and I will help you tune.

-j

efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 03:31:08 PM
 #747

Z9 Mini image has been updated to 2.3 to support Luxor/no dev fees as well as adding malware protection.

Thank you,

Jason

dension
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 18, 2019, 03:55:25 PM
 #748

Hi Efudd!

What about NH support for Z9 mini?

I wrote to you about 4 days ago, but I did not get answer from you.

So I decided to ask my question here.

It seems to me that you have forgotten a bit about your old subscriber (prepaid)  Z9 mini customers.

I waiting for your answer and NH supported Z9 mini Fuddware.

Bestregards,
Laszlo

nordmann666
Member
**
Offline Offline

Activity: 361
Merit: 16


View Profile
May 18, 2019, 04:07:22 PM
 #749

so for tuning:

if i set mv to low and/or mhz to high the board will only hash with 15-20k?!

it´s very difficulty to find good mv/mhz cause one board get instant 50k and both other boards are between 30-45ksol with more or less HW errors



Yes... first, ignore the HW errors for now. Start with something simple like 761(or 3... whatever is in the pull down) and the factory voltage (870), and go up or down from there.

Focusing on the average is more important that the real-time. Per board realtimes are going to vary and a swing there between 30 and 70 (in some extremes) would not be unusual.

I would love to have a good tuning guide written for this, and ultimately automate it.. but as you have observed it can be fiddly.

My real hope is that users will share what works for them so others can use the knowledge.

Catch me on discord and we can set up a time and I will help you tune.

-j

set it to 750mhz (auto tuning was 712) and after one hour...also "only" 140k like with original FW

will wait some more hours
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 04:17:43 PM
 #750

so for tuning:

if i set mv to low and/or mhz to high the board will only hash with 15-20k?!

it´s very difficulty to find good mv/mhz cause one board get instant 50k and both other boards are between 30-45ksol with more or less HW errors



Yes... first, ignore the HW errors for now. Start with something simple like 761(or 3... whatever is in the pull down) and the factory voltage (870), and go up or down from there.

Focusing on the average is more important that the real-time. Per board realtimes are going to vary and a swing there between 30 and 70 (in some extremes) would not be unusual.

I would love to have a good tuning guide written for this, and ultimately automate it.. but as you have observed it can be fiddly.

My real hope is that users will share what works for them so others can use the knowledge.

Catch me on discord and we can set up a time and I will help you tune.

-j

set it to 750mhz (auto tuning was 712) and after one hour...also "only" 140k like with original FW

will wait some more hours

Go bolder then.. and tune back if you need. 793/960... see what frequencies will hold with yours around 940... it is an iterative process.

10 minutes should be more than enough to get an idea of how it’s going to settle. Offer still stands for me to help  you tune via teamviewer or whatever. My first available time would be late this evening eastern.

-j

efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 04:21:03 PM
 #751

Hi Efudd!

What about NH support for Z9 mini?

I wrote to you about 4 days ago, but I did not get answer from you.

So I decided to ask my question here.

It seems to me that you have forgotten a bit about your old subscriber (prepaid)  Z9 mini customers.

I waiting for your answer and NH supported Z9 mini Fuddware.

Bestregards,
Laszlo



Hi. Not forgotten and if you sent me a PM, I simply missed it. Mini actually got updated this morning to 2.3.. however NH support is not in place yet.

I have never promised NH support, just that I would try. So if you believe that you bought a license with the expectation of getting NH support, we can work out a solution.

-j


dension
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 18, 2019, 04:58:51 PM
 #752

Hi Efudd!

What about NH support for Z9 mini?

I wrote to you about 4 days ago, but I did not get answer from you.

So I decided to ask my question here.

It seems to me that you have forgotten a bit about your old subscriber (prepaid)  Z9 mini customers.

I waiting for your answer and NH supported Z9 mini Fuddware.

Bestregards,
Laszlo



Hi. Not forgotten and if you sent me a PM, I simply missed it. Mini actually got updated this morning to 2.3.. however NH support is not in place yet.

I have never promised NH support, just that I would try. So if you believe that you bought a license with the expectation of getting NH support, we can work out a solution.

-j



Hi,

Correctly I didn't buy a license, instead I bought a license for 4 machines.

NH support was your preferred thing. Anybody can look back on this forum, similar to the individual frequency adjustment per board (It is realized), voltage regulation (It is not realized), automatic tuning (It is not realized), automatic fan control (I can not able to decide is it realized or not), etc.

But let's leave this now. Don't get lost in the details. I'm more interested in what you wrote at the end: "We can work out a solution." What exactly do you mean? Can you explain what solution do you think?

Bestregards,
Laszlo
dension
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 18, 2019, 05:07:29 PM
 #753

Hi,

I apologize.

For a long time I wanted to try some machines on NH.

When I noticed the new update I installed it on one machine.

But when I read with my son what this update meant, we were a little disappointed.

What you have done so far is worth all the cents what I have paid.

Bestregards,
Laszlo
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 18, 2019, 05:07:45 PM
 #754

Hi Efudd!

What about NH support for Z9 mini?

I wrote to you about 4 days ago, but I did not get answer from you.

So I decided to ask my question here.

It seems to me that you have forgotten a bit about your old subscriber (prepaid)  Z9 mini customers.

I waiting for your answer and NH supported Z9 mini Fuddware.

Bestregards,
Laszlo



Hi. Not forgotten and if you sent me a PM, I simply missed it. Mini actually got updated this morning to 2.3.. however NH support is not in place yet.

I have never promised NH support, just that I would try. So if you believe that you bought a license with the expectation of getting NH support, we can work out a solution.

-j



Hi,

Correctly I didn't buy a license, instead I bought a license for 4 machines.

NH support was your preferred thing. Anybody can look back on this forum, similar to the individual frequency adjustment per board (It is realized), voltage regulation (It is not realized), automatic tuning (It is not realized), automatic fan control (I can not able to decide is it realized or not), etc.

But let's leave this now. Don't get lost in the details. I'm more interested in what you wrote at the end: "We can work out a solution." What exactly do you mean? Can you explain what solution do you think?

Bestregards,
Laszlo

By solution, I mean you can have a refund if you really bought based on FUTURE features instead of current functionality because I made it very clear for folk not to do that.
Voltage exists on z11.
Voltage not yet possible on other platforms.

PM me your license ID and a ZEC address for a refund.

-J

dension
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
May 20, 2019, 12:55:46 PM
 #755

Hi Efudd!

What about NH support for Z9 mini?

I wrote to you about 4 days ago, but I did not get answer from you.

So I decided to ask my question here.

It seems to me that you have forgotten a bit about your old subscriber (prepaid)  Z9 mini customers.

I waiting for your answer and NH supported Z9 mini Fuddware.

Bestregards,
Laszlo



Hi. Not forgotten and if you sent me a PM, I simply missed it. Mini actually got updated this morning to 2.3.. however NH support is not in place yet.

I have never promised NH support, just that I would try. So if you believe that you bought a license with the expectation of getting NH support, we can work out a solution.

-j



Hi,

Correctly I didn't buy a license, instead I bought a license for 4 machines.

NH support was your preferred thing. Anybody can look back on this forum, similar to the individual frequency adjustment per board (It is realized), voltage regulation (It is not realized), automatic tuning (It is not realized), automatic fan control (I can not able to decide is it realized or not), etc.

But let's leave this now. Don't get lost in the details. I'm more interested in what you wrote at the end: "We can work out a solution." What exactly do you mean? Can you explain what solution do you think?

Bestregards,
Laszlo

By solution, I mean you can have a refund if you really bought based on FUTURE features instead of current functionality because I made it very clear for folk not to do that.
Voltage exists on z11.
Voltage not yet possible on other platforms.

PM me your license ID and a ZEC address for a refund.

-J

Hi,

Thanks but no.

As I wrote earlier, I appreciate your work done so far.

I wouldn't ask for refund it wouldn't decent because I've been using your software for several months.

I am rather waiting to you get time to develop NH in the Z9 mini firmware.

In the meantime, I switched to the Luxor miner's pool, supporting  your work done so far with this.

Best regards:
Laszlo
cokewithanr
Newbie
*
Offline Offline

Activity: 18
Merit: 1


View Profile
May 20, 2019, 03:36:10 PM
 #756

Jason,

Have not had a chance to check yet, but does the new version for the mini have support for the fourth board and will it support voltage control Wink (Please disregard the PM I sent I think I figured that out) If not I can do the mod and check the z11 firmware on the mini. The z9 big will not arrive until tomorrow for me to see what needs to be done on it if anything.

Thanks,
Keith
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 21, 2019, 02:24:21 AM
 #757

Jason,

Have not had a chance to check yet, but does the new version for the mini have support for the fourth board and will it support voltage control Wink (Please disregard the PM I sent I think I figured that out) If not I can do the mod and check the z11 firmware on the mini. The z9 big will not arrive until tomorrow for me to see what needs to be done on it if anything.

Thanks,
Keith

Unfortunately I wasn't table to spend time digging into the innards for 4th board + voltage on mini for the release. I know it is lagging behind. :/ I'm 99% confident that the Z11 firmware will not initialize the mini as is, but please do try it! In fact, that's something I should spend some time with myself... Hmmmm!

-j


chipless
Jr. Member
*
Offline Offline

Activity: 559
Merit: 4


View Profile
May 21, 2019, 05:52:14 AM
Last edit: May 21, 2019, 01:43:49 PM by chipless
 #758

Jason,

Have not had a chance to check yet, but does the new version for the mini have support for the fourth board and will it support voltage control Wink (Please disregard the PM I sent I think I figured that out) If not I can do the mod and check the z11 firmware on the mini. The z9 big will not arrive until tomorrow for me to see what needs to be done on it if anything.

Thanks,
Keith


If you have WinSCP you can edit the minerStatus.html in the /www/pages/cgi-bin folder and then you can see the 4th card. The edit is temporary until a reboot then you will have to do it again if I remember correct. The code to paste into the page is below. You will see that is is coded 4 a 4th board.

Code:
<script>

var str_status
var str_pools
var str_summary

var xhr1 = new XMLHttpRequest();
xhr1.open('GET', '/cgi-bin/get_status_api.cgi');
xhr1.send(null);
onload = function()
{

 


}

function FormatNumber(dd) {
var tst = dd.toString();


var ss = tst.split("").reverse().join("").replace(/(\d{3})+?/g,function(s){
    return s+",";
}).replace(/,$/,"").split("").reverse().join("")
return ss;

}

xhr1.onreadystatechange = function(){
    var DONE = 4;
    var OK = 200;
    if(xhr1.readyState === DONE){
        if(xhr1.status === OK){
            console.log(xhr1.responseText);          
            ttest(xhr1.responseText)
        } else{
            console.log("Error: "+ xhr1.status);
        }
    }
}

function FormatSecond(dd) {
var t_dd = parseInt(dd)
var str_t;
var day=0
var hour=0
var minu=0
var sec=0
sec = parseInt(t_dd % 60)
if (dd >= 60) {
minu = parseInt(t_dd / 60)
str_t = sec.toString() + "s"
if (minu >= 60) {
hour = parseInt(minu / 60)
minu = parseInt(minu % 60)
str_t = minu.toString() + "m" + str_t
}
if (hour >= 24 ) {
day = parseInt(hour/24)
hour = parseInt(hour%24)
}
}
if (day !=0 )
{
str_t = day + "d" + hour + "h" + minu + "m" + sec + "s"
}
else if(hour != 0)
{
str_t = hour + "h" + minu + "m" + sec + "s"
}
else if(minu != 0)
{
str_t = minu + "m" + sec + "s"
}
else
{
str_t = sec + "s"
}
return str_t
}

function FillData( d) {

/////////Fill Summary
    var tableObj = document.getElementById('summary_list');  
       var rowNums = tableObj.rows.length;  
       var newRow = tableObj.insertRow(rowNums);  
       newRow.className="cbi-rowstyle-1 cbi-value-field"
       var col1 = newRow.insertCell(0);  
       col1.innerHTML = FormatSecond(d.Summury.Elapsed);  
       var col2 = newRow.insertCell(1);  
       col2.innerHTML = FormatNumber(d.Summury.RT);  
       var col3 = newRow.insertCell(2);  
       col3.innerHTML = FormatNumber(d.Summury.AVG);  
       var col4 = newRow.insertCell(3);  
       col4.innerHTML = FormatNumber(d.Summury.FoundBlocks);  
       var col5 = newRow.insertCell(4);  
       col5.innerHTML = FormatNumber(d.Summury.LocalWork);  
       var col6 = newRow.insertCell(5);  
       col6.innerHTML = FormatNumber(d.Summury.Utility);  
       var col7 = newRow.insertCell(6);  
       col7.innerHTML = FormatNumber(d.Summury.WU);  
       var col8 = newRow.insertCell(7);  
       col8.innerHTML = FormatNumber(d.Summury.BestShare);  
       //col2.align = "center";  


///////Fill Pool

  var tableObj1 = document.getElementById('ant_pools');  
      

var pool = d.Pools.Data.length

for ( i = 0; i < pool; ++i ) {

var rowNums = tableObj1.rows.length;  
var newRow = tableObj1.insertRow(rowNums);
newRow.className="cbi-rowstyle-1 cbi-value-field"
var col1 = newRow.insertCell(0);  
     col1.innerHTML = d.Pools.Data[i].Index;  
     var col2 = newRow.insertCell(1);  
     col2.innerHTML = d.Pools.Data[i].URL;  
     var col3 = newRow.insertCell(2);  
     col3.innerHTML = d.Pools.Data[i].User;  
     var col4 = newRow.insertCell(3);  
     col4.innerHTML = d.Pools.Data[i].Status;  
     var col5 = newRow.insertCell(4);  
     col5.innerHTML = d.Pools.Data[i].Diff;  
     var col6 = newRow.insertCell(5);  
     col6.innerHTML = FormatNumber(d.Pools.Data[i].GetWorks );
     var col7 = newRow.insertCell(6);  
     col7.innerHTML = d.Pools.Data[i].Priority;  
     var col8 = newRow.insertCell(7);  
     col8.innerHTML = FormatNumber(d.Pools.Data[i].Accepted);
     var col9 = newRow.insertCell(8);  
     col9.innerHTML = FormatNumber(d.Pools.Data[i].Nonce);  
     var col10 = newRow.insertCell(9);  
     col10.innerHTML = FormatNumber(d.Pools.Data[i].DiffA);  
     var col11 = newRow.insertCell(10);  
     col11.innerHTML = FormatNumber(d.Pools.Data[i].DiffR);  
     var col12 = newRow.insertCell(11);  
     col12.innerHTML = FormatNumber(d.Pools.Data[i].DiffS);  
     var col13 = newRow.insertCell(12);  
     col13.innerHTML = FormatNumber(d.Pools.Data[i].Rejected);  
     var col14 = newRow.insertCell(13);  
     col14.innerHTML = FormatNumber(d.Pools.Data[i].Discarded);  
     var col15 = newRow.insertCell(14);  
     col15.innerHTML = FormatNumber(d.Pools.Data[i].Stale);  
     var col16 = newRow.insertCell(15);  
     col16.innerHTML = d.Pools.Data[i].LSTime;
     var col17 = newRow.insertCell(15);  
     col17.innerHTML = FormatNumber(d.Pools.Data[i].LSDiff);
}

//////////---Fill----Total


var rowNums = tableObj1.rows.length;  
     var newRow = tableObj1.insertRow(rowNums);
     newRow.className="cbi-rowstyle-1 cbi-value-field"
var col1 = newRow.insertCell(0);  
     col1.innerHTML = "Total";  
     var col2 = newRow.insertCell(1);  
 
     var col3 = newRow.insertCell(2);  

     var col4 = newRow.insertCell(3);  
 
     var col5 = newRow.insertCell(4);  
   
     var col6 = newRow.insertCell(5);  
     col6.innerHTML = FormatNumber(d.Pools.Total.GetWork);  
     var col7 = newRow.insertCell(6);  
     
     var col8 = newRow.insertCell(7);  
     col8.innerHTML = FormatNumber(d.Pools.Total.Accept);  
     var col9 = newRow.insertCell(8);  
     col9.innerHTML = FormatNumber(d.Pools.Total.Nonce);  
     var col10 = newRow.insertCell(9);  
     col10.innerHTML = FormatNumber(d.Pools.Total.DiffA);  
     var col11 = newRow.insertCell(10);  
     col11.innerHTML = FormatNumber(d.Pools.Total.DiffR);  
     var col12 = newRow.insertCell(11);  
     col12.innerHTML = FormatNumber(d.Pools.Total.DiffS);  
     var col13 = newRow.insertCell(12);  
     col13.innerHTML = FormatNumber(d.Pools.Total.Rejected);  
     var col14 = newRow.insertCell(13);  
     col14.innerHTML = FormatNumber(d.Pools.Total.Discarded);  
     var col15 = newRow.insertCell(14);  
     col15.innerHTML = FormatNumber(d.Pools.Total.Stale);  
     var col16 = newRow.insertCell(15);  
   
     var col17 = newRow.insertCell(15);  
     
     
     
     /////////////Fill HW
     
     var rowNums = tableObj1.rows.length;  
     var newRow = tableObj1.insertRow(rowNums);
     newRow.className="cbi-rowstyle-1 cbi-value-field"
var col1 = newRow.insertCell(0);  
     col1.innerHTML = "HW";  
     var col2 = newRow.insertCell(1);  
  col2.innerHTML = FormatNumber(d.AntMiner.TotalHW);
     var col3 = newRow.insertCell(2);  

     var col4 = newRow.insertCell(3);  
 
     var col5 = newRow.insertCell(4);  
   
     var col6 = newRow.insertCell(5);  

     var col7 = newRow.insertCell(6);  
     
     var col8 = newRow.insertCell(7);  

     var col9 = newRow.insertCell(8);  
     col9.innerHTML = ((d.AntMiner.TotalHW/d.Pools.Total.Nonce)*100).toFixed(4) + "%" ;  
     var col10 = newRow.insertCell(9);  
     col10.innerHTML = ((d.AntMiner.TotalHW/d.Pools.Total.DiffA)*100).toFixed(4) + "%" ;  ;  
     var col11 = newRow.insertCell(10);  

     var col12 = newRow.insertCell(11);  
     //col12.innerHTML = d.Pools.Total.DiffS;  
     var col13 = newRow.insertCell(12);  
 
     var col14 = newRow.insertCell(13);  

     var col15 = newRow.insertCell(14);  

     var col16 = newRow.insertCell(15);  
   
     var col17 = newRow.insertCell(15);  
     
     
     /////////////////Fill Antminers
    var tableObj3 = document.getElementById('ant_devs');  
       var rowNums = tableObj3.rows.length;  

     

var chains = d.AntMiner.ChainStatus.length;


for ( i = (chains-1); i >=0; --i ) {

if (d.AntMiner.ChainStatus[i].AsicStatus == "None") {
continue;
}
var newRow = tableObj3.insertRow(rowNums);  
      newRow.className="cbi-section-table-row cbi-rowstyle-1"
      var col1 = newRow.insertCell(0);  
      col1.innerHTML = d.AntMiner.ChainStatus[i].ChainNo;
     
      var col2 = newRow.insertCell(1);  
      col2.innerHTML = d.AntMiner.ChainStatus[i].ASIC;  
      var col3 = newRow.insertCell(2);  
      col3.innerHTML = d.AntMiner.ChainStatus[i].Frequency;  
      var col4 = newRow.insertCell(3);  
      col4.innerHTML = d.AntMiner.ChainStatus[i].RealTime;  
      var col5 = newRow.insertCell(4);  
      col5.innerHTML = FormatNumber(d.AntMiner.ChainStatus[i].HW);  
      var col6 = newRow.insertCell(5);  
      col6.innerHTML = d.AntMiner.Temp[i].PCB;  
      var col7 = newRow.insertCell(6);  
      col7.innerHTML = d.AntMiner.Temp[i].CHIP;  
      var col8 = newRow.insertCell(7);  
      col8.innerHTML = d.AntMiner.ChainStatus[i].AsicStatus;  

}

document.getElementById('ant_fan1').innerHTML = FormatNumber(d.AntMiner.FanStatus.Fan1Speed)
document.getElementById('ant_fan2').innerHTML = FormatNumber(d.AntMiner.FanStatus.Fan2Speed)


}

function ttest(str1) {

var reg_test_connect = /Connection refused/
var tst_res = reg_test_connect.exec(str1)
if (tst_res!=null) {
return;
}

var str_status = str1
var str_pools = str1
var str_summary = str1
var str_total = "{"

var pools_count = 3

////////////////////////////Summary////////////////////////
str_total += "\"Summury\":{"
var reg_summary_elasped=/Elapsed=([^,]+)/
var reg_summary_realtime=/GHS 5s=([^,]+)/
var reg_summary_avg=/GHS av=([^,]+)/
var reg_summary_foundblocks=/Found Blocks=([^,]+)/
var reg_summary_localwork=/Local Work=([^,]+)/
var reg_summary_utility=/Utility=([^,]+)/
var reg_summary_wu=/Work Utility=([^,]+)/
var reg_summary_bs=/Best Share=([^,]+)/


var t = reg_summary_elasped.exec(str_summary)

str_total+="\"Elapsed\":"+t[1]+","

var t = reg_summary_realtime.exec(str_summary)

str_total+="\"RT\":"+t[1]+","

var t = reg_summary_avg.exec(str_summary)

str_total+="\"AVG\":"+t[1]+","

var t = reg_summary_foundblocks.exec(str_summary)

str_total+="\"FoundBlocks\":"+t[1]+","

var t = reg_summary_localwork.exec(str_summary)

str_total+="\"LocalWork\":"+t[1]+","

var t = reg_summary_utility.exec(str_summary)

str_total+="\"Utility\":"+t[1]+","

var t = reg_summary_wu.exec(str_summary)

str_total+="\"WU\":"+t[1]+","

var t = reg_summary_bs.exec(str_summary)

str_total+="\"BestShare\":"+t[1]+"},"

///////////////////////Pool///////////////////////////////////


str_total+="\"Pools\":\{\"Data\":["

var str_pool_num = "POOL="

var reg_pool_url = /URL=([^,]+)/
var reg_pool_user = /User=([^,]+)/
var reg_pool_status = /Status=([^,]+)/
var reg_pool_diff = /Diff=([^,]+)/
var reg_pool_getwork = /Getworks=([^,]+)/
var reg_pool_priority = /Priority=([^,]+)/
var reg_pool_accepted = /Accepted=([^,]+)/
var reg_pool_diff1 = /Diff1 Shares=([^,|^\.]+)/
var reg_pool_diffa = /Difficulty Accepted=([^,|^\.]+)/
var reg_pool_diffr = /Difficulty Rejected=([^,|^\.]+)/
var reg_pool_diffs = /Difficulty Stale=([^,|^\.]+)/
var reg_pool_rejected = /Rejected=([^,|^\.]+)/
var reg_pool_discarded = /Discarded=([^,|^\.]+)/
var reg_pool_stale=/Stale=([^,|^\.]+)/
var reg_pool_lsdiff=/Last Share Difficulty=([^,|^\.]+)/
var reg_pool_lstime=/Last Share Time=([^,]+)/

var reg_pool_total_getworks = 0
var reg_pool_total_accept = 0
var reg_pool_total_diff1 = 0
var reg_pool_total_diffa = 0
var reg_pool_total_diffr = 0
var reg_pool_total_diffs = 0
var reg_pool_total_reject = 0
var reg_pool_total_discarded = 0
var reg_pool_total_stale = 0


for (i = 0; i < pools_count; ++i ) {
var tmp_rag_str = str_pool_num + i + "[^|]+"// POOL=1[^|]+
var rag_tmp = new RegExp(tmp_rag_str)
var tmp_str = rag_tmp.exec(str_pools)

str_total+="{"

var tmp = reg_pool_url.exec(tmp_str)
if(tmp)
str_total+="\"Index\":" + i + ",\"URL\":\"" + tmp[1] + "\","
else
str_total+="\"Index\":" + i + ",\"URL\":\" \","

tmp = reg_pool_user.exec(tmp_str)
if(tmp)
str_total+="\"User\":\"" + tmp[1] + "\","
else
str_total+="\"User\":\" \","

tmp = reg_pool_status.exec(tmp_str)

str_total+="\"Status\":\"" + tmp[1] + "\","

tmp = reg_pool_diff.exec(tmp_str)
if(tmp)
str_total+="\"Diff\":\"" + tmp[1] + "\","
else
str_total+="\"Diff\":\" \","

tmp = reg_pool_getwork.exec(tmp_str)

str_total+="\"GetWorks\":\"" + tmp[1] + "\","
reg_pool_total_getworks = reg_pool_total_getworks*1 + tmp[1] * 1

tmp = reg_pool_priority.exec(tmp_str)

str_total+="\"Priority\":\"" + tmp[1] + "\","

tmp = reg_pool_accepted.exec(tmp_str)

str_total += "\"Accepted\":\"" + tmp[1] + "\","
reg_pool_total_accept = reg_pool_total_accept*1 + tmp[1] * 1

tmp = reg_pool_diff1.exec(tmp_str)

str_total += "\"Nonce\":\"" + tmp[1] + "\","
reg_pool_total_diff1 +=  tmp[1] * 1

tmp = reg_pool_diffa.exec(tmp_str)

str_total += "\"DiffA\":\"" + tmp[1] + "\","
reg_pool_total_diffa +=  tmp[1] * 1

tmp = reg_pool_diffr.exec(tmp_str)

str_total += "\"DiffR\":\"" + tmp[1] + "\","
reg_pool_total_diffr +=  tmp[1] * 1

tmp = reg_pool_diffs.exec(tmp_str)

str_total += "\"DiffS\":\"" + tmp[1] + "\","
reg_pool_total_diffs +=  tmp[1] * 1

tmp = reg_pool_rejected.exec(tmp_str)

str_total += "\"Rejected\":\"" + tmp[1] + "\","
reg_pool_total_reject +=  tmp[1] * 1

tmp = reg_pool_discarded.exec(tmp_str)

str_total += "\"Discarded\":\"" + tmp[1] + "\","
reg_pool_total_discarded +=  tmp[1] * 1

tmp = reg_pool_stale.exec(tmp_str)

str_total += "\"Stale\":\"" + tmp[1] + "\","
reg_pool_total_stale +=  tmp[1] * 1

   tmp = reg_pool_lsdiff.exec(tmp_str)

str_total += "\"LSDiff\":\"" + tmp[1] + "\","

tmp = reg_pool_lstime.exec(tmp_str)

if (tmp == 0 ) {
str_total += "\"LSTime\":\"" + "Never" + "\""
} else {
str_total += "\"LSTime\":\"" + tmp[1] + "\""
}

if ( i != (pools_count-1) ) {
str_total+="},"
} else {
str_total += "}"
}
}
 str_total += "],"
 str_total += "\"Total\":{"
 str_total += "\"GetWork\":" + reg_pool_total_getworks + ","
 str_total += "\"Accept\":" + reg_pool_total_accept + ","
 str_total += "\"Nonce\":"+ reg_pool_total_diff1 +","
 str_total += "\"DiffA\":"+reg_pool_total_diffa+","
 str_total += "\"DiffR\":"+ reg_pool_total_diffr +","
 str_total += "\"DiffS\":"+reg_pool_total_diffs+","
 str_total += "\"Rejected\":"+ reg_pool_total_reject +","
 str_total += "\"Discarded\":"+reg_pool_total_discarded+","
 str_total += "\"Stale\":"+reg_pool_total_stale+"}"
 str_total += "},"
 


/////////////////////Antminer///////////////////////

 var ant_chain_count = 4
 
var reg_ant_freq = /frequency=([^,]+)/
var reg_ant_fan1 = /fan1=([^,]+)/
var reg_ant_fan2 = /fan2=([^,]+)/



var str_ant_acs = "chain_acs"
var str_ant_acn = "chain_acn"
var str_ant_hw  = "chain_hw"
var str_ant_rate = "chain_rate"
var str_ant_freq = "freq"

var total_hw = 0

 str_total += "\"AntMiner\":\{"
 
 str_total += "\"ChainStatus\":"
 str_total += "["
 
for ( i = 1; i <= ant_chain_count; ++i ) {

var reg_ant_acs_str = str_ant_acs + i + "=([^,]+)"
var reg_ant_acn_str = str_ant_acn + i + "=([^,]+)"
var reg_ant_hw_str = str_ant_hw + i + "=([^,]+)"
var reg_ant_rate_str = str_ant_rate + i + "=([^,|^\|]+)"
var reg_ant_freq_str = str_ant_freq + i + "=([^,]+)"

var reg_ant_acs = new RegExp(reg_ant_acs_str)
var reg_ant_acn = new RegExp(reg_ant_acn_str)
var reg_ant_hw = new RegExp(reg_ant_hw_str)
var reg_ant_rate = new RegExp(reg_ant_rate_str)
var reg_ant_freq1 = new RegExp(reg_ant_freq_str)

str_total += "{\"ChainNo\":"+ i +","

tmp = reg_ant_acs.exec(str_status)
if (tmp != null ) {
str_total += "\"AsicStatus\":\""+tmp[1]+"\","
}
else {
str_total += "\"AsicStatus\":\""+"None"+"\","
}
tmp = reg_ant_acn.exec(str_status)
if (tmp != null ) {
str_total += "\"ASIC\":\""+tmp[1]+"\","
}
else {
str_total += "\"ASIC\":\""+"None"+"\","
}
tmp = reg_ant_hw.exec(str_status)
if (tmp != null ) {
str_total += "\"HW\":\""+tmp[1]+"\","
total_hw += tmp[1]*1
}
else {
str_total += "\"HW\":\""+"None"+"\","
}

tmp = reg_ant_rate.exec(str_status)
if (tmp != null) {
str_total += "\"RealTime\":\""+tmp[1]+"\","
}
else {
str_total += "\"RealTime\":\""+"0"+"\","
}

tmp = reg_ant_freq1.exec(str_status)
if (tmp != null && tmp[1] != "0") {
str_total += "\"Frequency\":\""+tmp[1]+"\""
}
else {
                                         tmp = reg_ant_freq.exec(str_status)
                                         str_total += "\"Frequency\":" + tmp[1]
}

if ( i != ant_chain_count ) {
     str_total += "},"
} else {
str_total += "}"
}
}
str_total += "],"



 ///////////!!!!!!!///////
 ///////////Here Need Fix For Each Device
 //////////Temp
 
 var reg_temp3_tst = /temp31=([^,]+)/
 var res = reg_temp3_tst.exec(str_status);
 if (res) { ////////has In Out
 
 str_total += "\"Temp\":["
 var reg_pcb_1_o = /temp1=([^,]+)/
 var reg_pcb_2_o = /temp2=([^,]+)/
 var reg_pcb_3_o = /temp3=([^,]+)/
 var reg_pcb_4_o = /temp4=([^,]+)/
 
 var reg_chip_1_o = /temp2_1=([^,]+)/
 var reg_chip_2_o = /temp2_2=([^,]+)/
 var reg_chip_3_o = /temp2_3=([^,]+)/
 var reg_chip_4_o = /temp2_4=([^,]+)/
 
 var reg_pcb_1_i = /temp31=([^,]+)/
 var reg_pcb_2_i = /temp32=([^,]+)/
 var reg_pcb_3_i = /temp33=([^,]+)/
 var reg_pcb_4_i = /temp34=([^,]+)/
 
 var reg_chip_1_i = /temp4_1=([^,]+)/
 var reg_chip_2_i = /temp4_2=([^,]+)/
 var reg_chip_3_i = /temp4_3=([^,]+)/
 var reg_chip_4_i = /temp4_4=([^,]+)/
 
 var temp_pcb_1_o = reg_pcb_1_o.exec(str_status)
 var temp_pcb_2_o = reg_pcb_2_o.exec(str_status)
 var temp_pcb_3_o = reg_pcb_3_o.exec(str_status)
 var temp_pcb_4_o = reg_pcb_4_o.exec(str_status)
 
 var temp_chip_1_o = reg_chip_1_o.exec(str_status)
 var temp_chip_2_o = reg_chip_2_o.exec(str_status)
 var temp_chip_3_o = reg_chip_3_o.exec(str_status)
 var temp_chip_4_o = reg_chip_4_o.exec(str_status)
 
 var temp_pcb_1_i = reg_pcb_1_i.exec(str_status)
 var temp_pcb_2_i = reg_pcb_2_i.exec(str_status)
 var temp_pcb_3_i = reg_pcb_3_i.exec(str_status)
 var temp_pcb_4_i = reg_pcb_4_i.exec(str_status)
 
 var temp_chip_1_i = reg_chip_1_i.exec(str_status)
 var temp_chip_2_i = reg_chip_2_i.exec(str_status)
 var temp_chip_3_i = reg_chip_3_i.exec(str_status)
 var temp_chip_4_i = reg_chip_4_i.exec(str_status)
 
 var str_ttmp = "{\"PCB\":\"I:"+temp_pcb_1_i[1]+" O:"+temp_pcb_1_o[1]+"\",\"CHIP\":\"I:"+temp_chip_1_i[1]+" O:"+temp_chip_1_o[1]+"\"},{\"PCB\":\"I:"+temp_pcb_2_i[1]+" O:"+temp_pcb_2_o[1]+"\",\"CHIP\":\"I:"+temp_chip_2_i[1]+" O:"+temp_chip_2_o[1]+"\"},{\"PCB\":\"I:"+temp_pcb_3_i[1]+" O:"+temp_pcb_3_o[1]+"\",\"CHIP\":\"I:"+temp_chip_3_i[1]+" O:"+temp_chip_3_o[1]+"\"},{\"PCB\":\"I:"+temp_pcb_4_i[1]+" O:"+temp_pcb_4_o[1]+"\",\"CHIP\":\"I:"+temp_chip_4_i[1]+" O:"+temp_chip_4_o[1]+"\"}"  
 
 str_total+= str_ttmp
}

else {
str_total += "\"Temp\":["
 var reg_pcb_1_o = /temp1=([^,]+)/
 var reg_pcb_2_o = /temp2=([^,]+)/
 var reg_pcb_3_o = /temp3=([^,]+)/
 var reg_pcb_4_o = /temp4=([^,]+)/
 
 var reg_chip_1_o = /temp2_1=([^,]+)/
 var reg_chip_2_o = /temp2_2=([^,]+)/
 var reg_chip_3_o = /temp2_3=([^,]+)/
 var reg_chip_4_o = /temp2_4=([^,]+)/
 
 var temp_pcb_1_o = reg_pcb_1_o.exec(str_status)
 var temp_pcb_2_o = reg_pcb_2_o.exec(str_status)
 var temp_pcb_3_o = reg_pcb_3_o.exec(str_status)
 var temp_pcb_4_o = reg_pcb_4_o.exec(str_status)
 
 var temp_chip_1_o = reg_chip_1_o.exec(str_status)
 var temp_chip_2_o = reg_chip_2_o.exec(str_status)
 var temp_chip_3_o = reg_chip_3_o.exec(str_status)
 var temp_chip_4_o = reg_chip_4_o.exec(str_status)

var str_ttmp = "{\"PCB\":\""+temp_pcb_1_o[1]+"\",\"CHIP\":\""+temp_chip_1_o[1]+"\"},{\"PCB\":\""+temp_pcb_2_o[1]+"\",\"CHIP\":\""+temp_chip_2_o[1]+"\"},{\"PCB\":\""+temp_pcb_3_o[1]+"\",\"CHIP\":\""+temp_chip_3_o[1]+"\"},{\"PCB\":\""+temp_pcb_4_o[1]+"\",\"CHIP\":\""+temp_chip_4_o[1]+"\"}"

 str_total+= str_ttmp
}

 
 ///////////////////////
str_total += "],"

str_total += "\"TotalHW\":"+total_hw+","

tmp = reg_ant_fan1.exec(str_status)
str_total += "\"FanStatus\":\{\"Fan1Speed\":"+tmp[1]+","

tmp = reg_ant_fan2.exec(str_status)

str_total += "\"Fan2Speed\":"+tmp[1]+"\}\}\}"

console.log(str_total)


var aaa = JSON.parse(str_total)
console.log(aaa)
FillData(aaa);
}
</script>


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/cascade.css" />
<!--[if IE 6]><link rel="stylesheet" type="text/css" media="screen" href="/css/ie6.css" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="/css/ie7.css" /><![endif]-->
<!--[if IE 8]><link rel="stylesheet" type="text/css" media="screen" href="/css/ie8.css" /><![endif]-->
<script type="text/javascript" src="/js/xhr.js"></script>
<script type="text/javascript" src="/js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="/js/json2.min.js"></script>
<title>Ant Miner</title>
</head>
<body class="lang_en">
<p class="skiplink">
<span id="skiplink1"><a href="#navigation">Skip to navigation</a></span>
<span id="skiplink2"><a href="#content">Skip to content</a></span>
</p>
<div id="menubar">
<h2 class="navigation"><a id="navigation" name="navigation">Navigation</a></h2>
<div class="clear"></div>
</div>
<div id="menubar" style="background-color: #0a2b40;">
<div class="hostinfo" style="float: left; with: 500px;">
<img src="/images/antminer_logo.png" width="92" height="50" alt="" title="" border="0" />
</div>
<div class="clear"></div>
</div>
<div id="maincontainer">
<div id="tabmenu">
<div class="tabmenu1">
<ul class="tabmenu l1">
<li class="tabmenu-item-status"><a href="/index.html">System</a></li>
<li class="tabmenu-item-system"><a href="/cgi-bin/minerConfiguration.cgi">Miner Configuration</a></li>
<li class="tabmenu-item-network active"><a href="/cgi-bin/minerStatus.cgi">Miner Status</a></li>
<li class="tabmenu-item-system"><a href="/network.html">Network</a></li>
</ul>
<br style="clear: both" />
</div>
</div>
<div id="maincontent">
<noscript>
<div class="errorbox">
<strong>Java Script required!</strong><br /> You must enable Java Script in your browser or LuCI will not work properly.
</div>
</noscript>
<h2 style="padding-bottom:10px;"><a id="content" name="content">Miner Status</p></a></h2>
<div class="cbi-map" id="cbi-bmminerstatus">
<!-- tblsection -->
<fieldset class="cbi-section" id="cbi-table-table">
<legend>Summary</legend>
<div class="cbi-section-descr"></div>
<div class="cbi-section-node">
<table id="summary_list" class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell">Elapsed</th>
<th class="cbi-section-table-cell">KSol/S(RT)</th>
<th class="cbi-section-table-cell">KSol/S(avg)</th>
<th class="cbi-section-table-cell">FoundBlocks</th>
<th class="cbi-section-table-cell">LocalWork</th>
<th class="cbi-section-table-cell">Utility</th>
<th class="cbi-section-table-cell">WU</th>
<th class="cbi-section-table-cell">BestShare</th>
</tr>
<tr class="cbi-section-table-descr">
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
</tr>
</table>
</div>
</fieldset>
<!-- /tblsection -->
<!-- tblsection -->
<fieldset class="cbi-section" id="cbi-table-table">
<legend>Pools</legend>
<div class="cbi-section-descr"></div>
<div class="cbi-section-node">
<table id="ant_pools" class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell">Pool</th>
<th class="cbi-section-table-cell">URL</th>
<th class="cbi-section-table-cell">User</th>
<th class="cbi-section-table-cell">Status</th>
<th class="cbi-section-table-cell">Diff</th>
<th class="cbi-section-table-cell">GetWorks</th>
<th class="cbi-section-table-cell">Priority</th>
<th class="cbi-section-table-cell">Accepted</th>
<th class="cbi-section-table-cell">Nonce#</th>
<th class="cbi-section-table-cell">DiffA#</th>
<th class="cbi-section-table-cell">DiffR#</th>
<th class="cbi-section-table-cell">DiffS#</th>        
<th class="cbi-section-table-cell">Rejected</th>
<th class="cbi-section-table-cell">Discarded</th>
<th class="cbi-section-table-cell">Stale</th>
<th class="cbi-section-table-cell">LSDiff</th>
<th class="cbi-section-table-cell">LSTime</th>
</tr>
<tr class="cbi-section-table-descr">
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
</tr>
</table>
</div>
</fieldset>
<!-- /tblsection -->
<!-- tblsection -->
<fieldset class="cbi-section" id="cbi-table-table">
<legend>AntMiner</legend>
<div class="cbi-section-descr"></div>
<div class="cbi-section-node">
<table id="ant_devs" class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell">Chain#</th>
<th class="cbi-section-table-cell">ASIC#</th>
<th class="cbi-section-table-cell">Frequency</th>
<th class="cbi-section-table-cell">KSol/S(RT)</th>
<th class="cbi-section-table-cell">HW</th>
<th class="cbi-section-table-cell">Temp(PCB)</th>
<th class="cbi-section-table-cell">Temp(Chip)</th>
<th class="cbi-section-table-cell">ASIC status</th>
</tr>
<tr class="cbi-section-table-descr">
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
<th class="cbi-section-table-cell"></th>
</tr>
</table>
</div>
<div class="cbi-section-node" style="margin-top:8px;">
<table id="ant_fans" class="cbi-section-table">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell" style="width:10%;">Fan#</th>
<th class="cbi-section-table-cell">Fan1</th>
<th class="cbi-section-table-cell">Fan2</th>
</tr>
<tr class="cbi-section-table-row">
<th class="cbi-rowstyle-1 cbi-value-field">Speed (r/min)</th>
</td>
<td id="ant_fan1" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan2" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan3" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan4" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan5" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan6" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan7" class="cbi-rowstyle-1 cbi-value-field"></td>
<td id="ant_fan8" class="cbi-rowstyle-1 cbi-value-field"></td>
</tr>
</table>
</div>
</fieldset>
<!-- /tblsection -->
<br />
</div>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
<div style="text-align: center; bottom: 0; left: 0; height: 1.5em; font-size: 80%; margin: 0; padding: 5px 0px 2px 8px; background-color: #918ca0; width: 100%;">
<font style="color:#fff;">Copyright &copy; 2013-2014, Bitmain Technologies</font>
</div>
</body>
</html>




Share your results with others on my Discord channel
https://discord.gg/6t62apJ
efudd (OP)
Member
**
Offline Offline

Activity: 504
Merit: 51


View Profile
May 21, 2019, 02:24:44 PM
 #759

Again, that will break frequency reporting for all of my firmwares. The problem is not always presentation of the 4th board in the UI, but rather the initialization of the 4th board itself. This is a dirty bandaid on what may or may not be a cut.

-j

chipless
Jr. Member
*
Offline Offline

Activity: 559
Merit: 4


View Profile
May 21, 2019, 04:18:30 PM
Last edit: May 22, 2019, 04:40:53 AM by chipless
 #760

Again, that will break frequency reporting for all of my firmwares. The problem is not always presentation of the 4th board in the UI, but rather the initialization of the 4th board itself. This is a dirty bandaid on what may or may not be a cut.

-j

Hmm .....thats the gui page from a Z9 full size. I have not had any problems initializing the 4th board and have been running 4 boards on a couple mini and full test machines. I have used it with your firmware and it works fine. In fact unless you have changed the page on the full z9 they are running that code fine and it isnt causing a problem.


edit.....

You also need to let your users know that if they downgrade to factory or upgrade to other firmware they need to click save and apply on the miner settings and then refresh their browser to get rid of the invalid configuration file error message they may get.

Share your results with others on my Discord channel
https://discord.gg/6t62apJ
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!