Bitcoin Forum
June 14, 2025, 11:40:32 AM *
News: Latest Bitcoin Core release: 29.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3]  All
  Print  
Author Topic: The bitaxeSupra: Open source Bitcoin miner based on the BM1368 ASIC  (Read 1378 times)
cygan (OP)
Legendary
*
Online Online

Activity: 3556
Merit: 10358


Top-tier crypto casino and sportsbook


View Profile WWW
March 29, 2024, 08:24:01 AM
 #41

a picture has appeared on twitter showing the new bitaxeSupra with a mining performance of 1.2 th/s Shocked
unfortunately it is not known which cooling and how the bitaxeSupra has been modified


https://twitter.com/snowyena/status/1773406128832987363

██████▄██▄███████████▄█▄
█████▄█████▄████▄▄▄█
███████████████████
████▐███████████████████
███████████▀▀▄▄▄▄███████
██▄███████▄▀███▀█▀▀█▄▄▄█
▀██████████▄█████▄▄█████▀██
██████████▄████▀██▄▀▀▀█████▄
█████████████▐█▄▀▄███▀██▄
███████▄▄▄███▌▌█▄▀▀███████▄
▀▀▀███████████▌██▀▀▀▀▀█▄▄▄████▀
███████▀▀██████▄▄██▄▄▄▄███▀▀
████████████▀▀▀██████████
 BETFURY ....█████████████
███████████████
███████████████
██▀▀▀▀█▀▀▄░▄███
█▄░░░░░██▌▐████
█████▌▐██▌▐████
███▀▀░▀█▀░░▀███
██░▄▀░█░▄▀░░░██
██░░░░█░░░░░░██
███▄░░▄█▄░░▄███
███████████████
███████████████
░░█████████████
█████████████
███████████████
███████████████
██▀▄▄▄▄▄▄▄▄████
██░█▀░░░░░░░▀██
██░█░▀░▄░▄░░░██
██░█░░█████░░██
██░█░░▀███▀░░██
██░█░░░░▀░░▄░██
████▄░░░░░░░▄██
███████████████
███████████████
░░█████████████
Skot
Full Member
***
Offline Offline

Activity: 236
Merit: 251

bitaxe.org


View Profile
March 29, 2024, 12:27:41 PM
Merited by vapourminer (1)
 #42

a picture has appeared on twitter showing the new bitaxeSupra with a mining performance of 1.2 th/s Shocked
unfortunately it is not known which cooling and how the bitaxeSupra has been modified


https://twitter.com/snowyena/status/1773406128832987363

It’s unlikely that’s the sustained hashrate. In fact, D-Central the company that made this unit says the following;

Quote
Beautiful shot! Give it time, it will normalize the hashrate haha, but some of them can maintain 800GH/s. Very impressed with the BM1368 chips so far.
Powell
Sr. Member
****
Offline Offline

Activity: 486
Merit: 262

rm -rf stupidity


View Profile
March 29, 2024, 03:02:39 PM
 #43

I have 5x 401’s right now.  I’ve had a few of those big 1.2-1.4th but 3 of the 5 hover above 820-850gh and the other 2 are all in the high 700s (780-790). 625MHz and 1250 for voltage.
B_T_C
Newbie
*
Offline Offline

Activity: 12
Merit: 1


View Profile
August 14, 2024, 10:33:30 AM
Last edit: August 14, 2024, 10:59:33 AM by B_T_C
 #44

Hey cygan, thanks for the shout out! It's true the new Bitaxe is called the bitaxeSupra and it features the BM1368, the ASIC from the S21.

As some people have mentioned, it's hard to get the chips right now, because it's so new. I'm sure that will change soon enough. This is exactly how things went for the BM1366 from the S19XP.

The bitaxeHex development continues with the BM1366 for now, because of chip availability and the fact that some work still remains on the BM1368 protocol.

As always, check out the OSMU Discord for more! Invite link at bitaxe.org

Hey Skot, thanks for your great contribution to bring back open source to bitcoin mining! I just bought 2 supras and already hit a best share of almost 1B.  Grin
I'm soon going to build two further ones myself. Getting closer to the 1.000.000 mark...  Grin
cygan (OP)
Legendary
*
Online Online

Activity: 3556
Merit: 10358


Top-tier crypto casino and sportsbook


View Profile WWW
August 18, 2024, 02:49:53 PM
 #45

i can now also count myself among the bitaxe community Cool
since yesterday i have been running a Qaxe+, which is operated with 4 1368 chips and controlled via the raspberry pi

so far i am very satisfied with the design, the very good manufacturing and of course the hash performance




██████▄██▄███████████▄█▄
█████▄█████▄████▄▄▄█
███████████████████
████▐███████████████████
███████████▀▀▄▄▄▄███████
██▄███████▄▀███▀█▀▀█▄▄▄█
▀██████████▄█████▄▄█████▀██
██████████▄████▀██▄▀▀▀█████▄
█████████████▐█▄▀▄███▀██▄
███████▄▄▄███▌▌█▄▀▀███████▄
▀▀▀███████████▌██▀▀▀▀▀█▄▄▄████▀
███████▀▀██████▄▄██▄▄▄▄███▀▀
████████████▀▀▀██████████
 BETFURY ....█████████████
