/bitaxe

Open source Bitcoin miner hardware using BM1397 ASICs

MIT LicenseMIT

Closed Source is Antithetical to Bitcoin

Presenting: The bitaxe

bitaxe is the first fully open source hardware Bitcoin ASIC miner. bitaxeMax assembled

Goals

  • Standalone: can mine directly to your pool over WiFi. No External computer needed.
  • Embedded: low cost, low maintenance, high availability, high reliability, low power.
  • ASIC: based on the very efficient BM1397 from Bitmain.
  • Versatile: solo/pool mining, autotune power/heat/efficiency.
  • Open Source: All design files are provided.

Features

  • ESP32-S3-WROOM-1 wifi microcontroller on board
  • TI TPS40305 buck regulator steps down the 5V input to power the BM1397
  • Maxim DS4432U+ current DAC digitally adjusts the BM1397 core voltage from 0.04V to 2.4V
  • TI INA260 power meter measures the input voltage and current of the miner
  • Microchip EMC2101 measures the BM1397 internal diode temperature. Also PWM controls the fan and monitors tach output.
  • Two sweet RGB status LEDs
  • 0.91" SSD1306 OLED I2C Display Module

BM1397

BM1397 pic

  • The BM1397 is a undocumented SHA256 mining ASIC from Bitmain. It's mostly used in the Antminer S17 and T17
  • Bitmain claims the BM1397 has 0.03J/GH efficiency
  • The BM1397 is available (new) for around $20 each and (used) for around $6 ea in small quantities.
  • Choose your BM1397 version: Guide here
  • The BM1397 has the same footprint as the BM1387, but a very different pinout.
    • It also has two "Modes" that change some of the signal pins around to make chaining easy
  • The BM1397 is driven by an undocumented protocol over UART. Baudrate is 115200bps by default but can go up to 6Mbps in order to provide mining jobs quickly enough to the ASIC daisy-chain.

Current Status

  • v2.2 hardware has been built and tested -- it works!
  • Using cgminer on a separate computer, the bitaxe can mine in excess of 400 GH/s
  • ESP32 miner firmware is still underdevelopment.
    • Recently we have confirmed this is working! But it is not yet optimized. Check out ESP-Miner for the latest.
  • This is an advanced build! It's also still early days, so prolly not the best thing if you're just looking for a bitcoin miner to run.

Hardware

  • BM1397 from random AliExpress seller. I got the "AG" variant. Not really sure what the difference is.
  • 40x40mm heatsink and 5V fan from a random AliExpress seller. At least half of these arrived broken in some way. But they are cheap and the working ones do keep the BM1387's nice and cool when used with some thermal compound.
    • Swap this fan with the Noctua NF-A4x10 5V 4-Pin fan for a much more pleasant experience.
  • The BM1397 serial port is 1.8V. These pins are broken out, but the main idea is to communicate with the BM1397 from the ESP32
  • Level shifters to interface the 1.8V BM1397 with the 3.3V ESP32. These pins are also broken out.
  • KiCad 7 design files
  • All of the parts on the board are listed in the KiCad BOM

Software

  • ESP-Miner firmware in progress.
    • check out the i2c_test branch for a basic firmware to init all hardware (besides BM1397)
    • check out the nonce_checking branch for the latest developments in the ESP32 miner

Testing

One of the best ways currently to test a new bitaxe is with a usbserial adapter and cgminer running on a separate computer.

  • You need a basic firmware running on the ESP32 that will power up the ASIC. ESP-Miner i2c_test is good for this.
  • You need a 1.8V ftdi usbserial adapter. there are several on Amazon based on the FT232RL and one called "jim.sh" built on the FT230X
    • Connect the usbserial adapter to the 1.8V serial debug header on the bitaxe. It's the one below the heatsink next to the fan connector.
      • Make sure to connect the usbserial adapter RTS line to the bitaxe RST pin. Yes, that spelling is correct.
  • Download and build the cgminer-bitaxe fork.
    • This fork has a modified version of the GekkoScience CompacF driver to look for FT232RL or FT230X usbserial adapters and use the RTS signal for RST.

Power Supply Requirements

ESP32 Programming Requirements

To program the onboard ESP32, you need the following tools;

Connections

bitaxeMax KiCad render

Power Input

Pin Name Description
+5V Main input. This should be 5V, 15W
GND Main input ground

Building