Helmet with working HUD


New Member

Hello 405th!​

I was browsing the other day, when I stumbled upon a video of an Arduino powered heads up display. I thought it would be cool if I could fit it into a helmet. However, I didn't know just much space I would need, so I turned to the most useful tool in my arsenal, math. If you don't care for math, skip down to the Design Considerations section.

Math Section​

  • Index of Refraction (IOR) aka refractive index, is a unitless scalar quantity that describes how much the light bends as it enter or exits a material. This is dependent on the material. Index of refraction is usually represented by the variable `n`.
  • Focal length (FL) is the distance from an optical element to the point where the image comes into focus. Focal length is usually represented by the variable `f`.
  • Lens radius is the radius of the curve in the lens. Lens radius is represented with the variables `R_1` and `R_2`. It should also known that a line can be represented as a circle with infinite radius.
  • The variable `o` and `i` refer to the distance from the lens to the display and the virtual image respectively.

Lensmaker's equation (Thin Lens Approximation)​


This relates Focal Length to Index of Refraction and Radius. For this project I'll only be using planoconvex lenses. These lenses are curved on one side and flat on the other.

This allows us to eliminate the `R_2` variable, resulting in this form.

This allows us to simplify to the final form of the equation:

Virtual image distance equation​


This equation relates the focal length to the distance `o` and `i`, but the current form of this equation is not very helpful.

We'll use this form of the equation to determine the virtual image distance with a constant focal length and a given object distance. It should also be noted that for virtual images, `i` will always be a negative number.

Design Considerations​

  • A low focal length is desirable as a lower focal length will allow for a more compact overall design.
  • The virtual image should be no closer than 30cm, so that the eye can properly focus on it.
  • Ideally, the virtual image should be formed at infinity, so that it is always in focus.
  • If the display is placed at a distance equal to the focal length, the rays of light being emitted from the screen will become parallel, and the image will be formed at infinity. This is called collimation.


COTS Lenses​

For simplicity, it is easier to purchase lenses and cut them to shape. Because we need to cut the lenses, we will only be purchasing PMMA (aka Acrylic) rather than glass lenses. Here are a few options I found.

Custom Lenses​

Sometimes, lenses cannot be found with the required specifications. In this case, you have to do it yourself.
I used the Lensmaker's Equation to calculate the geometry required for a 35mm lens made of PMMA.

This was 3d printed with clear resin. However, the print has a frosted appearance. This is remedied by coating the lens with a final layer of resin. The raw print is on the left, with the coated lens on the right.

For now, I'll be using this coated lens.


The reflector acts as a beam splitter, which combines the light from the display and light from the environment. This is effectively a transparent screen the image will be projected on.

CD case​

A cost-effective option for the reflector is the cover of a CD case. However, this causes double imaging as light from the display reflects twice. Once from the front of the lens, and again against the back. But for now, I'll be using a CD case.

Semi Transparent Mirror​

This material solves the double imaging problem by preventing light from the display from reflecting off the back side of the reflector.


A mirror can be placed between the display and the lens. This allows the display to be placed non-colinearly with the display. This also removes the requirement for the display contents to be mirrored, as the mirror will mirror the contents intrinsically.


Theoretically any display can be used, but an OLED or similar display will work the best. I used this one from adafruit for this project.


Any microcontroller that can drive the display can be used. I used the FeatherS2 which uses an ESP32-S2.


The final question, I'll leave with you is: What helmet should I put this in? Feel free to comment some helmets you'd like to see!
Ideally, these would be helmets with space in the brim, so I can integrate the optics package.
Here's a list of some helmets I think would be workable:
  • H3 Marine
  • Reach EOD
  • Reach Scout
  • Reach Commando w/ brim
  • Infinite Aviator
  • Infinite ISR
  • Infinite/H4 Mk VII
  • Cohort (worn by Fred-104 on the cover of Shadows of Reach)


405th Regiment Officer
Thanks for reminding me of how despite all the physics and math books I own and used to read (for fun, yes), how much I still suck at physics and maths.

But that's really cool! I like how you're taking a more mathematical and optically ergonomic approach to this. What sort of data/GUI do you think you'll include in the display?


Active Member
I always thought it would be cool to have a whole cosplay group outfitted with something like this and have a functioning mini map so you could keep track of each other on the con floor. Seems like you have your head wrapped around this stuff, keep at it!


New Member
The 100 mm lenses arrived today. I also found some 22 mm lenses in a closet at school that I can use. I'll be printing up a rig for all this real soon.

EDIT: The 22mm lenses don't have a long enough focal length to be practically used. However, they're still useful in prototyping. I also found some semi-transparent mirror that I'll use.
Last edited:


New Member
Finals are done and I passed, so it's time to update this thread.

I made significant progress, but also had some significant problems. While testing the lenses, I found that there was something causing the lens to not properly focus the light. When the distance from the display to the lens was equal to the focal length, the image was out of focus. I remedied this was by making a rig that allowed me to adjust the focal length like in a camera lens.

I found that a focal length of 64mm was appropriate for this lens. Additionally, I asked my physics professor about the collimation, and he said that a focal length greater than 2 meters is collimated enough to be considered focused at infinity.


For the content of the display, I connected to the the internet with the onboard wifi to collect the content. Ideally, the majority of the data would be from sensors, so that the suit doesn't need to be connected to the internet all the time. This prototype has the date, time, temperature, and ambient light level on the display. Ideally, the ambient light sensor would control helmet lights similar to headlights on a car.

Next, I plan on adding a Real Time Clock (RTC) so that the microcontroller doesn't need to connect to the internet for the time. Additionally, I'll be adding a distance sensor to act as a rangefinder for proximity alerts.

Rock Lobbster

Well-Known Member
Stream Team
Member DIN
I think you just did more math in the planning stage then I've done in an entire suit... Really excited to see where this goes and the implementation.

Spartan Khan

This insane and dope, I saw a video a while ago of a guy trying to build a fully functioning spartan suit, he's done some heads up display stuff, you've probably seen it tho. After posting this I realize you started the thread by saying you saw it my bad, am hyped to see the outcome tho

Spartan Khan

I always thought it would be cool to have a whole cosplay group outfitted with something like this and have a functioning mini map so you could keep track of each other on the con floor. Seems like you have your head wrapped around this stuff, keep at it!
I would pay big money to buy it and not have make it, math is not my strength.


New Member
I always thought it would be cool to have a whole cosplay group outfitted with something like this and have a functioning mini map so you could keep track of each other on the con floor. Seems like you have your head wrapped around this stuff, keep at it!
I don't know about a minimap considering how small the display is, but a ranging system definitely possible. It would give you distance to the nearest group member.

Your message may be considered spam for the following reasons: