

Wemosglov
Install the required Python packages before running the project.
- Size
- 41.7 × 61.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 21
- Nets
- 49
- Pads
- 112
- Tracks, vias
- 266, 26
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 20 Nov 2024
- Updated
- 28 May 2026
Overview
Wemosglov is an open-source printed circuit board by adhdnan, from the adhdnan/LSTM-Flex-Sensor repository on GitHub. It is a 2-layer board of 41.7 × 61.7 mm with 21 parts on 49 nets, routed with 266 tracks and 26 vias.
It is built around the INMP441 and TP4056. Its parts include 9 resistors, 8 connectors, 2 switches, 1 capacitor and 1 IC.
Main components
2README
README.mdSIBI Sign Language Recognition using Flex Sensor and LSTM Algorithm
This repository implements a hand sign recognition system using flex sensor input, MQTT telemetry, and an LSTM-based prediction pipeline. The project was developed for the PKM-KC competition and as the author’s undergraduate final thesis project.
Overview
- Collects gesture data from a flex sensor glove via MQTT.
- Uses an LSTM model to recognize alphabet letters from sequential sensor readings.
- Outputs recognized letters through audio playback.
- Includes data collection, configuration, prediction, and model files.
Project structure
khadas/- main Python source files for the real-time prediction program. This folder contains the application deployed on the Khadas VIM 4 single-board computer.khadas/models/- saved LSTM model definitions and weight files used by the Khadas program.data/participant_*- recorded sensor datasets for each participant.config/- calibration thresholds and configuration files used by the pipeline.alphabet_audio/wav/- audio files for alphabet pronunciation output.Model Iteration Documentation/- Jupyter notebooks, model experiments, and saved model checkpoints.
Dependencies
Install the required Python packages before running the project.
python -m pip install --upgrade pip
python -m pip install -r requirements.txtNote:
torchinstallation may require a specific command depending on your CUDA support. If the generic install fails, visit https://pytorch.org/ and use the platform-specific install command.
Usage
Run the main pipeline from the khadas/ folder.
cd khadas
python lstm_main.py --fn <mode> [options]Available modes:
--fn loop_default- print raw converted sensor payloads.--fn config- collect calibration values and save them toconfig/<config_path>.txt.--fn get_data- record gesture data todata/<letter>-<id>.txt.--fn predict- perform live LSTM prediction and optionally save results.
Examples:
python lstm_main.py --fn config --config_path default
python lstm_main.py --fn get_data --letter a --id 1 --name user1 --seq_len 20
python lstm_main.py --fn predict --name session1 --model lstmNote:
khadas/audio.pycontains the audio playback helper class, but the main process is launched fromkhadas/lstm_main.py.
Data and models
- Recorded sensor dataset is stored under
data/participant_*. - The default LSTM weight file is loaded from
khadas/models/LSTM/lstm_flex_best_model18.pth. - Calibration files are stored under
config/and read bykhadas/lstm_tools.py. - Prediction results are saved to
result_lstm/<name>.txt.
Notes
- MQTT broker settings are configured in
khadas/mqtt.py. - Audio files are played from
alphabet_audio/wav/. - The LSTM prediction pipeline is implemented in
khadas/LSTM.py.
Non-technical documentation
PPT PKM-KC GLOVITOO.pptx- competition pitching deck (Indonesian)Progress Report.docx- competition progress report (Indonesian)`
Parts
21| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 4.7K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1, R2, R3, R4, R5, R6, R7, R8, R9 |
| 1 | 100nF | Capacitor_THT:C_Disc_D9.0mm_W5.0mm_P5.00mm | C9 |
| 1 | 4051 | CD4051:DIP794W45P254L1969H508Q16 | U5 |
| 1 | Flex_In | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J3 |
| 1 | Flex_Out | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J2 |
| 1 | INMP441 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J7 |
| 1 | Kanan | Connector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_Vertical | J10 |
| 1 | Kiri | Connector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_Vertical | J9 |
| 1 | MPU6050 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J4 |
| 1 | OLED LCD | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J5 |
| 1 | Switch_Mode | Button_Switch_THT:SW_DIP_SPSTx01_Slide_9.78x4.72mm_W7.62mm_P2.54mm | SW2 |
| 1 | Switch_POWER | Button_Switch_THT:SW_DIP_SPSTx01_Slide_9.78x4.72mm_W7.62mm_P2.54mm | SW1 |
| 1 | TP4056 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
Questions
How big is the Wemosglov PCB?
It measures 41.7 × 61.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Wemosglov use?
21 parts, built around the INMP441 and TP4056. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Wemosglov KiCad files?
From the adhdnan/LSTM-Flex-Sensor repository on GitHub, at the commit this page was made from: the board is wemosglov/wemosglov.kicad_pcb and its schematic schematics-kicad/schematics-kicad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Wemosglov design in my own project?
Its repository states no licence, so its author keeps all rights: ask adhdnan before reusing the design.
Similar boards
- 2 layers

- 4 layers106.4 × 66.8 mm

Pip boy V1
benjaminbardossy-dotcom/wrist-boy
A small WIP device which takes in external information through a variety of sensors, which can be mounted to your wrist for easy access.
41 partsMIT - 2 layers230.8 × 176.5 mm

Marajoara V3
machadoleonardo94/Echoes-of-Termina
ESP32 Audio devkit for I2S modules, with microSD slot and LED outputs
121 parts - 2 layers56.4 × 78.4 mm

- 2 layers135 × 135 mm

Va5pcb
iollama/Voice-Assistant-5
ESP32-S3 push-to-talk voice assistant using OpenAI Realtime API
16 parts21GPL-3.0 - 2 layers70 × 100 mm

Iot badge-433
galopago/iot-badge-legacy
Electronic conference badge for programming conventions, hacking events, etc.
77 parts4 - 2 layers39.1 × 39.9 mm

Nebula
Thecactusman0/Nebula-openwatch
Nebula is a ESP32 based smartwatch that features a rotating bezel encoder
85 parts4 - 2 layers74.9 × 100.3 mm

Spectrum analyzer
JadenS180/spectrum-analyzer
ESP32-based real-time audio spectrum analyzer with custom PCB design. Features INMP441 I2S microphone, SSD1306 OLED display, FFT processing, and real-time WiFi streaming to a browser-based visualizer via WebSockets.
11 parts2MIT