A small patch for the original Plai firmware. It replaces the text-input layout with a Russian phonetic YaSHert layout adapted to the M5Stack Cardputer. The English layout remains unchanged.
This repository intentionally contains only the patch, Linux build instructions, and the same GPL-3.0 license used by Plai. It does not contain a copy of the Plai source tree.
Copyright (c) 2026 lessucettes
This patch was vibe-coded with gpt-5.6-luna.
plai-yashert-cardputer.patch— patch for the original Plai source tree.LICENSE— GNU GPL v3.0, matching Plai.
On Debian or Ubuntu:
sudo apt update
sudo apt install -y git cmake ninja-build python3Install ESP-IDF v5.5.4 for the ESP32-S3:
mkdir -p ~/esp
git clone --branch v5.5.4 --recursive https://github.com/espressif/esp-idf.git ~/esp/esp-idf
cd ~/esp/esp-idf
./install.sh esp32s3Install the Nanopb 0.4.9.1 generator:
git clone --branch nanopb-0.4.9.1 --depth 1 https://github.com/nanopb/nanopb.git ~/esp/nanopb-0.4.9.1Clone the original project with its protobuf submodule:
git clone --recursive https://github.com/d4rkmen/plai.git
cd plaiIf the repository was cloned without submodules:
git submodule update --init --recursivecurl -fL https://github.com/lessucettes/plai-yashert-patch/raw/main/plai-yashert-cardputer.patch \
-o plai-yashert-cardputer.patch
git apply --check plai-yashert-cardputer.patch
git apply plai-yashert-cardputer.patch
git diff --checkApply the patch to a clean Plai working tree.
The generated Nanopb files are not stored in the Plai repository. Generate them once after cloning:
cd protobufs
~/esp/nanopb-0.4.9.1/generator/protoc \
--experimental_allow_proto3_optional \
'--nanopb_out=-S.cpp -v:../main' \
-I=../protobufs ../protobufs/meshtastic/*.proto
cd ..source ~/esp/esp-idf/export.sh
export PATH=/usr/bin:$PATH
idf.py set-target esp32s3
idf.py buildThe resulting firmware image is:
build/Plai.bin
To flash a connected device on Linux:
idf.py -p /dev/ttyACM0 flash monitorThis patch is distributed under the GNU General Public License v3.0, the same license used by Plai.