From a851a2d646f439f7126c232ba1524c55a8990872 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Fri, 9 Jan 2026 16:45:56 +0800 Subject: Remove _site from git. --- _site/log/etlas/index.html | 153 --------------------------------------------- 1 file changed, 153 deletions(-) delete mode 100644 _site/log/etlas/index.html (limited to '_site/log/etlas/index.html') diff --git a/_site/log/etlas/index.html b/_site/log/etlas/index.html deleted file mode 100644 index 68c19ae..0000000 --- a/_site/log/etlas/index.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - Etlas: e-paper dashboard - - - - - - - - - - - -
-
-
-

ETLAS: E-PAPER DASHBOARD

-
05 SEPTEMBER 2024
-
-

Repurposed the e-reader into something for regular use. News, -stocks, weather dashboard. ESP32 NodeMCU D1 + 7.5” Waveshare e-paper + DHT22 -sensor.

- - - - - - - - - -
frontback
front
- -

Stocks: Two weeks EOD data from Polygon.io (max possible). Flask app on VPS -manages watchlist, relays the feed. Backend: httpd + htpasswd + slowcgi + -Flask.

- -

gui_plot_stocks() plots a stepped graph; was easier to implement, but the code -is hideous; triggers watchdog. vTaskDelay() prevents that.

- -

NOTE: Refactor. Bresenham’s?

- -

News: Channel NewsAsia RSS. MCU does the parsing. Didn’t plan to have a backend -at the time. Now that I have one for stocks, should relay the feed for -flexibility.

- -

Weather: DHT22 single-wire protocol. 26µs/50µs/70µs pulses are too fast for -standard ESP32 APIs. Bit-banged relative pulse widths (ported from ESP8266):

- -
static inline int dht_await_pin_state(int state, int timeout)
-{
-    int t;
-    static const uint16_t delta = 1;
-
-    for (t = 0; t < timeout; t += delta) {
-        ets_delay_us(delta);
-        if (gpio_get_level(DHT_PIN) == state)
-            return t;
-    }
-    return 0;
-}
-
-static inline int dht_get_raw_data(unsigned char buf[BUFLEN])
-{
-    int rc;
-    unsigned char i, pwl, pwh;
-
-    gpio_set_level(DHT_PIN, 0);
-    ets_delay_us(1100);
-    gpio_set_level(DHT_PIN, 1);
-
-    if (!dht_await_pin_state(0, 40)) {
-        rc = 1;
-        xQueueSend(dht_evt_queue, &rc, (TickType_t) 0);
-        return 0;
-    }
-    if (!dht_await_pin_state(1, 80)) {
-        rc = 2;
-        xQueueSend(dht_evt_queue, &rc, (TickType_t) 0);
-        return 0;
-    }
-    if (!dht_await_pin_state(0, 80)) {
-        rc = 3;
-        xQueueSend(dht_evt_queue, &rc, (TickType_t) 0);
-        return 0;
-    }
-
-    for (i = 0; i < BUFLEN; i++) {
-        if (!(pwl = dht_await_pin_state(1, 50))) {
-            rc = 4;
-            xQueueSend(dht_evt_queue, &rc, (TickType_t) 0);
-            return 0;
-        }
-        if (!(pwh = dht_await_pin_state(0, 70))) {
-            rc = 5;
-            xQueueSend(dht_evt_queue, &rc, (TickType_t) 0);
-            return 0;
-        }
-        buf[i] = pwh > pwl;
-    }
-    return 1;
-}
-
- -

epd_init() stalls intermittently on first refresh() after flash. Toggling delay -values in refresh() resolves it. If the first refresh succeeds, it remains -stable. Root cause unknown–suspect noisy power supply due to powering display -via MCU.

- -

Uptime: August 2024 - January 2026

- -

Commit: -a92c86a

-
- -
-
-
- - - - - - -- cgit v1.2.3