We apologize but this page is available only in English.
Product Updates

Development Update: Braiins OS 20.04

Community update on the bug fixes, user experience improvements, and new features included in our latest Braiins OS release.

Published on Jun 17, 2020
Published on Jun 17, 2020

Table of Contents

Since the launch, there has been a huge amount of feedback from miners, both happy testimonials and pain points to work on. We want to keep the community informed about how we will address this feedback as we continue to make Braiins OS better, so we will now begin publishing regular development updates.

In each update, we’ll tell you what’s changed from the previous releases and what our development team is currently working on. This update will be focused on our latest release, Braiins OS and Braiins OS+ 20.04. As always, you can send us your feedback either in our telegram group or via a support ticket.

Before we get into details of the firmware update, a couple of important public service announcements.

Is Braiins OS Fully Open-Source?

Short answer: yes.

One potentially confusing thing that we want to clarify for developers who are interested in building our code from sources is that we run the synthesis of the FPGA firmware components manually and commit the results into the binary repository in order to make our build process more efficient. Anybody who doesn’t mind the timely synthesis process can build absolutely everything from sources themselves by following our FPGA documentation which contains run.sh in the design folder to run the synthesis.

If you are a novice developer or otherwise need further assistance with building Braiins OS fully from sources, please open a support ticket and we can help.

CGminer, BOSminer, and GPL Compliance

There has also been some discussion recently amongst miners about GPL compliance when it comes to CGminer. We want to be clear about how this applies to Braiins OS.

Up until our latest major release (March 2020), Braiins OS was built on top of CGminer, which was using Bitmain’s FPGA code as a backend. This component from Bitmain was closed. We built BOSminer from scratch to replace CGminer in order to make everything open-source, including replacing the previously closed FPGA IP core with our own open core.

In other words, the above paragraph simply means that Braiins OS users do not need to worry about this GPL matter because we are not using CGminer or Bitmain’s FPGA IP core.

Additionally, it should be noted that we own the IP for BOSminer and we have a contributor license agreement in place for it. Braiins OS is released free of charge under the GNU GPLv3, while Braiins OS+ has its own software license agreement. We reserve the right to use this software however we see fit, including providing commercial licensing to individuals should they be interested. If any hardware manufacturers want to implement BOSminer, we will be happy to accept their commits to the public repository and keep this open standard for the mining community through the contributor license agreement.

We are focused on continuing to develop our products and supporting our users as best as we can. What others in the industry do in regards to this matter is up to them.

Changelog 20.04

This release covers mostly user facing issues, installation/deinstalation difficulties and 1 major problem with I2C controller on S9's. Also, we now have nightly builds that are easy to enable via bos tool.

All mining hardware types

[feature] support for reconnect - we have implemented support for client.reconnect (stratum V1) and reconnect message for V2
[feature] installation/deinstallation (aka upgrade2bos and restore2factory) process (transition from factory firmware to Braiins OS or vica versa) has been improved:
[feature] custom pool user (--pool-user) can be set on command line
[feature] pool settings from the factory firmware are now automatically being migrated to BOSminer configuration. Migration can be disabled by specifying (--no-keep-pools)
[feature] we now provide binary form of upgrade2bos (based on pyinstaller) that contains the latest Braiins OS installation image
[feature] similarly, restore2factory (based on pyinstaller) is now available in binary form and doesn't require any longer downloading/finding out the correct factory firmware.
[feature] disk space and time consuming backup of the original firmware is now disabled by default (can be enabled by --backup)
[feature] keeping host name while performing first time install is now driving by 2 options --keep-hostname and --no-keep-hostname allowing to force override and automatic hostname generation based on MAC address
[feature] support for enabling/disabling nightly builds has been integrated into bos utility (and its legacy miner counterpart).
[feature] system now provides logs covering longer timespan of BOSminer operation due to enabling log rotation and compression of '/var/log/syslog.old' when it is bigger than 32 KiB
[bug] SD card image now contains slushpool authority public key that was missing
[bug] rejection rate is now correctly being displayed
[bug] unknown stratum V1 messages received from the server are now being logged for diagnostics

Antminer S9

[feature] Tuner status is now shown in the GUI. TUNERSTATUS API command was added.
[bug] some devices were experiencing random I2C controller bus lockups and would fail to communicate with hashboard power controllers connected to the shared I2C bus. We have found out that the cause was the Xilinx I2C controller core that we have integrated into the FPGA bitstream. We have switched to the I2C present in the SoC and the bitstream only routes the signal of the peripheral (IIC0) to corresponding FPGA pins.
You can view the changelog also in our documentation.
See the full changelog

Pain Points and Bugs

We’d like to thank everybody who has tested Braiins OS and Braiins OS+ and provided feedback. The response from the community is greatly appreciated! What follows is a breakdown of what we’ve done to address the most prominent feedback.

[UX IMPROVEMENTS] Difficulty installing and uninstalling. 

Full description: The installation and uninstallation processes were not as easy as they could be, and we don’t have detailed troubleshooting guides or instructional videos published yet.

We have taken several steps to improve this experience for users. There’s now a new SD card image which will copy all current configuration parameters automatically (i.e. no IP changes, same pool settings, etc.). Additionally, we have built a new web package image which can be used on pre-2019 stock firmwares to install Braiins OS via web interface. The SSH installation script (upgrade2bos.py) has also been enhanced to copy current configuration parameters and allow you to edit them during the install process, while the downgrade to stock (restore2factory.py)  process has been enhanced as well. Finally, we’ve created a new tool called BOS toolbox which is a batch configuration script that allows multiple devices to more easily be configured simultaneously.

Note that we are still planning to create install videos and troubleshooting guides, but this has been delayed until the quarantine is over and we can meet to work on everything together. 

[FIXED] Incorrect handling of temperature sensor response.

Full description: There is a bug in the code that handles I2C communication with temperature sensors and shuts down miners in case of erroneous temperature readings. This is only happening on a few machines, but it is a critical bug because it is causing extra downtime whenever it occurs. 

We discovered that this was an issue with the Xilinx I2C controller core that we have integrated into the FPGA bitstream. We’ve switched to the I2C present in the SoC and the bitstream only routes the signal of the peripheral (IIC0) to corresponding FPGA pins. In other words, this issue should no longer occur with the latest release.

[FIXED] BOSminer crash / restart at maximum frequency.

Full description: BOSminer would sometimes crash when the maximum voltage (at 850 MHz) had been reached during the autotuning process. The autotuner would also stop operating when the minimum and maximum frequencies were reached. This has been fixed and the searchable frequency range has been expanded to 155 MHz as a minimum for low power mode and 950 MHz for overclocking.

[FIXED] Rejection rate reported incorrectly.

Full description: The reported rejection rate in the GUI was multiplied by 100, making it appear to be critically high until the miner looks at the actual rejected share amount compared to the total submission amount and realizes that the percentage is reported incorrectly. This has been fixed.

Feature Requests

[NEW] Make autotuning status clear in the GUI and available through the API. 

Full description: In the initial release, users had to look for the word “TUNE” in their logs to see clearly whether the tuning is finished or still in progress. Many users have requested that we add a tuning indicator to the GUI so that it is obvious when the tuning is ongoing, and we have done so in the latest release. Additionally, the TUNERSTATUS API command has been implemented which provides details about the tuning stage, duration, estimated power consumption, etc.

[NEW] Add absolute minimum frequency constraint.

Full description: Without a minimum frequency constraint, the autotuning process may search for optimal performance in a frequency range that cannot be used to hash effectively. Setting an absolute minimum frequency (which we’ve done at F155 MHz) will prevent the autotuning process from wasting time in this ineffective lower range. 

[NEW] Nightly builds.

Full description: Releasing “nightly” builds in between major releases makes bug fixes and new features available to the community faster. Our first nightly build was released on April 14th, and we will continue publishing them regularly going forward, (although it’s not actually every night). It should be noted that nightly builds have limited test coverage, so we advise miners to only update a few devices at first to test before rolling it out to a higher number of units. You can select whether or not you want to use the nightly builds in the BOSminer configuration.

[NEW] Tech support in more languages.

Full description: We now have Braiins OS telegram groups for Spanish, Russian, and Chinese. Feel free to provide feedback and ask questions in whichever language you are most comfortable. You can find the links to every language community in the pinned message of the main group: https://t.me/BraiinsOS.


Please note that the above does not include ALL feedback we’ve collected, but it is an overview of the highest priority tasks. In other words, don’t worry if you don’t see something you’ve discussed with us on this list. The full changelog can be found here.

One feature request that we haven't implemented yet is saving autotuning results when devices power off or reboot. This is one of our highest priorities for the next nightly build.

With the halving now just a couple of weeks away, we will turn more attention towards supporting the newer generation hardware such as the S17, T17, and M20s. However, this doesn’t mean that we will stop improving the S9 firmware, as those improvements will translate forward to the new hardware as well. 

We currently have Braiins OS with BOSminer running on an S17, but there is still a lot to do in order to make it enterprise-ready. There is no ETA yet for new-gen support, but you can sign up to get notified when we make a release.

Get notified when we release new update

By subscribing you are agreeing to our Privacy Policy
Wohoo! You're subscribed, we'll be in touch soon.
Something went wrong. Please try again.
Share now

About Braiins

Operators of Slush Pool. Creators of Braiins OS+ autotuning firmware & a fully open-source mining stack: Braiins OS + BOSminer + Stratum V2.

Still scrolling?
Keep reading!