/NerdMiner_v2-T-QT-ESP32-S3

Improved version of first ESP32 NerdMiner

Primary LanguageCOtherNOASSERTION

NerdSoloMiner

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.

Original project https://github.com/valerio-vaccaro/HAN

Branched project & modified from https://github.com/BitMaker-hub/NerdMiner_v2

image

Requirements

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).

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. Currently includes:

  • Mining Screen > Mining data of Nerdminer
  • Clock Screen > Fashion style clock miner

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.

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

Build Tutorial

Hardware requirements

  • LilyGO T-QT > Buy it on aliexpress or amazon
  • 3D BOX

Flash firmware

Standard tool [tested]

Create your own miner using the online firwmare flash tool ESPtool and the binary files that you will find in the src/bin folder. If you want you can compile the entire project using Arduino, PlatformIO or Expressif IDF.

  1. Get a LilyGO T-QT
  2. Download this repository
  3. Go to ESPtool online: https://espressif.github.io/esptool-js/
  4. Load the firmware with the binaries from the src/bin folder.
  5. Plug your board and select each file from src/bin with its address
  6. Quick way, set flash address 0x10000 and select firmware.bin file image
  7. Hard way image
  8. Disconnect your board and re-plug

Standard tool [untest]

Run bat file in windows.

  1. Get a LilyGO T-QT
  2. Download this repository
  3. Goto bin folder
  4. Run 'flash to device.bat'

developer build

Complicated way to flash firmware. Build your own miner using the developer tool:

  1. Get a LilyGO T-QT
  2. Download this repository
  3. Install visual studio classic and platform.io plugin
  4. Plug your board
  5. Build and Upload

Update firmware

Update NerdMiner firmware following same flashing steps but only adding 0x10000_firmware file.

Build troubleshooting

  1. Online ESPtool works with chrome, chromium, brave
  2. ESPtool recommendations: use 115200bps
  3. 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
  4. 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.
  5. 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

After programming, you will only need to setup your Wifi and BTC address.

  1. Connect to NerdMinerAP
    • AP: NerdMinerAP
    • PASS: MineYourCoins
  2. Setup your Wifi Network
  3. Add your BTCaddress

Recommended low difficulty share pools:

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
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.vkbit.com 3333 https://vkbit.com/ Mantained by djerfy

Other standard pools not compatible with low difficulty share:

Pool URL Port Web URL
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

Buttons

With the USB-C port to the right:

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.

BOTTOM BUTTON

  • One Click > turn the screen off and on again
  • Double click > change orientation (default is USB-C to the right)

Build video

Ver video aquí

Developers

Project guidelines

  • Current project was addapted to work with PlatformIO
  • Current project works with ESP32-S3 and ESP32-wroom.
  • Partition squeme should be build as huge app
  • All libraries needed shown on platform.ini

Job done

  • Move project to platformIO
  • Bug rectangle on screen when 1milion shares
  • Bug memory leaks
  • Bug Reboots when received JSON contains some null values
  • Implement midstate sha256
  • Bug Wificlient DNS unresolved on Wifi.h
  • Code refactoring
  • Add blockHeight to screen
  • Add clock to show current time
  • Add new screen with global mining stats
  • Add pool support for low difficulty miners
  • Add best difficulty on miner screen
  • Add suport to standard ESP32 dev-kit / ESP32-WROOM

On process

  • Code changes to support adding multiple boards
  • Create a daisy chain protocol via UART or I2C to support ESP32 hashboards
  • Add support to TTGO T-display 1.14
  • Add support to Amoled
  • Create new screen like clockMiner but with BTC price
  • Add support to control BM1397

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

Enjoy