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.

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

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

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

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?!?".

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.

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.

If you didn't follow any of this please ask questions. The people on this list are exceptionally polite and helpful.

More on the ESP32:

https://en.wikipedia.org/wiki/ESP32?wprov=sfla1
<https://en.wikipedia.org/wiki/ESP32?wprov=sfla1>
More on Scratch:

https://en.wikipedia.org/wiki/Scratch_%28programming_language%29?wprov=sfla1 <https://en.wikipedia.org/wiki/Scratch_%28programming_language%29?wprov=sfla1>

_______________________________________________
Triangle, NC Embedded Computing mailing list

To post message: [email protected]
List info: http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: https://TriEmbed.org
To unsubscribe, click link and send a blank message: 
mailto:[email protected]?subject=unsubscribe
Searchable email archive available at 
https://www.mail-archive.com/[email protected]/

Reply via email to