System Overview

๐ŸŒ

Network Architecture

Unified MQTT API supporting WiFi and BLE connections through mesh gateways

Learn More โ†’
๐Ÿ“ฑ

ESL Management

2-bit color displays with proper error handling and versioning

Learn More โ†’
โšก

Sleep/Wake Protocol

Efficient power management with scheduled wake-up cycles

Learn More โ†’
๐Ÿ”ง

API Examples

Real-world scenarios and implementation examples

Learn More โ†’

Quick Start Guide

1

Setup Gateway

Configure your main gateway with Internet connectivity

2

Connect ESLs

Pair ESL devices via WiFi or BLE connections

3

Send Commands

Use MQTT topics to send render commands and updates

Key Features

๐Ÿ”„ Dual Connectivity

Support for both WiFi and BLE ESL devices

๐ŸŽจ 2-bit Color Display

White, Black, Red, and Yellow color support

๐Ÿ“ก Mesh Network

Scalable mesh gateway architecture

โฐ Scheduled Updates

Automatic refresh at configured times

๐Ÿ”’ Security

Message validation and checksum verification

๐Ÿ”ง Firmware Updates

Over-the-air firmware update capability

๐ŸŽจ Color Mapping & Display Specifications

Our ESL system uses an efficient 2-bit color encoding that provides optimal visual impact while maintaining excellent battery life and fast refresh rates.

2-bit Color Encoding

Binary Hex Color Usage Visual
00 0 White Background, empty space
01 1 Black Text, outlines, borders
10 2 Red Sale prices, alerts, branding
11 3 Yellow Highlights, special offers

Supported Display Sizes

2.13" ESL

Resolution: 250 ร— 122 pixels

Total Pixels: 30,500

Use Case: Small price tags, shelf strips

3.5" ESL

Resolution: 384 ร— 240 pixels

Total Pixels: 92,160

Use Case: Medium displays, detailed product info

3.7" ESL

Resolution: 480 ร— 280 pixels

Total Pixels: 134,400

Use Case: Enhanced product displays, promotions

4.2" ESL

Resolution: 400 ร— 300 pixels

Total Pixels: 120,000

Use Case: Large product displays, promotions

7.5" ESL

Resolution: 800 ร— 480 pixels

Total Pixels: 384,000

Use Case: Department signs, large promotions

Color System Benefits

๐Ÿ”‹

Power Efficiency

75% less energy consumption compared to full-color displays, enabling 5+ year battery life

๐Ÿ‘€

High Contrast

Optimized color combinations ensure excellent readability from typical viewing distances

๐Ÿท๏ธ

Retail Optimized

Colors specifically chosen for retail environments - red for sales, yellow for promotions

โšก

Fast Refresh

2-bit encoding enables faster display updates (2-3 seconds vs 5-8 seconds for full color)

๐Ÿท๏ธ Real-World Example: Premium Organic Coffee Sale

๐Ÿ“ฆ Product: Starbucks Pike Place Roast Organic Ground Coffee

Regular Price: $12.99 โ†’ Sale Price: $9.99 (23% OFF)

Display Size: 2.9" ESL (296ร—128 pixels) | ESL ID: ESL_A3_047

Update Trigger: Flash Sale starts at 9:00 AM

๐ŸŽจ Visual Layout Breakdown

Company Logo Area + "FLASH SALE" text

Product name, description, original price

Product details, barcode, expiry info

Sale price "$9.99" + savings "SAVE $3.00"

Exact Pixel Allocation (296ร—128):
Rows 1-25: RED Company branding + "FLASH SALE" banner
Rows 26-85: WHITE + BLACK Product name, description, original price strikethrough
Rows 86-115: BLACK Barcode, SKU: 012000161919, Exp: 12/2025
Rows 116-128: YELLOW Large "$9.99" + "SAVE $3.00" text

๐Ÿ“ก Complete MQTT Message Payload

MQTT Topic: esl/render/ESL_A3_047
{
  "message_id": "MSG_20241215_090001_047",
  "timestamp": "2024-12-15T09:00:01.345Z",
  "esl_id": "ESL_A3_047",
  "gateway_id": "GW_STORE_001_MAIN",
  "action": "render",
  "priority": "high",
  "data": {
    "product": {
      "name": "Starbucks Pike Place Roast Organic",
      "description": "Ground Coffee, Medium Roast, 12oz",
      "sku": "012000161919",
      "barcode": "012000161919",
      "category": "Coffee & Tea",
      "brand": "Starbucks",
      "size": "12 oz (340g)",
      "expiry_date": "2025-12-31"
    },
    "pricing": {
      "regular_price": 12.99,
      "sale_price": 9.99,
      "discount_percent": 23,
      "savings": 3.00,
      "currency": "USD",
      "promotion": "FLASH_SALE_ORGANIC",
      "valid_until": "2024-12-15T18:00:00Z"
    },
    "display": {
      "template": "sale_template_v2",
      "width": 296,
      "height": 128,
      "rotation": 0,
      "refresh_mode": "fast",
      "partial_update": false
    },
    "image_data": {
      "encoding": "base64_2bit",
      "compression": "none",
      "color_mapping": {
        "white": 0,
        "black": 1,
        "red": 2,
        "yellow": 3
      },
      "raw_size_bytes": 9472,
      "encoded_size_bytes": 12598,
      "data": "iVBORw0KGgoAAAANSUhEUgAAAEgAAAAgCAYAAACqW...
              [Base64 encoded 2-bit image data - 12,598 bytes]
              ...WJGmE2ZlNmdzZlY2Y0NmUjZlM2ZSNmUTZlA2YwN2X"
    },
    "metadata": {
      "update_reason": "price_change_promotion",
      "store_section": "Coffee & Beverages - Aisle 3",
      "shelf_position": "A3-047",
      "last_sync": "2024-12-15T08:59:45Z",
      "checksum": "sha256:a8f5f167f44f4964e6c998dee827110c",
      "version": "2.1.3"
    }
  },
  "settings": {
    "wake_time": "2024-12-15T09:00:00Z",
    "sleep_duration": 3600,
    "retry_attempts": 3,
    "timeout_seconds": 30,
    "ack_required": true
  }
}

