NightVision - Raspberry Pi zero + Waveshare parts

Small night vision built from RPI zero and accessories from Waveshare. Dimensions only: 12x6x5cm
6h 43m
4× print file
0.20 mm
0.40 mm
71.00 g
1
2
0
10
updated October 14, 2025

Description

PDF

Small night vision built from RPI zero and accessories from Waveshare. 
Dimensions only: 12x6x5cm

 

You need:

Step by step:

  • Print all the parts and insert the m3 heat inserts
  • Install raspbian (I recommend turning on SSH and then you can continue with the rpi connected to the pc)
  • !There is plenty of space inside the housing, so it's better to keep the cables longer!
  • Prepare the battery HAT. Unsolder the switch and instead it solder  toggle switch on a 10cm cable that you bring out to the front. You can attach the cable to the bottom of the pcb with hot glue
  • Plug in the battery HAT and battery and connect display
  • Prepare a camera with one night LED (pay attention to the orientation according to the cutout in the stl). Do not connect the camera yet, it will be difficult to work with it.
  • Place the display in the cutout (front.stl) and secure it from the back using hot glue
  • Place and secure the camera and light module in the same way into night_cam.stl
  • Connect the camera and hide the camera cable between the legs under the RPI board. 
  • Screw it together

Program:

  • Enable SPI and camera
  • Install the display according to the official waveshare instructions
  • Be careful, the official guide is missing "sudo" for installation and examples for python are in different folders 
  • Create a program to display camera output on the display (See program below. Use custom file paths and image settings)
  • Set the program to start automatically when rpi is started. For example via /etc/rc.local

 

The printable parts are simple, if you want to use a different camera, light or display, you only need to modify two parts.

 

My program (night1.py)

import os
import sys
import time
import logging
import spidev as SPI
sys.path.append("/path_to_lib(use absolute path)/")
from lib import LCD_1inch28
from PIL import Image
from picamera2 import Picamera2

# Raspberry Pi pin configuration:
RST = 27
DC = 25
BL = 18
logging.basicConfig(level=logging.DEBUG)

try:
    # Inicializace displeje
    disp = LCD_1inch28.LCD_1inch28()
    disp.Init()
    disp.clear()
    disp.bl_DutyCycle(50)

    # Inicializace kamery
    camera = Picamera2()
    camera.configure(camera.create_preview_configuration({"size": (240, 240)}))
    camera.start()

    while True:
        # Zachytávání obrazu
        frame = camera.capture_array()
        image = Image.fromarray(frame)

        # Otočení obrazu pro správné zobrazení na displeji
        im_r = image.rotate(90)

        # Zobrazení obrazu na displeji
        disp.ShowImage(im_r)
        time.sleep(0.03)  # Krátká pauza pro obnovu obrazu

except IOError as e:
    logging.error(e)
except KeyboardInterrupt:
    camera.stop()
    disp.module_exit()
    logging.info("quit:")
    exit()

 

Tags



Model origin

The author marked this model as their own original creation.

License


Highlighted models from creator

View more