ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A modded fork of the NerdMiner v2
This is a modified version of the original NerdMiner_v2 by BitMaker-hub. All credit for the original project, the Stratum implementation and the multi-board support goes to the original authors and contributors. If you want the stock, widely tested firmware for any of the supported boards, use the original repository.
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 NerdMiner_v2 project https://github.com/BitMaker-hub/NerdMiner_v2 (which itself started from https://github.com/valerio-vaccaro/HAN)
⚠️ Tested on five boards only. The changes in this fork have been developed and tested on the ESP32-2432S028R (2.8" "Cheap Yellow Display", CYD, also the version with two USB ports), the 4.0" CYD with the 320x480 ST7796 panel, the LilyGO T-Display 1.14", the LCDWiki ES3C35P (ESP32-S3, 3.5" 320x480 touch screen) and a screenless ESP32-WROOM-32 dev board. Other boards still build from the same code base as the original, but they have not been tested with these changes. Expect rough edges, and please report what you find.
ESP32_2432S028_2USB, is the same firmware as the CYD's (Pulse theme, ~990 KH/s) with the inversion built in, so the colours are right straight after flashing. The plain ESP32-2432S028R build also works on it with Invert display colours ticked on the web settings page.ES3C35P, runs the Pulse theme at 480x320 and an overlapped hardware SHA loop at ~350 KH/s (the S3's SHA engine sits behind a slow peripheral bus, so S3 boards can't reach CYD speeds).ESP32-4in-ST7796: the same mining loop and the Pulse theme laid out for the larger 480x320 screen.TTGO-T-Display build now uses the Pulse theme laid out for the 240x135 screen, with four screens: MINE, MARKET, CLOCK and POOL (workers, pool rate, pool best, uptime, pool and the settings page's IP address). It also frees enough memory for the BTC price, block height and network stats to load; with the old screens most of those requests failed on this board. Double-click the top button (USB on the right) to cycle the accent colour. Brightness, screen timeout, night dimming and display flip are set from the web settings page. See T-Display 1.14" (Pulse) for the buttons.The ~990 KH/s is what the miner actually hashes, not what a counter says:
-D SHA_BENCH, see src/sha_bench.cpp) that checks every single hash against software, also while the other core hammers the peripheral bus. That is how the hardware quirk behind silently corrupted hashes in the usual pipelined loops was found: writes to the SHA registers less than three cycles apart can be dropped whenever the other core is using the same bus.If a number sounds too good for this chip, check whether the shares it finds actually keep up with it.
For the other features, supported boards, flashing and configuration, the original documentation below still applies.
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:
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
ESP32-WROOM-Headless)TTGO-T-Display, original look: TTGO-T-Display-Classic)ESP32_2432S028_2USB)ESP32-4in-ST7796)ES3C35P)*Affiliate links
Flashing NerdMiner Modded: use the web flasher at https://henryscat.github.io/NerdMiner-Modded/ (Chrome, Edge or Brave). It offers a full install (factory image: bootloader, partition table and firmware, for a first flash) and a firmware-only update (keeps your settings). Pick your board there first: the 2.8" CYD (ESP32-2432S028R, one USB port or two), the 4.0" CYD (320x480 ST7796), the LilyGO T-Display 1.14", the M5StickC Plus2 (Pulse theme), the ES3C35P (ESP32-S3, 3.5" 320x480) or the ESP32-WROOM-32 without a screen. Builds for the other boards, which compile but have not been tested on hardware, are on a separate page: https://henryscat.github.io/NerdMiner-Modded/untested/. You can also build and flash this repository with PlatformIO, e.g.
pio run -e ESP32-2432S028R -t uploadfor the 2.8" board,pio run -e ESP32-4in-ST7796 -t uploadfor the 4.0" one orpio run -e ESP32-WROOM-Headless -t uploadfor the screenless board.The online flasher and the prebuilt binaries in the sections below come from the original project and will install the original firmware, not the modded one.
Easyiest way to flash firmware. Build your own miner using the folowing firwmare flash 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.
If you want you can compile the entire project using Arduino, PlatformIO or Expressif IDF.
bin corresponding to your board..bin files).Update NerdMiner firmware following same flashing steps but only using the file 0x10000_firmware.bin.
After programming, you will only need to setup your Wifi and BTC address.
Note: when BTC address of your selected wallet is not provided, mining will not be started.
Connect to NerdMinerAP
Set up your Wifi Network
Add your BTC address
Change the password if needed
http://<miner IP address>/ shows the miner live in any browser on the same network, phone or computer, no login needed: hashrate with a graph of the last hour, 32-bit shares, best difficulty, pool shares, mining time, BTC price and block height, clock, WiFi signal, pool, and on the M5StickC Plus2 the battery. It refreshes by itself every 3 s, follows the light/dark theme of the device and needs no internet access (everything is served by the miner). The BTC price and block height are fetched by the miner when the page is opened (unless a screen just did) and then once an hour while it stays open: each fetch pauses the hardware miner for about a second, so it doesn't follow the 3 s refresh. Like /api/status it shows nothing secret (no wallet address, no password). The graph's history is also available as JSON at /api/history (one value every 30 s, KH/s).
Once the miner is on your Wifi network it serves a settings page, also while it is mining, so you can change the pool, wallet, timezone, currency and display options without going back to the setup access point. On boards with a touch screen (CYD, 4" CYD, ES3C35P) and on the T-Display 1.14" it can also turn the screen off after a set number of minutes without a touch or button press; any touch or button press wakes it again. On a board without a screen the page has a Status LED option instead of the display options, to switch the blinking LED off. On the CYD the RGB LED on the back can be switched off or set to any colour, see LED on the back.
http://<miner IP address>/settings in a browser on the same network (http://<miner IP address>/ is the live monitor, with a link to the settings). On the CYD the IP address is shown at the top of the screen, on the T-Display 1.14" on its POOL screen; it is also printed on the serial log at start-up and listed by your router.Note: until you change it, the login is the same on every miner (the password is the one of the setup access point), and the page is plain HTTP either way, so only use it on a network you trust.
Fill in Backup pool URL, port and (optionally) password to have the miner carry on somewhere else while your pool is down. It uses the same BTC address. After three failed attempts in a row on the main pool it moves to the backup; while there it checks every 10 minutes whether the main pool takes a connection again and goes back as soon as it does. If the backup fails too, it goes back to trying the main pool. The settings page says which pool is in use, and so does the status endpoint below. Leave the URL empty for no backup.
http://<miner IP address>/api/status returns the miner's state as JSON, for Home Assistant, Grafana or your own scripts. It needs no login and holds nothing the screen doesn't show (no wallet address, no passwords):
{"version":"V1.5.0","uptime_s":3605,"state":"mining","hashrate_khs":991.2,"hashrate_avg_khs":988.7,
"total_mhashes":59113,"mining_time_s":60789,"templates":2108,"best_diff":5.26,"shares_32bit":9,
"blocks_found":0,"shares_accepted":412,"shares_rejected":0,
"pool":{"address":"btc.heliospool.com","port":3333,"backup":false,"subscribed":true,"difficulty":0.0007},
"wifi":{"ssid":"MyWifi","rssi":-47,"ip":"192.168.0.115"},"free_heap":117484}
hashrate_khs is the last 10 seconds, hashrate_avg_khs the average since the miner started; shares_accepted and shares_rejected count the pool's answers since then. total_mhashes, mining_time_s, shares_32bit, best_diff and blocks_found are the same totals the screen shows (kept across restarts when "Save mining statistics" is on).
On the boards with a touch screen, and on the T-Display 1.14", the settings page can also fade the backlight down after dark. Tick Dim the screen at night, set a night brightness and a fade length in minutes, and pick the nearest city from the list. A city a few hundred kilometres away is still good to a few minutes; for an exact location choose Custom and enter your latitude and longitude in decimal degrees (south and west are negative, e.g. London is 51.51 and -0.13). The backlight then moves between the normal brightness and the night level across a window centred on each crossing: the default 60 minute fade starts 30 minutes before sunset and finishes 30 minutes after, then reverses at sunrise.
The page prints the current sun state and today's sunrise and sunset next to the controls, in the timezone set on the page, so you can check the location is right. Until the clock has been set from the network, or with no location entered, the normal brightness is used.
The CYD's RGB LED is set from the same page:
Pick any colour and a brightness from 1 to 255 (the LED is very bright, so 20-60 is plenty at night). Tick LED off while the screen is off to have it go dark whenever the backlight is off, by a touch or the screen timeout.
{
"SSID": "myWifiSSID",
"WifiPW": "myWifiPassword",
"PoolUrl": "public-pool.io",
"PoolPort": 3333,
"PoolPassword": "x",
"BtcWallet": "walletID",
"Timezone": 2,
"SaveStats": false
}
Recommended low difficulty share pools:
| Pool URL | Port | Web URL | Status |
|---|---|---|---|
| public-pool.io | 3333 | https://web.public-pool.io | Open Source Solo Bitcoin Mining Pool supporting open source miners |
| pool.nerdminers.org | 3333 | https://nerdminers.org | The official Nerdminer pool site - Mantained by @golden-guy |
| pool.nerdminer.io | 3333 | https://nerdminer.io | Mantained by CHMEX |
| pool.pyblock.xyz | 3333 | https://pool.pyblock.xyz/ | Mantained by curly60e |
| pool.sethforprivacy.com | 3333 | https://pool.sethforprivacy.com/ | Mantained by @sethforprivacy - public-pool fork |
| pool.stompi.de | 3333 | http://web.stompi.de | Mantained by @odinstar - public-pool fork |
| pool.solomining.de | 3333 | https://pool.solomining.de/ | Mantained by https://x.com/solo_mining |
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 |
With the USB-C port to the right:
TOP BUTTON
BOTTOM BUTTON
The same two buttons, plus:
Build environment: M5Stick-C-Plus2 (pio run -e M5Stick-C-Plus2 -t upload).
Pulse theme (the T-Display's MINE / MARKET / CLOCK / POOL screens, battery level in the top bar): M5Stick-C-Plus2-Pulse. There button B double click = next accent colour; everything below applies to both builds.
setup() and pad-latched, so automatic reboots (saving the Wi-Fi config, watchdog...) no longer switch the stick off when it runs on battery.-D SHARE_LED=0 / -D SHARE_BEEP=0 in the M5Stick-C-Plus2 environment.-D AUTO_DST_EU=1): set the timezone to the winter UTC offset (France: 1) on the web page or in the WiFi portal; the hour is added on the last Sunday of March and removed on the last Sunday of October.-D STATS_SAVE_MAX_s=600; stock firmware: up to every 12 h, so a restart could lose hours of shares and best difficulty), and also right before a power off from the button, a flat-battery power off or a restart from the settings page.pio test -e native builds the stratum parsing, the block header code (calculateMiningData), the share checks (checkValid, diff_from_target) and the software SHA-256d for the PC and runs 15 tests in a few seconds:
"error": false), and the malformed jobs it must refuse;mining.authorize with a " or \ in the worker name, the 8-digit nonce of mining.submit;test/test_native/gen_vectors.py, hashlib);checkValid() and nerd_sha256d_baked(), and 300,000 nonces of nerd_sha256d_baked() against a plain SHA-256.The firmware files are compiled as they are; test/native_shim stands in for the few Arduino/ESP-IDF pieces they use (String, Serial, WiFiClient, mbedTLS SHA-256).
Enjoy
ESP32-WROOM-HeadlessESP32-2432S028R-Classic environment (pio run -e ESP32-2432S028R-Classic -t upload), or TTGO-T-Display-Classic on the T-Display 1.14"./api/status.M5Stick-C-Plus2, or M5Stick-C-Plus2-Pulse for the Pulse theme, see M5StickC Plus2 notes)-D PLUS2_LOW_BATTERY_OFF=0 turns it off.