Customization Possibilities
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