Preface:
1. Based on the hardware of the original project ESP-KeyBoard - LCSC Open Source Hardware Platform (oshwhub.com) and the software in esp-iot-solution/examples/keyboard at master · espressif/esp-iot-solution (github.com), this project is based on these modifications.
2. Thanks to the hardworking students in the lab for their batch wiring, which greatly reduced the workload.
3. The neighboring Jiepei is too expensive to play with; they advertise free sampling but actually prohibit keyboard orders. They truly deserve to be called a company that redefines a century-old enterprise.
---------------------------------------------------------------
Demonstration:
A mouse receiver can be inserted on the side, which is extremely user-friendly.

Bottom

and front:



See the video preview (HDR seems to have problems, please bear with it for now).
Reproduction Notes:
1. Version Notes:
The hardware in v0.1 has IO multiplexing issues. Touch is sent directly, and the screen needs an additional flying wire CS to GPIO1. Also, transmission errors occur when the SPI rate is set above 20M. It is not recommended to use it.
Version 1.1 is the current development and usage version, with complete functionality and no obvious defects.
Version 2.0 is a hardware fine-tuning version, optimizing power supply, soldering, assembly, and structure while maintaining software compatibility. Due to the inability to prototype at present, hardware feasibility has not been verified.
2. Additional notes on component purchase and soldering:
Currently, the software is compatible with ESP32S3 / ESP32-S3R2. It is recommended to purchase the R2 version for easier future upgrades; it costs 7 RMB per component on Taobao.
Excluding PCB costs, within 100 RMB, including switches, keycaps, and screen
FLASH, soldering is required for 16MB (128Mb).
After soldering the LEDs in V1.1, be sure to check if they light up normally. Disassembly will be quite troublesome if problems arise later .
Acrylic positioning plate 1.5mm, base plate 2mm, two custom acrylic pieces are available on Tmall for 18 RMB including shipping; see DXF and the LCSC panel in the project.
3D printed parts are attached; the current design lacks sufficient support and is being revised.
3. Software Description
: The currently released version only plays MJPEG files. Usage: (Ensure the .mjpeg file
has the video cropped to 240*320 resolution and limited to 30fps, or restrict it to be
generated using ffmpeg: .ffmpeg.exe -i test.mp4 -vf "scale=240:320" -c:v mjpeg -qscale:v 2 output.mjpeg)
Put output.mjpeg into the LVGL img converter to convert it to a C RAW array, and save it.
If the filename is output: overwrite the original file; if the filename has been modified: add the .c filename to CMakeLists.txt and replace the array symbol in main.c.
Save and compile.
The current version can use ESP32-S3 (without PSRAM). It can play videos in wired connection mode, with a remaining stack size of 80K. Errors will occur under BLE, so the screen should be turned off.