Pages:
Author

Topic: Hacking the S7 - improving efficiency through minor hardware manipulation - page 11. (Read 26494 times)

legendary
Activity: 1736
Merit: 1006
im watching this thread.. and if i can comprehend what is happening.. are you guys saying you can electronically adjust the voltage on the s7? making it more efficient?


i searched pickit3 and it seems like a controller of some sorts.. do you just plug it in and upload the firmware? is it usb? or do you need to do like a jtag setup? if so do you leave it attached when you are done?
is there soldering involved or are there holes you can push pins through?




sorry for all of the questions, but i think i need this.. my s7 needs to be more efficient if i am to continue using it after the halving.
hero member
Activity: 588
Merit: 500
It would be interesting to write a little program for the BBB to spoof that, but I'm not sure whatall they do for UART multiplexing on the IO board. And since their cgminer source hasn't been updated since the S5, which I don't know if it's compatible...

Probably the easiest way to confirm the operation of the Pic would be to break the TX line to the Pic and connect to a Terminal Emulator TX along with RA4 to RX?


Rich
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Right, I recall now you did already post that. Sorry.
hero member
Activity: 588
Merit: 500
Post #76 on the previous page is a dump of what is sent from RA4 which I think might be the Pic echoing the key data? Getting a bit late here but will check Tomorrow what the complete TX data is, however there is a lot of stuff there nothing to do with the Pic.

Yes the original firmware from your Dump writes 0x1B and the Latest Single fan Firmware writes 0x0E

Also worth noting that I have only so far seen this behaviour with the latest Single Fan firmware.


Rich
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Huh, interesting. Yeah, my S7LN was set to right around 10V (0x1B, which measured out as 10.16V on my DMM) which is definitely low for a stock S7 designed for 650 or 700MHz.

Interesting that it saves the value. Maybe they do some initial testing with their software-voltable firmware to bin the boards, and since the value they settle on is stored on the board they can then hook them up with the not-software-voltable firmware they give to customers.

Do you have a dump of the TX data that gets sent to the board when it lights up, that looks like what sets the voltage? It would be interesting to write a little program for the BBB to spoof that, but I'm not sure whatall they do for UART multiplexing on the IO board. And since their cgminer source hasn't been updated since the S5, which I don't know if it's compatible...
hero member
Activity: 588
Merit: 500
Continuing to loop the cold value is known behavior as mentioned earlier in the thread. I could have coded the loop to kick out after the second write but it's not hurting anything.

I have not tried writing the firmware back after telling the IPE it's the wrong chip with only 1.75KB of code space instead of the required 3.5KB and also the wrong device ID, but I can see why it would throw the errors you're reporting.


OK all my mistake, for some reason when programming I selected PIC12F1571 instead of PIC12F1572

The original code loads and runs fine when you select the correct chip....

What was interesting is that the Code saved by Sidehack set my voltage initially to 10.055V whereas when the write from cgminer came in it set it to 10.663V confirming that  the initial Pic voltage is then overwritten by the new value.

Even more interesting was that on rebooting the initial write set to 10.663V as well, so I think they are saving the new value in the Pic.


Rich
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Continuing to loop the cold value is known behavior as mentioned earlier in the thread. I could have coded the loop to kick out after the second write but it's not hurting anything.

I have not tried writing the firmware back after telling the IPE it's the wrong chip with only 1.75KB of code space instead of the required 3.5KB and also the wrong device ID, but I can see why it would throw the errors you're reporting.
hero member
Activity: 588
Merit: 500
First off , good job on the revised Firmware. I have tried the files and they work as described.

Next just want to caveat my comments that follow with the fact that I am not running on a S7LN but a board from a Batch 8 135 chip Miner with an S5 controller Board programmed with the latest  S7 Single Fan Firmware. So some comments may be specific to this setup as opposed to a standard S7LN?


Finally a few comments from my first play...

1) You need a PicKit 3 I had a PicKit 2 but the  PIC12F1572 is not supported.

2) On connecting the Software reports.

Target Device ID (0x3050) does not match expected Device ID (0x3051).

You can then continue, and on checking the Device ID Memory it shows the correct 3050

3) After the initial Hot & then Cold programming the Digi Pot is reprogrammed with the Cold Programming at approx 3 Minute intervals. Not sure if this is deliberate or if there is an unintended loop?

4) I tried to reload the original firmware, both a copy that I saved and the one in the Zip, neither of them ran.

In addition the one from the Zip reports

Warning: S7LN_PIC_FIRMWARE.hex contains code that is located at addresses that do not exist on the PIC12F1571.
Code incompletely loaded.


sidehack not sure if you have retried the original firmware?


Rich
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Yeah, it's pretty standard.

I bet 550MHz and 630mV would do you about 800W and give you 3.7TH per machine. 620mV might do that frequency stable but it's the threshold speed for that voltage on my machine. If yours has a bit slower chips it might not run stable without pushing the voltage a bit more. Also consider that it'll run hotter for about a minute and a half (maybe around 850W?) until it drops into cold voltage, so hopefully the PSU is good for that.
legendary
Activity: 3752
Merit: 2667
Evil beware: We have waffles!
Everything's just a standard 0.1" holes; once you pull the fan and look at the board it should be pretty obvious what's what.
Cool, so just a standard strip pins header I take it.
If I can get a few of the s7's down to be able to run off of DPS1200 @ 120v (so 800w) it would let me stash one in my office and the inspection room to replace the s5's there....
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Everything's just a standard 0.1" holes; once you pull the fan and look at the board it should be pretty obvious what's what.
legendary
Activity: 3752
Merit: 2667
Evil beware: We have waffles!
Yeah, but text doesn't carry near the data payload of a picture and I don't cater to lazy folks.
True but -- I did read it and have to say that a picture or 2 of the header connections and if ya have it. a pn for the header needed would be very helpful... You can always just resize the pics to a lower rez or compress more.
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Yeah, but text doesn't carry near the data payload of a picture and I don't cater to lazy folks.
legendary
Activity: 1500
Merit: 1002
Mine Mine Mine
lazy to read, PIC pls, it tells a million words Tongue

