Elecrow ESP32 Miner LCD 2.8

Elecrow's "crypto solo miner" is really a CYD with USB-C, an acrylic case and pre-broken-out JST ports - sold as a 2-pack. We reviewed it, shelved the mining, and kept the displays.

USB-C
Elecrow ESP32 Miner LCD 2.8 board
85.7 × 57 mm
ESP32
MCU
240MHz
clock
4MB
flash
520KB
SRAM
25· 5 ADC
GPIO
BLE 4.2+ WiFi
radio
On this page

Pinout

25 pins
View:
PinGPIOLabelsStatusCapabilitiesNotes
10IO0BOOTstrapping-BOOT button - hold at power-up for download mode
21IO1TXD0uartuartUART0 - CH340C USB-C flashing/logs
32IO2TFT_DCstrapping-Internal - display data/command select
43IO3RXD0uartuartUART0 - CH340C USB-C flashing/logs
55IO5SD_CSstrappingspimicroSD slot - chip select
612IO12TFT_MISOstrappingspiInternal - display/touch SPI MISO
713IO13TFT_MOSIstrappingspiInternal - display/touch SPI MOSI
814IO14TFT_SCLKstrappingspiInternal - display/touch SPI clock
915IO15TFT_CSstrappingspiInternal - display chip select
1016IO16UART2_RXstrappinguartUART JST connector
1117IO17UART2_TXstrappinguartUART JST connector
1218IO18SD_CLKsafespimicroSD slot - clock
1319IO19SD_MISOsafespimicroSD slot - MISO
1421IO21SCLsafei2cI2C JST connector - SCL is IO21, SDA is IO22 on this board
1522IO22SDAsafei2cI2C JST connector
1623IO23SD_MOSIsafespimicroSD slot - MOSI
1725IO25GPIO_ROWsafeadc · dacFree GPIO on the header row - ADC and DAC capable
1826IO26SPEAKsafedacSpeaker JST - DAC through the onboard amplifier
1927IO27TFT_BLsafepwmDisplay backlight - IO27 here, NOT the IO21 many stock-CYD configs assume
2032IO32GPIO_ROWsafeadcFree GPIO on the header row - ADC capable
2133IO33TOUCH_CSsafespiInternal - XPT2046 touch controller chip select
2234IO34GPIO_ROWstrappingadcHeader row - input only
2335IO35GPIO_ROWstrappingadcHeader row - input only
2436IO36TP_IRQstrapping-Internal - XPT2046 touch interrupt (input only)
2539IO39GPIO_ROWstrappingadcHeader row - input only

Start with these

10 pins with no boot or system involvement
IO18SD_CLKIO19SD_MISOIO21SCLIO22SDAIO23SD_MOSIIO25GPIO_ROWIO26SPEAKIO27TFT_BLIO32GPIO_ROWIO33TOUCH_CS

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

sampled at boot or shared with debug/serial
PinLabelWhat to knowRole
IO0GPIO0Must be HIGH during boot for normal startup; if held LOW on reset, forces flash programming mode.Strapping
IO2GPIO2If driven HIGH on reset (while IO0 is LOW), selects an unsupported SDIO boot mode, causing boot failure.Strapping
IO5GPIO5Must be HIGH during boot; if pulled LOW at reset, alters SDIO slave timing and may prevent normal boot.Strapping
IO12MTDI (GPIO12)Keep LOW during boot (internal PD); pulling HIGH at reset selects 1.8V flash mode, causing flash brownout if 3.3V flash is used.Strapping
IO13MTCK (GPIO13)Used for JTAG debugging (TCK); avoid using as GPIO if JTAG is needed.Other
IO14MTMS (GPIO14)Used for JTAG debugging (TMS); driving it as GPIO may interfere with JTAG or produce spurious signals at boot.Other
IO15MTDO (GPIO15)Keep HIGH during boot (internal PU); if LOW on reset, bootloader log is silenced and boot mode may change.Strapping
IO34GPIO34Cannot be used as output (no drive capability); only suitable for analog/digital input.Other
IO35GPIO35Cannot be used as output; only suitable for input.Other
IO36GPIO36 (SENSOR_VP)Cannot be used as output; only suitable for input (e.g., analog read).Other
IO39GPIO39 (SENSOR_VN)Cannot be used as output; only suitable for input.Other

Only if you know the tricks

wired to flash or USB - expect a fight
PinLabelWhat to knowRole
IO1U0TXD (GPIO1)Connected to on-board USB-UART for uploading and logs; drives serial output at boot, so using as GPIO can disrupt programming or console.USB
IO3U0RXD (GPIO3)Used for receiving data from USB-UART (programming); also pulled HIGH at boot for console communication, so using as GPIO can disrupt uploads.USB
IO16GPIO16Connected to internal PSRAM on PSRAM-enabled modules; not usable as GPIO on those modules.Flash
IO17GPIO17Connected to internal PSRAM on PSRAM-enabled modules; not usable as GPIO on those modules.Flash
These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.
Pinout notes All 25 pins on the Elecrow ESP32 Miner LCD 2.8 are usable GPIO. Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO22 and SCL on GPIO21. Beyond…

