<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>User Guide on EdS</title><link>https://cdeever.github.io/eds/docs/guide/</link><description>Recent content in User Guide on EdS</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://cdeever.github.io/eds/docs/guide/index.xml" rel="self" type="application/rss+xml"/><item><title>Running the Vertical</title><link>https://cdeever.github.io/eds/docs/guide/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cdeever.github.io/eds/docs/guide/quickstart/</guid><description>&lt;h1 id="running-the-vertical"&gt;Running the Vertical&lt;a class="anchor" href="#running-the-vertical"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The whole chain on one machine, with no deevnet infrastructure.&lt;/p&gt;&#10;&lt;h2 id="1-start-the-palette-extractor"&gt;1. Start the palette extractor&lt;a class="anchor" href="#1-start-the-palette-extractor"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd services/palette&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make venv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make serve PORT&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;8731&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2-start-a-broker-and-lightd"&gt;2. Start a broker and lightd&lt;a class="anchor" href="#2-start-a-broker-and-lightd"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd services/lightd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make broker &lt;span style="color:#75715e"&gt;# mosquitto in podman on tcp://127.0.0.1:21883&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make run&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;make run&lt;/code&gt; builds &lt;code&gt;lightd&lt;/code&gt; and points it at the development broker. It expects&#10;&lt;code&gt;palette&lt;/code&gt; on &lt;code&gt;:8731&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h2 id="3-watch-the-topic-tree"&gt;3. Watch the topic tree&lt;a class="anchor" href="#3-watch-the-topic-tree"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;In another terminal:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd services/lightd&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make broker-watch &lt;span style="color:#75715e"&gt;# tail every eds/# topic&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4-send-a-cover"&gt;4. Send a cover&lt;a class="anchor" href="#4-send-a-cover"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -F image&lt;span style="color:#f92672"&gt;=&lt;/span&gt;@jacket.jpg http://localhost:8732/v1/cover&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A scene should appear on &lt;code&gt;eds/lightstand/lp-stand-01/scene&lt;/code&gt;. Because gamma is&#10;applied on the device rather than on the wire, the colors you see here are the&#10;colors actually intended.&lt;/p&gt;</description></item><item><title>Provisioning a Stand</title><link>https://cdeever.github.io/eds/docs/guide/provisioning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cdeever.github.io/eds/docs/guide/provisioning/</guid><description>&lt;h1 id="provisioning-a-stand"&gt;Provisioning a Stand&lt;a class="anchor" href="#provisioning-a-stand"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Credentials live in a dedicated &lt;code&gt;creds&lt;/code&gt; NVS partition, not in the firmware&#10;image. The WiFi key and the broker password have no build-time option at all:&#10;NVS is the only place they can come from. A built binary therefore carries no&#10;secret and can be cached, copied and shared without care, and &lt;code&gt;sdkconfig&lt;/code&gt;&#10;cannot hold one.&lt;/p&gt;&#10;&lt;h2 id="from-the-tenant"&gt;From the tenant&lt;a class="anchor" href="#from-the-tenant"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;A stand on Deevnet IoTaaS is flashed with what the EdS tenant issued:&lt;/p&gt;</description></item><item><title>Powering the Strip</title><link>https://cdeever.github.io/eds/docs/guide/power/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cdeever.github.io/eds/docs/guide/power/</guid><description>&lt;h1 id="powering-the-strip"&gt;Powering the Strip&lt;a class="anchor" href="#powering-the-strip"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;WS2812-class LEDs draw about &lt;strong&gt;60 mA each at full white&lt;/strong&gt;, so a long strip at&#10;full brightness is an amp-scale load. The ESP32 devkit adds roughly 250 mA with&#10;WiFi up and peaks near 500 mA on transmit.&lt;/p&gt;&#10;&lt;h2 id="what-eds-actually-draws"&gt;What EdS actually draws&lt;a class="anchor" href="#what-eds-actually-draws"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Brightness is applied &lt;strong&gt;before&lt;/strong&gt; the gamma 2.6 table, which means current falls&#10;away far faster than the brightness figure suggests. Measured against the&#10;firmware&amp;rsquo;s own lookup table:&lt;/p&gt;</description></item><item><title>EdS on One Pi</title><link>https://cdeever.github.io/eds/docs/guide/one-pi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cdeever.github.io/eds/docs/guide/one-pi/</guid><description>&lt;h1 id="eds-on-one-pi"&gt;EdS on One Pi&lt;a class="anchor" href="#eds-on-one-pi"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Everything EdS needs can be put on one Raspberry Pi on the home network: the&#10;broker, the log store, Grafana, the four services and the now-playing agent.&#10;Nothing of Deevnet IoTaaS is behind it.&lt;/p&gt;&#10;&lt;blockquote class=''&gt;&#10;&lt;p&gt;&lt;strong&gt;Not yet proven.&lt;/strong&gt; The image is defined and has not run on a Pi.&#10;&lt;a href="https://cdeever.github.io/eds/docs/architecture/decisions/0033-the-whole-back-end-on-one-pi/"&gt;ADR-0033&lt;/a&gt;&#10;is &lt;code&gt;Proposed&lt;/code&gt; and lists what would settle it.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;stand, screen, beacon ──TLS 8883──▶ ┌ Pi ────────────────────────────────┐&#10;iTunes PC ◀── remote protocol ────▶ │ Mosquitto · log store · Grafana │&#10;a browser ──────── 443 ───────────▶ │ palette · lightd · nowplayd │&#10;turntable ── tape out, sound card ─▶│ console · npagent │&#10; └────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It is beside the tenant on Deevnet IoTaaS, not in place of it. Building the&#10;image and running the Pi change nothing there, and the stand, the screen and&#10;the beacon stay with the tenant until each is provisioned again.&lt;/p&gt;</description></item></channel></rss>