MakerWorld statistics on a Cheap Yellow Display (ESP32-2432S028).
Downloads, likes, prints, boosts, collections and comments — when a value changes, the module sends a Telegram message with the model title. Comments is the total across all of your published models, not just the featured one.
After flashing, the CYD talks to MakerWorld on its own. You can close the browser.
Firmware: 2026.10.01a · License: MIT
- Six entities on the 2.8" screen (240×320)
- Telegram on change
- Each affected model's title in the message, not only the pinned one
- MQTT → Home Assistant display backlight (on/off + brightness 0–255) and six sensors (downloads, likes, prints, boosts, collections, comments)
- HTTP endpoint
/lightif you do not want a broker - Incomplete comment counts are discarded (
found/totalat the bottom of the screen)
No MakerWorld login, no third-party cloud. Public profile and model data only.
- Clone or download the repo.
- Copy
firmware/config.h.example→firmware/config.h. - Fill in the Wi-Fi name, password and
MAKERWORLD_UID(see Find your MakerWorld UID). - Open
firmware/MakerPulse_CYD.inoin Arduino IDE 2. - Board ESP32 Dev Module, flash 4MB, partition Default 4MB with spiffs.
- Libraries: LovyanGFX, ArduinoJson 7, PubSubClient.
- Put the folder on a path with no spaces, e.g.
C:\\MakerPulse_CYD\\.
Full steps, Telegram, MQTT and troubleshooting: firmware/README.md.
MAKERWORLD_UID is the numeric account number (~10 digits). Not @YourName, not a model id, not #profileId-…. Use only the digits, without @ and without user_.
- Go to makerworld.com and sign in.
- Press F12 → Console tab.
- Paste this and press Enter:
fetch("/api/v1/design-user-service/my/preference")
.then(r => r.json())
.then(d => { console.log("UID:", d.uid); copy(String(d.uid)); });Your UID appears in the console and is copied. Paste that number into MAKERWORLD_UID.
That uid field is the numeric account number that tracking projects expect (about 10 digits).
- Handle looks like
@user_1298228011? Then1298228011is usually already your UID. - Avatar: open your profile, right-click the photo → Copy image address. The URL often contains
/avatar/4044076662/— that number is your UID. - Open one of your own models. In the page source or the Network tab you will find
designCreator.uid.
#define MAKERWORLD_UID 1298228011UL
#define MAKER_NAME "Maker"MAKER_NAME is only the label on the screen. Details: firmware/README.md.
| Board | ESP32-2432S028 (CYD 2.8", 240×320) |
| Cable | USB that carries data (not charge-only) |
| Network | 2.4 GHz Wi-Fi (not 5 GHz) |
| Optional | Telegram bot, MQTT / Home Assistant |
Newer USB-C CYD: enable newer CYD (USB-C) in the configurator, or set CYD_PANEL_ST7789 1 in config.h.
- @BotFather →
/newbot→ token. - Open your bot and tap Start.
- Put the chat ID in the configurator or in
config.h. - Send a test message before you flash.
TELEGRAM_INTERVAL_SEC chooses the summary period: 0 (each check), 3600 (1 hour), 21600 (6 hours) or 86400 (24 hours). Each option is one summary of that period for every statistic you left on. A quiet period sends nothing. The screen still refreshes every 2, 5, 10 or 15 minutes (POLL_INTERVAL_SEC).
MQTT is optional. Leave MQTT_HOST empty in config.h and the display and Telegram still work. Install stays in the Arduino IDE — there is no Docker step for the CYD.
| Define | Meaning |
|---|---|
MQTT_HOST |
Mosquitto IP or hostname. Empty = MQTT off. |
MQTT_PORT |
Default 1883. |
MQTT_USER |
Broker user, or empty. |
MQTT_PASS |
Broker password, or empty. |
- Install the Mosquitto broker add-on. Discovery prefix
homeassistantstays on. - Fill in the defines and flash again with the Arduino IDE.
- Settings → Devices & services → MQTT. Device MakerPulse CYD appears.
| Entity | What it is |
|---|---|
| Light MakerPulse scherm | Screen on/off and brightness 0–255 |
| Sensor Downloads | Published-model downloads |
| Sensor Likes | Likes |
| Sensor Prints | Prints |
| Sensor Boosts | Boosts |
| Sensor Collecties | Collections |
| Sensor Comments | Reviews & Ratings on every published model, summed |
Sensors update after each successful MakerWorld check, and again when the broker reconnects. Topic: makerpulse/<mac>/stats.
HTTP (POST http://makerpulse-cyd.local/light) only controls the backlight. The six statistics are MQTT-only. Full steps: firmware/README.md.
firmware/MakerPulse_CYD.ino sketch (keep as one file)
firmware/mp_types.h types for Arduino prototypes
firmware/config.h.example copy to config.h — never commit
firmware/README.md flashing, Telegram, MQTT, troubleshooting
docs/ screenshots
LICENSE MIT
SECURITY.md what never to publish
config.h is in .gitignore. Keep mp_types.h next to the .ino.
Want maximum control and insights on your MakerWorld data?
Run MakerPulse as a Docker Integration on your homeserver!
Check out my other project > https://github.com/leon199219/makerpulse
See SECURITY.md.
- no
config.hwith Wi-Fi / Telegram token / MQTT password - no personal
MakerPulse_CYD.zip - no internal Home Assistant IP or compose file with secrets
MIT © 2026 leon199219