Skip to content

Commit 0824a79

Browse files
committed
0.7.4
1 parent 13a7bc5 commit 0824a79

File tree

5 files changed

+69
-4
lines changed

5 files changed

+69
-4
lines changed

custom_components/reterminal_dashboard/frontend/editor.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<aside class="sidebar">
2121
<div>
2222
<h1><span class="logo-dot"></span> ESPHome Designer <span
23-
style="font-size: 10px; color: var(--muted); vertical-align: middle;">v0.7.3</span></h1>
23+
style="font-size: 10px; color: var(--muted); vertical-align: middle;">v0.7.4</span></h1>
2424
<div style="margin-top: 4px; font-size: 10px;">
2525
<a href="https://github.com/koosoli/esphomedesigner" target="_blank"
2626
style="color: var(--accent); text-decoration: none; display: flex; align-items: center; gap: 4px;">

custom_components/reterminal_dashboard/frontend/js/io/devices.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,32 @@ window.DEVICE_PROFILES = {
8383
sht4x: false
8484
}
8585
},
86+
trmnl_diy_esp32s3: {
87+
name: "Seeed Studio Trmnl DIY Kit (ESP32-S3)",
88+
displayModel: "7.50inv2p",
89+
displayPlatform: "waveshare_epaper",
90+
psram_mode: "octal",
91+
pins: {
92+
display: { cs: "GPIO44", dc: "GPIO10", reset: "GPIO38", busy: { number: "GPIO4", inverted: true } },
93+
i2c: { sda: "GPIO17", scl: "GPIO18" }, // Generic S3 defaults, user didn't specify I2C but it's good to have placeholder
94+
spi: { clk: "GPIO7", mosi: "GPIO9" },
95+
batteryEnable: "GPIO6",
96+
batteryAdc: "GPIO1",
97+
buzzer: null,
98+
buttons: { left: "GPIO2", refresh: "GPIO5" } // Key1=Wake/Left, Key3=Refresh
99+
},
100+
battery: {
101+
attenuation: "12db", // As per user yaml
102+
multiplier: 2.0,
103+
calibration: { min: 3.27, max: 4.15 }
104+
},
105+
features: {
106+
psram: true,
107+
buzzer: false,
108+
buttons: true,
109+
sht4x: false
110+
}
111+
},
86112
m5stack_coreink: {
87113
name: "M5Stack CoreInk (200x200)",
88114
displayModel: "1.54in-m5coreink-m09",

custom_components/reterminal_dashboard/frontend/js/io/yaml_export.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ function generateSnippetLocally() {
3838
const graphWidgets = [];
3939
const weatherForecastWidgets = [];
4040
const onlineImageWidgets = [];
41+
const qrCodeWidgets = [];
4142
const staticImageMap = new Map();
4243

4344
pagesLocal.forEach(p => {
@@ -56,6 +57,9 @@ function generateSnippetLocally() {
5657
if (t === "puppet" || t === "online_image") {
5758
onlineImageWidgets.push(w);
5859
}
60+
if (t === "qr_code") {
61+
qrCodeWidgets.push(w);
62+
}
5963
if (t === "image") {
6064
const path = (w.props?.path || "").trim();
6165
if (path) {
@@ -104,6 +108,10 @@ function generateSnippetLocally() {
104108
lines.push("# - Board: m5stack-paper");
105109
lines.push("# - Framework: arduino (Required)");
106110
lines.push("# - Flash Size: 16MB");
111+
} else if (getDeviceModel() === "trmnl_diy_esp32s3") {
112+
lines.push("# - Select: ESP32-S3");
113+
lines.push("# - Board: esp32-s3-devkitc-1");
114+
lines.push("# - Framework: esp-idf (Recommended) or arduino");
107115
} else {
108116
lines.push("# - Select: ESP32-S3 (or appropriate for your board)");
109117
}
@@ -594,6 +602,22 @@ function generateSnippetLocally() {
594602
lines.push("");
595603
}
596604

605+
// Generate qr_code: component declarations
606+
if (qrCodeWidgets.length > 0) {
607+
lines.push("qr_code:");
608+
qrCodeWidgets.forEach(w => {
609+
const p = w.props || {};
610+
const safeId = `qr_${w.id}`.replace(/-/g, "_");
611+
const value = (p.value || "https://esphome.io").replace(/"/g, '\\"');
612+
const ecc = p.ecc || "LOW";
613+
614+
lines.push(` - id: ${safeId}`);
615+
lines.push(` value: "${value}"`);
616+
lines.push(` ecc: ${ecc}`);
617+
});
618+
lines.push("");
619+
}
620+
597621
// ========================================================================
598622
// TEXT SENSOR SECTION (Widget sensors: quotes, weather conditions)
599623
// ========================================================================
@@ -1007,7 +1031,7 @@ function generateSnippetLocally() {
10071031
const RECT_Y_OFFSET = -15;
10081032
const TEXT_Y_OFFSET = 0;
10091033

1010-
if (getDeviceModel() === "m5stack_paper" || getDeviceModel() === "reterminal_e1001") {
1034+
if (getDeviceModel() === "m5stack_paper" || getDeviceModel() === "reterminal_e1001" || getDeviceModel() === "trmnl_diy_esp32s3") {
10111035
lines.push(" const auto COLOR_WHITE = Color(0, 0, 0); // Inverted for e-ink");
10121036
} else {
10131037
lines.push(" const auto COLOR_WHITE = Color(255, 255, 255);");
@@ -1023,7 +1047,7 @@ function generateSnippetLocally() {
10231047
// - Red(255,0,0) -> Shows WHITE/Invisible
10241048
// - Display is 6-color (Black, White, Red, Green, Blue, Yellow)
10251049
// ============================================================================
1026-
if (getDeviceModel() === "m5stack_paper" || getDeviceModel() === "reterminal_e1001") {
1050+
if (getDeviceModel() === "m5stack_paper" || getDeviceModel() === "reterminal_e1001" || getDeviceModel() === "trmnl_diy_esp32s3") {
10271051
lines.push(" const auto COLOR_BLACK = Color(255, 255, 255); // Inverted for e-ink");
10281052
} else {
10291053
lines.push(" const auto COLOR_BLACK = Color(0, 0, 0);");

custom_components/reterminal_dashboard/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"documentation": "https://github.com/koosoli/ESPHomeDesigner",
55
"issue_tracker": "https://github.com/koosoli/ESPHomeDesigner/issues",
66
"configuration_url": "/reterminal-dashboard",
7-
"version": "0.7.3",
7+
"version": "0.7.4",
88
"after_dependencies": [
99
"http",
1010
"frontend",

release_notes.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,21 @@
33

44

55

6+
## v0.7.4 - Trmnl DIY Support
7+
8+
**Release Date:** December 17, 2025
9+
10+
### 🚀 New Hardware Support
11+
- **Seeed Studio Trmnl DIY Kit (ESP32-S3)**: Added full support for the Trmnl DIY Kit, including:
12+
- Correct pin mappings for display, buttons, battery, and SPI.
13+
- Support for `7.50inv2p` display model with partial update capabilities.
14+
- Automatic `inverted` color handling to fix "Dark Mode" logic (Hardware White is treated as logical White).
15+
16+
### 🐛 Bug Fixes
17+
- **QR Code Widget**: Fixed a regression where the `qr_code` component definition was missing from the generated YAML, causing "Couldn't find ID" errors.
18+
19+
---
20+
621
## v0.7.3 - Hotfix
722

823
**Release Date:** December 17, 2025

0 commit comments

Comments
 (0)