Skot 7dcb69ebdc
GammaTurbo support and HW abstraction (#698)
* initial changes for the gammaturbo bringup
* added preliminary TPS546 changes
* added preliminary EMC2103 support
* ASIC temp seems to be maybe working.
* magically now fan seems to have the right polarity
* added in ideality and beta constants (currently unused). Fixed EMC2103_get_fan_speed()
* abstract fan and ASIC temp into thermal functions
* abstracted voltage regulator specifics out of tasks and into power.c and vcore.c functions
* add TPS546 support for multiple models
* move TPS40305/DS4432U vout setter to DS4432U.c
* move all ASIC specific functions to asic.c
* bad device_model nvs handling
* remove old code
* add workaround for TPS546 VIN_UV_WARN_LIMIT silicon bug.
2025-02-11 22:46:56 -05:00
2025-01-04 20:59:53 +01:00
2025-01-27 18:25:38 +01:00
2025-01-04 01:53:56 +01:00
2025-01-27 18:25:38 +01:00
2025-01-27 18:25:38 +01:00
2023-09-07 11:44:18 -04:00
2024-06-11 10:14:30 +02:00
2023-08-26 12:21:41 -04:00
2024-09-21 01:01:38 -04:00
2023-07-01 14:34:26 -04:00
2023-07-01 14:16:04 -04:00
2024-09-20 21:50:14 -04:00
2023-08-26 12:21:41 -04:00
2025-01-13 17:07:34 -05:00

GitHub Downloads (all assets, all releases) GitHub commit activity GitHub contributors

ESP-Miner

esp-miner is open source ESP32 firmware for the Bitaxe

If you are looking for premade images to load on your Bitaxe, check out the releases page. Maybe you want instructions for loading factory images.

Bitaxetool

We also have a command line python tool for flashing Bitaxe and updating the config called Bitaxetool

Bitaxetool Requires Python3.4 or later and pip

Install bitaxetool from pip. pip is included with Python 3.4 but if you need to install it check https://pip.pypa.io/en/stable/installation/

pip install --upgrade bitaxetool

The bitaxetool includes all necessary library for flashing the binaries to the Bitaxe Hardware.

  • Flash a "factory" image to a Bitaxe to reset to factory settings. Make sure to choose an image built for your hardware version (401) in this case:
bitaxetool --firmware ./esp-miner-factory-401-v2.4.2.bin
  • Flash just the NVS config to a bitaxe:
bitaxetool --config ./config-401.cvs
  • Flash both a factory image and a config to your Bitaxe: note the settings in the config file will overwrite the config already baked into the factory image:
bitaxetool --config ./config-401.cvs --firmware ./esp-miner-factory-401-v2.4.2.bin

AxeOS API

The esp-miner UI is called AxeOS and provides an API to expose actions and information.

For more details take a look at main/http_server/http_server.c.

Things that can be done are:

  • Get System Info
  • Get Swarm Info
  • Update Swarm
  • Swarm Options
  • System Restart Action
  • Update System Settings Action
  • System Options
  • Update OTA Firmware
  • Update OTA WWW
  • WebSocket

Some API examples in curl:

# Get system information
curl http://YOUR-BITAXE-IP/api/system/info
# Get swarm information
curl http://YOUR-BITAXE-IP/api/swarm/info
# System restart action
curl -X POST http://YOUR-BITAXE-IP/api/system/restart

Administration

The firmware hosts a small web server on port 80 for administrative purposes. Once the Bitaxe device is connected to the local network, the admin web front end may be accessed via a web browser connected to the same network at http://<IP>, replacing IP with the LAN IP address of the Bitaxe device, or http://bitaxe, provided your network supports mDNS configuration.

Recovery

In the event that the admin web front end is inaccessible, for example because of an unsuccessful firmware update (www.bin), a recovery page can be accessed at http://<IP>/recovery.

Development

Prerequisites

Building

At the root of the repository, run:

idf.py build && ./merge_bin.sh ./esp-miner-merged.bin

Note: the merge_bin.sh script is a custom script that merges the bootloader, partition table, and the application binary into a single file.

Note: if using VSCode, you may have to configure the settings.json file to match your esp hardware version. For example, if your bitaxe has something other than an esp32-s3, you will need to change the version in the .vscode/settings.json file.

Flashing

With the bitaxe connected to your computer via USB, run:

bitaxetool --config ./config-xxx.cvs --firmware ./esp-miner-merged.bin

where xxx is the config file for your hardware version. You can see the list of available config files in the root of the repository.

Note: if you are developing within a dev container, you will need to run the bitaxetool command from outside the container. Otherwise, you will get an error about the device not being found.

Attributions

The display font is Portfolio 6x8 from https://int10h.org/oldschool-pc-fonts/ by VileR.

Description
A bitcoin ASIC miner for the ESP32
Readme GPL-3.0 11 MiB
Languages
C 51.7%
SCSS 30%
TypeScript 11.7%
HTML 4%
Python 1%
Other 1.6%