2023-03-20 01:43:08 +01:00
# NerdSoloMiner
2023-04-15 23:56:13 +02:00
**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.
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.
2023-03-20 01:10:44 +01:00
2023-03-20 01:43:08 +01:00
Original project https://github.com/valerio-vaccaro/HAN
2023-03-20 01:10:44 +01:00
2023-09-12 13:58:09 +02:00
![image ](images/bgNerdMinerV2.png )
2023-03-20 01:10:44 +01:00
2023-03-20 01:43:08 +01:00
## Requirements
2023-08-27 12:12:19 +02:00
- TTGO T-Display S3 or any supported boards (check Build tutorial 👇)
2023-04-07 00:48:10 +02:00
- 3D BOX [here ](3d_files/ )
2023-03-20 01:10:44 +01:00
2023-04-15 23:56:13 +02:00
### Project description
2023-08-27 12:08:28 +02:00
**ESP32 implementing Stratum protocol** to mine on solo pool. Pool can be changed but originally works with Public-pool.io (where Nerdminers are supported).
2023-03-20 01:10:44 +01:00
2023-08-27 12:08:28 +02:00
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.
2023-06-08 09:45:22 +02:00
The microMiner comes with several screens to monitor it's working procedure and also to show you network mining stats.
Currently includes:
- NerdMiner Screen > Mining data of Nerdminer
- ClockMiner Screen > Fashion style clock miner
- GlobalStats Screen > Global minery stats and relevant data
2023-03-20 01:43:08 +01:00
2023-08-27 12:08:28 +02:00
This miner is multicore and multithreads, both cores are used to mine and several threads are used to implementing stratum work and wifi stuff.
2023-06-08 09:45:22 +02:00
Every time an stratum job notification is received miner update its current work to not create stale shares.
2023-07-30 11:49:49 +02:00
**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.
2023-03-20 01:43:08 +01:00
2023-04-15 23:56:13 +02:00
***Current project is still in developement and more features will be added***
## Build Tutorial
### Hardware requirements
2023-09-12 13:58:09 +02:00
- LILYGO T-Display S3 (original one) or any other supported boards
2023-08-27 12:12:19 +02:00
- 3D BOX [here ](3d_files/ )
2023-04-15 23:56:13 +02:00
2023-08-27 12:03:38 +02:00
#### Current Supported Boards
2023-10-01 10:28:39 +02:00
- 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-QT pro ([Aliexpress link*](https://s.click.aliexpress.com/e/_DBQIr43))
- LILYGO T-Display 1.14 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DEqGvSJ))
- LILYGO T-Display S3 AMOLED ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmOIK6j))
- LILYGO T-Dongle S3 ([Aliexpress link*](https://s.click.aliexpress.com/e/_DmQCPyj))
2023-10-01 10:38:45 +02:00
- ESP32-2432S028R 2,8" ([Aliexpress link*](https://s.click.aliexpress.com/e/_DdXkvLv) / Dev support: @nitroxgas / ⚡jadeddonald78@walletofsatoshi.com)
2023-10-01 10:38:03 +02:00
- ESP32-cam ([Board Info](https://lastminuteengineers.com/getting-started-with-esp32-cam/) / Dev support: @elmo128 )
2023-10-01 10:28:39 +02:00
*Affiliate links
2023-08-27 12:03:38 +02:00
2023-04-15 23:56:13 +02:00
### Flash firmware
2023-07-11 17:02:28 +02:00
#### microMiners Flashtool [Recommended]
2023-07-11 16:58:53 +02:00
Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash tool:
2023-08-27 12:03:38 +02:00
1. Get a TTGO T-display S3 or any other supported board
2023-07-11 16:58:53 +02:00
1. Go to NM2 flasher online: https://bitmaker-hub.github.io/diyflasher/
#### Standard tool
2023-10-01 10:28:39 +02:00
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.
2023-03-20 22:26:17 +01:00
If you want you can compile the entire project using Arduino, PlatformIO or Expressif IDF.
2023-03-20 01:43:08 +01:00
2023-08-27 12:03:38 +02:00
1. Get a TTGO T-display S3 or any supported board
2023-03-20 22:26:17 +01:00
1. Download this repository
1. Go to ESPtool online: https://espressif.github.io/esptool-js/
2023-10-01 10:28:39 +02:00
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).
2023-03-20 01:43:08 +01:00
2023-06-08 09:45:22 +02:00
### Update firmware
2023-10-01 10:28:39 +02:00
Update NerdMiner firmware following same flashing steps but only using the file 0x10000_firmware.bin.
2023-06-08 09:45:22 +02:00
2023-04-15 23:56:13 +02:00
#### Build troubleshooting
1. Online ESPtool works with chrome, chromium, brave
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
2023-05-10 01:04:34 +02:00
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.
2023-08-27 12:08:28 +02:00
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.
2023-04-15 23:56:13 +02:00
2023-10-01 10:54:30 +02:00
## NerdMiner configuration
2023-04-15 23:56:13 +02:00
After programming, you will only need to setup your Wifi and BTC address.
2023-12-29 07:45:16 +01:00
2023-12-29 07:30:50 +01:00
Note: when BTC address of your selected wallet is not provided, mining will not be started.
2023-03-20 01:43:08 +01:00
2023-09-15 01:55:27 +02:00
#### Wifi Accesspoint
2023-04-15 23:56:13 +02:00
1. Connect to NerdMinerAP
2023-05-07 13:21:00 +02:00
- AP: NerdMinerAP
- PASS: MineYourCoins
2023-04-15 23:56:13 +02:00
1. Setup your Wifi Network
1. Add your BTCaddress
2023-09-15 01:55:27 +02:00
#### SD card (if available)
2023-09-15 01:41:15 +02:00
1. Format a SD card using Fat32.
2023-09-17 16:44:01 +02:00
1. Create a file named "config.json" in your card's root, containing the the following structure. Adjust the settings to your needs:
2023-12-29 07:31:08 +01:00
```
2023-09-15 01:55:27 +02:00
{
"SSID": "myWifiSSID",
2023-09-20 19:42:07 +02:00
"WifiPW": "myWifiPassword",
2023-09-15 01:55:27 +02:00
"PoolUrl": "public-pool.io",
"PoolPort": 21496,
"BtcWallet": "walletID",
2023-09-17 16:56:45 +02:00
"Timezone": 2,
2023-09-20 19:42:07 +02:00
"SaveStats": false
2023-09-15 01:41:15 +02:00
}
2023-12-29 07:31:08 +01:00
```
2023-09-15 01:41:15 +02:00
1. Insert the SD card.
2023-09-15 09:40:43 +02:00
1. Hold down the "reset configurations" button as described below to reset the configurations and/or boot without settings in your nvmemory.
2023-09-15 01:41:15 +02:00
1. Power down to remove the SD card. It is not needed for mining.
2023-09-15 01:55:27 +02:00
#### Pool selection
2023-09-15 01:41:15 +02:00
2023-07-30 11:01:06 +02:00
Recommended low difficulty share pools:
2023-07-30 11:49:49 +02:00
| Pool URL | Port | Web URL | Status |
2023-07-30 11:01:06 +02:00
|--- |--- |--- |--- |
2023-08-19 23:48:56 +02:00
| public-pool.io | 21496 | https://web.public-pool.io | Open Source Solo Bitcoin Mining Pool supporting open source miners |
2023-08-27 12:33:25 +02:00
| nerdminers.org | | https://nerdminers.org | Team domain for future pool - Currently pointing to public-pool.io |
2023-08-07 02:23:00 +02:00
| pool.nerdminer.io | 3333 | https://nerdminer.io | Mantained by CHMEX |
| pool.vkbit.com | 3333 | https://vkbit.com/ | Mantained by djerfy |
2023-07-30 11:01:06 +02:00
Other standard pools not compatible with low difficulty share:
2023-04-17 15:04:42 +02:00
2023-07-30 11:49:49 +02:00
| Pool URL | Port | Web URL |
2023-04-17 15:04:42 +02:00
|--- |--- |--- |
| solo.ckpool.org | 3333 | https://solo.ckpool.org/ |
| btc.zsolo.bid | 6057 | https://zsolo.bid/en/btc-solo-mining-pool |
| eu.stratum.slushpool.com | 3333 | https://braiins.com/pool |
2023-05-12 11:37:23 +02:00
### Buttons
2023-09-15 09:40:43 +02:00
#### One button devices:
- One click > change screen.
- Double click > change screen orientation.
- Tripple click > turn the screen off and on again.
- Hold 5 seconds > **reset the configurations and reboot** your NerdMiner.
#### Two button devices:
2023-05-12 11:37:23 +02:00
With the USB-C port to the right:
2023-06-08 10:49:38 +02:00
2023-06-08 10:34:57 +02:00
**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.
2023-06-08 10:50:49 +02:00
2023-06-08 10:34:57 +02:00
**BOTTOM BUTTON**
2023-06-08 10:50:49 +02:00
2023-06-08 10:34:57 +02:00
- One Click > turn the screen off and on again
- Double click > change orientation (default is USB-C to the right)
2023-04-15 23:56:13 +02:00
#### Build video
2023-03-21 00:20:32 +01:00
[![Ver video aquí ](https://img.youtube.com/vi/POUT2R_opDs/0.jpg )](https://youtu.be/POUT2R_opDs)
2023-04-07 00:43:20 +02:00
2023-04-15 23:56:13 +02:00
## Developers
### Project guidelines
- Current project was addapted to work with PlatformIO
2023-08-27 12:03:38 +02:00
- Current project works with ESP32-S3 and ESP32-wroom.
2023-04-15 23:56:13 +02:00
- Partition squeme should be build as huge app
- All libraries needed shown on platform.ini
2023-08-07 20:18:25 +02:00
### Job done
2023-04-15 23:56:13 +02:00
- [x] Move project to platformIO
- [x] Bug rectangle on screen when 1milion shares
- [x] Bug memory leaks
- [x] Bug Reboots when received JSON contains some null values
2023-05-01 22:29:05 +02:00
- [x] Implement midstate sha256
2023-05-07 13:21:00 +02:00
- [x] Bug Wificlient DNS unresolved on Wifi.h
2023-06-07 10:51:46 +02:00
- [x] Code refactoring
2023-06-08 09:45:22 +02:00
- [x] Add blockHeight to screen
- [x] Add clock to show current time
- [x] Add new screen with global mining stats
2023-08-07 20:18:25 +02:00
- [x] Add pool support for low difficulty miners
- [x] Add best difficulty on miner screen
2023-08-27 12:03:38 +02:00
- [x] Add suport to standard ESP32 dev-kit / ESP32-WROOM
2023-09-12 15:31:47 +02:00
- [x] Code changes to support adding multiple boards
- [x] Add support to TTGO T-display 1.14
- [x] Add support to Amoled
2023-08-07 20:18:25 +02:00
### On process
2023-10-01 10:28:39 +02:00
- [ ] Create a daisy chain protocol via UART or I2C to support ESP32 hashboards
2023-08-07 20:18:25 +02:00
- [ ] Create new screen like clockMiner but with BTC price
2023-04-15 23:56:13 +02:00
- [ ] Add support to control BM1397
2023-05-07 13:21:00 +02:00
### Donations/Project contributions
2023-10-01 10:28:39 +02:00
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.
2023-05-07 13:21:00 +02:00
2023-10-01 10:54:30 +02:00
If you want to order a fully assembled Nerdminer you can contribute to my job at [bitronics.store ](https://bitronics.store ).
2023-07-30 23:29:26 +02:00
Enjoy