InfraVue: Seeing in the Dark With Tech

by Makertronics in Circuits > Assistive Tech

416 Views, 6 Favorites, 0 Comments

InfraVue: Seeing in the Dark With Tech

Infravue_InstructablesThumbnail.png
InfraVue: Seeing in the Dark With Tech
20260101_182142.jpg

Night exploration has always fascinated me—whether it’s trekking after sunset, experimenting with electronics in low-light conditions, or simply building something that feels straight out of science fiction. That curiosity led to InfraVue, a head-mounted, Raspberry Pi–powered infrared night vision system that streams live video directly to your smartphone through a web browser.

InfraVue gives you real-time night vision, hands-free POV operation, and the ability to capture photos and record videos, all without installing any mobile apps or relying on cloud services. Everything runs locally on the Raspberry Pi, keeping the system private, portable, and fully open source.

This project is designed for makers, Raspberry Pi enthusiasts, and beginners who want to build a practical yet exciting computer vision system using modern web technologies.


Key Features

  1. Live infrared night vision streaming to any smartphone or laptop browser
  2. Head-mounted POV design for hands-free operation
  3. Capture high-resolution images
  4. Record MP4 videos on demand
  5. Built-in gallery with download and delete options
  6. No internet required (works on local Wi-Fi or mobile hotspot)
  7. Fully open source (hardware + software)


Supplies

Supplies1.png
Supplies2.png

Hardware

  1. Raspberry Pi 5 (8 GB RAM)
  2. Raspberry Pi IR Night Vision Camera with built-in 3W IR LEDs
  3. MicroSD card (32 GB or higher recommended)
  4. USB power bank
  5. Standard Raspberry Pi Active Fan cooling
  6. Custom 3D printed enclosure (STL files provided)
  7. Headband

Tools

  1. Zip Ties
  2. Glue Gun
  3. 3D printer (PLA or PETG)
  4. Basic hand tools for assembly (Screwdriver)

Software

  1. Raspberry Pi OS (64-bit recommended)
  2. Python 3.9+
  3. Node.js (for frontend)
  4. Git

How InfraVue Works (System Architecture)

ArchitectureDiagram.png

At a high level, InfraVue follows a clean and efficient pipeline:

  1. The IR camera captures frames using picamera2
  2. Frames are processed using OpenCV
  3. Live frames are:
  4. Compressed to JPEG
  5. Base64 encoded
  6. Streamed via WebSockets (Socket.IO)
  7. The browser receives frames and updates the live preview
  8. Recording uses the same pipeline, saving frames to MP4 files
  9. There are options to capture the photo and also for the video recording
  10. All media is stored locally on the Raspberry Pi SD card
  11. Download option for all the media is present through the web interface.

This design avoids heavy streaming protocols and keeps latency low, which is ideal for real-time POV use.

3D Printing the Enclosure

3D_Parts.png
3D_Printing.png

The enclosure was custom-designed in Fusion 360 specifically for:

  1. Camera &IR Led Mount
  2. Raspberry PI enclosure

Print Settings

  1. Layer height: 0.2 mm
  2. Infill: 20%
  3. Walls: 3 perimeters
  4. Material: PLA or PETG
  5. Supports: Not required

STL and Fusion 360 files are shared below

Parts Clean Up

Part_cleanup.png
Part_cleanup2.png

The enclosure and mounting parts are designed for support-free PLA printing, so post-processing is minimal. Follow these basic steps for clean, professional results.

1. Part Removal

Allow the print to cool fully, then gently remove parts from the build plate using a spatula. Avoid flexing thin clips or tabs.


2. Edge Cleanup

Lightly trim any stringing or small blobs using a hobby knife or flush cutters, especially around clip features and snap fits.


3. Surface Touch-Up

If needed, lightly sand visible flat surfaces with fine-grit sandpaper (400–600 grit). This is usually only required on the enclosure’s outer faces.


4. Fit Check

Dry-fit mating parts (lid, clips, mounts) before assembly. If tolerances feel tight, remove material gradually—do not force parts together.


5.Final Inspection

Ensure holes, slots, and snap features are clear of debris so electronics and fasteners seat properly.

Assembly Guide

assembly.gif

1. The device consists of a main rectangular enclosure, a top-mounted bracket with circular mounting holes, our hero - RaspberryPi, and support feet or standoffs at the base. Ensure that the enclosure halves (top cover and bottom housing) are free from dust, burrs, or deformation. Place all components on a clean, flat, anti-static surface. Proper orientation awareness at this stage will prevent rework later.