๐Ÿ“Š Storage & Performance Analysis

๐Ÿ’พ
Storage Impact
  • Raw 2-bit image: 9,472 bytes
  • Base64 encoded: 12,598 bytes
  • JSON metadata: 3,247 bytes
  • Total ESL payload: ~15.8 KB
  • Gateway storage: ~18 KB (with indexing)
๐Ÿ“ก
Transmission Details
  • MQTT payload size: 15,845 bytes
  • WiFi transmission: ~0.8 seconds
  • BLE transmission: ~12 seconds (chunks)
  • Display refresh: 2.1 seconds
  • Total update time: 3-15 seconds
โšก
Optimizations Applied
  • Template system: Reuse layout structure
  • Differential update: Only price area changes
  • Fast refresh mode: Skip full clear cycle
  • Compression: 40% size reduction possible
  • Caching: Store on gateway for retries

๐Ÿ”ข 2-bit Encoding Process

1
Pixel Assignment

296ร—128 = 37,888 pixels total

White: 18,944 pixels (50%)
Black: 11,366 pixels (30%)
Red: 4,733 pixels (12.5%)
Yellow: 2,845 pixels (7.5%)
2
Binary Packing

4 pixels per byte:

White(00) Black(01) Red(10) Yellow(11) = 00011011 (0x1B)

Total bytes: 37,888 รท 4 = 9,472 bytes

3
Base64 Encoding

9,472 bytes ร— 1.33 = 12,598 characters

iVBORw0KGgoAAAANSUhEUgAAAEgAAAAgCAYAAACqW...

๐Ÿ› ๏ธ Implementation Considerations

โฐ Timing Coordination

ESLs wake at scheduled times (9:00 AM) to receive flash sale updates. Gateway queues messages for optimal delivery timing.

๐Ÿ”„ Retry Logic

Failed transmissions retry up to 3 times with exponential backoff. Critical sale prices have higher retry priority.

โœ… Validation

ESL confirms receipt with ACK containing checksum verification. Mismatched checksums trigger automatic retry.

๐Ÿ’พ Backup Storage

Gateway maintains 24-hour cache of all ESL states for rapid recovery and comparison during price audits.

๐Ÿ“‹ ESL Storage Requirements Summary

Quick Reference Guide: Essential storage calculations and memory requirements for ESL gateway planning and deployment.

๐Ÿ“Š 2-bit Image Sizes (per ESL)

Display Size Resolution Raw Image With Metadata Total per ESL
2.13" 250 ร— 122 7,625 bytes +4.5 KB ~12 KB
3.5" 384 ร— 240 23,040 bytes +12 KB ~35 KB
3.7" 480 ร— 280 33,600 bytes +16.5 KB ~50 KB
4.2" 400 ร— 300 30,000 bytes +15 KB ~45 KB
7.5" 800 ร— 480 96,000 bytes +44 KB ~140 KB

๐Ÿช Gateway Flash Memory Requirements

Store Size ESL Count Storage Needed Recommended Flash
Small Store 100 ESLs 2 MB 8 MB
Medium Store 500 ESLs 8.5 MB 32 MB
Enterprise 10,000+ ESLs 220 MB 512 MB - 1 GB

๐Ÿ”ข How 2-bit Calculation Works

๐Ÿ“ฆ

Pixel Packing

4 pixels = 1 byte (each pixel = 2 bits)

๐Ÿ”ค

Encoding Overhead

Base64 encoding adds 33% overhead

๐Ÿ“

Metadata Size

JSON metadata adds ~3-5 KB per ESL

๐Ÿ›ก๏ธ

Safety Buffer

3-4x actual needs recommended

๐Ÿš€ Storage Optimizations

๐Ÿ—œ๏ธ GZIP Compression
60-80% size reduction
โ™ป๏ธ Differential Updates
90% savings for price changes
๐Ÿ“ฆ Template System
50% reduction for similar products
๐Ÿ”„ LRU Caching
Faster access for frequent updates

๐Ÿ“ก Gateway Memory Recommendations

๐ŸŒ

Main Gateway

128 MB Flash + 32 MB RAM

Supports up to 5,000 ESLs

๐Ÿ“ก

Mesh Gateway

32 MB Flash + 8 MB RAM

Supports up to 200 ESLs

๐ŸŽฏ

Key Takeaway

For a typical 2,000 ESL store, your main gateway needs approximately 40 MB of actual storage, so 128 MB Flash provides a comfortable 3x safety buffer for system operations, firmware updates, and future expansion!

Documentation