███████████████
███████████████
██▀▀▀▀█▀▀▄░▄███
█▄░░░░░██▌▐████
█████▌▐██▌▐████
███▀▀░▀█▀░░▀███
██░▄▀░█░▄▀░░░██
██░░░░█░░░░░░██
███▄░░▄█▄░░▄███
███████████████
███████████████
░░█████████████
█████████████
███████████████
███████████████
██▀▄▄▄▄▄▄▄▄████
██░█▀░░░░░░░▀██
██░█░▀░▄░▄░░░██
██░█░░█████░░██
██░█░░▀███▀░░██
██░█░░░░▀░░▄░██
████▄░░░░░░░▄██
███████████████
███████████████
░░█████████████
kekeck33
Jr. Member
*
Offline Offline

Activity: 59
Merit: 1


View Profile
August 18, 2024, 04:04:07 PM
 #46

Where to buy (in EU)?
jeyzeus
Member
**
Offline Offline

Activity: 82
Merit: 52


View Profile
August 26, 2024, 07:47:25 AM
 #47

i've been able to get ~1.1 TH stable on my single chip bitaxe supra, been running it over a week with no issues. def not with the stock PSU though, i got a 5V switching power supply off amazon. nothing fancy for cooling. literally just an extra arctic USB fan pointed at it.

settings:
850 Mhz
1350 core voltage
Temps: 65-68° C
Power: 27W-30W (not including extra fan)

Ambient/Room Temp: 70-80° F

pretty sick ngl. was also able to take a bitaxe ultra to over 700 GH with similar settings.

 
cnk1220
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
April 05, 2025, 02:01:11 PM
 #48

*** I post it at https://github.com/skot/bitaxe/discussions before yesterday and it was answered  ( no sucess, by 404 panda user)  but yesterday, I' reanswered him but all section "discussion" was gone from skot/bitaxe.. ***

Hi, good morning.

I need a help with something.

I have a Bitaxe Supra. I have a full node too, and for learning I make a python script that takes block data with "bitcoin-cli getblocktemplate", mount the block and try to mine this block.

So I trying to do samething with my Bitaxe, but, trying/testing how to process the block I get trouble and stuck.

I don't know if I mounting the merkle root in wrong order or what, but the nonce returned is never right.

For tests I get the block 850253:

// Cabeçalho do bloco:

// Versão: 0x20a00000

// Hash do bloco anterior: 0000000000000000000121c6c2fb091c8f23192b23ccb978313a121e673ee94e

// Hash da árvore de Merkle: fab947d4de52402c7b71d64c24ebf9e8912742358b4f841b3edcdf1a62ce5a62

// Timestamp: 0x6682d0fa

// Bits de dificuldade: 0x17035d25

// Nonce: 0x4325613f

// Hash do bloco: 000000000000000000018e6395574b2c177aa0033fb4736bb5a3b6d38a040f41

// Hash do midstate: c6aafbd036459eeb9267395191bed72439bd1724bbf5898355c65a0489f6f01

With dumping the block data I get that prev block hash is in diferent order:

FROM THIS: 00 00 00 00 00 00 00 00 00 01 21 C6 C2 FB 09 1C 8F 23 19 2B 23 CC B9 78 31 3A 12 1E 67 3E E9 4E

TO THIS: 00 00 00 00 00 00 00 00 C6 21 01 00 1C 09 FB C2 2B 19 23 8F 78 B9 CC 23 1E 12 3A 31 4E E9 3E 67

Nonce, bits, timestamp and version I think is ok, but the merkle root I don't know how to calculate from stratum data, so I don't able to compare o dump like i did with prev block hash.

I was thinking about the asic diff or asic mask, but if someone get um hash above current difficult he in fact find the block so I realize that was not the problem, although I don't realy understand how it works (bitmask, verison mask, etc.)

Before someone try me to install a local stratum, I'm not interesting, that will be easy, I just want make it work.

Thankful for your help!

My code:

