For Starglasses: I did some looking around today, and there are a lot of resources for similar projects, mainly around AR glasses. The guides aren't in any way thorough, but there are a lot of them. Here's a few to look at:
https://www.youtube.com/watch?v=YK3YPtgHQnc
Ooooh, you might chat with Amir Alsad—freshman in advising seminar fall 2024. He made a pair of AR glasses. amir_a@mit.edu
Meta AR Glasses
https://www.meta.com/ai-glasses/meta-glasses/
Google Sky Map
https://play.google.com/store/apps/details?id=com.google.android.stardroid&hl=en_GB&gl=US
Building your own Augmented Reality (AR) glasses is a fantastic physical computing challenge that bridges optics, microcontrollers, and 3D fabrication. While commercial headsets use multi-million dollar waveguide technology, you can create a highly functional prototype on a maker budget using accessible components.
Here is a breakdown of the core architecture and how to implement it.
1. The Processing Core
You need a brain that is small enough to wear but powerful enough to drive a display and process sensor data.
Microcontrollers (ESP32 / Arduino Portenta): Ideal for lightweight, text-based HUDs (Heads Up Displays). They sip power and are perfect if you just want to stream sensor data, notifications, or simple vector graphics via I2C or SPI.
Single Board Computers (Raspberry Pi Zero 2 W): Better if you need computer vision (like OpenCV), a full OS, or more complex graphical overlays. You can run lightweight Python scripts to handle the display output and wireless communication.
2. The Display & Optics
This is the hardest part of the build. You cannot simply put an OLED screen directly in front of your eye, because the human eye cannot focus on something that close. You need optics to push the focal plane further out.
For DIY builds, "Birdbath" optics or simple Combiners are the most practical routes:
The Display: You will need a micro-display. A 0.49-inch to 0.96-inch OLED display is standard.
The Combiner: This is a semi-transparent mirror (a beamsplitter) placed at a 45-degree angle in front of your eye. The micro-display sits above it, pointing down. The light from the display hits the combiner and bounces into your eye, while ambient light passes straight through from the real world.
The Magnifier: A convex lens placed between the display and the combiner magnifies the tiny screen and sets the focal distance so your eye can actually read it.
3. Tracking & Sensors
To make the glasses "smart," they need context about the physical world.
IMU (Inertial Measurement Unit): A 6-axis or 9-axis sensor (like the MPU-6050 or BNO085) tracks your head's pitch, roll, and yaw. This allows you to lock digital text to a specific compass heading or stabilize the display.
Camera: If using a Pi, a small MIPI camera module allows you to run basic object recognition or QR code scanning.
Implementation Sequence
If you are building your first prototype, here is the recommended path to avoid getting bogged down in optical physics before your code works:
Design Note: Pay close attention to cable management. Stiff wires running from the glasses to an external battery pack or processing unit will constantly pull the glasses off your face. Use highly flexible, silicone-coated wire for any tethering.
Switching to the BNO055 is a massive upgrade for an AR display. Instead of raw accelerometer and gyroscope data that you have to filter yourself, the BNO055 has an onboard Cortex-M0 processor that performs sensor fusion (Kalman filtering) directly on the chip.
This means it outputs rock-solid Euler angles or Quaternions with virtually no jitter, completely eliminating the need for complex filter mathematics in your sketch.
The BNO055 Stabilization Code
You will need the Adafruit BNO055 library installed in your IDE. This code pulls the pre-calculated Euler angles (Yaw, Roll, and Pitch) and uses them to draw a highly stable artificial horizon.
What Changed?
No Trigonometry Required: Notice that the
atan2calculations are completely gone. We are simply pulling theeuler.z()andeuler.y()vectors directly. The BNO055 has already done the heavy math.True Yaw (Heading): The MPU-6050 cannot measure true absolute Yaw because it lacks a magnetometer—it can only guess rotation based on the gyro, which drifts over time. The BNO055 includes a magnetometer, meaning the
euler.x()value is a true compass heading (0-360 degrees) that won't drift.

There is a more recent (and more expensive) DLP board that supports using a Raspberry Pi
ReplyDeletehttps://www.ti.com/tool/DLPDLCR230NPEVM
Also here is a 2025 post on using the older DLP unit with an RPi-4:
https://www.intellar.ca/blog/raspberry-pi-evm2000
In the blog the author notes that he did a proof of concept using jumper wires, but had problem with data corruption and ended up designing a custom board to connect the devices together.
Adapter board available for $35 (Canadian, since I think he is in Quebec)
ReplyDeletehttps://intellar.square.site/product/evm2000-ti-adapter-board-for-raspberry-pi/KPYOC73DPLJ3OU2VVH3XMLKP?cs=true&cst=custom
And a video here on using a Raspberry Pi-5 running Trixie OS
ReplyDeletehttps://www.youtube.com/watch?v=jDVM0gjWmZA