-
Notifications
You must be signed in to change notification settings - Fork 6
Where To Get It

Everything you need to build and flash a Cheap Yellow Monster.
No toolchain needed. Plug in your board via USB-C (or USB, on Classic CYD) and flash directly from your browser. CYM now supports three boards — see Supported Hardware — the web flasher has a board selector at the top for all of them.

- Works in Chrome and Edge (Web Serial API required)
- Board selector: NM-CYD-C5, Classic CYD, or Waveshare WS-C5-28
-
Stable tab: latest released firmware from
main -
Dev tab: latest test build from
Jimgat_Devbranch — new features first - No drivers needed on Linux or Mac; Windows may require the CP210x driver
All required binaries for every board are attached to every GitHub Release. Bootloader offset differs by chip — ESP32-C5 boards (NM-CYD-C5, WS-C5-28) use 0x2000; the Classic CYD (plain ESP32) uses 0x1000.
NM-CYD-C5 (--chip esp32c5):
esptool.py --chip esp32c5 --baud 460800 write_flash \
0x2000 bootloader.bin \
0x8000 partition-table.bin \
0x10000 CYM-NM28C5.binWaveshare WS-C5-28 (--chip esp32c5):
esptool.py --chip esp32c5 --baud 460800 write_flash \
0x2000 bootloader.bin \
0x8000 partition-table.bin \
0x10000 CYM-WS-C5-28.binClassic CYD / CYD-2432S028 (--chip esp32 — note the 0x1000 bootloader offset):
esptool.py --chip esp32 --baud 460800 write_flash \
0x1000 bootloader.bin \
0x8000 partition-table.bin \
0x10000 CYM-CYD-2432S028.binEach board's bootloader.bin and partition-table.bin are board-specific — use the set from the same release/board, don't mix them. Alternatively, each release also has a merged *-full.bin per board (bootloader + partition table + firmware already combined) that flashes as a single file at 0x0000 with any flasher that accepts a full image.
The heart of CYM, and the primary/preferred board — new features land here first, and it's the only board with the full NM-RF-HAT plug-and-play expansion. ESP32-C5, 2.8″ ST7789 touch display, MicroSD, WS2812 RGB LED, all in a compact CYD form factor.
| Where | Link |
|---|---|
| Official store (nmminer.com) | nmminer.com/product/nm-cyd-c5 |
| Board documentation & schematics | github.com/RockBase-iot/NM-CYD-C5 |
The original dual-USB "Cheap Yellow Display" board that started the CYD ecosystem. Widely available from many generic sellers — there's no single official store. See Classic CYD Support for what works and what's different from NM-CYD-C5.
| Where | Search term |
|---|---|
| AliExpress / Amazon / generic electronics sellers | "ESP32-2432S028R" or "Cheap Yellow Display dual USB" |
Waveshare's own ESP32-C5 touch board — on par with NM-CYD-C5's core feature set, plus onboard IMU, temp/humidity, RTC, and audio codec. See Waveshare WS-C5-28 Support for hardware differences and RF-HAT wiring.
| Where | Link |
|---|---|
| Official store (Waveshare) | waveshare.com — search "ESP32-C5-Touch-LCD-2.8" |
| Board documentation | github.com/waveshareteam/ESP32-C5-Touch-LCD-2.8 |
Adds CC1101 Sub-GHz, nRF24L01+ 2.4 GHz, PN532 NFC/RFID, IR TX/RX, and RF433 OOK. DIP switches select which module is active. All ICs are soldered on-board — no plug-in modules to lose.
| Where | Link |
|---|---|
| Official store (nmminer.com) | nmminer.com — search "NM-RF-HAT" |
| Board documentation | github.com/RockBase-iot/NM-CYD-C5 |
DIP switch quick reference: DIP 1 = CC1101 Sub-GHz · DIP 2 = nRF24L01+ · DIP 3 = PN532 NFC/RFID · DIP 4 = IR · DIP 5 = RF433
Any ATGM336H-based 3.3 V UART module works. The Teyleten Robot 2-pack is the confirmed tested option.
| Where | Search term |
|---|---|
| Amazon (ASIN B09LQDG1HY) | Teyleten Robot ATGM336H |
| AliExpress | "ATGM336H GPS BDS module UART" |
Wiring (LP-UART header on NM-CYD-C5):
| GPS pin | NM-CYD-C5 pin | Notes |
|---|---|---|
| TX | GPIO 4 | GPS output → ESP32 receive |
| RX | GPIO 5 | ESP32 transmit → GPS input |
| VCC | 3.3 V or 5 V | Most ATGM336H breakout boards have an onboard LDO; both voltages work |
| GND | GND |
Default baud: 9600 / 1 Hz. Opt-in 115200 / 5 Hz available in Options → GPS Baud (ATGM336H confirmed). CYM auto-detects baud on boot. See Getting Started → GPS Wiring for full troubleshooting guide.
Any small 3 V ERM coin or cylinder vibrator motor. Requires a small diode circuit on the SPEAK_IN header — see Haptic Feedback for the full build guide and wiring photos.
| What | Where |
|---|---|
| ERM vibrator motor (3 V, 8–16 Ω) | AliExpress — search "ERM vibrator motor 3V" or "coin vibration motor 10mm" |
| 1N5819 Schottky diode | Any electronics supplier |
| 1N4148 signal diode | Any electronics supplier |

Three community-designed enclosures fit the full NM-CYD-C5 + NM-RF-HAT stack.
| Case | Link | Notes |
|---|---|---|
| MakerWorld — GPS + 18650 battery | makerworld.com/en/models/2670158 | Full field kit with onboard battery; DIP switches internal |
| Printables — Magnetic lid | printables.com/model/1638712 | 6×2 mm magnets; clean look; DIP switches internal |
| Thingiverse — Community favorite | thingiverse.com/thing:7305463 | DIP switches accessible from exterior — best for frequent module switching |
Tip: If you switch RF modules often (DIP 1–5), the Thingiverse case is the only one with external DIP switch access. For the other two cases, consider soldering short extension wires to the switch pads and mounting a panel-mount DIP switch externally before printing.
| Resource | Link |
|---|---|
| GitHub repository | github.com/JimGat/CYM |
| Latest release + binaries | github.com/JimGat/CYM/releases |
| Web flasher | jimgat.github.io/CYM |