2. Carefully align the RPi inside the lower enclosure. The board should sit flat and align with the internal mounting points or standoffs visible in the housing. Do not force the RPi into place; it should rest naturally with minimal pressure. Check that any connectors, LEDs, or ports line up with corresponding cutouts or transparent windows in the enclosure walls. This alignment is critical for functionality and accessibility once the device is fully assembled. If screws are used to secure the RPi, tighten them gently in a diagonal pattern to avoid uneven stress on the board.


3. Once the RPi is properly seated, ensure the bottom housing is stable. The device shown includes small feet or raised supports underneath, which help with airflow and mechanical stability. Confirm these supports are properly attached or molded into the housing and that the device sits evenly on a flat surface without wobbling. This step ensures long-term durability and prevents strain on internal components during operation.


4. The upper portion of the device features a CAMERA mounting bracket with two circular holes and a central protrusion. Carefully align this bracket with its corresponding attachment point on the enclosure. The bracket should sit flush and centered, allowing the circular holes to remain unobstructed for mounting or sensing purposes. If the bracket snaps into place, apply gentle, even pressure until it locks securely. If screws are involved, tighten them evenly without overtightening, as this may crack plastic components or misalign the sensor.

Mount the Heatsink (Thermal Setup)

FanMounting_optimized3.gif
Step1.png
Step2.png
Step3.png
Step  (9).png
Step  (6).png
Step  (7).png
Step  (8).png

Mounting the Heatsink

  1. Power off the Raspberry Pi and disconnect all cables.
  2. Identify the main processor (CPU) on the Raspberry Pi 5.
  3. Remove the protective film from the thermal pad (if included).
  4. Carefully place the heatsink directly on top of the CPU.
  5. Align the heatsink spring pongs with the holes on the board
  6. Gently press to look the hooks.
  7. Connect the fan cable to the fan port on the board

No screws or adhesives are required as the Official Raspberry Pi fan includes spring loaded hooks to attach to the board

Assembling the Head-Mounted Enclosure (Camera + Mounts)

zipTieMounting_optimized.gif
20260101_165549.jpg
20260101_165652.jpg
20260101_165445.jpg
20260101_165840.jpg

Intended Assembly Method (Recommended)

The enclosure and mounts were designed to be assembled using M2.5 screws, and all screw holes and clearances are already built into the CAD design.

If you have M2.5 hardware, this is the recommended and cleanest approach:

  1. Use M2.5 screws and nuts to:
  2. Secure the camera mount to the Raspberry Pi case
  3. Attach the case to the headband mounts
  4. This provides:
  5. Strong mechanical stability
  6. Easy disassembly
  7. Long-term durability

📌 Tip:

If you are building this project yourself, having a small M2.5 screw kit on hand is highly recommended.


What I Did: Zip-Tie Locking Mechanism (Maker Workaround)

At the time of assembly, I was short on M2.5 screws, so I used a simple but effective zip-tie–based locking mechanism to assemble the parts.

Here’s how it worked:

  1. Two zip ties were used per mounting hole
  2. One zip tie’s locking head was carefully cut off
  3. The detached locking piece was placed on top of the second zip tie
  4. This created a custom hook-style locking mechanism
  5. The setup tightly secured the mounts without drilling or modification

Despite being a workaround, the result was:

  1. Surprisingly rigid
  2. Lightweight
  3. Easy to adjust or remove

Camera Cable (FPC) Connection

cable_connection_optimzed2.gif
FPC_cable.jpg
20260101_170540.jpg
20260101_170305.jpg
20260101_170554.jpg

An FPC (Flexible Printed Cable) is used to connect the camera module to the controller, which in this project is the Raspberry Pi 5.

For the InfraVue system, a 15-pin to 22-pin CSI FPC adapter cable is used:

  1. 15-pin end: Connects to the IR camera module
  2. 22-pin end: Connects to the Raspberry Pi 5 CSI camera port

Refer to the images and video for correct cable orientation, insertion direction, and connector locking.

Important: FPC cables are delicate—avoid sharp bends, twisting, or forcing the connector latch, as this can permanently damage the cable or camera interface.

Camera Mount Assembly

camera_mounting_optimized.gif
20260101_174158.jpg
20260101_174315.jpg
20260101_174400.jpg

This step covers mounting the IR Night Vision Camera and attaching it to the Raspberry Pi enclosure using an adjustable GoPro-style hinge joint.


