Hey guys, decided to make a video showing how to modify the firmware for the antminer S9. If you find it useful, make sure you drop a thumbs up and share it.
If you want to use an already build firmware, you can download it from here:
It contains a deploy tool limited to 10 deploys at a time, if you plan on deploying on
hundreds of machines you can get the fuill version by purchasing the tutorial on
how to make your oil cooled antminer from here:
BTC Address for donations if you would like:
Here are all the commands for copy and pasting:
# install dependencies
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install git build-essential libz1:i386 libc6:i386 libstdc++6:i386
# clone bmminer-mix repo from github
git clone https://github.com/bitmaintech/bmminer-mix.git
# get platform gcc
tar xvf gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux.tar.bz2
# get prebuilt platform libz
git clone https://github.com/djp952/prebuilt-libz.git
# edit the Makefile
# Add the following 2 lines after all the comments, in the "Customizable Section"
# save file and exit gedit
# build bmminer
# if you want to make clean
#### Modifying the bmminer for frequency, disable fan check, change voltage
line 225, define s9_63 to have it set frequency from the code instead of detecting it from the pic
line 347, debug for fans
line 512, define max freq index
# file driver-btm-c5.c
line 212, enable fixed frequency
line 654, change voltage depending frequency
line 7254, disable log for missing fan
# file from the control board etc/config/Config.ini
Discord channel for water block discussions and overclock :
Hi alex, how are you? can we modify the voltage on bbminer? I have some t9+ and it is a different firmware than t9. also, would you help me to make a custom firmware that allow to modified voltage and keep with the original firmware?
Hi, very nice job. But is there any way to reconfigure(decompile) an existing bmminer. If i understand your tutorial right, i compile an complete new bmminer. But i still have an working system with an individual firmware on my s9 (not stock firmware) and i want to change some small thinks to make it better working for me. Please give me some hints how to do that. thanks
Hi winston, can you tell me what it says? did you check the config for pools ? Try getting in kernel log see if you get any logs.
What miners you run it on ? 13.5 TH/s 14 ?
Join the discord channel and message me alex1560 and will talk there.
great!! i bougth you tutorial anyway ...for 67$ it is a great investment.. i am building a oil cooling too but i will use a oil chiller...you can buy one like 65l/minute 10200 kilocalories for 1800$ ....can we disconect the fans with your firnware fo run the miner without fans? many thx and great job
thx for the great tutorial, thing is, i followed step by step and it works! partially. It did bypass the fan detection but one of my hashboard is dropped. In the kernel log it says "chain[J6] has 0 asics" while J7 and J8 have 63 asics. So i only have 2 hashboards that are running right now. Please help.
Hi alex, i didn't OC tho, all i needed was to disable the fan detection and thats the only thing i modified because one of the fan connector on the control board failed so I connect the fan directly to the PSU and it wouldnt mine. The boards were all good using official FW, turned out to be the modded code didnt work after all, the 2 working boards worked for several mins and died, no hashrate at all in the end. I gave up planing to just replace the control board.
Hi Kevin, is the board working with the old firmware? Are all three boards same version ? if you mix them then some might not get recognized. Another option, you overclocked too much with poor cooling and the board died. This is the down side of overclocking, you must provide proper cooling to make it work.
The asics are made for SHA256 in case of S9, so I would say not. We did not try, but it would be a waste of resources to try to experience with this without the support of the people which made the ASICS.
To have percentage you have 2 options. You create an event inside linux to reboot and set pool to your pool every day into config and mine xtime for you, or you modify bmminer to switch pool after a certain uptime and you reset the counter everyday. It's not easy to program and I cannot share this code as there's a lot of things to cover and tests which must be done. One time on an early prototype, the miners would get stuck on mining just for us or just for the client, so we used the second approach.
There's a 3rd approach that we are considering for the future, but is more complex. It requires a management software which will monitor the machines and switch pool automatically without rebooting and loosing 2-3 minutes for each machine. For 1 machine is not much, but for a 1000 machines you loose 50 hours of mining each time.
We can do all this work for you if you are interested, we charge fix amount per license. In case you are interested, let me know.
Hi, we work on our own firmware version which we license to big farms for now. In the future we may make a version open for public, but now we work with farms with 1000 or more machines to tune. We do advanced power consuming testing, temperature probing, hardware failure measurements, this is why we don't release a public version yet, as there are a lot of versions which perform differently when overclocked.
We cannot provide any more guidance in coding, I would advise looking for a C++ programmer which can use this video to build the firmware and can modify the source code.
Thank you very much for your tutorial! One question if you allow!
Is there any way to make a firmware file to overlock via "upgrade" option? I got a lot of machines, so it's complicated to do all stuff with each. Thank you in advance!
Hi, It's possible to do, but I did not made a video yet. I would advise looking into batch scripting as you could achieve this with python or other programming, to connect via ssh to the machine and copy the files automatically
Just heads up for ppl - when copying two lines to paste into Makefile make sure there are no additional spaces copied - just had compile error and figured it was an extra space after "XILINX_OTHER_LIB_BASE_PATH=$(CURDIR)/build-tools/prebuilt-libz/linux-armhf" line
Hi Sir, very appreciate of this video, but is too complicated. can u suggest how to disable fan check by just using winscp modify the bmminer.conf file? Bcos my control board keep fail 1 of the fan, but both the fan are new. and is too costly to repair the control board, hope you can help pls. Thank you sincerely!
Hi, can you tell me the version of the boards and the miner version? For this you need to check the sticker actually placed on the hashing boards. I believe those contain a different temp sensor which is not included in the firmware released on git. Some users claimed to have issues with the march 2018 batch. If I could get my hands on such a board I could bebug more and find a solution or contact bitmain to ask for the missing code (I already contacted them but they said all the code is already on git, without proof in my hand I cannot argue with that), but without a board that I can't do anything.
can u build firmware have a option “btc-address” on the miner configuration page
bcz we need the “btc-address” for solo mining local host
i can change the bmminer.conf and added “btc-address” but I don't think so worked
If stock market fluctuations keep you awake at night, it would be better not to throw yourself into buying stock.
Investing to pay for higher education for your children, to finance a sabbatical or your retirement involve different investment strategies .
To invest in the stock market , it is strongly recommended you have an investment horizon of at least 5 years .
Tools and tips.
2. Define the analysis method.
A variety of analytical tools are available to gain a better grasp of the plethora of economic and stock market information.
The quantitative method analyzes some economic variables to detect trends.
Complementary tools exist as well. Contact your financial institution to find out what tools are available to you.
Tools and tips.
This video introduces the analysis tools and methods you will need to make informed investment decisions.
3. Formulate an investment policy.
This involves setting a direction for your portfolio. The direction is based on 4 principles.
Diversification means a decline by some securities is offset by an increase by others.
Tools and tips.
This video will provide 4 key tips to managing your securities well.
4. Evaluate and monitor your portfolio.
Some events may prompt you to change your portfolio to keep it in line with your investment policy.
Tools and tips.
5. Improve your knowledge.
The investment world is changing constantly, which means you must update your knowledge continually. Rather than being satisfied with what you already know, keep on learning .
Tools and tips.
Investment Portfolio Management.
Investment Portfolio Management is the art of putting together and managing various investments to meet specific goals. We will examine management strategy choices, asset allocation and investing strategies, and management of risk as they pertain to management of an investment portfolio.
Passive management is for investors willing to accept market returns. Using a fixed asset allocation with a portfolio comprised of index funds would be examples of passive management.
Asset Allocation Strategies.
Strategic Asset Allocation.