All 25 pins on the Elecrow ESP32 Miner LCD 2.8 are usable GPIO.

Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO22 and SCL on GPIO21.

Beyond plain digital I/O you get 5 ADC-capable pins for sensors and battery monitoring, PWM on 1 pins and 2 true DAC outputs.

11 of the exposed pins carry boot-time or system duties on the ESP32 (IO0, IO2, IO5 and 8 more) - check the guidance above before wiring anything to them. IO18, IO19, IO21, IO22 and 6 more are free of any such role - the safest first picks.


The display SPI matches the classic CYD recipe: IO14 (SCLK), IO13 (MOSI), IO12 (MISO), IO15 (CS), IO2 (DC), no reset pin, with the XPT2046 touch controller on the same bus (IO33 CS, IO36 IRQ) and the backlight on IO27 - not IO21 as on many stock CYDs. The microSD slot gets its own SPI: IO18 (CLK), IO19 (MISO), IO23 (MOSI), IO5 (CS).

The JST connectors carry UART2 on IO16/IO17, I2C on IO22 (SDA) / IO21 (SCL), and the speaker line from DAC IO26 through the onboard amplifier. The GPIO row exposes IO25, IO32 and the input-only IO34/IO35/IO39 - the ADC-capable leftovers of a fully-committed pin budget.

