▲ 181 r/CheapYellowDisplay+2 crossposts

Now with BLE-HID Gamepad Support — Play retro-go on NM-CYD-C5 with a Bluetooth Keyboard🎮

Hi r/esp32,

Following up on our retro-go port for the NM-CYD-C5 — we've now added BLE-HID gamepad support. That means you can pair a Bluetooth controller and play without touching the screen. No wires, no mods, just pair and play.

We tested with the Shan Wan Q36 — a compact Bluetooth gamepad that maps cleanly to retro-go's input system — but any BLE-HID keyboard/controller should work.

Quick recap for context:

the NM-CYD-C5 is an ESP32-C5 board with 8 MB PSRAM, 16 MB flash, and a 2.8" 240×320 ST7789 display. Our retro-go port runs on it out of the box — no PSRAM soldering needed. Now it talks Bluetooth too.

What's new in this release:

  • BLE-HID host mode: scanning for BLE HID keyboard devices at boot

  • Auto-pair: picks up the first advertising BLE-HID keyboard in range and

connects automatically — you can also manually pair via the launcher menu

  • Gamepad mapping: Shan Wan Q36 (D-pad + ABXY + shoulder buttons) mapped to

retro-go's standard input layout:

- D-pad → directional input

- A / B → retro-go A / B

- Start / Select → menu / select

A few technical notes:

  • ESP32-C5's BLE 5.0 stack is handled via NimBLE in ESP-IDF 5.5+; we use the

standard esp_hid component with a thin HID→retro-go input bridge

  • The Shan Wan Q36 advertises as a BLE-HID keyboard (mode: HID for Android), which is why the HID report parsing treats a subset of keycodes as gamepad buttons

  • Pairing is stateless per session — no bonding or persistent storage needed; just turn on the controller before booting the board

Getting started:

  1. Flash the latest retro-go .img to 0x0

  2. Power on your Shan Wan Q36 (or any BLE-HID keyboard) — put it in pairing mode

  3. Power on the NM-CYD-C5 — it auto-scans and connects

  4. Launch a ROM and play with the gamepad

Software tag: https://github.com/RockBase-iot/retro-go/releases/tag/Retro-Go_1.46_NM_CYD_C5

(Updated .img includes BLE-HID support)

Would love to hear what controllers you test with — drop a comment if you try

something other than the Q36.

Happy gaming 🕹️

u/NMTech-Official — 7 days ago

I connected ESP-Claw (AI Agent) to a Meshtastic node via Serial PROTO — now my LoRa mesh has a brain

Hello, everyone, i wanted to share something we've been experimenting with that turned out way cooler than expected.

The Idea

What if your Meshtastic node wasn't just a dumb relay, but had an actual AI agent sitting behind it, reachable from Telegram or Feishu, capable of managing the mesh intelligently?

That's what we built: ESP-Claw + Meshtastic, connected over Serial PROTO.

How It Works

Meshtastic has a Serial Module mode (SERIAL_MODULE_MODE_PROTO) where the node exposes its full protobuf API over UART. Instead of using the Python CLI or a phone app, we wired it directly to an ESP-Claw board and implemented protocol-level command parsing inside esp-claw's Lua rule engine.

The stack looks like this:

Telegram / Feishu (your phone)
        │
   Cloud LLM (Claude / DeepSeek / GPT)
        │
   ESP-Claw Board ←── UART (Serial PROTO) ──→ Meshtastic Node (Heltec LoRa32 V3)
   (NM-CYD-C5 or                              (ESP32-S3 + SX1262)
    NM-Display-2.8inch)
        │
   LoRa Mesh Network

Hardware We Tested With

  • NM-CYD-C5 – ESP32-C5 (WiFi 6!), 16MB Flash, 8MB PSRAM, 2.8" 320×240 touch display. About the size of your palm.
  • NM-Display-2.8inch – ESP32-S3 based, 2.8" IPS touch screen, 6-axis IMU, RTC, audio codec. Beefy little board.
  • Meshtastic node: Heltec LoRa32 V3 (ESP32-S3 + SX1262). Classic choice, rock solid.

What It Can Actually Do

Once the AI agent can speak Meshtastic's protocol, a lot opens up:

  • Remote Node Management – "Hey Claude, what's the battery level of node !a3f2b1c4?" — done. No need to be within Bluetooth range.
  • Intelligent Mesh Monitoring – The agent periodically polls telemetry from all reachable nodes, alerts you if someone's battery is dying or a node went offline.
  • Automated Mesh Health Reports – Schedule daily summaries pushed to your Telegram: "12 nodes online, 2 nodes below 20% battery, 1 node with poor SNR."
  • Natural Language Mesh Commands – Instead of remembering Meshtastic CLI syntax: "Send a message to the 'hiking-group' channel saying we're at the trailhead" — the LLM translates that into the correct protobuf calls.
  • Event-Driven Automation – Lua rules on esp-claw trigger on incoming mesh packets. Got a node broadcasting emergency coordinates? Auto-escalate to a notification on your phone.
  • Off-Grid Bridge – Mesh nodes in remote areas with no WiFi can be managed through a single ESP-Claw gateway that has both WiFi and LoRa reach.

