LumiVoxel
Project Functional Description:
Project Overview
The goal of this project is to develop an 8×8×8 RGB LED Matrix Cube capable of displaying 3D triangle meshes imported from an iPhone application. The LED cube will consist of 512 individually addressable RGB LEDs, controlled by LED driver ICs that communicate with a microcontroller via a serial interface. The microcontroller will receive 3D model data and transformation commands from the app via Bluetooth Low Energy (BLE), process the data, and then drive the LEDs to display the transformed object.
This system will allow users to interact with the displayed 3D model through software-based transformations in the iPhone app and hardware-based controls using physical knobs. The microcontroller firmware will handle rasterization, voxelization, and affine transformations before rendering the object on the LED cube.
Key Components
1. Microcontroller & Firmware
- Handles Bluetooth communication, 3D model processing, and LED control.
- Converts 3D triangle mesh data into a voxelized format for LED visualization.
- Uses matrix transformations to apply rotation, scaling, and translation in real-time.
- Communicates with LED driver ICs to control individual LEDs.
2. RGB LED Cube (8×8×8 Matrix)
- Contains 512 RGB LEDs, controlled using PWM for color blending and brightness adjustments.
- Driven by LED driver ICs communicating with the microcontroller over serial protocols.
- Displays voxelized representations of 3D models.
3. iPhone App
- Allows users to import 3D models (STL/OBJ) and preview them before sending data.
- Sends Bluetooth commands to the microcontroller to load models and apply transformations.
- Provides sliders and UI controls for real-time adjustments (rotation, scaling, brightness, and hue) and sends the transformations to the microcontroller.
4. User Input (Knobs & UI Controls)
- Physical rotary knobs enable manual brightness adjustment of the displayed object.
- Sliders and buttons in the iPhone app provide fine-tuned controls over hue, brightness, and scale.
4. Bluetooth Communication (BLE)
- Uses BLE GATT services to send 3D model data and transformation commands.
- Ensures low-power wireless communication between the iPhone and the microcontroller.
5. Power System
- The system operates on a 12V DC input, which is stepped down using a DC switching regulator.
- The power supply provides three distinct voltage domains:
- 3.3V for the microcontroller and Bluetooth module.
- 3.8V for the blue and green LEDs.
- 2.8V for the red LEDs, which have a lower forward voltage.
3D Model Processing & Transformation Pipeline
The process of rendering and transforming a 3D model involves multiple computational steps. The pipeline is as follows:
1. Model Import & Transmission
- The iPhone app allows users to select a 3D model (STL/OBJ) from files.
- The model is parsed and voxelized into an 8×8×8 matrix using grid-based sampling.
- The model data is transmitted via BLE to the microcontroller along with any transformations.
2. Data Reception & Processing
- The microcontroller receives model data and performs additional transformations if required.
- It maintains an active state machine to handle different operational states, such as:
- Idle (Waiting for data)
- Processing (Transforming the model)
- Rendering (Updating the LED display)
- Standby (Power-saving mode)
3. Rasterization & Voxelization
- Since the LED cube operates on a voxel-based grid, the triangle mesh must be converted into a voxelized representation.
- The microcontroller computes intersections between the triangle surfaces and the voxel grid, determining which voxels should be illuminated.
4. LED Cube Rendering
- After transformations, the microcontroller updates the LED matrix by communicating with LED driver ICs over a serial protocol (SPI).
- The LED brightness and color are controlled using PWM signals.
Computational Challenges & Optimization Strategies
Microcontroller Processing Limitations
- 3D transformations (rotations, scaling, translations) require floating-point arithmetic, which can be computationally expensive for a microcontroller.
- To optimize performance:
- Reduce BLE transmission size by sending only transformation parameters rather than entire voxelized models.
App-Side Processing
- The iPhone app performs initial 3D model parsing, voxelization, and transformation previews before sending model data and transformations to the microcontroller.
- This ensures both the app and the device are displaying the same thing.
Power Management & Voltage Regulation
Input Power Source
- The system is powered by a 12V DC input from an external power adapter.
- This is stepped down to required voltages using a synchronous step-down converter.
Voltage Domains
- The following voltage levels are required:
- 3.3V – For the microcontroller and Bluetooth module.
- 3.8V – For the blue and green LEDs.
- 2.8V – For the red LEDs.
Mechanical & Structural Design
- The LED cube must be structurally stable while ensuring minimal light reflection and refraction.
- Initial plans considered using acrylic layers but were discarded due to excessive light refraction.
- Instead, we opted for solid, dark-colored plastic rods to maintain light clarity and structural integrity.
- The cube will be soldered to the base PCB, with all LEDs, ICs, and wiring integrated for compactness.
- The PCB will be enclosed in a 3D printed box to contain all the electronics
iPhone App Interface
- The app will be designed using SwiftUI for a modern, responsive UI.
- Core functionalities include:
- Importing 3D models (STL, OBJ).
- Bluetooth pairing and connection status display.
- Real-time model transformation controls.
- Sliders for adjusting brightness, hue, and scale.
- Reset and home navigation buttons for user convenience.
Conclusion
This project aims to seamlessly integrate hardware, firmware, and software to create an interactive 3D visualization system. By leveraging Bluetooth connectivity, real-time 3D transformations, and efficient LED control, we will provide users with an immersive and dynamic LED display experience.