SWIRSKIDEV
Selected work

Project Notes 01

Swirski Terminal

Built a wearable ESP32-S3 terminal with a C++ interface and a React Native companion app connected over encrypted Bluetooth.

Role
Creator / Hardware + Software
Type
Wearable Device Prototype
Focus
Embedded / Mobile / PCB
C++20React NativeKiCad / PCBESP32-S3LVGLBluetooth LEESP-IDF
Swirski Terminal project preview

Project Overview

The problem, the constraint and what shipped.

01

Context

Swirski Terminal is a self-directed wearable-computing project exploring how a small tactile device can surface useful phone information without becoming another full smartphone interface.

02

Challenge

Make constrained hardware, physical input, an embedded interface, Bluetooth messaging, Android permissions, and unreliable real-world connections behave like one coherent product.

03

Result

Built and open-sourced a working hardware-and-software prototype, completed a custom PCB design in KiCad, and shipped notification and media control, Wi-Fi management, games, automatic reconnection, tests, and rolling firmware releases.

My Contribution

A self-directed build, covering the decisions from problem definition through to a useful working system.

  • 01

    Taught myself practical electronics and soldering to assemble the wearable ESP32-S3 prototype with its display and physical controls, then designed a custom PCB in KiCad.

  • 02

    Created a shared C++20 and LVGL application that runs on the device and in an SDL desktop simulator for faster interface development and testing.

  • 03

    Implemented encrypted BLE pairing, bonding, chunked versioned messages, and automatic reconnection between the terminal and phone.

  • 04

    Built the React Native Android companion app that sends notifications, media state, time, and Wi-Fi configuration to the device and receives media-control commands from the terminal.

  • 05

    Set up automated rolling releases for ESP32 firmware updates and Android companion-app builds.

Inside the Terminal

Selected visual evidence from the project.

C++ notification list running in the SDL simulator with demo messages
Notifications — the real C++ / LVGL interface in the SDL simulator, with demo messages.
C++ music interface with track information, progress and playback controls using demo data
Media controls — track information, progress and playback actions. Simulator with demo audio data.
C++ weather interface showing a demo forecast
Weather — current conditions and a compact forecast. Simulator with demo weather data.
Terminal settings for power mode, brightness, screen sleep and date
Device settings — power, brightness and screen-sleep controls in the simulator.
On-device virtual keyboard navigated with physical controls
Text input — a virtual keyboard for the device’s rotary and back controls.
Architecture diagram connecting the React Native Android app, encrypted BLE protocol, shared C++ interface, ESP32-S3 firmware and custom PCB work
System architecture — how the embedded interface and Android companion fit together.