Code:
void test_case(){

uint8_t prev_block_hash_raw[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x21, 0xc6, 0xc2, 0xfb, 0x09, 0x1c, 0x8f, 0x23, 0x19, 0x2b, 0x23, 0xcc, 0xb9, 0x78, 0x31, 0x3a, 0x12, 0x1e, 0x67, 0x3e, 0xe9, 0x4e};

uint8_t merkle_root_raw[32] = {0xfa, 0xb9, 0x47, 0xd4, 0xde, 0x52, 0x40, 0x2c, 0x7b, 0x71, 0xd6, 0x4c, 0x24, 0xeb, 0xf9, 0xe8, 0x91, 0x27, 0x42, 0x35, 0x8b, 0x4f, 0x84, 0x1b, 0x3e, 0xdc, 0xdf, 0x1a, 0x62, 0xce, 0x5a, 0x62};

BM1368_job test_job = {

.job_id = 0x10,

.num_midstates = 0x01, // Exemplo, ajuste conforme necessário

// .starting_nonce = {0x3F, 0x61, 0x25, 0x43}, // 0x4325613F → Little-endian

.starting_nonce = {0x01, 0x00, 0x00, 0x00}, // 0x00000001 → Little-endian

.nbits = {0x25, 0x5D, 0x03, 0x17}, // 0x17035D25 → Little-endian

.ntime = {0xFA, 0xD0, 0x82, 0x66}, // 0x6682D0FA → Little-endian

.version = {0x00, 0x00, 0xA0, 0x20}, // 0x20a00000

};

// reverse_bytes(test_job.merkle_root, 32);

memcpy(test_job.prev_block_hash, prev_block_hash_raw, 32);

printf("\nPREV HASH:\t");

hexdump_my(&test_job.prev_block_hash, sizeof(test_job.prev_block_hash));

// reverse_bytes(test_job.prev_block_hash, 32);

printf("\nPREV HASH BE:\t");

hexdump_my(&test_job.prev_block_hash, sizeof(test_job.prev_block_hash));

convert_hash_my(prev_block_hash_raw);

// convert_hash_my(merkle_root_raw);

memcpy(test_job.prev_block_hash, prev_block_hash_raw, 32);

memcpy(test_job.merkle_root, merkle_root_raw, 32);

printf("\nPREV HASH V:\t");

hexdump_my(&test_job.prev_block_hash, sizeof(test_job.prev_block_hash));

// uint8_t job_id;

// uint8_t num_midstates;

// uint8_t starting_nonce[4];

// uint8_t nbits[4];

// uint8_t ntime[4];

// uint8_t merkle_root[32];

// uint8_t prev_block_hash[32];

// uint8_t version[4];

// Cabeçalho do bloco:

// Versão: 0x20a00000

// Hash do bloco anterior: 0000000000000000000121c6c2fb091c8f23192b23ccb978313a121e673ee94e

// Hash da árvore de Merkle: fab947d4de52402c7b71d64c24ebf9e8912742358b4f841b3edcdf1a62ce5a62

// Timestamp: 0x6682d0fa

// Bits de dificuldade: 0x17035d25

// Nonce: 0x4325613f

// Hash do bloco: 000000000000000000018e6395574b2c177aa0033fb4736bb5a3b6d38a040f41

// Hash do midstate: c6aafbd036459eeb9267395191bed72439bd1724bbf5898355c65a0489f6f01

// 44fe0174 that response is get by increasing the 'BM1368_ASIC_DIFFICULTY' parameter.

// AA 55 74 01 FE 44 04 29 80 D9 92

printf("\nIH: 1368 JOB CONSTRUIDO\n");

hexdump_my(&test_job, sizeof(test_job));

uint8_t buf[1024];

memset(buf, 0, 1024);

// BM1397_send_work_my(&test_job);

_send_BM1368((TYPE_JOB | GROUP_SINGLE | CMD_WRITE), (uint8_t *)&test_job, sizeof(BM1368_job), BM1368_DEBUG_WORK);

// free_bm_job(test_job.job_id);

// sleep(2);

// wait for a response

int received = SERIAL_rx(buf, 11, BM1368_TIMEOUT_MS);

printf("\nIH: 1368 HEX BUF 1\n");

hexdump_my(&buf, 24);

asic_result nonce;

memcpy((void *)&nonce, buf, sizeof(asic_result));

printf("\nIH: NONCE RECUPERADO\n");

hexdump_my(&nonce, sizeof(nonce));

printf("\nIH: RESULT NONCE: %lx", nonce.nonce);

// Response:

// uint8_t preamble[2];

// uint32_t nonce;

// uint8_t midstate_num;

// uint8_t job_id;

// uint16_t version;

// uint8_t crc;

uint8_t job_id = (nonce.job_id & 0xf0) >> 1;

uint8_t core_id = (uint8_t)((reverse_uint32(nonce.nonce) >> 25) & 0x7f);

uint8_t small_core_id = nonce.job_id & 0x0f;

uint32_t version_bits = (reverse_uint16(nonce.version) << 13);

printf("\nJob ID: %02X, Nonce: %lx, Core: %d/%d, Ver: %08" PRIX32, job_id, nonce.nonce, core_id, small_core_id, version_bits);

vTaskDelete(NULL);

}
Skot
Full Member
***
Offline Offline

Activity: 236
Merit: 251

bitaxe.org


View Profile
April 05, 2025, 02:32:31 PM
 #49

Sorry about that! In an attempt to be more organized I’ve been moving these things over to the new GitHub organization called bitaxeorg. https://github.com/bitaxeorg

If you don’t get a response to your question here, you might try the OSMU discord (maybe the pools channel?) https://discord.gg/osmu
cnk1220
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
April 05, 2025, 03:15:49 PM
 #50

It's ok.

But they don't have discussion tab too.

You can't help me?
I just need to know the right order to send data to bm1368.
cnk1220
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
April 23, 2025, 11:51:51 AM
 #51

Hi everyone.

Can you help me to disable the version rollling feature on bm1368.


https://github.com/skot/BM1397/blob/master/bm1366_registers.md#version-rolling


https://github.com/skot/BM1397/blob/master/bm1366_protocol.md#send-job
Pages: « 1 2 [3]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!