Skip to main content
Version: FILS English

Gamepad-Controlled GVS System

A system that uses a PS4 controller to control safe galvanic vestibular stimulation in real time.

info

Author: Oprea Diana-Georgiana
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-dudisorr

Description

This project aims to develop a system that allows real-time control of a Galvanic Vestibular Stimulation (GVS) setup using a PS4 controller. The system reads controller input on a PC, processes it, and sends commands via Bluetooth to an STM32 microcontroller, which generates control signals for an analog circuit. This circuit produces a low, controlled current applied through two symmetrically driven electrodes to influence the user’s perception of movement and balance. In addition, the system integrates a heart rate sensor and an LCD display that shows the measured pulse in real time. This allows monitoring of the user’s physiological response during stimulation, making it possible to observe whether changes in balance or perceived movement lead to increased heart rate, which can indicate stress or nervousness.

Motivation

I chose this project because I am very interested in how technology can interact with human perception, especially in systems that directly influence the way we experience movement and balance. The idea started when I saw an online video of someone actually experiencing Galvanic Vestibular Stimulation (GVS), where electrical stimulation was used to create the sensation of movement or tilt. Seeing a real person react to it made the concept much more tangible and interesting, so I started researching it in more detail. While exploring the topic, I discovered that GVS is used not only in immersive technologies, but also in research and biomedical applications, such as studying the vestibular system, balance control, and human perception. This made the project more interesting to me, as it is not just a technical system, but something that directly interacts with the human body. At the same time, I am also interested in biomedical devices and how electrical signals can be used safely to influence or measure physiological processes. This project combines these aspects, as it involves generating controlled electrical stimulation that affects perception, while requiring careful design to ensure safety. Overall, this project allows me to explore the intersection between embedded systems, analog electronics, and biomedical engineering, while working with a concept that has both experimental and real-world applications.

Architecture

Architecture Diagram

Log

Week 1

  • Discovered the project idea after seeing an experiment with Galvanic Vestibular Stimulation (GVS)

Week 2 - 4

  • Researched GVS in more detail
  • Looked into possible applications and limitations
  • Focused on safety aspects and current limits (3–4 mA range)
  • Identified main challenges of the project

Week 5 - 7

  • Selected and ordered all required components
  • Planned overall system architecture
  • Reviewed datasheets for main components

Week 8 - 9

  • Started designing the current regulation circuit for the stimulation stage
  • Studied different methods for limiting and stabilizing current
  • Continued learning about GVS behavior and constraints

Hardware

  • Microcontroller: STM32U545RE Nucleo (core logic)
  • Communication: HC-05 Bluetooth module (wireless UART communication)
  • Analog Circuit: 2N3904 (NPN) and 2N3906 (PNP) transistors (current control)
  • Power Supply (Analog): 4xAA battery pack + XL6009 boost converter
  • Power Supply (Digital): Separate battery pack for STM32 and peripherals
  • Sensor: Heart rate sensor (pulse monitoring)
  • Display: LCD screen (real-time heart rate display)
  • Input Device: PS4 controller (user input via PC)
  • Connections: Jumper wires, connectors, electrodes (E1, E2)

Schematics

Bill of Materials

DeviceUsagePrice
STM32 Nucleo-U545RE-QMain microcontroller144 RON
HC-05 Bluetooth ModuleWireless communication (PC ↔ STM32)48 RON
XL6009 DC-DC Boost Converter (x2)Voltage boost for analog circuit and power management36 RON
4xAA Battery Holder (x2)Power supply for analog and digital sections34 RON
Transistor Kit (2N3904 / 2N3906 included)Analog stimulation circuit components34 RON
Resistor KitBiasing and current control45 RON
3.5mm Jack Terminal Adapter (Goobay 76746)Connection interface for electrodes16 RON
Electrode Cables (3.5mm)Connection between circuit and electrodes31 RON
Electrodes (TENS pads)GVS stimulation interface35 RON
Heart Pulse Sensor (AI206)Heart rate monitoring15 RON
LCD 16x2 with I2CReal-time heart rate display23 RON
Total461 RON

Software

LibraryDescriptionUsage
gilrsGamepad input library for RustUsed to read input from the PS4 controller on the PC side
serialportSerial communication library for RustUsed to send data from the PC application to the HC-05 Bluetooth module
tokioAsynchronous runtime for RustUsed to manage asynchronous tasks in the PC application
serdeSerialization framework for RustUsed to structure and serialize control data sent to STM32
eguiGUI library for RustUsed to create the PC-side interface
eframeApplication framework for eguiUsed to run the desktop application
embassy-stm32STM32 support for Embassy (Rust embedded framework)Used for hardware control on the STM32
embassy-executorAsync task executor for embedded RustUsed to manage concurrent tasks on STM32
embassy-timeTiming utilities for embedded systemsUsed for delays and scheduling
embedded-halHardware abstraction layerUsed for interfacing with peripherals (GPIO, UART, etc.)
defmtLogging framework for embedded systemsUsed for debugging on STM32
panic-probePanic handler for embedded RustUsed for error handling
hd44780-driverDriver for HD44780-compatible LCD displaysUsed to control the 16x2 LCD display
  1. Galvanic Vestibular Stimulation (GVS) - Wikipedia
  2. Scientific study on GVS and balance control
  3. STM32U545 Datasheet (STMicroelectronics)
  4. Inspiration video – GVS experiment ...