EasyTerm - The Story of an Idea
First of all, welcome!
I would like to start this first post on a more personal note—so allow me, as the creator of EasyTerm, to introduce myself. My name is Miroslav Šíma. I am primarily a firmware developer with experience in both hardware and software, and I have been working on a device called EasyTerm for quite a few years now.
EasyTerm has an interesting history. Initially, it was supposed to be a device centered around a touchscreen and UART—a sort of "HMI" (Human-Machine Interface) for operating and monitoring various devices with serial ports, whether for development, validation, or regular use. Many people are familiar with terminal applications like Putty or my personal favorite, ScriptCommunicator. However, monitoring logs from various devices can often be unintuitive, and controlling them via a text-based API is no different—messages are displayed in chronological order without any sorting or filtering, and managing parameters by manually rewriting commands is inconvenient and prone to errors. Sometimes the device isn't even within reach of the computer, the UART<->USB adapter is misplaced, or the device’s API has been forgotten... (I’m getting carried away, but this is personal experience at play).
EasyTerm as an HMI
The first version included a set of graphical widgets for monitoring messages, with parsing based on masks (forms, graphs, sequential logging windows), and a set of widgets for creating (or rather, parameterizing) messages—buttons, keyboards, sliders, checkboxes. I used the device to control other devices—essentially anything with UART. Thanks to the ability to save layouts of these widgets, each controlled device could have its own layout (or "control panel," if you will). Even a small, low-power microcontroller with only a few pins could be easily operated and monitored as long as it had UART. There was no need to complicate things, allowing focus on developing and improving the primary function for which the device was being created. Since it used an ASCII protocol, no integration of libraries or firmware modifications were necessary for the device being controlled (because, let's face it, in many cases, someone would just give up and stick to a regular software terminal).
A lot of time was spent designing the ASCII protocol (I didn’t want to keep changing it). The priority was intuitiveness. Commands could be entered in a compact or self-documenting format (or a combination of both).
For example, I believe that even a complete beginner to EasyTerm could understand a command like
Operating anything finally became fun, and there was no longer a need to add interfaces to a display or many buttons. But over time, I became more frustrated by situations where I needed to perform a seemingly simple task during development—like generating a specific voltage, a PWM signal with a specific frequency and duty cycle, reading a register from an integrated circuit, or setting a logical level somewhere. It may sound simple, but it was often a nightmare. One either had to cobble something together or make space on the desk for a bulky and expensive device that was absolute overkill for the task. Reading an integrated circuit required obtaining specialized equipment and installing software. Heaven forbid automation was needed, such as generating a time sequence of various PWM signals—this led to scouring manuals and often wondering why the SCPI command wasn’t working.
EasyTerm as a multitool
That’s when the second version came into play. The circuitry became more complex, adding well-known buses (UART/SPI/I2C), digital inputs/outputs (GPIOs, PWM), and analog pins (ADC/DAC). Generating voltage or PWM became a matter of seconds (usually just one command—e.g., commands like
The best part was how easily the original "HMI" functionality could be connected to these interfaces. All it took was displaying a slider that, instead of sending a generic message, had a defined action like
EasyTerm Goes Global
The final phase came when I realized what a powerful tool I had created (no modesty here). The following steps focused on making EasyTerm accessible to others. The firmware was improved as far as imagination could go, and the hardware was iterated to perfection. A manual was created. To make EasyTerm as user-friendly as possible (because, let’s face it, browsing through a manual isn’t fun!), the CmdBuilder application was developed, allowing commands to be easily assembled through forms. For those interested in using EasyTerm as a multitool, a set of layouts was created (essentially a collection of pre-prepared "commands"). So, for example, a touch-controlled PWM generator or many other functions could be obtained right after sending a "pre-prepared" set of commands. To top it all off, the hardware was certified for EMI/ESD in a certified testing lab. So, if you’re interested, you can have one too. Initially, it’s available only in the Czech Republic, but in time, throughout Europe—and hopefully soon, the whole world!
I’m happy to personally answer any questions at support@7-tech.net
Happy developing!
Ing. Miroslav Šíma - the father of EasyTerm