<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p> </p>
    <div class="moz-text-html" lang="x-unicode">
      <p> </p>
      <div class="moz-text-html" lang="x-unicode">
        <p> </p>
        <div class="moz-text-html" lang="x-unicode"> <span
            style="font-family:monospace">The community board project
            will have an ESP32 single board computer plugged or soldered
            onto it as a "daughter board" to use common engineering
            terminology. The ESP32 boards of the type the working group
            has in mind are under $10 from Amazon or cheaper direct from
            China (anybody want to make a cheat sheet/advice column for
            buying from China and/or point to resources? Just do it, as
            Nike is wont to say. If you want a Wordpress user account on
            the TriEmbed web site, just ask). Note that these are
            "vanilla" ESP32 types as previously mentioned by Josh Wyatt,
            NOT the special types that don't have bluetooth.</span> <br>
          <br>
          <span style="font-family:monospace">The ESP32 is extremely
            versatile, having two "cores" and this means the same thing
            as when your PC comes with a "two core processor". Sometimes
            the board's memory is empty, sometimes it comes with
            "MicroPython", a stand alone interpreted language system
            named "Lua", a web-oriented system called "node.js" (but in
            a special, tiny versionĀ  cleverly named "try.js"), or a
            "real time operating system" (RTOS) supporting low level
            languages like C++ and C, and <u>many</u> other choices
            findable via web searches. The working group thinks of these
            as the "front" or user-facing end choices of the community
            development board. </span><span
            style="font-family:monospace">One last front end on the list
            is an education-oriented language dreamed up at MIT named
            Scratch. This may not run on the ESP32 yet but Mike Monaghan
            has started scoping out the task of rehosting it to ESP32
            and we'll figure out the retargeting further down the road.</span>
          <br>
          <br>
          <span style="font-family:monospace">The "back end" is another
            techie term but refers to the hardware-facing end. This will
            come in a familiar and unfamiliar flavor. The flavor
            familiar to the hard core sort of techie is called "machine
            language". This language is uttered in words made of strings
            of ones and zeroes called "machine instructions" that the
            ESP32's two cores "understand" and sequences of instructions
            make up "computer programs" using that term in the
            lowest-level back end context. Virtually nobody has to think
            for one second about machine language instructions: that's
            the job of the people writing or improving one of the front
            end choices mentioned above or a sub-class of those folks
            called "compiler people", "interpreter people", "virtual
            machine people", but mostly "people speaking weird languages
            sometimes mistaken for English" (there are very few left and
            hopefully all have a sense of humor). </span> <br>
          <br>
          <span style="font-family:monospace">But the community board
            will also contain one or more wildly cool chips called
            "field programmable gate arrays" or FPGAs. These are strange
            chips that will be made available on daughter boards because
            soldering them ranges from "VERY difficult" to "surely
            you're joking, mister soldering design man". </span> <br>
          <br>
          <span style="font-family:monospace">The front end of the FPGA
            will be one of a number of computer languages much like with
            the ESP32. But these are not familiar to the vast majority
            of people likely to read these words. Instead these range
            from esoteric to "you want HOW MANY DOLLARS per programmer
            to use this language?!?". </span> <br>
          <br>
          <span style="font-family:monospace">A major goal of the
            community board project is to hide these unspeakably
            difficult languages so only a fraction of the community has
            to see or think about them (those with very strange
            definitions of "fun"), but with two exceptions. First, for
            Nick Edgington, hereafter named "community board user one",
            there will have to be some simple C or C++ "library
            functions" that can be thought of as reusable pieces of
            programs that plug into a user's application program on an
            as-needed basis (sort of: experts, don't hate on me). The
            functions correspond to a set of common operations Nick will
            want doing in the FPGA. If Nick wants to get crazy with C++
            he might want to play with "overloaded operators" but
            methinks he'd rather discover high voltage in a surprising
            place.</span> <br>
          <br>
          <span style="font-family:monospace">The working group will
            dream up additional Scratch features that will play with the
            FPGA(s) using mechanisms too weird to mention except to say
            ideally the back end will use a "register transfer language"
            or RTL if you want to say it fast. The RTL will be turned
            into a flavor of magic smoke called a "bit stream" and that
            is what makes the FPGA mimic any imaginable chip that fits
            with the number of pieces and parts in the specific digital
            or "mixed signal" (both digital and analog) FPGA chip
            package. Ideally once the smoke is in place then when that
            chip is powered up, whether in its daughter board position
            on the community main board (aka "motherboard") or in situ
            in somebody's Cool Device[tm] then the personality of that
            chip can be in evidence with its operation. That is, there
            will be some means of arranging for the FPGA chip and a few
            other parts to "stand alone" for certain applications.</span>
          <br>
          <br>
          <span style="font-family:monospace">If you didn't follow any
            of this please ask questions. The people on this list are
            exceptionally polite and helpful.</span> <br>
          <br>
          <span style="font-family:monospace">More on the ESP32:</span>
          <br>
          <br>
          <a href="https://en.wikipedia.org/wiki/ESP32?wprov=sfla1"><span
              style="font-family:monospace">https://en.wikipedia.org/wiki/ESP32?wprov=sfla1</span>
            <br>
          </a><br>
          <span style="font-family:monospace">More on Scratch:</span> <br>
          <br>
          <a
href="https://en.wikipedia.org/wiki/Scratch_%28programming_language%29?wprov=sfla1"><span
              style="font-family:monospace">https://en.wikipedia.org/wiki/Scratch_%28programming_language%29?wprov=sfla1</span></a>
          <br>
          <br>
          <br>
        </div>
      </div>
    </div>
  </body>
</html>