This is an old revision of the document!
FlowBox is an interactive anti-stress fidget toy designed to simulate a physical container filled with granular particles (e.g., sand) or fluid (e.g., water, lava). The simulation reacts in real-time to the user's movements, such as tilting or shaking, thanks to an integrated 6-axis inertial measurement unit (IMU). A single-button interface allows users to cycle through different materials via a short press or change the map configuration with a long press.
The inspiration for FlowBox stems from a desire to combat smartphone addiction. During moments of stress (such as when hitting a roadblock while working on projects or assignments), the common reflex is to reach for the phone, a habit that often leads to unproductive “infinite scrolling” and increased negative emotions, usually ending up less rested than before. FlowBox is designed to intercept this behavioral loop. By providing a tactile, aesthetically pleasing, and satisfyingly predictable digital-physical experience, it offers a “short break that stays short”, allowing the user to reset without falling into the engagement traps of present-day attention economy.
The device is designed around the ESP32-S3R8 microcontroller, which acts as the central hub for high-speed graphics processing, real-time physics calculation, and power management.
The “brain” of the device utilizes a dual-core Xtensa 32-bit LX7 processor. To ensure a smooth user experience, the software is split across both cores.
Motion Sensing (QMI8658): This 6-axis IMU is connected via the I2C protocol. It provides the pitch and roll data necessary for the physics engine to calculate the force for the sand particles.
Control (BOOT Button): Connected to GPIO 0, this single button utilizes hardware interrupts. A software state machine distinguishes between short presses (material cycle) and long presses (map cycle/sync mode), providing a minimalist yet powerful user interface.
IPS LCD (RGB565): The 3.16” display uses a high-speed parallel RGB565 interface driven by the ST7701 controller. This allows for the high data throughput required to render hundreds of moving particles at 60 FPS.
MicroSD Storage (SPI Mode): Stores the maps containing wall configurations.
Charging and Regulation: Power is managed by the ETA6096 switching charger, which handles the transition between USB-C power and the 1000mAh LiPo battery.
PC Interaction: The Native USB peripheral of the ESP32-S3 allows the device to act as a USB Mass Storage Class (MSC) device. This enables “Sync Mode,” where the device appears as a standard thumb drive on a PC for easy map management without removing the SD card.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.