[AX] BitAxe-Fix
> Versão V0.12

BitAxe-Fix: firmware Bitaxe sem bug de shares zeradas

BitAxe-Fix é um fork corrigido do ESP-Miner (bitaxeorg) para BM1366 / BM1368 / BM1370 (Gamma). Resolve uma regressão silenciosa de validação de nonce, além de hardening de segurança e um governador térmico gradual — tudo auditado linha a linha e documentado.

exclusivo deste fork

Telemetria por MQTT. Cada Bitaxe publica hashrate, temperatura, potência e shares num tópico próprio — com TLS. Dá para acompanhar o parque inteiro num painel, alarme ou planilha, sem ficar abrindo a interface de cada aparelho. como funciona →

Resultados reais, direto do hardware

Dois Bitaxe Gamma (BM1370, board 601) a 600 MHz / 1200 mV — capturado direto da API, sem retoque.

bitaxe01 · 115200 8N1
hash1,17 TH/salvo 1,224
eficiência16,43 J/THalvo 15,68
erro0,00%
shares42.991137 rej.
uptime1 Dia 22 Horas
bitaxe02 · 115200 8N1
hash1,20 TH/salvo 1,224
eficiência19,73 J/THalvo 19,31
erro0,90%
shares45.55962 rej.
uptime1 Dia 22 Horas

Os números vêm da telemetria que cada Bitaxe publica via MQTT

O que mudou em relação ao original

11 correções sobre a v2.15.1 oficial, mais uma funcionalidade que o upstream não tem, agrupadas por natureza. Os três críticos vêm primeiro: são os que afetam quem já está minerando hoje.

crítico 3

Afetam quem já está minerando: shares perdidas, hardware em risco, travamento.

crítico

Shares zeradas com version-rolling

Com version-rolling negociado, BM1366/68/70 podiam validar nonces usando o midstate SHA-256 errado: hashrate normal na tela, mas zero shares aceitas e nenhum log de erro. Corrigido com um sentinela explícito de "midstate não aplicável".

crítico

Envelope de tensão e frequência por ASIC

O original aceita qualquer valor via API: {"coreVoltage":1999} aplica 1,999 V num chip de 1,15 V, sem barreira no servidor. Aqui cada ASIC tem um envelope próprio — só os presets sem overclockEnabled, teto absoluto por chip com ele — imposto no HTTP, no BAP e também sobre valores já gravados na NVS.

crítico

Uso de memória liberada no Stratum

A troca de extranonce e o encerramento de uma conexão Stratum V2 podiam liberar ponteiros ainda em uso por outra tarefa, derrubando o firmware a partir de dados vindos da pool. Corrigido com locks dedicados e cópias locais em todos os leitores.

estabilidade 3

Mantêm o aparelho de pé e dentro dos limites térmicos e elétricos.

estabilidade

Governador térmico gradual

O original corta a mineração de forma abrupta ao esquentar. Aqui a frequência é reduzida progressivamente conforme a temperatura sobe, evitando paradas totais desnecessárias.

estabilidade

Throttle por queda de tensão de entrada

Reduz a frequência do ASIC automaticamente quando a fonte de 5V começa a cair, evitando reinícios por brownout em vez de só reagir depois que o reset já aconteceu.

estabilidade

Sensores mudos viram falha explícita

Os drivers devolviam o último valor bom quando o sensor parava de responder, então um sensor de temperatura morto deixava o firmware em frequência cheia sem nenhuma proteção térmica. Agora vira falha de hardware declarada, com ventoinha a 100%, e o throttle por tensão é suspenso enquanto a leitura estiver velha.

segurança 2

Endurecem o que processa dado vindo da rede e do próprio ASIC.

segurança

Parsing de rede endurecido

Correção de estouro de buffer no scan Wi-Fi (redes com mais de 20 SSIDs visíveis), de um bug de sinal no parser DNS do portal cativo, e de leituras fora de limite no parsing da coinbase da pool.

segurança

Drivers de ASIC e sensores mais defensivos

Checagens de nulo e de limites nos drivers BM13xx, no regulador TPS546 e no cálculo de RPM dos fans — eliminando cenários de crash/reset espúrio observados em auditoria de código.

frontend 3

Corrigem a interface AxeOS servida pelo próprio aparelho.

frontend

Vazamento de inscrição no AxeOS

Corrigido um vazamento de subscription no editor de dispositivos do modo swarm que podia disparar gravações de configuração indevidas ao trocar de dispositivo na interface.

frontend

Senha do pool preservada ao salvar

Salvar a página de pools sem redigitar a senha gravava o literal "x" e derrubava a conexão com a pool. O campo em branco agora mantém a senha já armazenada.

frontend

Varredura do swarm não derruba mais a interface

A busca por dispositivos abria até 256 conexões simultâneas contra um servidor que aceita 20, expulsando o próprio WebSocket da sessão. Concorrência reduzida, contagem regressiva pausada com a aba oculta e listas que não são mais recalculadas a cada ciclo de renderização.

novidade 1

Não existe no upstream: foi construída neste fork.

novidade

Telemetria por MQTT