Attach Camera to Camera Mount

Place the IR camera module into the 3D-printed camera holder, ensuring the lens is centered and IR LEDs are unobstructed. Secure it using the designed press-fit or mounting points.

Connect the FPC Cable

Insert the 15-pin end of the FPC cable into the camera connector and lock the latch. Refer to the images/GIF for correct orientation.

Route the FPC Cable

Carefully route the cable through the enclosure opening toward the Raspberry Pi, maintaining a smooth curve without sharp bends or twists.

Join Camera Mount to Raspberry Pi Enclosure (GoPro-Style Joint)

Connect to Raspberry Pi

Insert the 22-pin end of the FPC cable into the Raspberry Pi 5 CSI camera port and lock the connector.

Align the camera mount hinge with the enclosure hinge and insert the M3 screw and nut through the joint, similar to a GoPro mounting mechanism.

Adjust and Tighten

Set the desired camera angle, then tighten the M3 screw until the mount holds its position firmly while still allowing adjustment.


Tip:

If the joint feels loose, use a plier to hold the M3 nut while tightening the screw slightly more. Do not overtighten—over-tightening will prevent angle adjustment.

Important:

  1. Always power off the Raspberry Pi before connecting the camera.
  2. Ensure the camera angle is finalized before closing the enclosure.
  3. The mount should stay in position after adjustment but remain movable when force is applied.

The camera assembly is now mechanically secure, adjustable, and ready for use.

Attaching Headband

headband.gif
20260101_174446.jpg
20260101_174452.jpg
20260101_174507.jpg

As shown in the pictures, fit your elastic headband in the mounts. You may use any other kind of headband- but just make sure you have the correct mounting brackets for the headband.

Preparing the SD Card

00 RPi Imager GIF.gif
01 Main Screen.png
02 Choose OS.png
03 Choose Storage.png
04 Choose Hostname.png
05 Localisation.png
06 Choose Username.png
07 Choose Wifi.png
08 Enable SSH.png
09 Raspeberry Pi Connect.png
10 Write Image.png
11 Erase Confirm PopUp.png
12 Starting Download.png
13 Writing.png
14 Verification.png
15 Finish.png

Before building InfraVue, we first need to properly set up the Raspberry Pi with the operating system, networking, and camera support. This step ensures the system is stable, accessible over Wi-Fi, and ready to run both the backend and frontend services.


Download and Install Raspberry Pi Imager


Raspberry Pi Imager is the official tool used to flash Raspberry Pi OS onto an SD card.

  1. On your computer, go to the official Raspberry Pi website and download Raspberry Pi Imager for your operating system (Windows / macOS / Linux).
  2. Install and launch the application.


Insert the MicroSD Card

  1. Insert a microSD card (32 GB or larger recommended) into your computer using a card reader.
  2. Make sure the card does not contain any important data, as it will be erased.

Choose Raspberry Pi OS

In Raspberry Pi Imager:

  1. Click “Choose OS”
  2. Select: Raspberry Pi OS (64-bit)

Select Storage Device

  1. Click “Choose Storage”
  2. Select your inserted microSD card

Configure OS Settings (Important)

Before writing the OS, click the gear icon (⚙️) to open Advanced Options. This step is crucial.

Recommended Settings

Enable and configure the following:

  1. Set hostname: rpi
  2. Enable SSH
  3. Select Use password authentication
  4. Set username and password
  5. Username: pi
  6. Password: (choose a secure password)
  7. Configure Wi-Fi
  8. Enter your Wi-Fi SSID
  9. Enter your Wi-Fi password
  10. Select your country (important for Wi-Fi reliability)
  11. Set locale settings
  12. Time zone
  13. Keyboard layout

This allows the Raspberry Pi to:

  1. Automatically connect to Wi-Fi on first boot
  2. Be accessed remotely via SSH
  3. Avoid needing a keyboard or monitor

Write the OS to the SD Card

  1. Click “Write”
  2. Confirm the warning that all data will be erased
  3. Wait for the flashing process to complete


This will take some time, so grab some coffee and sip it meanwhile.


Once done, safely eject the SD card.

Project Setup

Raspberry-Pi-OS-Desktop-Terminal.jpg

Once the SD


1. Update and Upgrade System

Start with a clean, up-to-date system.\


sudo apt update
sudo apt upgrade -y
sudo reboot

2. Enable Camera Support