Drop a comment if you're interested in trying it out, or if you have ideas for what else an AI agent should do on a mesh network. We'll share setup guides if there's enough interest!

u/NMTech-Official — 13 days ago
▲ 198 r/CheapYellowDisplay+2 crossposts

We port the nm-cyd-c5 to retro-go - support NES, Gameboy, Lynx, Game Gear, Master System

Hi r/esp32,

We added support for the NM-CYD-C5 board to retro-go (the ESP32 retro emulator launcher/frontend).

If you haven't seen it, this excellent Instructables guide shows how to turn an ESP32-CYD into a RetroGo handheld:
https://www.instructables.com/Retro-Handheld-Based-on-the-ESP32-CYD-and-RetroGo/

The main difference with the NM-CYD-C5 is that the board already ships with 8 MB PSRAM, plus an ESP32-C5 (RISC-V @ 240 MHz), 16 MB flash, and a 2.8" 240×320 ST7789 display. That let me skip the external PSRAM mod/wiring that the original CYD build requires — it mostly works out of the box once the SPI display, SD card, and touch pins are mapped.

A few technical notes:

  • New target: nm-cyd-c5
  • Requires ESP-IDF 5.5+ (needed for ESP32-C5 support)
  • The XPT2046 touch controller is mapped to a virtual gamepad for launcher nav and basic testing
  • Audio defaults to the dummy sink because the board docs don't list an onboard DAC or speaker
  • The CPU is single-core RISC-V, so it has less headroom than dual-core ESP32/S3 targets — start with launcher + retro-core before trying heavier emulators

If you want the full handheld build (case, physical buttons, controls), the Instructables guide linked above is still the best reference; this board just saves you the PSRAM soldering step.

Hardware ref: https://github.com/RockBase-iot/NM-CYD-C5 Software tag: https://github.com/RockBase-iot/retro-go/releases/tag/Retro-Go_1.46_NM_CYD_C5

you can just flash the .img file to 0x0 to run retro-go on your NM-CYD-C5.

u/NMTech-Official — 13 days ago
▲ 1 r/esp32

https://preview.redd.it/bjdat9c4ywxg1.png?width=946&format=png&auto=webp&s=c3e31121ad2dbb5a8bf6ef22e434329848cb00e5

https://preview.redd.it/60br7bc4ywxg1.png?width=800&format=png&auto=webp&s=283f4d3ea32d847391e071e19e3efc578deed29b

https://preview.redd.it/37srskc4ywxg1.jpg?width=600&format=pjpg&auto=webp&s=3de1a0b7397c90eeaa3766ffaddb05b66d02b4a4

https://preview.redd.it/0mpoykc4ywxg1.jpg?width=600&format=pjpg&auto=webp&s=ca4e67905e6d66ffd2719b7bfc9a08086064f6cf

esp-claw on telegram

esp-claw on feishu

https://preview.redd.it/gft28drlywxg1.png?width=1332&format=png&auto=webp&s=b0a5622c6ea382aba8cd6dc827ad0751cbfdffea

Hey, wanted to share our latest project - getting ESP-Claw (Espressif's AI agent framework) running on the NM-CYD-C5 board with full touch screen support.

ESP-Claw is Espressif's Chat Coding AI agent framework for IoT devices. It's amazing that it's like a light OpenClaw running on the little ESP32-series device, just 16MB flash and 8M PSRAM.

When porting the esp-claw to NM-CYD-C5, we do some changes to make it more convenient usage. 

1. We try to add touch screen operation on the device. 
2. Add add esp-claw status page just like the OpenClaw dashboard.
3. Add IM message Queue page.
4. Try some other LLM, like Kimi-k2.6, MiniMax-M2.7, Nvidia free API running deepseek-v4-pro.
5. Tested the 5G WiFi connnetion, works well with NM-CYD-C5.
6. Tested Telegram and Feishu, works just like the openclaw.

Some things to be done:
[ ] Use the touch gesture to change the working pages.
[ ] Message queue can be store on SD card.
[ ] Optimize the memory usage for the limit esp32 device.

If you are interested in this project, you can participate in. More info can be found from github.
reddit.com
u/NMTech-Official — 2 months ago