Cada aparelho publica hashrate, temperaturas, potência, shares e uptime num broker MQTT externo, por TLS 1.2 — levando os números para fora da rede local sem abrir porta no roteador.

Tópico bitaxe/<identificação>/telemetry, com identificador único derivado do MAC e editável na tela. Intervalo configurável, padrão 30 s.

A mineração nunca depende do broker: se ele cair, o hash continua, o log não é inundado e a publicação volta sozinha em segundos assim que a rede retorna.

Download

Baixe os dois arquivos abaixo (firmware + interface web) e envie pela própria interface do Bitaxe, sem cabo USB — o passo a passo está logo depois dos downloads.

Nota de correção — V0.12 · 25/10/2026

Na V0.11, que este site distribuiu até 25/10/2026, o AxeOS não abria: o navegador entrava num loop de redirecionamento. O firmware registrava mais rotas do que o servidor HTTP aceita, e a última, justamente a que serve a interface, ficava de fora sem nenhum aviso. A V0.12 abaixo amplia esse limite e passa a verificar o registro dessa rota.

Está com uma versão baixada antes de 25/10/2026 e a interface não abre? A API continua respondendo. Baixe o esp-miner.bin abaixo e, de um computador na mesma rede, rode na pasta onde ele foi salvo:

curl --data-binary "@esp-miner.bin" http://IP_DO_BITAXE/api/system/OTA

No Windows, digite curl.exe em vez de curl. O Bitaxe reinicia sozinho com a V0.12. Com a interface de volta, envie o www.bin pela tela Update para deixar o AxeOS na mesma versão.

.bin

esp-miner.bin

Firmware principal — versão V0.12 · 1,68 MiB · offset 0x10000

sha256 c1087399e6145301694a8ec8f9ad5523722856f5f79a3c1c9cd328ccd64d0f0c

baixar
.bin

www.bin

Interface web AxeOS embutida — 3,00 MiB · offset 0x410000

sha256 1701c40c63f125c9267632b1fb5027180dd8987f63f9916d234d3b5fcece94a0

baixar

Também disponível no GitHub, com o código-fonte e as notas desta versão: github.com/maqconnectsolucoes/bitaxe-fix

Confira o hash dos dois arquivos antes de gravar — o comando muda conforme o sistema:

  • Windows certutil -hashfile esp-miner.bin SHA256
  • Linux sha256sum esp-miner.bin www.bin
  • macOS shasum -a 256 esp-miner.bin www.bin

Como atualizar pela interface do Bitaxe

O AxeOS recebe os arquivos pela rede e a atualização não apaga as configurações (pool, carteira, Wi-Fi, frequência/tensão). Este é um fork não-oficial — use por sua conta e risco.

  1. Baixe esp-miner.bin e www.bin e confira o hash. Não renomeie os arquivos: a interface só aceita esses nomes exatos. Se o navegador salvar como www (1).bin, renomeie de volta.
  2. No navegador, abra http://IP_DO_BITAXE e clique em Update no menu lateral.
  3. Primeiro a interface: no quadro Update AxeOS, clique em Browse e escolha www.bin. Espere a mensagem AxeOS updated; a página recarrega sozinha.
  4. Depois o firmware: no quadro Update Firmware, clique em Browse e escolha esp-miner.bin. Espere Device has been successfully restarted.
  5. Na mesma tela, confira que Current Version mostra V0.12.

A ordem importa: com a interface enviada primeiro, o firmware novo já reinicia junto do AxeOS da mesma versão. Não desligue o Bitaxe da energia enquanto a barra de progresso estiver andando. Se o envio do esp-miner.bin cair no meio, o aparelho continua com o firmware anterior; se cair o do www.bin, a interface pode ficar inacessível — nesse caso, grave por USB.

Para voltar ao firmware oficial, baixe esp-miner.bin e www.bin da release oficial no GitHub e envie pela mesma tela Update, na mesma ordem.

Sem acesso à interface? Gravar por USB

Com o esptool ou o ESP Web Flasher, cada .bin vai num endereço diferente da flash. Gravar no offset errado derruba o aparelho — confira antes de dar enter:

  • esp-miner.bin → 0x10000 (partição factory)
  • www.bin → 0x410000 (partição www)

Com o esptool, os dois arquivos numa tacada só:

esptool --port COM3 write-flash 0x10000 esp-miner.bin 0x410000 www.bin

Em versões mais antigas do esptool o comando é esptool.py e o subcomando usa underscore (write_flash) — os endereços são os mesmos. No ESP Web Flasher, informe esses offsets nos campos de endereço de cada arquivo.

Apoie o projeto

Manter e auditar este firmware leva tempo. Se este trabalho te ajudou, uma forma de apoiar sem custo extra é comprar pelo link de afiliado abaixo.

Minerador Bitcoin Bitaxe Gamma 601 — 1,5 TH/s, 25W

O mesmo hardware (BM1370) para o qual este firmware corrigido foi auditado e testado.

ver preço atual na loja

Ver no aliexpress

Divulgação: este é um link de afiliado. Ao comprar por ele, você não paga nada a mais e ainda ajuda a manter este projeto.