Flashing runs through the CH340C on UART0 (IO1/IO3) via USB-C, with IO0 on the BOOT button. If you're porting a stock-CYD project, the only changes that usually matter are the backlight pin and the presence of real connectors where you used to solder.

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Install your USB-serial driver (CH340 / CP210x) if no port appears. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
The onboard LED on GPIO18 blinks - swap the pin if your board's LED differs.
Set these in Tools · leave everything else at default
Arduino IDE 2.x — Tools Copy
Board: "ESP32 Dev Module"
Flash Size: "4MB (32Mb)"
Partition Scheme: "Default 4MB with spiffs (1.2MB APP / 1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option — leave at default
Board: ESP32 Dev Module
Flash Size: 4MB (32Mb)
Partition Scheme: Default 4MB with spiffs (1.2MB APP / 1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ ESP32 Dev Module
blink.ino Copy
// blink the onboard LED
void setup() {
  pinMode(18, OUTPUT);
}
void loop() {
  digitalWrite(18, HIGH); delay(500);
  digitalWrite(18, LOW);  delay(500);
}
board to selectesp32dev⧉ copy
platformio.ini Copy
[env:elecrow-esp32-miner-2-8]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Find it: PlatformIO Home ▸ Boards, search esp32dev — or type it after board =.
board to selectesp32dev⧉ copy
device.yaml Copy
esp32:
  board: esp32dev
  variant: 
  framework:
    type: esp-idf

# blink - GPIO18
output:
  - platform: gpio
    pin: 18
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for esp32dev (same ids as PlatformIO).
esptool doesn't pick board settings — a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).

Good to know

board-specific quirks worth 60 seconds
A CYD in miner's clothing illustration
A CYD in miner's clothing
Strip the mining branding and the PCB reads like a tidied-up ESP32-2432S028R: same chip, same ILI9341 SPI wiring, same resistive touch. The additions are around the edge - JST connectors for I2C, two UARTs, battery and speaker, where a stock CYD offers solder pads under the bezel. Porting a CYD project? Everything transfers except the backlight - it's IO27 here, not IO21 . That one pin is the entire migration…

Strip the mining branding and the PCB reads like a tidied-up ESP32-2432S028R: same chip, same ILI9341 SPI wiring, same resistive touch. The additions are around the edge - JST connectors for I2C, two UARTs, battery and speaker, where a stock CYD offers solder pads under the bezel.

Porting a CYD project? Everything transfers except the backlight - it's IO27 here, not IO21. That one pin is the entire migration guide.

Reflash it and it's just a good little display illustration
Reflash it and it's just a good little display

Our review walks through both firmware paths - a TFT_eSPI User_Setup for Arduino IDE and a minimal ESP-IDF project pulling the official ILI9341 driver from the component registry. Either way you're minutes from a working 320x240 UI, and the LVGL ecosystem treats it as the known quantity it is.

Keep the TFT SPI at 16MHz to start - this panel tolerates 27MHz on short traces, but 16 is the no-surprises setting.

The case is half the value proposition illustration
The case is half the value proposition

An acrylic sandwich case ships in the box - not premium, but it means the board can sit on a desk or be handed to someone non-technical from day one. Stock CYDs arrive as bare PCBs, and a case is the first thing most people end up sourcing anyway.

The battery JST sits under the case - route the cable before final assembly if you're going portable.

Specifications

ESP32 · 85.7 × 57 mm
Compute
MCU
ESP32
Clock
240 MHz
SRAM · Flash
520 KB · 4MB
Radio
Wi-Fi
802.11 b/g/n
Bluetooth
4.2 LE
Antenna
PCB
I/O
GPIO · ADC
25 · 5
UART · I²C · SPI
3 · 2 · 4
PWM
16 channels
Power
USB
USB-C
Serial
CH340C
Boot address
0x1000
Display
Screen
TFT LCD (TN) · 2.8" · 320x240
Driver
ILI9341V
Touch
XPT2046 (resistive)
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
- · -
Sketch · Data
- · -
57 mm85.7 mm
85.7 × 57 mm
The Elecrow ESP32 Miner LCD 2.8 uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates.

About this board

Inside sits the ESP32 - a dual-core Xtensa with both Bluetooth Classic and BLE. Sibling CYD boards cover the ESP32-S3 and ESP32-C3, so you can change radios or horsepower without changing the footprint.

At $29.90 it's on the expensive side for a CYD board - most land around $22.

Around the module: a TFT LCD (TN) 2.8" 320x240 display with touch, a microSD slot, a speaker, a speaker connector (PH2.0-2P), battery charging via PH2.0-2P and Boot/Reset buttons.


The Elecrow ESP32 Miner LCD ships in a box that says Cryptocurrency Solo Miner with 1000 KH/s Hashrate. In our review we dutifully flashed NMMiner, watched shares scroll by, and then did what most owners will do: shelved the mining idea and kept the hardware - because underneath, this is a Cheap Yellow Display with the rough edges filed off.


The spec sheet is pure CYD: ESP32-WROOM-32-N4, 2.8-inch 320x240 ILI9341V TN panel, XPT2046 resistive touch with an included stylus, 4 MB flash and no PSRAM. What Elecrow adds is convenience - USB-C instead of micro-USB, an acrylic sandwich case in the box, and pre-terminated JST connectors (I2C, two UARTs, battery, speaker) plus a microSD slot and a GPIO row, where a stock CYD gives you solder pads.


Being honest, as our review was: if you already own a stock CYD, nothing here justifies replacing it - the panel is the same TN part with the same viewing angles, and the chip is identical. The pitch is for new purchases: at roughly $15 per unit (sold as a 2-pack only), you're paying CYD money and getting connectors, a case and USB-C that you'd otherwise bodge on yourself.


Firmware-wise it behaves exactly like the CYD it is - our review includes ready-to-paste TFT_eSPI and ESP-IDF starter configs. The one trap: the backlight is on IO27, not the IO21 many stock-CYD configs assume, so a "dark screen after flashing" is almost always that one pin number.

  • Functionally a CYD - ESP32-WROOM-32-N4, 2.8" 320x240 ILI9341V TN panel, XPT2046 resistive touch, stylus included
  • USB-C via CH340C instead of the typical CYD micro-USB
  • Pre-terminated JST connectors - I2C, 2x UART, battery (3.7-4.2V with charging) and speaker
  • microSD slot on a dedicated SPI bus, plus a GPIO row (IO25, IO32, IO34/35/39)
  • Acrylic sandwich case included in the box
  • Ships as a 2-pack (~$15 per unit) with mining firmware preloaded - reflash it like any ESP32
  • TFT_eSPI and ESP-IDF starter configs published in our review
  • -20 to 70 degrees C rated; 85.7 x 57 mm board

FAQ

5 common questions
Is it actually any good as a crypto miner?
No - and that's not a knock on Elecrow, it's arithmetic. An ESP32 hashes around 1000 KH/s; the network operates in exahashes. Solo-mining on it is a lottery-ticket novelty (which some people genuinely enjoy via NMMiner). We flashed it, watched it submit shares, and repurposed both units within the week - as displays, they're perfectly competent.
How is it different from a regular Cheap Yellow Display?
Same chip, same panel, same touch. The differences are packaging - USB-C, an included acrylic case, JST connectors for I2C/UART/battery/speaker instead of solder pads, an SD slot on its own bus, and a stylus. If you already own a CYD, keep it. If you're buying fresh and the 2-pack format suits you, the per-unit price is competitive with bare CYDs.
Can I flash it with my existing CYD firmware or ESPHome config?
Almost verbatim. The display pins match the classic ESP32-2432S028R mapping, so TFT_eSPI, LVGL and ESPHome CYD configs carry over - with one exception - the backlight is IO27 on this board, while many stock CYDs use IO21. A black screen with working logs after flashing is that pin, nine times out of ten.
Why does it only come as a 2-pack?
Elecrow sells it as "2-PACK" at $29.90 - presumably to lean into the mining-farm aesthetic. Practically it means you either want two displays (genuinely useful for multi-room dashboards) or you're paying for a spare. There's no single-unit listing as of our review.
Does the touchscreen work like a CYD's too?
Yes - the same XPT2046 resistive controller on the shared SPI bus, with its own chip select (IO33) and an interrupt line (IO36). It needs firm presses or the stylus, and a one-time calibration in firmware saves you from offset-touch frustration.

Where to buy

prices are typical street prices
Elecrow ESP32 Miner LCD 2.8
Elecrow ESP32 Miner LCD 2.8
$29.90per unit, typical

Resources

Similar boards

All Cyd boards →