Notifications
Clear all

Theory of terra incognita

25 Posts
3 Users
0 Reactions
808 Views
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

I have no idea about the theory of all that terra incognita I hope it would accomplish my plan. The plan is to build a "Voyager clone" into an Altoids tin. There exist already clones of ancient HP calculators, e.g. DM12C or paxerlabs.com/voyager, but none with Wifi nor clamshell casing.

I've found the ESP32 Selection Guide and the Product Selector, alas, there are criteria I don't grasp (yet): Flash, SRAM, ROM, PSRAM, ... well, I found SRAM explained in Wikipedia, but my question is -- how much of it will my project need? I surmise my software and its data must fit completely in the available SRAM. How may I estimate the size of the future s/w? What I plan to run exists already as a PC program, NutEm/PC written in ooREXX, I must migrate its core to the SoC, no idea yet how to do that and how "resource demanding" the result will be.

Next theoretical question is, do I need a general-purpose experimenter board? I don't like the trial-and-error way, I favour know-why rather know-how only. I'm used to work with virtual systems (once VM/ESA, today with virtual calculators) and hope I could push my project to a mature state using simulations only. Is that realistic?

But the major question is -- would an ESP32 be the best choice to achieve my goal?



   
Quote
Inq
 Inq
(@inq)
Rocket Scientist or Space Cadet
Joined: 5 years ago
Posts: 2071
 

Posted by: @amphitryonoff
↑

I have no idea about the theory of all that terra incognita I hope it would accomplish my plan. The plan is to build a "Voyager clone" into an Altoids tin.

I think you'll need to give us a few more details.  You've now used the term terra incognita twice as if it has some meaning beside "You don't know".  Maybe it has a specific meaning in Europe, but here, I have no context.  What aspect are you trying to re-create?  I can easily describe those aspects of the ESP32, but the ESP32 is so way overkill that it isn't truly representative.  A Google search, gave me this:

Each Voyager spacecraft (Voyager 1 and Voyager 2) uses a tri-computer architecture divided into three distinct, dual-redundant subsystems to manage flight operations, data collection, and attitude control. Together, all three systems possess roughly 69.63 kilobytes of combined memory.

The lowliest Arduino is far more powerful!  The major hurdle of such a project is what sensors you'd want to attempt to duplicate.  Without them, you don't have a clone.  Most of those would either be prohibitively expensive, beyond anyone here's abilities or still the size of a bus.  Again a simple web search said:

Plasma Wave Subsystem (PWS): Uses a pair of 32-foot antennas to sense the density of ambient plasma by tracking electron oscillations. It provides the audio-like data of interstellar space vibrations.

Just because we can miniaturize electronics down to an Altoid tin, doesn't mean everything can.  Radio Frequencies (Rf) require a certain antenna size.

Any of the ESP32 are very powerful and have lots of features and would be a great candidate to learn about memory and wiring projects.  Until, you have more concrete requirements, no one is going to be able to advice you, but in a nutshell:

The Flash is where your program and data is stored when it is powered off.  Think of it as your hard disk on your computer.

The ROM can also a small portion of data when it is off.

The SRAM, PSRAM is the memory that loads your program and runs it.  It is equivalent to your computer's main memory.

You're unlikely to overload any ESP32 with any project short of an Autonomous Robot.



   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

@inq TY for your prompt reply.

Since I'm not a native speaker I picked the term "terra incognita" because it was tagged [fig.] in the dictionary. Todays maps show no white stains any more, for me the field of SoCs is a vast "white" domain, totally unbeknown for me yet. Even asking expediently questions is difficult as you noticed.

"Voyager" was the HP internal code name for a line of models, including the famous HP12C amongst four others. Since quite some time the original f/w leaked out what enables to prolong the lifetime of those calculators by "emulators" (in fact by simulating the CPU and interpret with it the f/w) or "clones", that are emulators built in a case with 39 buttons like the role model, with a display like the role model, altogether working like the role model, hence a clone.

Emulating such ancient pocket calculators is prone for enhancements. Simplest is edit-copy/edit-paste to ease input of figures and use of results. Another feature is printing of programs, display of data registers, input of matrices (for the HP15C). Details you find in the description of my NutEm/PC, which is focused on the HP-41, the Voyagers are kind of "bycatch" as they use the same CPU as the 41.

To emulate the Voyagers is nothing new, to clone them is not new, to build cyberdecks into an Altoids tin is done already -- but to have those ancient calculators running original or modified f/w connected via Wifi to enable a. m. enhancements (maybe more), that would be a dream-come-true me think.

Up to here I described only the outline. Now to some details (I omitted them from my OP to avoid "tl;dr"):

The Voyager have a ROM of 6144 ten-bit words, except HP10C with 4096 and -15C with 14336 words (10-bit words). That would be 5.120 bytes if packed 4 words in 5 bytes for a 10C, or 28.672 bytes for a 15C if using 2 bytes for 1 word. This is for the calculator's f/w. RAM size differs depending the model, most "emulators" use 256 registers of 7 bytes, this facilitates modifications w/o conflict of program space and data space or larger matrices with the 15C. Besides few CPU registers that's all for the calculator.

In contrast, the size of the future program which will simulate the calculator's CPU is indeterminable for me. Also indeterminable -- do I need a SoC with two cores, maybe one so simulate the calculator's CPU, the other for interaction with the user and Wifi? Or may a single core model run threads congruently? Would a RISC model be favourable?

So far my basic questions. About best keyboard, ideal display, and so on, I'm about to collect as much information as possible to be able to ask skilled questions the next days.

Best,
M.



   
ReplyQuote
Inq
 Inq
(@inq)
Rocket Scientist or Space Cadet
Joined: 5 years ago
Posts: 2071
 

Posted by: @amphitryonoff
↑

"Voyager"

🤣 🤣 🤣 All is good!  I was wondering why you wanted to create a clone of a 50 year old spacecraft and try to cram it in a Altoid tin.  

The differences in prices of all the ESP32 are not that much.  The most powerful one is the ESP32-S3.  It comes in multiple versions.  The CPU is the same, and the Ram memory is the same but have different FLASH/PSRAM memory configurations.  The one with the most memory is the ESP32-S3 N16R8.  It has:

  • 384 KB ROM
  • 512 KB SRAM
  • Your compiled program can take up to 3MB and still do OTA.  OTA is where you can reprogram it via WiFi.  It doesn't have to be USB connected to your development computer. 
  • It has 8MB of PSRAM.  That is ram that can be used by your programs also, but it is slower than the SRAM.  I did some benchmarks and surprisingly it wasn't that much slower.
  • 16MB of Flash memory.  This is where your program is stored when de-powered.  It also runs from this memory.  Any left over can be configured using FAT32... just like a PC.
  • They do have dual cores, but the likely hood that you'd ever need it would surprise me.  By default, the WiFi, TCP networking stack, and BlueTooth run in Core0, leaving Core1 totally yours.  You can also run multiple threads on either core.  There's very little risk over powering any of them. 

I use to use the lowly ESP8266 which has 1 core at 80MHz and no threading ability.  Here it is running WiFi, hosting a full blown web server with a website showing all these real-time graphs and gauges AND act as a remote control for a robot requiring real time control.  And any version of ESP32 will blow it away!

 



   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

Posted by: @inq
↑

The differences in prices of all the ESP32 are not that much.  The most powerful one is the ESP32-S3.  It comes in multiple versions.  The CPU is the same, and the Ram memory is the same but have different FLASH/PSRAM memory configurations.  The one with the most memory is the ESP32-S3 N16R8.  It has:

[...]

TY for the key figures of the ESP32-S3 N16R8 and all the detailed explanation. I missed those details in the "ESP32 Selection Guide – 2026" or I've overlooked it. Where did you find it, if I know where to lookup such information I would not ask so much (silly) questions. For example, if both cores may run multiple threads -- I mean really independently -- then one core could be enough for WiFi etc. and all of my emulator.

I use to use the lowly ESP8266 which has 1 core at 80MHz and no threading ability.  Here it is running WiFi, hosting a full blown web server with a website showing all these real-time graphs and gauges AND act as a remote control for a robot requiring real time control.  And any version of ESP32 will blow it away!

Nice, I hope within a year to be able to proudly present my project too.

As of yet remains the question, how did you estimate the size of your program so to choose a fitting ESP32? Did you prepare all using a "virtual setup" (simulator) or with the help of a general-purpose experimenter board?

 



   
ReplyQuote
Inq
 Inq
(@inq)
Rocket Scientist or Space Cadet
Joined: 5 years ago
Posts: 2071
 

Posted by: @amphitryonoff
↑

Where did you find it, if I know where to lookup such information I would not ask so much (silly) questions. For example, if both cores may run multiple threads -- I mean really independently -- then one core could be enough for WiFi etc. and all of my emulator.

Really, there are no silly questions, but sometimes us old members (age and time on forum) get a little crotchety!  😆  I have to agree the Espressif website doesn't do a very good job of comparing and contrasting their offerings.  I don't recall how I arrived at that summary.  When the -S3 came out it was just touted as "the best" and I dug into the details and as mentioned the only real difference is the amount of flash and PSRAM.  You might try a Gemini or ChatGPT search with something like "which ESP32 is the best".

Thread Placement

On a PC when you spawn a thread the OS will randomly (supposedly the least use one) put it on a core.  But... it also can move it to another core.  If you look at Task Manager when you know you have ONE hard working thread, you'll actually see all the thread averaging it out instead of one thread at 100% and the rest idling.  

On the ESP32-S3 you tell it which core and it stays there.

Thread Priority

On a PC setting a priority of a thread results in it getting a proportional share of the CPU time.  So if you spawn two threads and set one to ThreadPriority.BelowNormal and another to ThreadPriority.Normal, the normal one will get more CPU time, but the below normal will still get time.

On the ESP32-S3 you set "Priority level" which is an integer from 1 to 24.  Higher number is higher priority.  i.e. The WiFi and Bluetooth run at 20+ because if they get starved you lose network and it'll reboot.  They all run on Core 0.  The void loop() method runs on Core 1, at priority level 1.  You can spawn threads on either core.  The major difference in design.  They don't share the core.  If two threads are on the same core, the higher priority thread will hog the entire core.  It must release what its doing for the lower priority thread to get ANY time at all.  

The point being, until you are proficient with Mutex, Semaphore, Critical Sections, Thread Safe Queues, its easier if you just let it do all its WiFi, BT thing in core 0 and you just use the loop() method for all your handling. 

Posted by: @amphitryonoff
↑

As of yet remains the question, how did you estimate the size of your program so to choose a fitting ESP32? Did you prepare all using a "virtual setup" (simulator) or with the help of a general-purpose experimenter board?

I've never run out of room on even the ESP8266 and it has far less capability.  I dare say, that app having...

  • All the Espressif WiFi stack
  • Web server
  • Hosting Web Content on the "Flash Hard Drive"
  • The ToF sensor doing the "Radar" image
  • Driving two stepper motors.

... I'd guess it has a half-million lines of code.  But that is a big WAG! (wild ass guess)

And the ESP32-S3 described above has 3x the program space.  

I don't think there is any significant difference in price between the bottom end ESP32-C3 and the top-end ESP32-S3.  I've never bought any other than the S3... but the C3 is supposed to be more power efficient and a better candidate for battery longevity if that is a design criteria of your project.  I've always gone for the horse power.

Inq



   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

First: TY for taking your time with my "ESP32 problems". I'm in the stage to adopt yet unknown terms and acronyms and understanding all options and if they could help in my project.

Posted by: @inq
↑
there are no silly questions

O yes, there are. When with a single question at an on-site visit the mayor and few others start rolling eyes and the press agent is instantly by my side to ask for my name, then my intentionally "silly question" did hit the nerve (what was planned was legally questionable).

Back to the subject.

Posted by: @inq
↑
I have to agree the Espressif website doesn't do a very good job of comparing and contrasting their offerings.

It's not so simple to present information appropriate for an uneven target group. But for those like me, totally new to the subject, there should be a chance to ramp up to an at least halfway-informed level.

Posted by: @inq
↑
You might try a Gemini or ChatGPT

AI systems are reliable to 75% only. Thus I prefer the hints from an "old dough" (like you), even if a "little crotchety" (your words) and unaware how he got all his know-how -- but what you tell is correct and you already filtered away all of minor importance. When I use AI it's me who has to sort out what could be suitable.

Posted by: @inq
↑
Thread Placement

I use ooRexx to program under Windows. All its threads run on the same core and I have no chance of purposeful influence. Nonetheless I've managed to run several tasks virtually parallel.

Posted by: @inq
↑
Thread Priority

As you say, w/o knowledge of Mutex, Semaphore, Critical Sections, its easier to let it do all its WiFi, BT thing in core 0 -- I also surmise (an uneducated guess) that WiFi could be a bit demanding and for that it's better to give it a core of its own. On the ATS mini radio (the trigger why I'm interested in ESP32) all s/w runs on one core, only special functions like decoding morse broadcast, radio tele-typing, and weather-fax use the 2nd core.

But -- all those single-core models, are they apt for simple tasks only?

Posted by: @inq
↑
I don't think there is any significant difference in price between the bottom end ESP32-C3 and the top-end ESP32-S3.  I've never bought any other than the S3... but the C3 is supposed to be more power efficient and a better candidate for battery longevity if that is a design criteria of your project.  I've always gone for the horse power.

I try to avoid firing cannons at sparrows, no matter the current cannon price. BTW, I found the datasheet of ESP32-S3-WROOM-1 and -1U, also one for the ESP32-S3 series. Hopefully it will answer most (or all?) of my questions. I also watched few clips about building keyboards, w/ diodes and w/o, but for that I'll start another thread (if neccessary).



   
ReplyQuote
Inq
 Inq
(@inq)
Rocket Scientist or Space Cadet
Joined: 5 years ago
Posts: 2071
 

Posted by: @amphitryonoff
↑

old dough

😆 I'm certainly not going to let my wife get a hold of that phrase.  Here, the term dough-head usually signifies someone who is stuck in their ways or intellectually challenged.  She being a Southern Bell, thinks that is the more genteel way of saying, "He is such a dumb ass!"  Accurate classification is important.  😉 

I don't see anything in your profile.  If you fill out your profile (just a little) things like where you live, your background and your experience level with hardware, and software.  The old dough's here will have a better ability of responding in an "appropriate" manner.  IOW, they'll cut someone some slack.  They do for me when I ask dumb questions about electronic circuits.

Posted by: @amphitryonoff
↑

But -- all those single-core models, are they apt for simple tasks only?

No, not it all.  Back in the early days of PC computing [8086 (8bit), 80286 (16bit)] used DOS.  Totally single tasking, single core machines and OS.  I changed careers and became a professional programmer (just that I got paid for it, not being some expert) about the time Windows 3.1 came on board.  It used what is called "Cooperative Multitasking".  All these micros before the multi-cored ones came about used this.

The ESP8266 project of the tiny robot YT is doing WiFi, hosting a website, receiving sensor data and driving stepper motors... all at the same time on one thread.  The developer just has to make sure nothing ties up the CPU too long. 

On all Espressif chips there is what is called the Watch Dog.  If you tie up the processor for too long it'll reboot the chip.  I think it is on the order of a couple of seconds, but long before then, if you are doing WiFi of any sort and tie it up for more than say 10 ms, you're very likely to cause a dropped router connection.  A very frustrating bug to diagnose!  The Arduino setup(), loop() methods inherently helps you solve this.  The loop() method is called forever.  And when your program exits the loop() is when the chips did all there WiFi and other background duties, then it calls your loop() method again.  The idea is you just can't do everything and tie up the loop() method for too long.  In example, here are two versions of generating PI.  On an ESP8266, the first would certainly cause the WatchDog to reboot the processor.  The second would run forever because you returned control back to the Espressif background processes. 

void setup() 
{
  Serial.begin(115200);
  delay(1000);
  Serial.println("He chose... poorly.");
}

void loop() 
{
  double pi = 0;
  u32_t n = 0;
  while (true)
  {
    pi += 4.0 * pow(-1, n) / (2.0 * n + 1);
    Serial.printf("PI is: %0.16f\n", pi);
    n++;
  }
}
double pi = 0;
u32_t n = 0;

void setup() 
{
  Serial.begin(115200);
  delay(1000);
  Serial.println("You chose wisely.");
}

void loop() 
{
    pi += 4.0 * pow(-1, n) / (2.0 * n + 1);
    Serial.printf("PI is: %0.16f\n", pi);
    n++;
}

 

On the other hand, in the ESP32, since the loop() is in Core1, you can do the first version forever.  AND, if you put that same routine in a lower priority thread (< 20) in Core0 (with the WiFi) it too would work forever also.

void setup() 
{
  Serial.begin(115200);
  delay(1000);
  Serial.println("Using two brains is better than one");

  xTaskCreatePinnedToCore(
      SecondPi,     // Task function
      "Core0Task",  // Task name
      4096,         // Stack size
      nullptr,      // Parameter
      1,            // Priority
      nullptr,      // Task handle
      0             // Core 0
  );
}

void loop() 
{
  double pi = 0;
  u32_t n = 0;
  while (true)
  {
    pi += 4.0 * pow(-1, n) / (2.0 * n + 1);
    Serial.printf("PI1 is: %0.16f\n", pi);
    n++;
  }
}

void SecondPi(void *parameter)
{
  double pi = 0;
  u32_t n = 0;
  while (true)
  {
    pi += 4.0 * pow(-1, n) / (2.0 * n + 1);
    Serial.printf("PI0 is: %0.16f\n", pi);
    n++;
  }
}


   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

Posted by: @inq
↑
Here, the term dough-head usually signifies someone who is stuck in their ways or intellectually challenged.

What a mishap, I used the term because I know this song since my childhood (at that time I liked it) and had no idea this could be so pejorative. It was meant as a funny add-on to your "sometimes us old members get a little crotchety", and somehow it worked -- now it's me who looks silly.

Posted by: @inq
↑
I don't see anything in your profile.  If you fill out your profile (just a little) things like where you live, your background and your experience level with hardware, and software.

Just now I filled in some data the fields. Not all, I hope my location and timezone has no impact on you, if I'm Canadian or Palestinian or Senegalese has no importance regarding this forum's subjects me think.

What I've omitted from my profile (since it could change) are my major achievements in recent times: i) bugfix of a root finder used in ancient HP32E, and ii) a firmware interpreter running all "Voyagers" and HP-41 plus several peripherals. Maybe a 3rd one, related to i) -- I managed to migrate some algorithms from an HP32E to a virtual HP10C (a model of the Voyager series), currently published as a dedicated "emulator" which I hope to run on my "tinned clone" one day.

Posted by: @inq
↑
[...] about the time Windows 3.1 came on board.  It used what is called "Cooperative Multitasking".

That time we had VM/ESA (on an IBM mainframe) at work, w/o threads but disconnected machines what is a "user" w/o console attached (on Linux it's called a "headless user" AFAIK). But threads running in the same session (or "user" if you prefer) need less overhead.

Posted by: @inq
↑
On all Espressif chips there is what is called the Watch Dog.

Reminds me the "Programmable Operator" of VM/ESA. I used it to force and restart CADAM users consuming CPU w/o and I/O, probably stuck in an endless loop. When it worked head of the computer centre wanted to know how I dune it.

Posted by: @inq
↑
In example, here are two versions of generating PI.  On an ESP8266, the first would certainly cause the WatchDog to reboot the processor.  The second would run forever because you returned control back to the Espressif background processes.

TY very much for those examples, they highlight an important detail me think. Currently it's a riddle for me to grasp the distinction, but that's the way to gain know-why, not only know-how. Excellent 😀

Posted by: @inq
↑
On the other hand, in the ESP32, since the loop() is in Core1, you can do the first version forever.  AND, if you put that same routine in a lower priority thread (< 20) in Core0 (with the WiFi) it too would work forever also.

First and foremost, I do have to learn this programming language -- which at first glance looks like C (it's not dead but it smells funny).



   
ReplyQuote
Inq
 Inq
(@inq)
Rocket Scientist or Space Cadet
Joined: 5 years ago
Posts: 2071
 

Posted by: @amphitryonoff
↑

First and foremost, I do have to learn this programming language -- which at first glance looks like C (it's not dead but it smells funny).

Arduino sketches are really C with the hardware specific functions.  The libraries you can create can be strait C or C++ if you prefer an OOP language.  Under the covers, the compiler is the GNU GCC compiler.  Also, there are several people that run a version of Python on micros, although I think they prefer the Raspberry Pico.  I'm still in denial. 😉   I'm taking an AI course that is strictly Python, so I might get converted... kicking and screaming.



   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

Posted by: @inq
↑
I'm taking an AI course that is strictly Python, so I might get converted... kicking and screaming.

And I installed ESP-IDF in the hope it would be a platform to make my first steps into C. Following the instructions I arrived at "Now connect your ESP32 board to the computer..." -- a show-stopper, at least for me as of yet.

A vital element of my project is an "emulator" of the calculator's CPU (in fact it's a simulation, but "emulator" sound just beefy). Either I migrate mine from FORTRAN, or the joungest version of it from REXX to C, or as stopgap I use one available as open source. I'd like to run it on a platform simulating an ESP32-xx.

Yesterday I also took a closer look on how to create an apt keyboard. Since the role model has no gestures comprising three or more keys same time I think a keyboard matrix w/o diodes will do. In addition, all two-key gestures work along with the ON key, starting from "deep sleep" state (CPU clocks stopped and display off). Thus I plan to have "sticky keys" when off, similar the disabled support of Windows, which lets you press the keys in sequence, e. g. shift and later a letter for upper case that letter.

Debouncing could be a bit tricky since the f/w of the calculator does also debouncing. As it's a solved issue on the PC it should be NP on the ESP me think.

Wiring of the keyboard with 5 colums and 8 rows (physical layout is a 4X10 matrix) is not clear for me yet. How could that be achieved with a XIAO module?



   
ReplyQuote
(@davee)
Member
Joined: 5 years ago
Posts: 2070
 

Hi @amphitryonoff,

  To enable others to provide answers, could you please provide a few more details of the components you are considering, preferably with a Web link to each product description and technical details to reduce the time needed to look them up.

Starting with:

  • Which XIAO module?
  • Which keyboard?

-------

My preliminary thoughts/concerns included:

The XIAO modules Google first showed were all small modules, with only a few connection pins. 

Keyboards usually consist of a number of switches mounted in a plate, with a level of integral wiring that can vary from non-existent, through a basic matrix, to including an integral chip that provides a serial interface. The last case might only require a single 'data' pin connection to the processor board, but the others will require either a considerable number of pins, or the addition of an extra chip/module to act as a concentrator interface between the keyboard and the processor.

--------

I note that most of modules you mention in this thread have WiFi capability. This may be coincidental, but if you are relying on it for any functional capability, remember that enclosing it in a metal can will prevent it functioning, unless you add an external antenna.

Best wishes and good luck, Dave



   
ReplyQuote
Inq
 Inq
(@inq)
Rocket Scientist or Space Cadet
Joined: 5 years ago
Posts: 2071
 

Posted by: @amphitryonoff
↑

And I installed ESP-IDF in the hope it would be a platform to make my first steps into C.

I have loaded up that full environment twice.  The first, I never got it to work.  They seemed to exclusively push you to Linux.  Years later, the second time, they had improved the setup flow and it pretty much worked.  Some time later, it updated something, on its own, and pretty much kept my project from re-compiling.  I won't give it a 3rd time to screw me.  I've used Android phone development emulators, but wasn't aware there were any for micros.  So... I'll be no help on either of these issues.

Once I started running web apps from the ESP's I never touched a hardware button again and I prefer output of nice tables and real time graphs to anything that can be displayed on an attached screen.  I didn't like dealing with debounce issues... so I'm 0 for 3!

 

@davee is the "The Man" for hardware.  He's pulled my butt from the brink many times.

Good luck.

Inq



   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

@davee Hi,

TY for chiming in the debate about finding the appropriate system for my idea building a clone of ancient HP calculators of the "Voyager" series, e. g. HP10C. Such clones exist already, either ready-to-use or for crafting. In contrast, I plan a clone to fit into an Altoids tin, and it should connect with a PC via WiFi. This feature will be the outstanding feature and is triggered by the properties of this ATS Mini Radio. So far my plan in sum.

Posted by: @davee
↑
could you please provide a few more details of the components you are considering

No, I can not since I have not yet decided which SoC or module, which display, which kind of all else might be apt for my project. I found the ESP32 Selection Guide – 2026 and its ESP32 Variant Comparison table where I may sort out all w/o WiFi, but then "Zigbee, Thread, and Matter"-- what is that, could it be advantageous for me? I still have to inform myself about it. Also the other characteristic values, will my "emulator" and WiFi-fuss fit in a given model? How may I find out?

"Inq" adviced to take a fully equipped "bus" (ESP32-S3) since its price is not much higher than that of a lightweight "tricycle". But to save battery I don't want to crack a nut with a sledgehammer.

Posted by: @davee
↑
Starting with:

  • Which XIAO module?

Frankly, IDK. My question was, if it would be possible to attach a keyboard with 39 buttons (5 colums, 8 rows) to a XIAO module with not so many pins. But in the parts list of this cyberdeck I found a TCA8418 I2C keyboard matrix IC, so there is hope 😉

Posted by: @davee
↑

  • Which keyboard?

DIY like this one, or similar. The role model has 39 buttons arranged in a 10 colums by 4 rows matrix (double sized ENTER key). The codes put to the key buffer

/*   -- Voyager key codes --
** 13 33 73 C3 83 82 C2 72 32 12
** 10 30 70 C0 80 87 C7 77 37 17
** 11 31 71 C1 81{84}C4 74 34 14
** 18 38 78 C8 88{84}C5 75 35 15
*/

imply electrically 5 colums and 8 rows. I'm not sure yet if a 6 x 7 matrix would be favourable since it offers the option of three additional keys for special functions.

Posted by: @davee
↑
Keyboards usually consist of a number of switches mounted in a plate, with a level of integral wiring that can vary from non-existent, through a basic matrix, to including an integral chip that provides a serial interface. The last case might only require a single 'data' pin connection to the processor board, but the others will require either a considerable number of pins, or the addition of an extra chip/module to act as a concentrator interface between the keyboard and the processor.

I'm at the very beginning of considering all possibilities, I'm not yet in a position to take decisions. Currently I'm intrigued by this extreme tiny tactile switches.

Posted by: @davee
↑
I note that most of modules you mention in this thread have WiFi capability. This may be coincidental, but if you are relying on it for any functional capability, remember that enclosing it in a metal can will prevent it functioning, unless you add an external antenna.

The WiFi capability is requisite to make a big distinction to the already existing clones. The idea is, while the device on its own works as its role model, but linked via WiFi it will offer edit/copy-edit/paste, display of the calculators internals, printing of programs, I/O of data and programs, exchange of f/w (so all models of the Voyager series will run), maybe scripting like the a. m. Mini Radio.

I am aware of the shielding of the tin case, but WiFi is only needed when the lid is open. Then, the ATS Mini Radio is also sold with a metal casing, and so far only in one single youtube clip I saw s. o. mentioned this might reduce the WiFi range (w/o testing it). Do you have more information on problems about WiFi shielding?

Posted by: @davee
↑
Best wishes and good luck

TY 🙂



   
ReplyQuote
(@amphitryonoff)
Member
Joined: 2 months ago
Posts: 33
Topic starter  

Posted by: @inq
↑
So... I'll be no help on either of these issues.

Never mind. I'll check the ESP32 simulators ASAP. Maybe those could be an option to run some C code.



   
ReplyQuote
Page 1 / 2