Enigma Console is a custom furniture automation project.
It uses a Raspberry Pi Zero 2 W running a Python GUI and communicates over UART with a Raspberry Pi Pico, which drives a servo/motor to open and close a console lid like a bridge.
Designed as a special product for digital control of a furniture console.
- Touch-friendly PyQt5 GUI (
enigma-gui.ui,main.py) - Secure password management (bcrypt) with reset mechanism
- Configuration stored in
parameters.json - UART communication between Pi Zero and Pico
- RPi Pico firmware (
main_pico.py) for motor control with soft start/stop - Reset password generator utility (
sifirlama_sifresi.py)
├── pi/enigma-gui.ui # Qt Designer file for GUI
├── pi/main.py # Python GUI (RPi Zero 2 W)
├── pi/parameters.json # Runtime configuration
├── pico/main_pico.py # Pico firmware (MicroPython)
├── pi/sifirlama_sifresi.py # Reset password generator tool
Install dependencies via APT:
sudo apt update
sudo apt install python3-pyqt5 python3-serial python3-bcrypt wmctrlOr via pip:
pip install pyqt5 pyserial bcryptpython3 main.py- Open/Close buttons send UART commands (
0,50,2000\nor1,50,2000\n) - GUI displays current state and requests password if enabled
parameters.jsonkeeps last position, mode, and hashed keys
-
Runs on Raspberry Pi Pico (MicroPython)
-
Receives UART messages in format:
<direction>,<duty>,<duration>Example:
0,50,2000→ OPEN1,50,2000→ CLOSE
-
Controls PWM on GP3 with soft start
-
Replies via UART with:
openclose
Run:
python3 sifirlama_sifresi.py- Enter values from GUI settings screen corners
- Utility generates unique reset code for the device
- UI Designer: @kursattoz
- Project Coordinator: @atilganmali
- Software & Hardware Developer: @seckinsertaclalli
MIT