Author

Topic: L3+/L3++ voltage tuning script (Read 3493 times)

newbie
Activity: 25
Merit: 2
May 21, 2020, 09:57:40 AM
#90
psycodad, one more question: does that tuning survive after reboot? or i need to redo the tuning every time after reboot?

The voltage settings are stored in the EEPROM of the PIC controllers for the blades and are persistent over reboots and power-cycles. That is, even if you re-flash firmware the settings *should* persist (didn't have to try that yet).
Though when you change frequencies (i.e. to adapt to higher or lower ambient temperatures), you should retune again.

Hello psycodad,
Have job for you, can contact on email [email protected] discord burth#2357 , telegram: @bonds11
Have limit with messages , cant answer in inbox
newbie
Activity: 25
Merit: 2
May 21, 2020, 09:23:47 AM
#89
psycodad, one more question: does that tuning survive after reboot? or i need to redo the tuning every time after reboot?

The voltage settings are stored in the EEPROM of the PIC controllers for the blades and are persistent over reboots and power-cycles. That is, even if you re-flash firmware the settings *should* persist (didn't have to try that yet).
Though when you change frequencies (i.e. to adapt to higher or lower ambient temperatures), you should retune again.

Hello psycodad,
Have job for you, can contact on email [email protected] discord burth#2357 , telegram: @bonds11
member
Activity: 418
Merit: 21
April 20, 2019, 05:06:26 PM
#88
I came across similar voltage tuner: https://github.com/gotaproblem/L3-AutoTune

Any idea it is working same way?

All credit to cryptodad.

Can someone check advise if it is legit? And can someone advise how I can decode these files to see what are they going to do before I try with the miner?

Thank you

My advice too you: Do it manually. Its really easy and you have the full control over everything. Put in a high number and check the HW errors a hour later. If just a few HW, drop one more step down until you see too many of them. Then go back one step and done.
newbie
Activity: 3
Merit: 0
April 20, 2019, 04:11:37 PM
#87
I came across similar voltage tuner: https://github.com/gotaproblem/L3-AutoTune

Any idea it is working same way?

All credit to cryptodad.

Can someone check advise if it is legit? And can someone advise how I can decode these files to see what are they going to do before I try with the miner?

Thank you
legendary
Activity: 1612
Merit: 1608
精神分析的爸
November 24, 2018, 05:43:05 PM
#86
psycodad, one more question: does that tuning survive after reboot? or i need to redo the tuning every time after reboot?

The voltage settings are stored in the EEPROM of the PIC controllers for the blades and are persistent over reboots and power-cycles. That is, even if you re-flash firmware the settings *should* persist (didn't have to try that yet).
Though when you change frequencies (i.e. to adapt to higher or lower ambient temperatures), you should retune again.
member
Activity: 159
Merit: 12
November 24, 2018, 04:30:43 PM
#85
psycodad, one more question: does that tuning survive after reboot? or i need to redo the tuning every time after reboot?
member
Activity: 294
Merit: 15
i'm just a bot
November 24, 2018, 04:45:57 AM
#84
psycodad, you have been quoted in the following messages:

 
  • Alternate cryptocurrencies - Announcements (Altcoins) - Re: [ANN] New Crypto Currency FRANKO [v0.16][Resurrection]
    It will most likely be listed on the AltMarket, though I'm not sure whether it'll be in December when A.M.
member
Activity: 159
Merit: 12
November 12, 2018, 05:35:53 AM
#83
psycodad, thanks for that, i will try.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
November 11, 2018, 06:35:50 AM
#82
after ~20 mins, it is aborted:

Skipped chain 4, max overvolt reached, tune manually if you dare!!
= Running since: 00:41.21, now sleeping for 40.3s =
| 10.10.11.48  [450] |  49  |  45  |  45  |  46  |
+ Current voltages   + 0x85 + 0xc2 + 0xad + 0x50 +
|Errors/min (5min)   | 0.20 | 0.40 | 0.00 | 6.20 | 1 2 0 31 |
|Errors/min (10min)  | 0.30 | 0.30 | 0.10 | 5.30 | 3 3 1 53 |
|Errors/min (15min)  | 0.33 | 0.33 | 0.13 | 5.00 | 5 5 2 75 |
|Errors/min (all)    | 0.17 | 0.14 | 0.05 | 4.66 | 7 6 2 196 |
= Running since: 00:42.11, now sleeping for 49.9s =
Invalid boards read, aborted!
9 0


Most probably your chain 4 did not report back all chips and therefor the script aborts. Your chain 4 looks like it emits a lot of errors, it might be possible to get that down by increasing voltage further (a setting below 0x50) but from past experience I doubt that.

First check your miners GUI if chain 4 has no crosses. If it has, try rebooting the miner and see if all chips come back to work. If not, try to shut it down and restart it after letting it cool down for 15-20mins.

From there on, I'd recommend to hand-tune chain 4 by ssh'ing to your L3 and running /config/sv manually.
Otherwise you can change the script to use higher voltage by changing line 73 from 0x50 to a lower number (meaning to allow the script to try higher voltages).

Again, I would not recommend this, I have my doubts you'd get much less errors on chain 4 with even higher voltages @450MHz. Try to tune the other three by adding -s 4 to skip chain 4 in tuning and try the best value for chain 4 manually.

HTH
member
Activity: 159
Merit: 12
November 10, 2018, 05:10:55 PM
#81
after ~20 mins, it is aborted:

Skipped chain 4, max overvolt reached, tune manually if you dare!!
= Running since: 00:41.21, now sleeping for 40.3s =
| 10.10.11.48  [450] |  49  |  45  |  45  |  46  |
+ Current voltages   + 0x85 + 0xc2 + 0xad + 0x50 +
|Errors/min (5min)   | 0.20 | 0.40 | 0.00 | 6.20 | 1 2 0 31 |
|Errors/min (10min)  | 0.30 | 0.30 | 0.10 | 5.30 | 3 3 1 53 |
|Errors/min (15min)  | 0.33 | 0.33 | 0.13 | 5.00 | 5 5 2 75 |
|Errors/min (all)    | 0.17 | 0.14 | 0.05 | 4.66 | 7 6 2 196 |
= Running since: 00:42.11, now sleeping for 49.9s =
Invalid boards read, aborted!
9 0
legendary
Activity: 1612
Merit: 1608
精神分析的爸
September 17, 2018, 02:53:19 PM
#80
I found back the btc adress : 14kfN1siTWYsLxteeDxXJBfk8ZP74u2Pbz
Sent to you
Sorry for the delay
check your pm please

Thank you very much, greatly appreciated!
Have a merit for generously supporting open source software development!

jr. member
Activity: 71
Merit: 1
September 16, 2018, 10:13:25 AM
#79
I found back the btc adress : 14kfN1siTWYsLxteeDxXJBfk8ZP74u2Pbz
Sent to you
Sorry for the delay
check your pm please
legendary
Activity: 3080
Merit: 1083
July 31, 2018, 06:01:05 AM
#78
"= Running since: 00:08.06, now sleeping for 54.7s =
Invalid boards read, aborted!
9 3
"

This means that the voltage tool couldn't read voltage of all 4 blades during this run.
If the error persists over several tries, a cold reboot can cure it normally. I've only seen this on one of my miners that ran for more than 180 days and after a cold boot it went away.

Personally and if possible I recommend a cold boot (switching the miner off for 10-15min and back on).


Thanks for the help. I will give that a try. I'm wondering if there is a way to make the voltage changes persistent.



The voltages you yourself (w/ set_voltage) or my tuning tool set are persistent over cold and warm reboots as they are set in the non-volatile memory of the PIC controller on each hashboard.


Awesome, thanks for clearing that up for me.

legendary
Activity: 1612
Merit: 1608
精神分析的爸
July 31, 2018, 05:00:14 AM
#77
"= Running since: 00:08.06, now sleeping for 54.7s =
Invalid boards read, aborted!
9 3
"

This means that the voltage tool couldn't read voltage of all 4 blades during this run.
If the error persists over several tries, a cold reboot can cure it normally. I've only seen this on one of my miners that ran for more than 180 days and after a cold boot it went away.

Personally and if possible I recommend a cold boot (switching the miner off for 10-15min and back on).


Thanks for the help. I will give that a try. I'm wondering if there is a way to make the voltage changes persistent.



The voltages you yourself (w/ set_voltage) or my tuning tool set are persistent over cold and warm reboots as they are set in the non-volatile memory of the PIC controller on each hashboard.
legendary
Activity: 3080
Merit: 1083
July 31, 2018, 04:03:15 AM
#76
"= Running since: 00:08.06, now sleeping for 54.7s =
Invalid boards read, aborted!
9 3
"

This means that the voltage tool couldn't read voltage of all 4 blades during this run.
If the error persists over several tries, a cold reboot can cure it normally. I've only seen this on one of my miners that ran for more than 180 days and after a cold boot it went away.

Personally and if possible I recommend a cold boot (switching the miner off for 10-15min and back on).


Thanks for the help. I will give that a try. I'm wondering if there is a way to make the voltage changes persistent.

legendary
Activity: 1612
Merit: 1608
精神分析的爸
July 31, 2018, 03:48:03 AM
#75
"= Running since: 00:08.06, now sleeping for 54.7s =
Invalid boards read, aborted!
9 3
"

This means that the voltage tool couldn't read voltage of all 4 blades during this run.
If the error persists over several tries, a cold reboot can cure it normally. I've only seen this on one of my miners that ran for more than 180 days and after a cold boot it went away.

Personally and if possible I recommend a cold boot (switching the miner off for 10-15min and back on).
legendary
Activity: 3080
Merit: 1083
July 30, 2018, 09:36:22 PM
#74
"= Running since: 00:08.06, now sleeping for 54.7s =
Invalid boards read, aborted!
9 3
"
legendary
Activity: 3080
Merit: 1083
July 28, 2018, 09:37:44 AM
#73
Failed to decode json reply:
Extra data: line 1 column 1479 - line 1 column 1480 (char 1478 - 1479)
...

Thank you, it seems I ‎unintentionally never followed up on arnold_mad who reported this problem previously and thought it to be fixed. It's just a blind guess that the json output of the Blissz firmware has the same unprintable character at the end as all others have.

Could you do a 'git pull' and try to re-run the script and see if you get any further?

TIA

= Running since: 00:00.06, now sleeping for 54.8s =

Wohoo, it works! Thanks  Grin
legendary
Activity: 1612
Merit: 1608
精神分析的爸
July 27, 2018, 09:09:33 AM
#72
Failed to decode json reply:
Extra data: line 1 column 1479 - line 1 column 1480 (char 1478 - 1479)
...

Thank you, it seems I ‎unintentionally never followed up on arnold_mad who reported this problem previously and thought it to be fixed. It's just a blind guess that the json output of the Blissz firmware has the same unprintable character at the end as all others have.

Could you do a 'git pull' and try to re-run the script and see if you get any further?

TIA
legendary
Activity: 3080
Merit: 1083
July 27, 2018, 04:39:40 AM
#71
Failed to decode json reply:
Extra data: line 1 column 1479 - line 1 column 1480 (char 1478 - 1479)

{"STATUS":[{"STATUS":"S","When":1532684339,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.10.0"}],"STATS":[{"CGMiner":"4.10.0","Miner":"1.0.1.3","CompileTime":"Sun Jan 14 00:00:57 CST 2018","Type":"Antminer L3+ Blissz v1.02"},{"STATS":0,"ID":"L30","Elapsed":9059,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"556.241","GHS av":552.29,"miner_count":4,"frequency":"425","frequency1":425,"frequency2":425,"frequency3":425,"frequency4":425,"volt1":"7","volt2":"7","volt3":"7","volt4":"7","watt1":216,"watt2":216,"watt3":216,"watt4":216,"fan_num":2,"fan1":3114,"fan2":2508,"temp_num":4,"temp1":52,"temp2":53,"temp3":50,"temp4":50,"temp2_1":60,"temp2_2":60,"temp2_3":57,"temp2_4":57,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":53,"Device Hardware%":0.0000,"no_matching_work":23,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":0,"chain_hw2":0,"chain_hw3":0,"chain_hw4":23,"chain_rate1":"139.20","chain_rate2":"139.48","chain_rate3":"138.91","chain_rate4":"138.65"}],"id":1}
legendary
Activity: 1612
Merit: 1608
精神分析的爸
July 27, 2018, 04:12:28 AM
#70
Any chance you can mod this script to work with the BlissZ firmware?

AFAIK it should work with Blissz firmware too, somebody helped me earlier to adapt it for the json output of Blissz:

https://github.com/psycodad-bct/bitmain-tools/blob/master/scripts/l3plus_autotune.py#L102

If you have problems running it, please post the output that the script is spewing out before it terminates.
legendary
Activity: 3080
Merit: 1083
July 27, 2018, 02:14:42 AM
#69
Any chance you can mod this script to work with the BlissZ firmware?
legendary
Activity: 1612
Merit: 1608
精神分析的爸
July 23, 2018, 12:37:42 PM
#68
Since many asked how much you can save with down-volting, I took the opportunity to make some measurements with the new L3+ I received today with a Wattmeter.
The power supply used in this test is an EVGA 1600 platinum rated, power supply input was ~236VAC and the ambient temp was ~27-28°C:

L3+(+) Model Frequency Temperatures Wattage Voltage settings Errors/min (avg)
L3+ (07/18)38460/61/59/57878W0x80/0x80/0x80/0x800/0/0/0
L3+ (07/18)38456/56/55/53733W*0xfe/0xfe/0xfe/0xfe0.01/0.04/0/0

Code:
| Temp Chips | 56 C | 56 C | 55 C | 53 C |
| Err 5min   | 0.00 | 0.00 | 0.00 | 0.00 |
| Err 10min  | 0.00 | 0.00 | 0.00 | 0.00 |
| Err 15min  | 0.07 | 0.07 | 0.00 | 0.00 |
| Err All    | 0.01 | 0.04 | 0.00 | 0.00 |
**************************************************
| Start 18:14.52 | 0x80 | 0x80 | 0x80 | 0x80 |
| Start 18:14.52 | 60 C | 61 C | 59 C | 57 C |
| End   19:29.55 | 0xfe | 0xfe | 0xfe | 0xfe |
| End   19:29.55 | 56 C | 56 C | 55 C | 53 C |
**************************************************
Report written to /tmp/192.168.9.221-rxYPcO.rep
Finished tuning, miner stable AFAICS

*That's a whopping ~145W or ~16.5% savings, I did really expect more like 70-90W so I am quite (positively) surprised.

When I do further experiments with different frequencies I will update this post with new data, others are welcome to contribute their findings.

HTH
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 25, 2018, 02:02:01 PM
#67
That's a relief to hear! Still can't believe my own stupidity to oversee this.
Dont be sor hard on yourself
It works like a charm now
Thanks so so much
send me your BTC adress please for your time and help

The script shows a BTC and LTC address of mine when it finishes or gets aborted (CTRL-C), though it is really not necessary, your patience and help in getting this fixed were greatly appreciated and as you can see the topic now proudly claims "L3+/L3++..."  Cheesy


That's a relief to hear! Still can't believe my own stupidity to oversee this.

Hi,
I had a power outtage while running the script
now I get an error msg trying to run it again
The L3++ run and hash properly
I reboot them
remove the power for 5 mins and retried
still get that error since the power outtage

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py -i 10.0.100.135
/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: FutureWarning: CTR mode needs counter parameter, not IV
  self._cipher = factory.new(key, *args, **kwargs)
Undefined errors occured fetching voltage settings from miner:
sh: /config/sv: Permission denied


Just for curiousity: Did that happen on all your L3++, multiples or just one?

Sounds like the sv binary on the Antminer got corrupted from the power outage, the easiest way to resolve this is by removing the file:

- ssh to the l3++ in question as root
- remove the file with "rm /config/sv"

Once it is removed (you can check this with "ls -la /config/") you just run the script again and it will install a fresh copy of it when it finds it missing.

HTH
jr. member
Activity: 71
Merit: 1
June 25, 2018, 10:10:18 AM
#66
That's a relief to hear! Still can't believe my own stupidity to oversee this.

Hi,
I had a power outtage while running the script
now I get an error msg trying to run it again
The L3++ run and hash properly
I reboot them
remove the power for 5 mins and retried
still get that error since the power outtage

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py -i 10.0.100.135
/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: FutureWarning: CTR mode needs counter parameter, not IV
  self._cipher = factory.new(key, *args, **kwargs)
Undefined errors occured fetching voltage settings from miner:
sh: /config/sv: Permission denied
jr. member
Activity: 71
Merit: 1
June 24, 2018, 10:13:46 AM
#65
That's a relief to hear! Still can't believe my own stupidity to oversee this.
Dont be sor hard on yourself
It works like a charm now
Thanks so so much
send me your BTC adress please for your time and help
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 24, 2018, 09:25:11 AM
#64
That's a relief to hear! Still can't believe my own stupidity to oversee this.
jr. member
Activity: 71
Merit: 1
June 24, 2018, 03:40:23 AM
#63
I feared this wouldn't fix it, would have surprised me somehow anyways but everybody gets a lucky shot at times  Cool

I just don't seem to see the problem yet, I even have setup a "fake/simulated" L3++ for my script that hands out the json reply from you and guess what: works nicely.

Need some sleep first and will look over it tomorrow again, right now I am out of ideas and its hard to fix a problem I don't see and can't reproduce.

Though thanks for your support and input so far, that's motivating.



Thanks, I guess, but you are helping me out a lot more then I help you, I am the one with L3++ needing your help Smiley

I had another potentially uber brilliant idea for a fix  Grin Could you do 'git pull' and give it another try?

you are a genious lol
it seems to be working
I am running the script on a L3++ now no error, will let you know the outcome Smiley
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 23, 2018, 10:13:16 AM
#62
I feared this wouldn't fix it, would have surprised me somehow anyways but everybody gets a lucky shot at times  Cool

I just don't seem to see the problem yet, I even have setup a "fake/simulated" L3++ for my script that hands out the json reply from you and guess what: works nicely.

Need some sleep first and will look over it tomorrow again, right now I am out of ideas and its hard to fix a problem I don't see and can't reproduce.

Though thanks for your support and input so far, that's motivating.



Thanks, I guess, but you are helping me out a lot more then I help you, I am the one with L3++ needing your help Smiley

I had another potentially uber brilliant idea for a fix  Grin Could you do 'git pull' and give it another try?
jr. member
Activity: 71
Merit: 1
June 21, 2018, 07:46:02 PM
#61
I feared this wouldn't fix it, would have surprised me somehow anyways but everybody gets a lucky shot at times  Cool

I just don't seem to see the problem yet, I even have setup a "fake/simulated" L3++ for my script that hands out the json reply from you and guess what: works nicely.

Need some sleep first and will look over it tomorrow again, right now I am out of ideas and its hard to fix a problem I don't see and can't reproduce.

Though thanks for your support and input so far, that's motivating.



Thanks, I guess, but you are helping me out a lot more then I help you, I am the one with L3++ needing your help Smiley
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 21, 2018, 02:39:26 PM
#60
I feared this wouldn't fix it, would have surprised me somehow anyways but everybody gets a lucky shot at times  Cool

I just don't seem to see the problem yet, I even have setup a "fake/simulated" L3++ for my script that hands out the json reply from you and guess what: works nicely.

Need some sleep first and will look over it tomorrow again, right now I am out of ideas and its hard to fix a problem I don't see and can't reproduce.

Though thanks for your support and input so far, that's motivating.

jr. member
Activity: 71
Merit: 1
June 21, 2018, 04:47:51 AM
#59
Sorry for not getting back earlier, RL got some tasks for me lately.

I can only speculate that there are extraneous whitespace characters at the end of the json output, though actually the json module should be able to deal with that. I've made an attempt at fixing this by striping all whitespace chars outside the json response before parsing it, though I have some doubts it will fix it. But it's the best I could come up with from remote.

Please try to git pull and see if it improves it for you.


What, you have a Real Life !!!!!
Doesnt work
This is the msg I get
What's next Smiley

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ sudo git pull
[sudo] password for jhgosselin:
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 1), reused 4 (delta 1), pack-reused 0
Unpacking objects: 100% (4/4), done.
From https://github.com/psycodad-bct/bitmain-tools
   6349d9d..34f00a4  master     -> origin/master
Updating 6349d9d..34f00a4
Fast-forward
 scripts/l3plus_autotune.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py -i 10.0.100.118
/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: FutureWarning: CTR mode needs counter parameter, not IV
  self._cipher = factory.new(key, *args, **kwargs)
Failed to decode json reply:
Extra data: line 1 column 1305 - line 1 column 1306 (char 1304 - 1305)

{"STATUS":[{"STATUS":"S","When":1529574372,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.9.0"}],"STATS":[{"CGMiner":"4.9.0","Miner":"1.0.1.3","CompileTime":"Thu Apr 12 15:55:21 CST 2018","Type":"Antminer L3++"},{"STATS":0,"ID":"L30","Elapsed":38043,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"594.83","GHS av":585.57,"miner_count":4,"frequency":"450","fan_num":2,"fan1":2640,"fan2":2670,"temp_num":4,"temp1":55,"temp2":52,"temp3":50,"temp4":48,"temp2_1":63,"temp2_2":61,"temp2_3":59,"temp2_4":56,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":55,"Device Hardware%":0.0000,"no_matching_work":2137,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":0,"chain_hw2":0,"chain_hw3":1,"chain_hw4":2136,"chain_rate1":"144.93","chain_rate2":"151.31","chain_rate3":"153.99","chain_rate4":"144.60"}],"id":1}

legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 21, 2018, 03:36:51 AM
#58
Sorry for not getting back earlier, RL got some tasks for me lately.

I can only speculate that there are extraneous whitespace characters at the end of the json output, though actually the json module should be able to deal with that. I've made an attempt at fixing this by striping all whitespace chars outside the json response before parsing it, though I have some doubts it will fix it. But it's the best I could come up with from remote.

Please try to git pull and see if it improves it for you.

jr. member
Activity: 71
Merit: 1
June 17, 2018, 11:54:56 AM
#57
jhgosselin@Master-VRTJMB:~$ sudo apt-get install netcat-openbsd
[sudo] password for jhgosselin:
Reading package lists... Done
Building dependency tree
Reading state information... Done
netcat-openbsd is already the newest version (1.105-7ubuntu1).
The following package was automatically installed and is no longer required:
  libfreetype6
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
jhgosselin@Master-VRTJMB:~$

jhgosselin@Master-VRTJMB:~$ echo "{\"command\":\"stats\"}"| nc 10.0.100.141 4028
{"STATUS":[{"STATUS":"S","When":1529254514,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.9.0"}],"STATS":[{"CGMiner":"4.9.0","Miner":"1.0.1.3","CompileTime":"Thu Apr 12 15:55:21 CST 2018","Type":"Antminer L3++"}{"STATS":0,"ID":"L30","Elapsed":11560,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"612.27","GHS av":589.15,"miner_count":4,"frequency":"456","fan_num":2,"fan1":3690,"fan2":3750,"temp_num":4,"temp1":61,"temp2":59,"temp3":58,"temp4":55,"temp2_1":70,"temp2_2":68,"temp2_3":66,"temp2_4":62,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":61,"Device Hardware%":0.0000,"no_matching_work":3972,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooxoooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":866,"chain_hw2":28,"chain_hw3":108,"chain_hw4":2970,"chain_rate1":"152.65","chain_rate2":"146.27","chain_rate3":"163.72","chain_rate4":"149.63"}],"id":1} jhgosselin@Master-VRTJMB:~$
jr. member
Activity: 71
Merit: 1
June 17, 2018, 11:13:10 AM
#56
Interesting, the json output you posted gets parsed ok here and obviously it complains about an error at char 1309, though the string you posted is only 1308 chars long.

It sounds like the json output from cgminer has some extra whitespace or linefeed but then again the json module should be able to work with that just fine.

I am a bit lost here, could you please pm me or post the complete output of the following command(s):
Code:
sudo apt-get install netcat-openbsd
echo "{\"command\":\"stats\"}"| nc 10.0.100.141 4028

The above installs the networking swiss army knife 'netcat' and uses netcat to fetch the json output directly from cgminer api port of your miner so that I can see what could failing here when reading it from my script.

will do as soon as its done running on the L3+ Smiley
How long does it run its test before stopping ?
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 17, 2018, 10:47:43 AM
#55
Interesting, the json output you posted gets parsed ok here and obviously it complains about an error at char 1309, though the string you posted is only 1308 chars long.

It sounds like the json output from cgminer has some extra whitespace or linefeed but then again the json module should be able to work with that just fine.

I am a bit lost here, could you please pm me or post the complete output of the following command(s):
Code:
sudo apt-get install netcat-openbsd
echo "{\"command\":\"stats\"}"| nc 10.0.100.141 4028

The above installs the networking swiss army knife 'netcat' and uses netcat to fetch the json output directly from cgminer api port of your miner so that I can see what could failing here when reading it from my script.
jr. member
Activity: 71
Merit: 1
June 17, 2018, 09:57:12 AM
#54
jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py -i 10.0.100.141
/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: FutureWarning: CTR mode needs counter parameter, not IV
  self._cipher = factory.new(key, *args, **kwargs)
Failed to decode json reply:
Extra data: line 1 column 1308 - line 1 column 1309 (char 1307 - 1308)

{"STATUS":[{"STATUS":"S","When":1529247355,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.9.0"}],"STATS":[{"CGMiner":"4.9.0","Miner":"1.0.1.3","CompileTime":"Thu Apr 12 15:55:21 CST 2018","Type":"Antminer L3++"},{"STATS":0,"ID":"L30","Elapsed":4401,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"600.56","GHS av":589.55,"miner_count":4,"frequency":"456","fan_num":2,"fan1":3690,"fan2":3750,"temp_num":4,"temp1":58,"temp2":57,"temp3":55,"temp4":52,"temp2_1":67,"temp2_2":65,"temp2_3":63,"temp2_4":60,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":58,"Device Hardware%":0.0000,"no_matching_work":1457,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooxoooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":313,"chain_hw2":10,"chain_hw3":36,"chain_hw4":1098,"chain_rate1":"155.34","chain_rate2":"157.02","chain_rate3":"141.25","chain_rate4":"146.95"}],"id":1}
jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$
jr. member
Activity: 71
Merit: 1
June 17, 2018, 09:45:04 AM
#53
I can give you access to my L3++
just pm me

I feel honoured by your trust, but you really should never let others access any of your gear (even if they have more comfy sounding pseudonyms than 'psycodad'  Grin )
We'll get you there soon, have some patience and enjoy your first steps into the linux platform.

Oh well, another new cgminer output with json glitches, this time it's the L3++.
Don't know why every version of cgminer I have met has invalid json output that has to be fixed first.

Anyway, thanks to your pasted output I could (hopefully) fix that as I have no L3++ to test against.

Please change into your bitmain-tools directory and do:

Code:
git pull
cd scripts
./l3plus_autotune.py

Let's see if that gets us any further.

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$

Ah, should have seen this in your output in a previous post: You did checkout as user root and your user is now denied to modify these files, no problem just use sudo:
Code:
sudo git pull
cd scripts
./l3plus_autotune.py




./l3plus_autotune.py
no ip no -i ?
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 17, 2018, 09:41:23 AM
#52
I can give you access to my L3++
just pm me

I feel honoured by your trust, but you really should never let others access any of your gear (even if they have more comfy sounding pseudonyms than 'psycodad'  Grin )
We'll get you there soon, have some patience and enjoy your first steps into the linux platform.

Oh well, another new cgminer output with json glitches, this time it's the L3++.
Don't know why every version of cgminer I have met has invalid json output that has to be fixed first.

Anyway, thanks to your pasted output I could (hopefully) fix that as I have no L3++ to test against.

Please change into your bitmain-tools directory and do:

Code:
git pull
cd scripts
./l3plus_autotune.py

Let's see if that gets us any further.

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$

Ah, should have seen this in your output in a previous post: You did checkout as user root and your user is now denied to modify these files, no problem just use sudo:
Code:
sudo git pull
cd scripts
./l3plus_autotune.py


jr. member
Activity: 71
Merit: 1
June 17, 2018, 09:32:31 AM
#51
Oh well, another new cgminer output with json glitches, this time it's the L3++.
Don't know why every version of cgminer I have met has invalid json output that has to be fixed first.

Anyway, thanks to your pasted output I could (hopefully) fix that as I have no L3++ to test against.

Please change into your bitmain-tools directory and do:

Code:
git pull
cd scripts
./l3plus_autotune.py

Let's see if that gets us any further.

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$
jr. member
Activity: 71
Merit: 1
June 17, 2018, 09:29:32 AM
#50
I can give you access to my L3++
just pm me
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 17, 2018, 09:27:53 AM
#49
Oh well, another new cgminer output with json glitches, this time it's the L3++.
Don't know why every version of cgminer I have met has invalid json output that has to be fixed first.

Anyway, thanks to your pasted output I could (hopefully) fix that as I have no L3++ to test against.

Please change into your bitmain-tools directory and do:

Code:
git pull
cd scripts
./l3plus_autotune.py

Let's see if that gets us any further.
jr. member
Activity: 71
Merit: 1
June 17, 2018, 08:36:16 AM
#48
ok now I get this

jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py -i 10.0.100.141
/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: FutureWarning: CTR mode needs counter parameter, not IV
  self._cipher = factory.new(key, *args, **kwargs)
/config/sv binary not found on target miner, installing it first:
MD5sum [113ad2c06daac293386e28807ea35671] matches, good.
Binary /config/sv successfully installed.
Failed to decode json reply:
Expecting , delimiter: line 1 column 222 (char 221)

{"STATUS":[{"STATUS":"S","When":1529242535,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.9.0"}],"STATS":[{"CGMiner":"4.9.0","Miner":"1.0.1.3","CompileTime":"Thu Apr 12 15:55:21 CST 2018","Type":"Antminer L3++"}{"STATS":0,"ID":"L30","Elapsed":68458,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"582.46","GHS av":588.22,"miner_count":4,"frequency":"456","fan_num":2,"fan1":3660,"fan2":3690,"temp_num":4,"temp1":56,"temp2":54,"temp3":53,"temp4":50,"temp2_1":65,"temp2_2":62,"temp2_3":61,"temp2_4":56,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":56,"Device Hardware%":0.0000,"no_matching_work":23283,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooxoooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":4670,"chain_hw2":167,"chain_hw3":697,"chain_hw4":17749,"chain_rate1":"139.24","chain_rate2":"155.34","chain_rate3":"146.29","chain_rate4":"141.59"}],"id":1}
jhgosselin@Master-VRTJMB:~/bitmain-tools/scripts$
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 17, 2018, 08:20:03 AM
#47
drwxr-xr-x 1 root root  4096 Jun 17 08:50 .
drwxr-xr-x 1 root root  4096 Jun 17 08:50 ..
-rwxr-xr-x 1 root root 27269 Jun 17 08:50 l3plus_autotune.py
-rw-r--r-- 1 root root  2137 Jun 17 08:50 README.md
-rw-r--r-- 1 root root 29976 Jun 17 08:50 sv.txt
@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py
/usr/bin/env: ‘python’: No such file or directory
@Master-VRTJMB:~/bitmain-tools/scripts$


Ah, good I asked. You seem to have installed a rather minimal Ubuntu VM with no python, but no problem. Do the following:

Code:
sudo apt-get install python2.7

While at it you might also want to install the required paramiko module:
Code:
sudo apt-get install python-paramiko

But already after your first step the error should look different (reporting that you need paramiko too).
jr. member
Activity: 71
Merit: 1
June 17, 2018, 07:57:51 AM
#46
drwxr-xr-x 1 root root  4096 Jun 17 08:50 .
drwxr-xr-x 1 root root  4096 Jun 17 08:50 ..
-rwxr-xr-x 1 root root 27269 Jun 17 08:50 l3plus_autotune.py
-rw-r--r-- 1 root root  2137 Jun 17 08:50 README.md
-rw-r--r-- 1 root root 29976 Jun 17 08:50 sv.txt
@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py
/usr/bin/env: ‘python’: No such file or directory
@Master-VRTJMB:~/bitmain-tools/scripts$

legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 17, 2018, 07:56:04 AM
#45
I am in the directory where the files were downloaded, as per your intruction
BTW their is a typo on your instructions, you spelled bitmian instead of bitmain Smiley
I tried with and without the ./ in and out of the installation dir Sad

Thanks for spotting that, I fixed the typo.

I am a bit unsure where you could be stuck or what could be missing.

Could you change into the bitmain-tools/scripts directory and try the following two commands and paste the output here:

Code:
ls -la
./l3plus_autotune.py

Generally, the more info you post, the easier is it to guide you through the procedure.
jr. member
Activity: 71
Merit: 1
June 17, 2018, 07:38:51 AM
#44
I am in the directory where the files were downloaded, as per your intruction
BTW their is a typo on your instructions, you spelled bitmian instead of bitmain Smiley
I tried with and without the ./ in and out of the installation dir Sad

@Master-VRTJMB:~/bitmain-tools/scripts$ ./l3plus_autotune.py -i 10.0.100.141
/usr/bin/env: ‘python’: No such file or directory
@Master-VRTJMB:~/bitmain-tools/scripts$
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 17, 2018, 05:31:50 AM
#43
I have quite a few L3+
I installed a linux VM
Now if I understand corerectly, I first set the  clock of the miner. let say 452mh
then I run the script and it will find the best voltage for it yes ?

Yes, that's right. You first set your desired freq and then let the script find the best voltage setting for each of the four chains in your L3+.

Could you post what you did exactly posting the exact commands you entered?
The "command not found" normally hints that you are missing the path to the command. I.e. if you are in the directory where l3plus_autotune.py is located, you need to add "./" in front of it to tell the shell that you want to execute the command in the same folder.

HTH
jr. member
Activity: 71
Merit: 1
June 16, 2018, 07:28:33 PM
#42
I get command not found
jr. member
Activity: 71
Merit: 1
June 16, 2018, 05:35:48 PM
#41
Hi Again,

I have quite a few L3+
I installed a linux VM
Now if I understand corerectly, I first set the  clock of the miner. let say 452mh
then I run the script and it will find the best voltage for it yes ?

Thanks
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 11, 2018, 07:30:41 AM
#40
I love what this can do - Any interest in creating one for the A3 miner?

I have only L3+ so somebody else would have to do this.
But it should be very easy to port over to A3 or other Antminers that offer the same possibilities (voltage control).
newbie
Activity: 3
Merit: 0
June 10, 2018, 12:05:56 PM
#39
I love what this can do - Any interest in creating one for the A3 miner?
legendary
Activity: 1612
Merit: 1608
精神分析的爸
June 01, 2018, 08:42:39 AM
#38
I have pushed a new version to my github and encourage all that are using the script to update. There are a few small bugs fixed and the tuning process should be more accurate and even faster in finding the right values for each of your chains.

A nice feature would be to keep the script running in an infinite loop to always adjust the voltage. The ambient temperature differs quite a bit for my miners and therefore the optimal voltage is different from time to time.

I see your point and considered it but the changes in the script would be quite big with the chance of introducing many new and unneeded bugs. You can already easily achieve the same by a simple shell loop like:

Code:
while true; do ./l3plus_autotune.py -i 10.10.10.33; sleep 900; done

The above line starts the tuning script and waits until it exits, sleeps then 900s (15min) and restarts the script again in a never ending loop (or until you hit CTRL-C).

Happy tuning.

BTW: If people with wattmeters on their miners would post their measurements (before and after tuning and with the respective frequency and voltage-setting) I could try to interpolate watt savings and print a very rough estimate on the savings in Watt for each run of the script.
hero member
Activity: 896
Merit: 500
Dolphins Finance TRUSTED FINANCE
May 31, 2018, 09:58:58 AM
#37
Fantastic tool!

But I do feel that something about it is a bit off, everytime I run the script i feel  like it keeps setting the voltage lower and lower.

I ran the script 7 times in a row without doing any changes what so ever in between and this is the results (I converted the hex into decimal too to make it easier so see for us that are not used to hex values Smiley )

Is this normal or am I doing something wrong?

...


Thanks.

The current version on github has still a few minor but annoying bugs, one of them being that it declares a miner that can be downvolted more as "tuned" and exits. I have a version that has these fixed as well as the tuning process improved that I am currently testing on my miners. I will push that version to github in the next two days and will post here then.

Regarding the script running multiple times: That's no problem, the script turns the voltage down as long as there is less than 1 error/min on the respective chain, once there is more errors it starts to increase the voltage again until a point is found where it sill produces errors but less than 1/min and chain.
You can run it as often as you like, with every run it should tune your miner closer to it's ideal voltage at current conditions (frequency and ambient).




Ok, thanks. Looking forward to the new version.  A nice feature would be to keep the script running in an infinite loop to always adjust the voltage. The ambient temperature differs quite a bit for my miners and therefore the optimal voltage is different from time to time.


So finally is this work for now?
it seem very interesting as l3+ now super low profit at all for me.
but i still mining with it and will try this tweak tomorrow
newbie
Activity: 50
Merit: 0
May 31, 2018, 07:34:51 AM
#36
Fantastic tool!

But I do feel that something about it is a bit off, everytime I run the script i feel  like it keeps setting the voltage lower and lower.

I ran the script 7 times in a row without doing any changes what so ever in between and this is the results (I converted the hex into decimal too to make it easier so see for us that are not used to hex values Smiley )

Is this normal or am I doing something wrong?

...


Thanks.

The current version on github has still a few minor but annoying bugs, one of them being that it declares a miner that can be downvolted more as "tuned" and exits. I have a version that has these fixed as well as the tuning process improved that I am currently testing on my miners. I will push that version to github in the next two days and will post here then.

Regarding the script running multiple times: That's no problem, the script turns the voltage down as long as there is less than 1 error/min on the respective chain, once there is more errors it starts to increase the voltage again until a point is found where it sill produces errors but less than 1/min and chain.
You can run it as often as you like, with every run it should tune your miner closer to it's ideal voltage at current conditions (frequency and ambient).




Ok, thanks. Looking forward to the new version.  A nice feature would be to keep the script running in an infinite loop to always adjust the voltage. The ambient temperature differs quite a bit for my miners and therefore the optimal voltage is different from time to time.

legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 31, 2018, 05:36:32 AM
#35
Fantastic tool!

But I do feel that something about it is a bit off, everytime I run the script i feel  like it keeps setting the voltage lower and lower.

I ran the script 7 times in a row without doing any changes what so ever in between and this is the results (I converted the hex into decimal too to make it easier so see for us that are not used to hex values Smiley )

Is this normal or am I doing something wrong?

...


Thanks.

The current version on github has still a few minor but annoying bugs, one of them being that it declares a miner that can be downvolted more as "tuned" and exits. I have a version that has these fixed as well as the tuning process improved that I am currently testing on my miners. I will push that version to github in the next two days and will post here then.

Regarding the script running multiple times: That's no problem, the script turns the voltage down as long as there is less than 1 error/min on the respective chain, once there is more errors it starts to increase the voltage again until a point is found where it sill produces errors but less than 1/min and chain.
You can run it as often as you like, with every run it should tune your miner closer to it's ideal voltage at current conditions (frequency and ambient).

newbie
Activity: 50
Merit: 0
May 29, 2018, 01:25:17 PM
#34
Fantastic tool!

But I do feel that something about it is a bit off, everytime I run the script i feel  like it keeps setting the voltage lower and lower.

I ran the script 7 times in a row without doing any changes what so ever in between and this is the results (I converted the hex into decimal too to make it easier so see for us that are not used to hex values Smiley )

Is this normal or am I doing something wrong?

Chain 1   
b0   176
be   190
c5   197
cc   204
da   218
e1   225
e6   230
Chain 2   
95   149
ad   173
b4   180
bb   187
bb   187
c2   194
c8   200
Chain 3   
84   132
7f   127
7f   127
7f   127
8d   141
8d   141
97   151
Chain 4   
9c   156
b5   181
bc   188
c3   195
c1   193
c1   193
c8   200
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 19, 2018, 06:32:33 AM
#33
..

Is your script checking to see if sv is already on the miner before installing? Maybe it is trying to re-install it again at some point and failing, leaving it in corrupted state. If check for existence prior to install maybe it will stop this. I did not read your source - just a quick thought.


Yes, the install function is only called if the error string from the miner trying to call sv on ends with " not found":

https://github.com/psycodad-bct/bitmain-tools/blob/master/scripts/l3plus_autotune.py#L158

On top of that a flag is set, that makes sure that it only tries once to install the binary (most failures installing it exit the script anyway) per script run:

https://github.com/psycodad-bct/bitmain-tools/blob/master/scripts/l3plus_autotune.py#L199
member
Activity: 124
Merit: 47
May 18, 2018, 11:43:05 AM
#32
this time i got this erroe on miner that i already run script before:

Undefined errors occured fetching voltage settings from miner:
sh: /config/sv: Permission denied

Aborting.

I just saw this very same error on one of my miners a few hours ago, but I couldn't find the cause for this behaviour so far.

I had not much time to dig deeper yet, but what happened here was that /config/sv (the slightly varied binary of jstefanops work we install on first run of the script) was truncated from  the 9788 bytes it should have to something around 1000 bytes and has changed permissions (hence the Permission denied).

The simplest way to resolve this is by removing the /config/sv file on the antminer via ssh and letting the script re-install it again. Though my miner where I saw this had to rebooted afterwards as the PIC version suddenly was 0x00 (probably meaning the PIC MCU didn't reply anymore). After a cold boot things were all fine and dandy again and I successfully run the script on that miner.

Could you check for me two things with the miner where you saw that:

1. Was the miner rebooted recently and/or did you have to reboot it to fully recover from this?
2. Before you remove the (assumedly) truncated /config/sv, can you check what is in there with i.e. 'hexdump -C /config/sv' (this might give us a hint what process is responsible for the corrupt binary)


Is your script checking to see if sv is already on the miner before installing? Maybe it is trying to re-install it again at some point and failing, leaving it in corrupted state. If check for existence prior to install maybe it will stop this. I did not read your source - just a quick thought.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 18, 2018, 09:08:43 AM
#31
this time i got this erroe on miner that i already run script before:

Undefined errors occured fetching voltage settings from miner:
sh: /config/sv: Permission denied

Aborting.

I just saw this very same error on one of my miners a few hours ago, but I couldn't find the cause for this behaviour so far.

I had not much time to dig deeper yet, but what happened here was that /config/sv (the slightly varied binary of jstefanops work we install on first run of the script) was truncated from  the 9788 bytes it should have to something around 1000 bytes and has changed permissions (hence the Permission denied).

The simplest way to resolve this is by removing the /config/sv file on the antminer via ssh and letting the script re-install it again. Though my miner where I saw this had to rebooted afterwards as the PIC version suddenly was 0x00 (probably meaning the PIC MCU didn't reply anymore). After a cold boot things were all fine and dandy again and I successfully run the script on that miner.

Could you check for me two things with the miner where you saw that:

1. Was the miner rebooted recently and/or did you have to reboot it to fully recover from this?
2. Before you remove the (assumedly) truncated /config/sv, can you check what is in there with i.e. 'hexdump -C /config/sv' (this might give us a hint what process is responsible for the corrupt binary)
full member
Activity: 195
Merit: 104
May 18, 2018, 02:36:23 AM
#30
this time i got this erroe on miner that i already run script before:

Undefined errors occured fetching voltage settings from miner:
sh: /config/sv: Permission denied

Aborting.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 17, 2018, 12:38:38 PM
#29
And how do i run script on multiple L3's at the same time ? :>

Simply open another terminal and start it against another miner (or use screen or tmux). Even on an old and outdated PC you should easily be able to tune a dozen or so miners at once.

Just make sure you do not have 2 script instances running against the same miner at the same time (it should not have any desastrous consequences but both scripts will probably fail with an error when they try to read out or set voltage at the same time).
full member
Activity: 195
Merit: 104
May 17, 2018, 11:13:23 AM
#28
And how do i run script on multiple L3's at the same time ? :>
legendary
Activity: 4326
Merit: 8899
'The right to privacy matters'
May 17, 2018, 09:33:17 AM
#27
I have L3+(Blissz v1.02) is possible to go lower voltage(save more W)? with freq:300-312?

thx

With such low frequency your miners should already be set to minimum voltage/maximum undervolting setting of 0xfe (254). You can't undervolt more than this so no need for tuning.

My take on the scrypt   is that it is good if you want to try minimum volts setting of 0xfe  and find highest hashrate that works for separate boards.

But that if you clock at freq of 359 or lower  like I do most boards simply  do the 0xfe  with close to no errors.

Still if you have 2 board that do   384 and one that does 359  this is a good  addition to the voltage control software.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 17, 2018, 09:20:47 AM
#26
I have L3+(Blissz v1.02) is possible to go lower voltage(save more W)? with freq:300-312?

thx

With such low frequency your miners should already be set to minimum voltage/maximum undervolting setting of 0xfe (254). You can't undervolt more than this so no need for tuning.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 17, 2018, 09:18:14 AM
#25
Well that updated version works every time exactly 15mins to the second. Then it suddenly stops.

Thank you very much for the reports.
It actually finishes because it thinks the miner is stable and under the max. errror-rate (which I have currently set to 0.2/min, or 1/5min per chain).
The downvolting kicks in as soon as a chain has 0.0 errors in the 10min avg. and the voltage increase kicks in when a chain has more than 0.2 errors per min in the 5min average.

When I look at your end-results, the script assumes the miner as tuned when it does not make any changes within 10min to voltages as it thinks it has found the sweet spot between no errors and too much errors.

I will revisit that part of the code and see what I can improve there, but from what I see it does actually tune your miner, but I agree it should try harder/longer:


| Start 19:20.46 | 0xa0 | 0x8b | 0xcd | 0xa9 |
| Start 19:20.46 | 59 C | 58 C | 54 C | 53 C |
| End   19:35.46 | 0xa0 | 0x92 | 0xcd | 0xb0 |
| End   19:35.46 | 59 C | 58 C | 54 C | 53 C |

| Start 13:39.55 | 0xa3 | 0x6f | 0xa3 | 0x9c |
| Start 13:39.55 | 60 C | 61 C | 58 C | 56 C |
| End   14:01.55 | 0x9f | 0x7d | 0xb1 | 0xa2 |
| End   14:01.55 | 60 C | 60 C | 57 C | 55 C |

| Start  9:40.40 | 0x87 | 0x67 | 0x87 | 0x87 |
| Start  9:40.40 | 60 C | 59 C | 57 C | 54 C |
| End    9:55.40 | 0x8e | 0x6e | 0x87 | 0x87 |
| End    9:55.40 | 59 C | 59 C | 57 C | 54 C |


I was trying to make sure the script doesn't run forever and stops/exits as soon as it can, but I probably went a bit too far wrt this.

For the moment feel free to run the script multiple times, I even recommend to re-run it everytime ambient temperatures change noteably (>=2°C difference). Simply put, the colder the less voltage needed.
Whenever you change frequency you should re-run the script or manually re-tune them anyways.

If you want to run the script multiple times in a row unattended, use a command like below:
Code:
for i in range {1..3}; do /path/l3plus_autotune.py -i x.x.x.x; sleep 60; done
^This will run it three times in a row, just as a workaround until I come up with a smarter solution on finding the right point in time to declare the miner tuned.

I will post, once I have an update.

newbie
Activity: 60
Merit: 0
May 17, 2018, 04:46:18 AM
#24
I have L3+(Blissz v1.02) is possible to go lower voltage(save more W)? with freq:300-312?

thx
newbie
Activity: 1
Merit: 0
May 16, 2018, 05:28:29 PM
#23
Hi there,

Thank you so much for the tool you've created. It's very helpful.

Today I've run into this error and am wondering if you've encountered it before?

https://imgur.com/a/xIoX9BS

full member
Activity: 195
Merit: 104
May 16, 2018, 02:21:56 PM
#22
Well that updated version works every time exactly 15mins to the second. Then it suddenly stops.
legendary
Activity: 4326
Merit: 8899
'The right to privacy matters'
May 16, 2018, 07:49:59 AM
#21
what kind of results can one expect? we talking 50watt or 5 ?

Sorry found answer in original thread.

I am going to ping phil to give it a whirl since I know he has a few L3+. Sadly all miner are in a hosting facility except for one lonely s9 that is pos and been in warranty 5 times. But the OP thread it was 600w vw 800w so that is a 20% saving.

Just got a pm to read this

I have multiple L3+ with the undervolt tool

using just the jstefanop  tool  on freq 359 hash rate of 470 I do 667 watts with minimum volts on all 4 boards. using a corsair ax1500i titanium

this is a savings of over 100 watts.

So my first question is  can this scrypt use a lower volt setting then  0xfe?
..

Thanks for checking in. No, unfortunately 0xfe equals 254 and ist the highest undervolting you can set.
If you have 4x 0xfe set, there is nothing more you can do to save on energy (except lowering frequency further), this script doesn't help you then as it is about to find the highest undervolting setting where you miners still work reliably.

You could however get possibly more hashes/W if you increase the frequency to the point where you still can run them with 0xfe on all or most blades.


I will play with this during the week.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 16, 2018, 07:47:40 AM
#20
what kind of results can one expect? we talking 50watt or 5 ?

Sorry found answer in original thread.

I am going to ping phil to give it a whirl since I know he has a few L3+. Sadly all miner are in a hosting facility except for one lonely s9 that is pos and been in warranty 5 times. But the OP thread it was 600w vw 800w so that is a 20% saving.

Just got a pm to read this

I have multiple L3+ with the undervolt tool

using just the jstefanop  tool  on freq 359 hash rate of 470 I do 667 watts with minimum volts on all 4 boards. using a corsair ax1500i titanium

this is a savings of over 100 watts.

So my first question is  can this scrypt use a lower volt setting then  0xfe?
..

Thanks for checking in. No, unfortunately 0xfe equals 254 and ist the highest undervolting you can set.
If you have 4x 0xfe set, there is nothing more you can do to save on energy (except lowering frequency further), this script doesn't help you then as it is about to find the highest undervolting setting where you miners still work reliably.

You could however get possibly more hashes/W if you increase the frequency to the point where you still can run them with 0xfe on all or most blades. And if you are willing to set a frequency where you do not get 0 errors on all chains with 0xfe, my script can help to find the highest possible setting with lowest possible errors.
legendary
Activity: 4326
Merit: 8899
'The right to privacy matters'
May 16, 2018, 07:35:16 AM
#19
what kind of results can one expect? we talking 50watt or 5 ?

Sorry found answer in original thread.

I am going to ping phil to give it a whirl since I know he has a few L3+. Sadly all miner are in a hosting facility except for one lonely s9 that is pos and been in warranty 5 times. But the OP thread it was 600w vw 800w so that is a 20% saving.

Just got a pm to read this

I have multiple L3+ with the undervolt tool

using just the jstefanop  tool  on freq 359 hash rate of 470 I do 667 watts with minimum volts on all 4 boards. using a corsair ax1500i titanium

this is a savings of over 100 watts.

So my first question is  can this scrypt use a lower volt setting then  0xfe?
here is a 3 board unit with voltage tool

Last login: Tue May  8 10:15:16 on ttys000
philsbeasts-Pro:~ philsbeast$ scp /Users/philsbeast/Downloads/set_voltage [email protected]:/config
The authenticity of host '192.168.0.190 (192.168.0.190)' can't be established.
RSA key fingerprint is d8:dc:52:5e:0a:c2:63:55:f1:af:3d:ed:7c:4f:e1:ec.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.190' (RSA) to the list of known hosts.
[email protected]'s password:
set_voltage                                                                     100% 9204     9.0KB/s   00:00    
philsbeasts-Pro:~ philsbeast$ ssh [email protected]
[email protected]'s password:
root@antMinerTwo2L3:~# cd /config
root@antMinerTwo2L3:/config# ./set_voltage 1fe
Incorrect arguments
Usage:
./set_voltage [chain# 1-4] [voltage in hex]
root@antMinerTwo2L3:/config# ./set_voltage 1 fe

 version = 0x03
reading voltage

 voltage = 0x80
setting voltage
reading voltage

 voltage = 0xfe
Success: Voltage updated!
root@antMinerTwo2L3:/config# ./set_voltage 2 fe

 version = 0x00
Wrong PIC version
root@antMinerTwo2L3:/config# ./set_voltage 3 fe

 version = 0x03
reading voltage

 voltage = 0x80
setting voltage
reading voltage

 voltage = 0xfe
Success: Voltage updated!
root@antMinerTwo2L3:/config#
root@antMinerTwo2L3:/config# ./set_voltage 4 fe

 version = 0x03
reading voltage

 voltage = 0x80
setting voltage
reading voltage

 voltage = 0xfe
Success: Voltage updated!
root@antMinerTwo2L3:/config#




full size
https://i.imgur.com/YNrG63r.png

so after days no Hw's to speak of.

this is manual tuned to lowest volts on the tool and I use freq 359 since it gave me almost no errors
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 16, 2018, 07:30:56 AM
#18
did you check my full version of the json ?

I think so, please check this post:

https://bitcointalksearch.org/topic/m.37448663
newbie
Activity: 64
Merit: 0
May 16, 2018, 07:04:51 AM
#17
did you check my full version of the json ?
full member
Activity: 195
Merit: 104
May 16, 2018, 06:47:30 AM
#16
..

Thanks for testing the script and reporting back.

Never seen that error here. But I see that we're trying to sleep a negative number of seconds because your ssh connection take longer than 15s each, which makes the computer say "No" in a very Little Brittain like manner.
Will work around this and push an update later today and post here when it is fixed.

I guess that's the reason it never finishes and therefor never really does its job of lowering the voltage.
Have you ever seen it finishing with lines like the following or does it always drop out with an error?

Code:
...
= Running since: 8495s, now sleeping for 24.4s =
Finished tuning, miner stable AFAICS


Well, yes it finished once or twice after 40mins or so, but there still was zero HW's and way more to go with undervolting. Most of times tho it stops after one pass - about 10-15mins. I just took very old laptop not used in long time, installed ubuntu and pluged it to local network seemed best idea at the time since i got windows on pc

First, the problem with negative sleep is fixed in the current github version, please update and see if it goes away for you.

Regarding the problem of not getting undervolted enough, could you pm me the contents of one or two report files the tool generates when finished?
I am aware the mechanism for finding the sweet spot voltage-wise is far from perfect yet, but in my tests I always got very accurate results, meaning it improved my manual tuning by a lot.

Will test it more in couple hours after i get back home and will send You some logs
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 16, 2018, 06:12:56 AM
#15
..

Thanks for testing the script and reporting back.

Never seen that error here. But I see that we're trying to sleep a negative number of seconds because your ssh connection take longer than 15s each, which makes the computer say "No" in a very Little Brittain like manner.
Will work around this and push an update later today and post here when it is fixed.

I guess that's the reason it never finishes and therefor never really does its job of lowering the voltage.
Have you ever seen it finishing with lines like the following or does it always drop out with an error?

Code:
...
= Running since: 8495s, now sleeping for 24.4s =
Finished tuning, miner stable AFAICS


Well, yes it finished once or twice after 40mins or so, but there still was zero HW's and way more to go with undervolting. Most of times tho it stops after one pass - about 10-15mins. I just took very old laptop not used in long time, installed ubuntu and pluged it to local network seemed best idea at the time since i got windows on pc

First, the problem with negative sleep is fixed in the current github version, please update and see if it goes away for you.

Regarding the problem of not getting undervolted enough, could you pm me the contents of one or two report files the tool generates when finished?
I am aware the mechanism for finding the sweet spot voltage-wise is far from perfect yet, but in my tests I always got very accurate results, meaning it improved my manual tuning by a lot.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 16, 2018, 06:06:01 AM
#14
full member
Activity: 195
Merit: 104
May 16, 2018, 05:16:48 AM
#13
Scrypt starts to work, but it finishes randomly testing - sometimes after 10mins or bit more, even if there is room for undervolt for example with zero HW.
And sometime it does this:

= Running since: 00:10.14, now sleeping for 46.4s =
| 192.168.8.18 [425] |  61  |  60  |  58  |  55  |
+ Current voltages   + 0x80 + 0x60 + 0x80 + 0x80 +
|Errors/min (5min)   | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (10min)  | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (15min)  | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (all)    | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
Chain 1 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 1 from 0x80 to 0x87
Chain 2 can be undervolted more (0.00 err/m)
Voltage setting of 0x67 good to test.
Undervolted chain 2 from 0x60 to 0x67
Chain 3 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 3 from 0x80 to 0x87
Chain 4 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 4 from 0x80 to 0x87
= Running since: 00:12.07, now sleeping for -6.0s =
Traceback (most recent call last):
  File "./l3plus_autotune.py", line 600, in
    time.sleep( REPEAT - (time.time()-now) )
IOError: [Errno 22] Invalid argument


Thanks for testing the script and reporting back.

Never seen that error here. But I see that we're trying to sleep a negative number of seconds because your ssh connection take longer than 15s each, which makes the computer say "No" in a very Little Brittain like manner.
Will work around this and push an update later today and post here when it is fixed.

I guess that's the reason it never finishes and therefor never really does its job of lowering the voltage.
Have you ever seen it finishing with lines like the following or does it always drop out with an error?

Code:
...
= Running since: 8495s, now sleeping for 24.4s =
Finished tuning, miner stable AFAICS


Well, yes it finished once or twice after 40mins or so, but there still was zero HW's and way more to go with undervolting. Most of times tho it stops after one pass - about 10-15mins. I just took very old laptop not used in long time, installed ubuntu and pluged it to local network seemed best idea at the time since i got windows on pc
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 16, 2018, 04:59:54 AM
#12
Scrypt starts to work, but it finishes randomly testing - sometimes after 10mins or bit more, even if there is room for undervolt for example with zero HW.
And sometime it does this:

= Running since: 00:10.14, now sleeping for 46.4s =
| 192.168.8.18 [425] |  61  |  60  |  58  |  55  |
+ Current voltages   + 0x80 + 0x60 + 0x80 + 0x80 +
|Errors/min (5min)   | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (10min)  | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (15min)  | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (all)    | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
Chain 1 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 1 from 0x80 to 0x87
Chain 2 can be undervolted more (0.00 err/m)
Voltage setting of 0x67 good to test.
Undervolted chain 2 from 0x60 to 0x67
Chain 3 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 3 from 0x80 to 0x87
Chain 4 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 4 from 0x80 to 0x87
= Running since: 00:12.07, now sleeping for -6.0s =
Traceback (most recent call last):
  File "./l3plus_autotune.py", line 600, in
    time.sleep( REPEAT - (time.time()-now) )
IOError: [Errno 22] Invalid argument


Thanks for testing the script and reporting back.

Never seen that error here. But I see that we're trying to sleep a negative number of seconds because your ssh connection take longer than 15s each, which makes the computer say "No" in a very Little Brittain like manner.
Will work around this and push an update later today and post here when it is fixed.

I guess that's the reason it never finishes and therefor never really does its job of lowering the voltage.
Have you ever seen it finishing with lines like the following or does it always drop out with an error?

Code:
...
= Running since: 8495s, now sleeping for 24.4s =
Finished tuning, miner stable AFAICS

sr. member
Activity: 800
Merit: 294
Created AutoTune to saved the planet! ~USA
May 16, 2018, 03:38:56 AM
#11
what kind of results can one expect? we talking 50watt or 5 ?

Sorry found answer in original thread.

I am going to ping phil to give it a whirl since I know he has a few L3+. Sadly all miner are in a hosting facility except for one lonely s9 that is pos and been in warranty 5 times. But the OP thread it was 600w vw 800w so that is a 20% saving.
okg
newbie
Activity: 53
Merit: 0
May 16, 2018, 03:17:40 AM
#10
what kind of results can one expect? we talking 50watt or 5 ?

Sorry found answer in original thread.
full member
Activity: 195
Merit: 104
May 16, 2018, 02:47:41 AM
#9
Scrypt starts to work, but it finishes randomly testing - sometimes after 10mins or bit more, even if there is room for undervolt for example with zero HW.
And sometime it does this:

= Running since: 00:10.14, now sleeping for 46.4s =
| 192.168.8.18 [425] |  61  |  60  |  58  |  55  |
+ Current voltages   + 0x80 + 0x60 + 0x80 + 0x80 +
|Errors/min (5min)   | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (10min)  | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (15min)  | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
|Errors/min (all)    | 0.00 | 0.00 | 0.00 | 0.00 | 0 0 0 0 |
Chain 1 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 1 from 0x80 to 0x87
Chain 2 can be undervolted more (0.00 err/m)
Voltage setting of 0x67 good to test.
Undervolted chain 2 from 0x60 to 0x67
Chain 3 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 3 from 0x80 to 0x87
Chain 4 can be undervolted more (0.00 err/m)
Voltage setting of 0x87 good to test.
Undervolted chain 4 from 0x80 to 0x87
= Running since: 00:12.07, now sleeping for -6.0s =
Traceback (most recent call last):
  File "./l3plus_autotune.py", line 600, in
    time.sleep( REPEAT - (time.time()-now) )
IOError: [Errno 22] Invalid argument
newbie
Activity: 64
Merit: 0
May 16, 2018, 02:14:13 AM
#8
Failed to decode json reply:
Expecting , delimiter: line 1 column 236 (char 235)

{"STATUS":[{"STATUS":"S","When":1526454833,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.10.0"}],"STATS":[{"CGMiner":"4.10.0","Miner":"1.0.1.3","CompileTime":"Sun Jan 14 00:00:57 CST 2018","Type":"Antminer L3+ Blissz v1.02"}{"STATS":0,"ID":"L30","Elapsed":79294,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"580.898","GHS av":578.18,"miner_count":4,"frequency":"431","frequency1":431,"frequency2":431,"frequency3":456,"frequency4":456,"volt1":"13","volt2":"13","volt3":"13","volt4":"13","watt1":243,"watt2":243,"watt3":256,"watt4":256,"fan_num":2,"fan1":3384,"fan2":3414,"temp_num":4,"temp1":57,"temp2":51,"temp3":53,"temp4":51,"temp2_1":64,"temp2_2":60,"temp2_3":62,"temp2_4":59,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":57,"Device Hardware%":-0.0000,"no_matching_work":212,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":79,"chain_hw2":82,"chain_hw3":13,"chain_hw4":38,"chain_rate1":"147.83","chain_rate2":"144.97","chain_rate3":"142.43","chain_rate4":"145.67"}],"id":1}
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 15, 2018, 03:33:06 PM
#7
newbie
Activity: 64
Merit: 0
May 15, 2018, 02:49:36 PM
#6
Hi !

Tried to use it on one of my miners and got the following log:

/config/sv binary not found on target miner, installing it first:
MD5sum [113ad2c06daac293386e28807ea35671] matches, good.
Binary /config/sv successfully installed.
Traceback (most recent call last):
  File "./l3plus_autotune.py", line 545, in
    current_stats = get_minerstats(miner_ip, port=4028)
  File "./l3plus_autotune.py", line 95, in get_minerstats
    resp = json.loads(json_resp)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 1 column 236 (char 235)


can you help ?
the script is running on a RPI3

Thanks for testing the script.

It seems to fall over while parsing the cgminer json output.
I am a bit at loss, would need to see the raw json output from cgminer.
EDIT:
You could try to add a print statement just before the line it falls over, i.e. before line 95 add
  print json_resp
and post or pm the output.

I have pushed an update to github which should print the json data so we can see whats wrong or where it falls over.
Please update with git pull and post or pm me the output.

Also, are you running the latest Bitmain firmware 1.0.1.3 ?

I'm running the custom blissz firmware. here the json output:

Failed to decode json reply:
Expecting , delimiter: line 1 column 236 (char 235)

{"STATUS":[{"STATUS":"S","When":1526413725,"Code":70,"Msg":"CGMiner stats","Description":"cgminer 4.10.0"}],"STATS":[{"CGMiner":"4.10.0","Miner":"1.0.1.3","CompileTime":"Sun Jan 14 00:00:57 CST 2018","Type":"Antminer L3+ Blissz v1.02"}{"STATS":0,"ID":"L30","Elapsed":38187,"Calls":0,"Wait":0.000000,"Max":0.000000,"Min":99999999.000000,"GHS 5s":"579.398","GHS av":577.89,"miner_count":4,"frequency":"431","frequency1":431,"frequency2":431,"frequency3":456,"frequency4":456,"volt1":"13","volt2":"13","volt3":"13","volt4":"13","watt1":243,"watt2":243,"watt3":256,"watt4":256,"fan_num":2,"fan1":3726,"fan2":3780,"temp_num":4,"temp1":60,"temp2":54,"temp3":55,"temp4":53,"temp2_1":67,"temp2_2":62,"temp2_3":64,"temp2_4":61,"temp31":0,"temp32":0,"temp33":0,"temp34":0,"temp4_1":0,"temp4_2":0,"temp4_3":0,"temp4_4":0,"temp_max":60,"Device Hardware%":-0.0000,"no_matching_work":101,"chain_acn1":72,"chain_acn2":72,"chain_acn3":72,"chain_acn4":72,"chain_acs1":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs2":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs3":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_acs4":" oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo oooooooo","chain_hw1":36,"chain_hw2":38,"chain_hw3":8,"chain_hw4":19,"chain_rate1":"143.73","chain_rate2":"143.59","chain_rate3":"14
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 15, 2018, 12:33:58 PM
#5
I am a little green in the ASIC world. What kind of tuning would this do. Apply the best bang for your buck voltage  to each of the cards ?  Does it go for higher hash power, etc ?

Sorry for the newb question. 

Basically you set a frequency for your L3+ and then this script tunes the miner to the best voltage settings in terms of optimal error_ratio/power-consumption per board.
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 15, 2018, 12:31:25 PM
#4
Hi !

Tried to use it on one of my miners and got the following log:

/config/sv binary not found on target miner, installing it first:
MD5sum [113ad2c06daac293386e28807ea35671] matches, good.
Binary /config/sv successfully installed.
Traceback (most recent call last):
  File "./l3plus_autotune.py", line 545, in
    current_stats = get_minerstats(miner_ip, port=4028)
  File "./l3plus_autotune.py", line 95, in get_minerstats
    resp = json.loads(json_resp)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 1 column 236 (char 235)


can you help ?
the script is running on a RPI3

Thanks for testing the script.

It seems to fall over while parsing the cgminer json output.
I am a bit at loss, would need to see the raw json output from cgminer.
EDIT:
You could try to add a print statement just before the line it falls over, i.e. before line 95 add
  print json_resp
and post or pm the output.

I have pushed an update to github which should print the json data so we can see whats wrong or where it falls over.
Please update with git pull and post or pm me the output.

Also, are you running the latest Bitmain firmware 1.0.1.3 ?
full member
Activity: 284
Merit: 102
May 15, 2018, 12:24:09 PM
#3
I am a little green in the ASIC world. What kind of tuning would this do. Apply the best bang for your buck voltage  to each of the cards ?  Does it go for higher hash power, etc ?

Sorry for the newb question. 
newbie
Activity: 64
Merit: 0
May 15, 2018, 12:15:00 PM
#2
Hi !

Tried to use it on one of my miners and got the following log:

/config/sv binary not found on target miner, installing it first:
MD5sum [113ad2c06daac293386e28807ea35671] matches, good.
Binary /config/sv successfully installed.
Traceback (most recent call last):
  File "./l3plus_autotune.py", line 545, in
    current_stats = get_minerstats(miner_ip, port=4028)
  File "./l3plus_autotune.py", line 95, in get_minerstats
    resp = json.loads(json_resp)
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 1 column 236 (char 235)


can you help ?
the script is running on a RPI3
legendary
Activity: 1612
Merit: 1608
精神分析的爸
May 15, 2018, 11:50:37 AM
#1
Since jstefanop was so kind to release his demo code for voltage setting on the L3+ we could finally undervolt our L3+ and save some of those precious watts.

Though the process of tuning every hash board is time consuming and boring (at least after the third L3+) and I soon wished there was a way to automate this trial and error process similar to what General Tarkin did on the Titans.

So I hotglued some python script that does the whole process automatically and does not require you to install jstefanops binary on every single miner. But you need a Linux (MacOS might work) machine that can reach the miners you want to tune over the network.

Note: Just to be very clear: The script needs to be run from a different computer than your miner!

If you are willing to try this alpha software, head over to github and checkout my bitmain-tools repo:

https://github.com/psycodad-bct/bitmain-tools

Usage in the simplest form is just:
Code:
git clone https://github.com/psycodad-bct/bitmain-tools
cd bitmain-tools/scripts
./l3plus_autotune.py -i

All options are printed if you supply no arguments to the script:
Code:
Usage:
./l3plus_autotune.py -i |--minerip= [OPTIONS]

Options:
 -p admin password if not set to 'admin'
 --password=
 -s skip one or more chains
 --skip

Examples:
Tune miner on 10.10.10.33, use '1234' as admin password and skip tuning chain 2 and 3:
./l3plus_autotune.py --minerip 10.10.10.33 -p 1234 --skip 2,3
Default usage :
./l3plus_autotune.py -i 10.10.10.33

The script may take anywhere from 30min to several hours or can even refuse to complete if your miner is too unstable. If that happens you can try to use the --skip option to skip tuning one or more chains/hashboards and set them to the best possible value manually.

I did this to save time on tuning and re-tuning my L3+ miners and thought I'd share it here.

Disclaimer:
This script has at best pre-alpha-quality (or even less) and comes as-is with no warranties at all. I have tested it heavily and to the best of my knowledge it should do no harm, but it has obviously when playing with voltages the potential to damage your miner and even if not it will probably void your Bitmain warranty.

Use completely at your own risk!

If in doubt, use the source Luke!

Jump to: