This ESP32 Runs a Word Processor — Complete with Screen and Keyboard

See how YouTuber Volos Projects was able to connect a keyboard and screen to an ESP32-S3 and use it as a functional text editor.

Evan Rust
23 days agoCommunication / Displays / Retro Tech

Gamepads, mice, and keyboards are just a few of the different types of human interface devices (HIDs) we use on a regular basis to interact with computers of all kinds. And for embedded projects that require many buttons in order to work, substituting a complex button matrix for a keyboard could greatly reduce costs and time requirements. Which is why, in his latest video, YouTuber Volos Projects details how he was able to connect a full-size keyboard to an ESP32-S3 and turn it into a functional word processor.

The screen and keyboard

Drawing on his ample experience with embedded displays and data visualization, Volos selected a seven-inch TFT IPS screen module that features a built-in ESP32-S3 WROOM, microSD card slot, touch controls, and a variety of connectors, including two USB ports. After setting up the ESP32 as a USB host in the sketch and assigning different actions based on function key presses, Volos's next task was to get each key to appear onscreen just like a more traditional text editing GUI.

Opening, modifying, and saving files

The ESP32-based screen's microSD card is where the user's files are opened from and saved to. Pressing F1 will create a new, empty text file wherein the user can type ASCII characters as well as give the file a name with the F3 key. Once they are ready to save, hitting F4 will write the entire file's new content back to the SD card. Finally, pressing F2 will open a file explorer menu to select previously saved entries.

Programming constraints

Although the S3 contains a large amount of RAM relative to its size and cost, the screen's 1024 x 600 resolution (614,400 pixels in total) would have far exceeded this limit if the full 16-bit color palette were used. To get around this, Volos reduced the color resolution to just 4 bits across most of the screen, and for areas that only needed to be black or white, only 1 bit was required.

Evan Rust
IoT, web, and embedded systems enthusiast. Contact me for product reviews or custom project requests.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles