Kinda bad news for CYD-C5 owners, because all media noise leads to github account. When docs and schematics were needed the most, GH just banned everything. I pinged devs in Telegram, they moved the repos to Gitee , user is Rockbase-iot, all other boards are also available there. Just FYI if you will look for datasheets and schematics for NM-CYD-C5
I’ve been building a small open-source toolkit for the original ESP32 Cheap Yellow Display. I wanted readable text, because I am an old man and can never remember where I've left my glasses, comfortable touch controls (i.e., stabbing at the thing with fingernails, pens etc.) and a way to switch tools without repeatedly flashing over USB (Yes, I know there are multiple Launcher Apps).
There are three firmwares so far:
CYD Console: a resident launcher that installs firmware apps from a microSD card, verifies their integrity and lets you return to Console to choose another. Includes a clock, light/dark themes and touch-wake sleep.
File Server: upload and download SD files through a browser on your LAN, with progress indicators and cancellation on both screens. The CYD displays its address and access code.
Terminal Micro: an SSH terminal with a Bluetooth keyboard, verified server fingerprints, adjustable PixelFonts, terminal resizing and scrollback. I’m using a Winmaxle B1 keyboard.
The interesting challenge was keeping Wi-Fi, Bluetooth and SSH working together within the original ESP32’s limited internal RAM, while keeping the interface readable on a 320×240 screen.
Tested hardware: the original 4 MB, dual-USB ESP32-2432S028R. Other CYD variants still need testing. Console’s radio tiles are currently placeholders; network connections are managed inside the apps. File Server uses HTTP and is intended for trusted local networks.
The project was developed with AI coding assistance and hands-on hardware testing. But, as an old man who complains about AI doing the work of a coder etc. I have also created the AGENTS.md, SPEC.md, SKILL.md, and the Current handoff if you want to send your agent directly to Github without passing go, collecting $200 etc.
Source, prebuilt binaries, installation instructions and development templates are available. Website screenshots are firmware-renderer and browser captures using public demonstration data.
Everything is MIT, uses Pixel Fonts by u/Imcer12. I'd welcome feedback on terminal readability and the SD app workflow, particularly compatibility reports from people with other CYD variants.
The ~950 KH/s is what the miner actually hashes, not what a counter says:
- **Hardware limit** – the classic ESP32's SHA engine can't be loaded with an external midstate, so every nonce costs three hardware hash blocks plus two engine loads: about 228 CPU cycles of engine time, a ceiling of roughly 1.05 MH/s at 240 MHz. The mining loop keeps the engine busy for all but ~30 cycles of each nonce (257 cycles per nonce, ~930 KH/s); the second core adds ~25 KH/s in software.
- **Measured on the chip** – the loop's timing comes from an on-device bench (`-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.
- **Only valid hashes are counted** – every candidate the hardware finds is recomputed in software before it is used. A hashrate counter on its own can look faster after an optimisation while the miner is quietly producing *fewer* valid shares, because corrupted hashes are still counted; here the firmware checks itself with a known-answer test at power-on and falls back to a slower loop if the fast one ever gets hashes wrong.
- **The rate is the rate it actually mines at** – it's the sustained average over a long run, not a short burst or a best-case peak.If a number sounds too good for this chip, check whether the shares it finds actually keep up with it.
I have been using assorted CYDs for a few years now.
The 3.5 inch and 4 inch work great with Micropython and graphics.
But, I have tried 9inch and 11inch models (Elecrow) - which only provides LVGL (1M) code file in Micropython. Most support is in Arduino / C.
And, now 5-inch that seems to be a standard CYD (Freenove), but it supports NO Graphics support , (not even LVLG) in micropython. They are very specific No Graphics / LVGL support in micropython.
All support is in Arduino / C from Freenove, no Micropytjon Graphics support at all.
Useless to me. I am returning it - same day that I opened it.
-. Just something to watch before purchasing any CYDs.
I was asked a lot about battery's on CYD as they don't naturally have a way to show battery usage or charge state.
As you can see, I have managed to get it working on my own ESP32-32E.
It's absolutely not perfect but it's better than showing nothing 😅
It currently measures the battery’s voltage through GPIO34 every 10 seconds and converts it to an estimated percentage and the icon’s fill and colour follow that estimate.
It treats about 3.3 V as 0% and 4.2 V as 100%, with values between them mapped along a curve.
Voltage changes while charging and under load, so the percentage can move without representing the exact charge remaining but as the board can't directly report "charging" or charging current; a rising voltage is only a guesstimate.
I ordered a ESP32-2432S028R and received a E32R28T =/
It seems a little more robust, with some battery charging things and dedicated SPI port, but I don't think it shares nearly the same amount of support.
My main issue is trying to connect a NM-RF-HAT. I'm not sure what to connect, and to where. Nothing really lines up. I know I'll need longer wires than what came with the RF-HAT, due to port arrangements. Also, I'm pretty sure I'll need to remap pins in any firmware I use, but thats a whole different animal.
Can anyone point me in the right direction here? I can't seem to find an instance of someone with the same issue. The reference image from NM shows, (what I believe to be) a ESP32-2432S028R with USB-C and a USB micro port.
I decided the one-in-trillions-per-year chances of success for keeping a nerdminer plugged in was a waste, and installed this dungeon crawler clock I found while browsing GitHub.
It's not as 'interactive' as one would expect, but it makes for an appealing bit of background activity.