Merge pull request #206 from matteocrippa/feature/worker
Improved doc with custom worker
This commit is contained in:
commit
8ed9f35d3f
145
README.md
145
README.md
@ -1,104 +1,117 @@
|
|||||||
# NerdSoloMiner
|
# NerdSoloMiner
|
||||||
|
|
||||||
**The NerdSoloMiner v2**
|
**The NerdSoloMiner v2**
|
||||||
|
|
||||||
This is a **free and open source project** that let you try to reach a bitcoin block with a small piece of hardware.
|
This is a **free and open source project** that let you try to reach a bitcoin block with a small piece of hardware.
|
||||||
|
|
||||||
The main aim of this project is to let you **learn more about minery** and to have a beautiful piece of hardware in your desktop.
|
The main aim of this project is to let you **learn more about minery** and to have a beautiful piece of hardware in your desktop.
|
||||||
|
|
||||||
|
|
||||||
Original project https://github.com/valerio-vaccaro/HAN
|
Original project https://github.com/valerio-vaccaro/HAN
|
||||||
|
|
||||||
![image](images/bgNerdMinerV2.png)
|
![image](images/bgNerdMinerV2.png)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- TTGO T-Display S3 or any supported boards (check Build tutorial 👇)
|
- TTGO T-Display S3 or any supported boards (check Build tutorial 👇)
|
||||||
- 3D BOX [here](3d_files/)
|
- 3D BOX [here](3d_files/)
|
||||||
|
|
||||||
### Project description
|
### Project description
|
||||||
**ESP32 implementing Stratum protocol** to mine on solo pool. Pool can be changed but originally works with Public-pool.io (where Nerdminers are supported).
|
|
||||||
|
**ESP32 implementing Stratum protocol** to mine on solo pool. Pool can be changed but originally works with [public-pool.io][https://web.public-pool.io] (where Nerdminers are supported).
|
||||||
|
|
||||||
This project was initialy developed using ESP32-S3, but currently support other boards. It uses WifiManager to modify miner settings and save them to SPIFF.
|
This project was initialy developed using ESP32-S3, but currently support other boards. It uses WifiManager to modify miner settings and save them to SPIFF.
|
||||||
The microMiner comes with several screens to monitor it's working procedure and also to show you network mining stats.
|
The microMiner comes with several screens to monitor it's working procedure and also to show you network mining stats.
|
||||||
Currently includes:
|
Currently includes:
|
||||||
|
|
||||||
- NerdMiner Screen > Mining data of Nerdminer
|
- NerdMiner Screen > Mining data of Nerdminer
|
||||||
- ClockMiner Screen > Fashion style clock miner
|
- ClockMiner Screen > Fashion style clock miner
|
||||||
- GlobalStats Screen > Global minery stats and relevant data
|
- GlobalStats Screen > Global minery stats and relevant data
|
||||||
|
|
||||||
This miner is multicore and multithreads, both cores are used to mine and several threads are used to implementing stratum work and wifi stuff.
|
This miner is multicore and multithreads, both cores are used to mine and several threads are used to implementing stratum work and wifi stuff.
|
||||||
Every time an stratum job notification is received miner update its current work to not create stale shares.
|
Every time an stratum job notification is received miner update its current work to not create stale shares.
|
||||||
|
|
||||||
**IMPORTANT** Miner is not seen by all standard pools due to its low share difficulty. You can check miner work remotely using specific pools specified down or seeing logs via UART.
|
**IMPORTANT** Miner is not seen by all standard pools due to its low share difficulty. You can check miner work remotely using specific pools specified down or seeing logs via UART.
|
||||||
|
|
||||||
***Current project is still in developement and more features will be added***
|
**_Current project is still in developement and more features will be added_**
|
||||||
|
|
||||||
## Build Tutorial
|
## Build Tutorial
|
||||||
|
|
||||||
### Hardware requirements
|
### Hardware requirements
|
||||||
|
|
||||||
- LILYGO T-Display S3 (original one) or any other supported boards
|
- LILYGO T-Display S3 (original one) or any other supported boards
|
||||||
- 3D BOX [here](3d_files/)
|
- 3D BOX [here](3d_files/)
|
||||||
|
|
||||||
#### Current Supported Boards
|
#### Current Supported Boards
|
||||||
- LILYGO T-Display S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_Ddy7739))
|
|
||||||
- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link*](https://s.click.aliexpress.com/e/_DCzlUiX))
|
- LILYGO T-Display S3 ([Aliexpress link\*](https://s.click.aliexpress.com/e/_Ddy7739))
|
||||||
- LILYGO T-QT pro ([Aliexpress link*](https://s.click.aliexpress.com/e/_DBQIr43))
|
- ESP32-WROOM-32, ESP32-Devkit1.. ([Aliexpress link\*](https://s.click.aliexpress.com/e/_DCzlUiX))
|
||||||
- LILYGO T-Display 1.14 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DEqGvSJ))
|
- LILYGO T-QT pro ([Aliexpress link\*](https://s.click.aliexpress.com/e/_DBQIr43))
|
||||||
- LILYGO T-Display S3 AMOLED ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmOIK6j))
|
- LILYGO T-Display 1.14 ([Aliexpress link\*](https://s.click.aliexpress.com/e/_DEqGvSJ))
|
||||||
- LILYGO T-Dongle S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmQCPyj))
|
- LILYGO T-Display S3 AMOLED ([Aliexpress link\*](https://s.click.aliexpress.com/e/_DmOIK6j))
|
||||||
- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv) / Dev support: @nitroxgas / ⚡jadeddonald78@walletofsatoshi.com)
|
- LILYGO T-Dongle S3 ([Aliexpress link\*](https://s.click.aliexpress.com/e/_DmQCPyj))
|
||||||
|
- ESP32-2432S028R 2,8" ([Aliexpress link\*](https://s.click.aliexpress.com/e/_DdXkvLv) / Dev support: @nitroxgas / ⚡jadeddonald78@walletofsatoshi.com)
|
||||||
- ESP32-cam ([Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) / Dev support: @elmo128)
|
- ESP32-cam ([Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) / Dev support: @elmo128)
|
||||||
|
|
||||||
*Affiliate links
|
\*Affiliate links
|
||||||
|
|
||||||
### Flash firmware
|
### Flash firmware
|
||||||
|
|
||||||
#### microMiners Flashtool [Recommended]
|
#### microMiners Flashtool [Recommended]
|
||||||
|
|
||||||
Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool:
|
Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool:
|
||||||
|
|
||||||
1. Get a TTGO T-display S3 or any other supported board
|
1. Get a TTGO T-display S3 or any other supported board
|
||||||
1. Go to NM2 flasher online: https://bitmaker-hub.github.io/diyflasher/
|
1. Go to NM2 flasher online: https://bitmaker-hub.github.io/diyflasher/
|
||||||
|
|
||||||
#### Standard tool
|
#### Standard tool
|
||||||
Create your own miner using the online firwmare flash tool **ESPtool** and one of the **binary files** that you will find in the ``bin`` folder.
|
|
||||||
|
Create your own miner using the online firwmare flash tool **ESPtool** and one of the **binary files** that you will find in the `bin` folder.
|
||||||
If you want you can compile the entire project using Arduino, PlatformIO or Expressif IDF.
|
If you want you can compile the entire project using Arduino, PlatformIO or Expressif IDF.
|
||||||
|
|
||||||
1. Get a TTGO T-display S3 or any supported board
|
1. Get a TTGO T-display S3 or any supported board
|
||||||
1. Download this repository
|
1. Download this repository
|
||||||
1. Go to ESPtool online: https://espressif.github.io/esptool-js/
|
1. Go to ESPtool online: https://espressif.github.io/esptool-js/
|
||||||
1. Load the firmware with the binary from one of the sub-folders of ``bin`` corresponding to your board.
|
1. Load the firmware with the binary from one of the sub-folders of `bin` corresponding to your board.
|
||||||
1. Plug your board and select each file from the sub-folder (``.bin`` files).
|
1. Plug your board and select each file from the sub-folder (`.bin` files).
|
||||||
|
|
||||||
### Update firmware
|
### Update firmware
|
||||||
|
|
||||||
Update NerdMiner firmware following same flashing steps but only using the file 0x10000_firmware.bin.
|
Update NerdMiner firmware following same flashing steps but only using the file 0x10000_firmware.bin.
|
||||||
|
|
||||||
#### Build troubleshooting
|
#### Build troubleshooting
|
||||||
|
|
||||||
1. Online ESPtool works with chrome, chromium, brave
|
1. Online ESPtool works with chrome, chromium, brave
|
||||||
1. ESPtool recommendations: use 115200bps
|
1. ESPtool recommendations: use 115200bps
|
||||||
1. Build errors > If during firmware download upload stops, it's recommended to enter the board in boot mode. Unplug cable, hold right bottom button and then plug cable. Try programming
|
1. Build errors > If during firmware download upload stops, it's recommended to enter the board in boot mode. Unplug cable, hold right bottom button and then plug cable. Try programming
|
||||||
1. In extreme case you can "Erase all flash" on ESPtool to clean all current configuration before uploading firmware. There has been cases that experimented Wifi failures until this was made.
|
1. In extreme case you can "Erase all flash" on ESPtool to clean all current configuration before uploading firmware. There has been cases that experimented Wifi failures until this was made.
|
||||||
1. In case of ESP32-WROOM Boards, could be necessary to put your board on boot mode. Hold boot button, press reset button and then program.
|
1. In case of ESP32-WROOM Boards, could be necessary to put your board on boot mode. Hold boot button, press reset button and then program.
|
||||||
|
|
||||||
## NerdMiner configuration
|
## NerdMiner configuration
|
||||||
|
|
||||||
After programming, you will only need to setup your Wifi and BTC address.
|
After programming, you will only need to setup your Wifi and BTC address.
|
||||||
|
|
||||||
#### Wifi Accesspoint
|
#### Wifi Accesspoint
|
||||||
|
|
||||||
1. Connect to NerdMinerAP
|
1. Connect to NerdMinerAP
|
||||||
- AP: NerdMinerAP
|
- AP: NerdMinerAP
|
||||||
- PASS: MineYourCoins
|
- PASS: MineYourCoins
|
||||||
1. Setup your Wifi Network
|
1. Setup your Wifi Network
|
||||||
1. Add your BTCaddress
|
1. Add your BTCaddress
|
||||||
|
- If you are using public-pool.io and you want to set a custom name to your worker you can append a string with format _.yourworkername_ to the address
|
||||||
|
|
||||||
#### SD card (if available)
|
#### SD card (if available)
|
||||||
|
|
||||||
1. Format a SD card using Fat32.
|
1. Format a SD card using Fat32.
|
||||||
1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs:
|
1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs:
|
||||||
{
|
{
|
||||||
"SSID": "myWifiSSID",
|
"SSID": "myWifiSSID",
|
||||||
"WifiPW": "myWifiPassword",
|
"WifiPW": "myWifiPassword",
|
||||||
"PoolUrl": "public-pool.io",
|
"PoolUrl": "public-pool.io",
|
||||||
"PoolPort": 21496,
|
"PoolPort": 21496,
|
||||||
"BtcWallet": "walletID",
|
"BtcWallet": "walletID",
|
||||||
"Timezone": 2,
|
"Timezone": 2,
|
||||||
"SaveStats": false
|
"SaveStats": false
|
||||||
}
|
}
|
||||||
1. Insert the SD card.
|
1. Insert the SD card.
|
||||||
1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory.
|
1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory.
|
||||||
1. Power down to remove the SD card. It is not needed for mining.
|
1. Power down to remove the SD card. It is not needed for mining.
|
||||||
@ -107,20 +120,20 @@ After programming, you will only need to setup your Wifi and BTC address.
|
|||||||
|
|
||||||
Recommended low difficulty share pools:
|
Recommended low difficulty share pools:
|
||||||
|
|
||||||
| Pool URL | Port | Web URL | Status |
|
| Pool URL | Port | Web URL | Status |
|
||||||
|--- |--- |--- |--- |
|
| ----------------- | ----- | -------------------------- | ------------------------------------------------------------------ |
|
||||||
| public-pool.io | 21496 | https://web.public-pool.io | Open Source Solo Bitcoin Mining Pool supporting open source miners |
|
| public-pool.io | 21496 | https://web.public-pool.io | Open Source Solo Bitcoin Mining Pool supporting open source miners |
|
||||||
| nerdminers.org | | https://nerdminers.org | Team domain for future pool - Currently pointing to public-pool.io |
|
| nerdminers.org | | https://nerdminers.org | Team domain for future pool - Currently pointing to public-pool.io |
|
||||||
| pool.nerdminer.io | 3333 | https://nerdminer.io | Mantained by CHMEX |
|
| pool.nerdminer.io | 3333 | https://nerdminer.io | Mantained by CHMEX |
|
||||||
| pool.vkbit.com | 3333 | https://vkbit.com/ | Mantained by djerfy |
|
| pool.vkbit.com | 3333 | https://vkbit.com/ | Mantained by djerfy |
|
||||||
|
|
||||||
Other standard pools not compatible with low difficulty share:
|
Other standard pools not compatible with low difficulty share:
|
||||||
|
|
||||||
| Pool URL | Port | Web URL |
|
| Pool URL | Port | Web URL |
|
||||||
|--- |--- |--- |
|
| ------------------------ | ---- | ----------------------------------------- |
|
||||||
| solo.ckpool.org | 3333 | https://solo.ckpool.org/ |
|
| solo.ckpool.org | 3333 | https://solo.ckpool.org/ |
|
||||||
| btc.zsolo.bid | 6057 | https://zsolo.bid/en/btc-solo-mining-pool |
|
| btc.zsolo.bid | 6057 | https://zsolo.bid/en/btc-solo-mining-pool |
|
||||||
| eu.stratum.slushpool.com | 3333 | https://braiins.com/pool |
|
| eu.stratum.slushpool.com | 3333 | https://braiins.com/pool |
|
||||||
|
|
||||||
### Buttons
|
### Buttons
|
||||||
|
|
||||||
@ -129,16 +142,17 @@ Other standard pools not compatible with low difficulty share:
|
|||||||
- One click > change screen.
|
- One click > change screen.
|
||||||
- Double click > change screen orientation.
|
- Double click > change screen orientation.
|
||||||
- Tripple click > turn the screen off and on again.
|
- Tripple click > turn the screen off and on again.
|
||||||
- Hold 5 seconds > **reset the configurations and reboot** your NerdMiner.
|
- Hold 5 seconds > **reset the configurations and reboot** your NerdMiner.
|
||||||
|
|
||||||
#### Two button devices:
|
#### Two button devices:
|
||||||
|
|
||||||
With the USB-C port to the right:
|
With the USB-C port to the right:
|
||||||
|
|
||||||
**TOP BUTTON**
|
**TOP BUTTON**
|
||||||
- One click > change screen.
|
|
||||||
- Hold 5 seconds > top right button to **reset the configurations and reboot** your NerdMiner.
|
|
||||||
- Hold and power up > enter **configuration mode** and edit current config via Wifi. You could change your settings or verify them.
|
|
||||||
|
|
||||||
|
- One click > change screen.
|
||||||
|
- Hold 5 seconds > top right button to **reset the configurations and reboot** your NerdMiner.
|
||||||
|
- Hold and power up > enter **configuration mode** and edit current config via Wifi. You could change your settings or verify them.
|
||||||
|
|
||||||
**BOTTOM BUTTON**
|
**BOTTOM BUTTON**
|
||||||
|
|
||||||
@ -146,39 +160,46 @@ With the USB-C port to the right:
|
|||||||
- Double click > change orientation (default is USB-C to the right)
|
- Double click > change orientation (default is USB-C to the right)
|
||||||
|
|
||||||
#### Build video
|
#### Build video
|
||||||
|
|
||||||
[![Ver video aquí](https://img.youtube.com/vi/POUT2R_opDs/0.jpg)](https://youtu.be/POUT2R_opDs)
|
[![Ver video aquí](https://img.youtube.com/vi/POUT2R_opDs/0.jpg)](https://youtu.be/POUT2R_opDs)
|
||||||
|
|
||||||
## Developers
|
## Developers
|
||||||
|
|
||||||
### Project guidelines
|
### Project guidelines
|
||||||
|
|
||||||
- Current project was addapted to work with PlatformIO
|
- Current project was addapted to work with PlatformIO
|
||||||
- Current project works with ESP32-S3 and ESP32-wroom.
|
- Current project works with ESP32-S3 and ESP32-wroom.
|
||||||
- Partition squeme should be build as huge app
|
- Partition squeme should be build as huge app
|
||||||
- All libraries needed shown on platform.ini
|
- All libraries needed shown on platform.ini
|
||||||
|
|
||||||
### Job done
|
### Job done
|
||||||
- [x] Move project to platformIO
|
|
||||||
- [x] Bug rectangle on screen when 1milion shares
|
- [x] Move project to platformIO
|
||||||
- [x] Bug memory leaks
|
- [x] Bug rectangle on screen when 1milion shares
|
||||||
- [x] Bug Reboots when received JSON contains some null values
|
- [x] Bug memory leaks
|
||||||
- [x] Implement midstate sha256
|
- [x] Bug Reboots when received JSON contains some null values
|
||||||
- [x] Bug Wificlient DNS unresolved on Wifi.h
|
- [x] Implement midstate sha256
|
||||||
- [x] Code refactoring
|
- [x] Bug Wificlient DNS unresolved on Wifi.h
|
||||||
- [x] Add blockHeight to screen
|
- [x] Code refactoring
|
||||||
- [x] Add clock to show current time
|
- [x] Add blockHeight to screen
|
||||||
- [x] Add new screen with global mining stats
|
- [x] Add clock to show current time
|
||||||
- [x] Add pool support for low difficulty miners
|
- [x] Add new screen with global mining stats
|
||||||
- [x] Add best difficulty on miner screen
|
- [x] Add pool support for low difficulty miners
|
||||||
- [x] Add suport to standard ESP32 dev-kit / ESP32-WROOM
|
- [x] Add best difficulty on miner screen
|
||||||
- [x] Code changes to support adding multiple boards
|
- [x] Add suport to standard ESP32 dev-kit / ESP32-WROOM
|
||||||
- [x] Add support to TTGO T-display 1.14
|
- [x] Code changes to support adding multiple boards
|
||||||
- [x] Add support to Amoled
|
- [x] Add support to TTGO T-display 1.14
|
||||||
|
- [x] Add support to Amoled
|
||||||
|
|
||||||
### On process
|
### On process
|
||||||
- [ ] Create a daisy chain protocol via UART or I2C to support ESP32 hashboards
|
|
||||||
- [ ] Create new screen like clockMiner but with BTC price
|
- [ ] Create a daisy chain protocol via UART or I2C to support ESP32 hashboards
|
||||||
- [ ] Add support to control BM1397
|
- [ ] Create new screen like clockMiner but with BTC price
|
||||||
|
- [ ] Add support to control BM1397
|
||||||
|
- [ ] Add password field in web configuration form
|
||||||
|
|
||||||
### Donations/Project contributions
|
### Donations/Project contributions
|
||||||
|
|
||||||
If you would like to contribute and help dev team with this project you can send a donation to the following LN address ⚡teamnerdminer@getalby.com⚡ or using one of the affiliate links above.
|
If you would like to contribute and help dev team with this project you can send a donation to the following LN address ⚡teamnerdminer@getalby.com⚡ or using one of the affiliate links above.
|
||||||
|
|
||||||
If you want to order a fully assembled Nerdminer you can contribute to my job at [bitronics.store](https://bitronics.store).
|
If you want to order a fully assembled Nerdminer you can contribute to my job at [bitronics.store](https://bitronics.store).
|
||||||
|
Loading…
Reference in New Issue
Block a user