The road to Cobalt: First months of Braiins OS
It’s been more than a month since our rushed release of bOS upgrade with AsicBoost support for S9. This post summarizes the sequence of events that lead us to put even more effort into making the feature available to the general public.
As a software group actively working on support for various mining devices to seamlessly operate with Slush Pool, we have been constantly struggling with supporting OEM firmware. At some point, we have made a decision that it may be more efficient to replace the OEM firmware in popular mining devices completely.
The idea was to bring the quality level to a new industry standard. The idea of Braiins OS was born. The next step was to decide which devices to support first. The choice was fairly simple — we chose Antminer S9 as one of the most frequently used machines and DragonMint T1 as something that we have been reviewing and providing support for.
October 19th: Asic Boost Analysis Report for S9's
As part of the ongoing effort, we have analyzed the available bmminer sources and performed quite a few experiments trying to verify the ‘AB’ capabilities of the hashing chips. In a very short time, it was quite obvious that the chips are capable of running in reduced power consumption mode as long as they are supplied with multiple SHA256 midstates at a time (see AsicBoost whitepaper for details).
Our analysis confirmed many rumours found on the Internet. These rumours were claiming there was such a feature, it just didn’t work as expected. The main obstacle in enabling AB on S9’s was a ‘bug’ in the bitstream for the S9 FPGA, that was (intentionally?) rolling incorrect bits of the version field. We have decided to start working on our own open source FPGA bitstream. However, it was more important to fulfill our promise to integrate factory bitstream as soon as the manufacturer publishes it.
October 22nd: Bitmain magically reacts, providing ‘fixed’ bitstream
As expected, Bitmain reacted very quickly in providing a so-called low power firmware that had the magically fixed FPGA bitstream code rolling the correct/permitted block version field bits. We have spent the next 2 days to integrate full BIP310 support into bmminer code.
October 24th: bOS Wolfram released with the AB support for S9's
Even though the bOS firmware for S9 was not still to our liking (it was missing some important features like per chip frequency setting, better telemetry data, Awesome miner integration), we couldn’t wait any longer with the release. It was far more important to provide an open-source alternative with AB support to the general public.
December 5th: Welcome bOS Cobalt
November was finally a month where we could focus on implementing some of the awaited features. The most wanted feature being the S9 automatic per-chip frequency calibration mechanism. This feature takes factory calibration values that are stored in each hashboard and sets the PLL (phase-locked loop) of each chip accordingly. Thus, achieving optimum performance. At the same time, we allow the users to override this setting specifying per-chain enforced chip frequency and voltage.
Furthermore, we have reworked the miner status page to provide real-time statistics, hourly hardware error rates and more. This unified status page is now common for DragonMint T1 as well as S9's.
We have also spent a considerable amount of time with upgrade2bos.py — the tool for transforming a factory firmware unit to bOS. The main improvements include:
- retention of network settings (some bigger sites use static IP’s)
- optional hostname retention (checkout the — keep-hostname parameter)
- optional skipping of full firmware dump (for size and speed reasons when upgrading large farms)
We have also collaborated with Awesome Miner developers to enable native support for bOS based devices (included in recently released Awesome Miner v 6.0).
December 6th: LaBITconf announce and a small present to Bitmain
We have decided to go public with the Cobalt release during our participation at laBITconf in Chile.
I was also invited to a miner panel along with Bitmain and Antpool representatives. The discussion was spinning partially around our release of Asic Boost analysis report, Bitmain’s future intentions in terms of openness.
The overall conclusion was very positive as Bitmain has committed to providing information about their products so that open source initiatives like ours could integrate support for cutting edge technology in timely manner. Let’s see how this is going to work in practice, overall diversity in the ecosystem is highly desirable even in the field of 3rd party mining software.
At the very end of the discuss, I found it very appropriate to provide Bitmain representatives a taste of bOS and gifted them a set of demo SD card’s with bOS Cobalt release. :)
What’s next on the roadmap
December is planned on gathering user feedback, fixes and implementing manual fan controls — yes there are farms out there that demand to disabling automatic fan speed control as it disturbs their airflow systems. A rather big research task is to start looking into more mining hardware devices (currently in the SHA256 field). Stay tuned.
— Jan Čapek (@janbraiins), Braiins CEO and Braiins OS architect