Customization Possibilities
Esta página aún no está disponible en tu idioma.
Customization Possibilities
Overview
Section titled “Overview”This section covers how the factory display project can be customized for different buyer requirements. As a pre-sales engineer, you need to quickly assess which customizations are feasible, estimate the effort involved, and provide accurate guidance to buyers. After completing this section, you will be able to:
- Identify common customization paths for the e-paper display project
- Estimate effort and complexity for each customization
- Guide buyers toward feasible customizations
- Identify when a customization requires a fundamentally different solution
Common Customization Paths
Section titled “Common Customization Paths”Quick Reference Matrix
Section titled “Quick Reference Matrix”| Customization | Effort | Complexity | Cost Impact | Feasibility |
|---|---|---|---|---|
| Different display size | Low | Simple | +$5-30 | ✅ Easy |
| Custom background image | Low | Simple | None | ✅ Easy |
| Different data source | Medium | Moderate | None | ✅ Feasible |
| Multi-page display | Medium | Moderate | None | ✅ Feasible |
| Touch input integration | High | Complex | +$10-20 | ⚠️ Conditional |
| Tri-color display | Medium | Moderate | +$5-10 | ✅ Feasible |
| Larger text / higher contrast | Low | Simple | None | ✅ Easy |
| Weatherproof enclosure | Medium | Moderate | +$20-50 | ✅ Feasible |
| Solar charging | High | Complex | +$15-30 | ⚠️ Requires planning |
| Real-time updates (< 1 min) | ⚠️ | N/A | N/A | ❌ Not possible |
| Video playback | ⚠️ | N/A | N/A | ❌ Impossible |
Customization Detail
Section titled “Customization Detail”1. Different Display Size
Section titled “1. Different Display Size”Buyer Request: “I need a larger display that workers can read from 10 meters away.”
Options:
| Size | Resolution | Readability | Cost | Best For |
|---|---|---|---|---|
| 1.54” | 200×200 | Close range (1-2m) | $10-12 | Desktop status indicators |
| 2.13” | 250×122 | Moderate (2-3m) | $12-18 | Recommended — balanced |
| 2.9” | 296×128 | Readable (3-4m) | $15-22 | Shelf labels |
| 4.2” | 400×300 | Good (4-6m) | $25-35 | Factory KPI boards |
| 5.83” | 648×480 | Very good (6-8m) | $35-45 | Meeting room schedules |
| 7.5” | 800×480 | Excellent (8-10m) | $40-55 | Large notice boards |
Implementation Changes:
// Change only the constructor — the rest of the code stays the same// For 4.2" display:GxEPD2_BW<GxEPD2_420, GxEPD2_420::HEIGHT> display( GxEPD2_420(EPD_CS, EPD_DC, EPD_RST, EPD_BUSY));
// Adjust font sizes for readability// 4.2" can use larger fontsdisplay.setFont(&FreeMonoBold24pt7b); // 24pt instead of 18ptEffort: ~1 hour — update constructor, adjust positions, re-test
2. Custom Background and Branding
Section titled “2. Custom Background and Branding”Buyer Request: “We want our company logo and a custom layout on the display.”
Options:
- Company logo in the header
- Custom color scheme (limited to black/white/red)
- Branded border design
- Sectioned layout with company colors
Implementation:
// 1. Create background image with company logo + layout// 2. Convert to XBM format (see 02-05)// 3. Display once as background// 4. Overlay dynamic text on top
void setup() { display.fillScreen(GxEPD_WHITE);
// Draw branded background (only needs to happen once per deployment) display.drawInvertedBitmap(0, 0, company_background, display.width(), display.height(), GxEPD_BLACK);
// Overlay dynamic data display.setFont(&FreeMonoBold12pt7b); display.setCursor(BRANDED_X, BRANDED_Y); display.print(sensorValue);
display.display();}Effort: 2-4 hours — requires design work, image conversion, layout adjustments
3. Multi-Page Display
Section titled “3. Multi-Page Display”Buyer Request: “We want to cycle through different data pages — one for production, one for quality, one for safety.”
Implementation:
// Each page is a different screen layout// The display cycles through pages on each refresh
RTC_DATA_ATTR int currentPage = 0; // Persists across deep sleep
void setup() { // ... WiFi and MQTT setup ...
// Display current page switch (currentPage) { case 0: showProductionPage(); break; case 1: showQualityPage(); break; case 2: showSafetyPage(); break; }
// Advance to next page for next wake cycle currentPage = (currentPage + 1) % 3; // 3 pages
// Store in RTC memory — survives deep sleep}
void showProductionPage() { display.fillScreen(GxEPD_WHITE); display.setFont(&FreeMonoBold12pt7b); display.setCursor(5, 20); display.print("PRODUCTION"); display.setFont(&FreeMonoBold24pt7b); display.setCursor(5, 60); display.print(unitsProduced); display.display();}Effort: 4-8 hours — design each page layout, implement cycling logic, test transitions
4. Tri-Color Display Upgrade
Section titled “4. Tri-Color Display Upgrade”Buyer Request: “We want red text for alerts or exceeding thresholds.”
Implementation:
Hardware Change:
Wavehare 2.13" B/W → Wavehare 2.13" B/W/R (black/white/red)Software Change:
// Include tri-color library#include <GxEPD2_3C.h>
// Use tri-color constructorGxEPD2_3C<GxEPD2_213_Z19c, GxEPD2_213_Z19c::HEIGHT> display( GxEPD2_213_Z19c(EPD_CS, EPD_DC, EPD_RST, EPD_BUSY));
void setup() { display.init(115200);
// Draw using three colors display.fillScreen(GxEPD_WHITE);
display.setTextColor(GxEPD_RED); // Alert values in red display.setCursor(10, 30); display.print("CRITICAL");
display.setTextColor(GxEPD_BLACK); // Normal values in black display.setCursor(10, 60); display.print("Temperature: 25.5C");
display.display();}Trade-off Warning:
⚠️ Tri-color displays have: - 3-5x slower refresh (15 seconds vs 3 seconds) - Lower contrast in black/white areas - Higher power consumption per refresh - No partial refresh support (full refresh only)
Recommend using tri-color only if red highlighting is essential.Effort: ~2 hours — hardware swap, library change, color logic update
5. Alert Triggering with Node-RED
Section titled “5. Alert Triggering with Node-RED”Buyer Request: “When a value exceeds a threshold, the display should show an alert.”
Implementation in Node-RED:
// Function node — threshold detectionconst temperature = parseFloat(msg.payload.temperature);
if (temperature > 30) { // Send alert payload msg.payload = JSON.stringify({ alert: true, message: "HIGH TEMP ALERT: " + temperature + "°C", bg_color: "RED", timestamp: new Date().toISOString() });} else { // Send normal payload msg.payload = JSON.stringify({ alert: false, temperature: temperature, humidity: msg.payload.humidity, timestamp: new Date().toISOString() });}
return msg;On ESP32 side:
void processMQTTMessage(const char* json) { JsonDocument doc; deserializeJson(doc, json);
bool alert = doc["alert"] | false;
if (alert) { // Show alert screen display.fillScreen(GxEPD_WHITE); display.setFont(&FreeMonoBold12pt7b); display.setTextColor(GxEPD_BLACK);
// Draw alert border display.drawRect(2, 2, display.width()-4, display.height()-4, GxEPD_BLACK);
const char* message = doc["message"] | "ALERT"; display.setCursor(10, 40); display.print(message); } else { // Show normal display showNormalDisplay(doc); }}Effort: 2-4 hours — Node-RED logic + display handler
6. Data History Display
Section titled “6. Data History Display”Buyer Request: “Show a mini chart of the last 24 hours of temperature data.”
Implementation: Since e-ink cannot render complex charts well, use a simplified approach:
// Simplified mini bar chartvoid drawMiniChart(int x, int y, int width, int height, float* values, int count) { float minVal = 20, maxVal = 30; // Known range for temperatures
int barWidth = width / count;
for (int i = 0; i < count; i++) { int barHeight = map((values[i] - minVal) * 10, 0, (maxVal - minVal) * 10, 0, height); int barX = x + i * barWidth; int barY = y + height - barHeight;
display.fillRect(barX, barY, barWidth - 1, barHeight, GxEPD_BLACK); }}Effort: 4-8 hours — data aggregation in Node-RED, chart rendering, display optimization
7. Secure IoT Configuration (MQTT with TLS)
Section titled “7. Secure IoT Configuration (MQTT with TLS)”Buyer Request: “We need encrypted communication for data security.”
Refer to Chapter 16 (MQTT Security with TLS) for complete implementation.
Summary for e-paper context:
- MQTT over TLS adds ~2-3 seconds to connection time
- Requires ~5KB additional firmware space for certificates
- Increases active power consumption slightly due to TLS handshake
- ESP32 supports TLS natively — no additional hardware needed
Effort: 4-8 hours — certificate generation, firmware update, testing
Cost Impact Analysis
Section titled “Cost Impact Analysis”| Customization | Hardware Cost Δ | Dev Effort | Maintenance Δ |
|---|---|---|---|
| 2.13” → 7.5” display | +$30-40 | Low | None |
| B/W → Tri-color | +$5-10 | Low | None |
| Touch screen add-on | +$15-25 | High | Higher |
| Solar charging | +$15-30 | Medium | Annual battery check |
| Weatherproof IP65 | +$20-50 | Medium | Seal inspection |
| TLS encryption | None | Medium | Certificate renewal |
| Multi-page display | None | Medium | None |
| Custom enclosure | +$10-50+ | High | Custom parts |
When to Recommend an Alternative Solution
Section titled “When to Recommend an Alternative Solution”Sometimes e-ink is not the right choice. Recommend alternatives when:
| Requirement | Better Alternative | Reason |
|---|---|---|
| Real-time updates (< 1 min) | LCD + wired power | E-ink refresh too slow |
| Full color, video, animation | Tablet (Android/iPad) | E-ink limited to 2-3 colors |
| Touch interaction | Capacitive touch LCD | E-ink lacks responsive touch |
| Very large display (> 32”) | Commercial display screen | E-ink too expensive at large sizes |
| Audio alarms | Add buzzer module | E-ink displays no audio |
| Camera image display | Security monitor system | E-ink cannot show camera feeds |
Summary
Section titled “Summary”- Most customizations are feasible — display size, branding, data sources, multi-page
- Tri-color upgrade is possible but has significant refresh speed trade-offs
- Real-time updates and video are fundamentally impossible on e-ink — recommend alternatives
- Custom enclosure design is often the longest-lead-time item — plan ahead
- TLS and MQTT security are fully supported on ESP32 but add connection overhead
- Always test customizations in the target environment before committing to a buyer
References
Section titled “References”- Waveshare E-Paper Display Range
- Seeed Studio XIAO ESP32-C3 Battery Options
- IP Rating Reference Guide
Target Audience: Alibaba.com IoT Pre-sales Engineers
Status: ✅ Completed
We provide ESP32 ODM design-to-manufacturing services. From prototype to production — the team behind this tutorial can build it with you.
Talk to us →