thx for sharing & the hardwork sidehack ! u the man.
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
http://gekkoscience.com/img_stash/S7LN/S7LN_HEX.zip

The above link is a ZIP archive containing some 17 hex files. The one called "S7LN_PIC_FIRMWARE.hex" is the original unmodified firmware found on the hashboards in my S7LN.

The remaining files are called "S7LN_userselect.X.production.AAA-BBB.hex" where AAA represents the cold running voltage and BBB is the hot running, in millivolts average per node.

I have cold-running files from 580mV to 690mV, where the hot is 30mV higher. I also have three files that set both hot and cold to the same for 700, 710 and 720mV - at those points, a clock rate that would require a higher voltage to start would also draw enough power to smoke out the whole board. Pretty sure anyways. I've tested up to 775MHz and 1020W wall (stock setting was 680W on my unit) without finding an unstable clock on even 710mV and I don't want to catch my boards on fire.

Anyway. If you want to make use of this, find yourself a PIC programer (I use a PICKit 3 that I've had since about 2013) and grab the MPLAB IDE software. What you'll actually need is the IPE side (Programming, rather that Development) but I'm not sure it's possible to download just the IPE without getting the whole thing.

If you remove the outlet fan from the unit, at the end of the boards you will see eight pinholes - one pair, and one set of six. The six are the ISP header into which you'd plug your PICKit.


The lowermost hole of the six corresponds to the header-socket hole on the PICKit that has been flagged (on mine there's a while triangle pointing to it).


You'll want to set the IPE "Device" drop-down to PIC12F1572. Under the "Settings" select Advanced Mode, and once in there click Power, set VDD to 3.3V and check "Power Target Circuit from Tool". For that to work right you're going to want to unplug the 18-pin cable from the board before you program it.

Once that's all configured, plug your PICKit into the board (you might need some wires or pins to connect the header socket of the programmer to the holes on the board) and click "Connect". If you did everything right, there ought not be any errors. Might get a box pop up saying something about low-volt programming and voltage mismatches or some such; just click "OK" and carry on. As far as I can tell it doesn't matter for this application.
You should be able to read existing code off the chip, which you can see in Memory View (View -> Show Memory). If you would like, click "Read" to pull all the existing firmware off and File->Export->Hex to save a backup copy just in case.

Click the "Browse" button associated with the Source path, and navigate to the new hex file of your choosing. Once that's loaded, click "Program" to push the new program to the board.

Make sure you plug the 18-pin cable back in before trying to mine again.

The program will turn on your board to the hot-start voltage value upon power-up of the controller board. The S7's software, once the OS is booted, will run cgminer for about a minute to get things warmed up and then restarts it fresh. My board firmware will start the cold running voltage about 35 seconds into the second cgminer run. If you're watching on a kill-a-watt, the power consumption should drop about 10% or so when it kicks over to cold-running.
sr. member
Activity: 338
Merit: 250
I've got a couple Titanium power supplies that I want to try these on to see how efficient I can get a setup going (a SilverStone 800w Titanium and a Corsair 1500w Titanium that I'll try to run two on).  Since a power supply is most efficient at about 50% load, a EVGA 1000w Titanium on 220v (should add an approx. 2% additional eff.) should deliver a sweet spot with a whole setup with one miner when the S7-LN is set at 537.5M (495w).
legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Probably best to try that with something better than S7 chips, especially with the halving and that S7 is going on a year old. But the idea is sound (as it always has been).

With board-level power measurements it would be easy to write a control program that optimizes the voltage and hashrate for a given power dissipation and target error rate.
legendary
Activity: 3752
Merit: 2667
Evil beware: We have waffles!
or -- find a way to fit s7 chips inside of that fluid-filled heater for immersion 'cooling' and dead-silent hashing...
Just find a way to vary the wattage (voltage) applied to the strings to give proportional control of temp vs just an on-off thermostat.
legendary
Activity: 4256
Merit: 8551
'The right to privacy matters'
Picture this your office is too fucking cold over ac'd by morons and you can not make it comfortable  without a space heater

so instead of this space heater in the office



set the s-7ln to these settings and run at cksolopool  gives you a shot at a block  around 140-150 times a day

legendary
Activity: 3374
Merit: 1859
Curmudgeonly hardware guy
Yeah, 620 is a good setpoint. Assuming mine is a representative sample, the group-buy miners will be programmed with 650/620 unless otherwise specified, and shipped set at 450MHz for 2TH at a shade over 400W. That does give the owner still a lot of room to play, including getting close to stock speed (since 550MHz versus 600MHz only costs about 225GH) but saves close to 200W. All those numbers are given with free-running fans, by the way. Turning fans down will save a shade of power on fans, but as chip heat increases the chip-level power requirement increases for a given voltage and frequency. It's a tradeoff.

Once the group-buy batch miners start arriving about Tuesday I'll be able to get measures from a bigger sample set and compare.
Pages:
Jump to: