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