Ensure the Raspberry Pi camera interface is enabled.


sudo raspi-config
  1. Navigate to Interface Options
  2. Enable Camera
  3. Reboot if prompted

Verify camera access:


libcamera-hello

3. Install Required System Packages


sudo apt install -y \
git \
python3 \
python3-pip \
python3-venv \
libopencv-dev

picamera2 / libcamera is pre-installed on Raspberry Pi OS.

4. Clone the InfraVue Repository


cd ~
git clone https://github.com/anilkumartps/InfraVue.git
cd InfraVue

5. (Optional) Frontend Build

Only required if you want to modify the UI.


sudo apt install -y nodejs npm
cd InfraVue_webpage
npm install
npm run build
cd ..

This generates the dist/ folder served by the Python backend.

6. Python Backend Setup


cd python_server

# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate

# Install Python dependencies
pip install -r requirements.txt

7. Run the InfraVue Server

Ensure no other camera process is running.


source venv/bin/activate
python3 app.py

The server starts on port 3000.

8. Access from Browser

From a phone or PC on the same network:


http://<Raspberry_Pi_IP>:3000

You now have:

  1. Live IR camera stream
  2. Image capture
  3. Video recording
  4. Media gallery management

Notes

  1. Python backend is the recommended server.
  2. Node.js backend exists but is not required.
  3. System runs fully offline on a local network.

Your InfraVue system is now ready for use.

Auto Launch Server on Bootup

bashrc.png

To automatically start the InfraVue Python server when the Raspberry Pi boots, add the following commands to the user’s .bashrc file.

1. Edit .bashrc


nano ~/.bashrc

2. Add the Following Lines at the End


# InfraVue auto-start
cd /home/pi/InfraVue/python_server
source venv/bin/activate
python3 app.py &
Adjust the path if your username or installation directory is different.

3. Save and Exit

  1. Press CTRL + O, then ENTER
  2. Press CTRL + X

4. Reboot and Verify


sudo reboot

After boot, the InfraVue server will start automatically in the background.

The Final Result

finalResult.gif

As our final results, you can see how InfraVue empowers you to visualize the unseen world around us. Designed to go beyond ordinary sight, InfraVue lets you wear the device and confidently explore the outdoors after dark, whether you’re night trekking, stargazing, wildlife spotting, or simply strolling through low-light environments. What truly sets it apart is that you’re not limited to just viewing your surroundings—you can capture, record, and store these rare moments directly on your phone, preserving experiences that would otherwise vanish into the darkness.

With its advanced night-vision imaging, InfraVue enhances low-light scenes by amplifying available infrared and ambient light, revealing details invisible to the naked eye. Subtle movements, distant silhouettes, and hidden textures suddenly come alive, allowing you to observe nocturnal wildlife, unique plant life, and terrain variations with remarkable clarity. Built-in image stabilization ensures steady visuals even while walking, and the wide field of view helps you stay aware of your surroundings without constantly adjusting your focus.

Imagine heading out on a night trek—InfraVue becomes your silent companion, helping you navigate safely, detect obstacles early, and spot beautiful creatures without disturbing them. The ability to capture photos and videos means every rare encounter, from glowing eyes in the bushes to moonlit foliage, can be documented and relived later. Wireless connectivity allows seamless syncing with your smartphone, turning your adventures into lasting memories ready to be shared.

And the pros don’t stop there. InfraVue is lightweight, wearable, and designed for extended use, making it ideal for long treks and explorations. With efficient power management and rugged construction, it’s built to perform in real outdoor conditions. In essence, InfraVue doesn’t just help you see in the dark—it transforms night exploration into an immersive, safe, and unforgettable experience

Future Enhancements

future.jpg

InfraVue is built with expansion in mind. While the current version focuses on reliable live streaming, recording, and portability, there are several planned enhancements that could significantly extend its capabilities.


ML-Based Motion Detection

A lightweight machine learning model could be used to detect meaningful motion in the video feed. This would allow InfraVue to intelligently distinguish real movement from background noise such as shadows or small environmental changes.

Automatic Capture on Detection

Once motion detection is implemented, InfraVue could automatically capture photos or start recording videos when movement is detected. This would reduce the need for manual interaction and ensure important moments are not missed.

Servo-Controlled Camera Movement

The adjustable camera mount can be upgraded with small servo motors, allowing the camera angle to be changed remotely through the web interface. This would make it possible to fine-tune the field of view without physically adjusting the device.