Skip to content

Integration: $15 NVR

Yrouel edited this page Nov 5, 2025 · 17 revisions

$15 NVR

Hardware

  • SoC: Ingenic A1
  • Connection: Ethernet RJ45
  • Output: HDMI and VGA
  • 2 USB ports
  • 3.5mm audio jack
  • Power: 12V barel jack, center positive

image image

Installation

A fairly straightforward way to flash thingino/lightnvr is to use the builtin tftpdownload feature of the bootloader.

The first step is to prepare the tftp server on another machine, download the thingino image (thingino-smart_nvr_a1n_eth.bin) from the GitHub repository https://github.com/themactep/thingino-firmware/releases and place it in the tftp server directory (for example /private/tftpboot on a Mac). You can rename it to something shorter for convenience, for example autoupdate-full.bin.

Once the tftp server is ready the next step is to establish a serial connection through the J3 header located between the DC power jack and the SATA power connector. The pinout starting from left (SATA power) to right (DC power in) is VCC (3.3V), TX, RX, GND. The VCC connection can be omitted and the serial adapter must be 3.3V. The parameters for the serial connection are 115200 8N1.

Once the connection is established power the board and using CTRL-C interrupt the bootloader which will drop you to a isvp_a1# prompt. To prepare the bootloader to receive the image and then download it from your server these are the commands, mind that serverip and the other network parameters have to match your tftp server prepared earlier and network.

If you want to preserve the stock firmware you have to make a backup before this procedure.

watchdog 0
setenv ipaddr 192.168.1.10
setenv netmask 255.255.255.0
setenv gatewayip 192.168.1.1
setenv serverip 192.168.1.254
tftpdownload autoupdate-full.bin
reset

The second to last command will automatically download the image from your tftp server and then proceed to first erase the flash and then write the new firmware. With the reset command the board will reboot now with thingino.

LightNVR required configuration

By default lightnvr tries to use /var/lib/lightnvr/ for recordings and other things which won't work on such small flash chip so you must configure it to use another storage, for example a SATA ssd. Format the SSD using FAT32 and connect it to the board, it should be automatically recognized and mounted to /mnd/sda1. Then edit /etc/lightnvr/lightnvr.ini as such:

Under [storage] change:

path = /var/lib/lightnvr/recordings to path = /mnt/sda1/lightnvr/recordings

mp4_path = /var/lib/lightnvr/recordings/mp4 to mp4_path = /mnt/sda1/lightnvr/recordings/mp4

Under [database] change:

path = /var/lib/lightnvr/lightnvr.db to path = /mnt/sda1/lightnvr/lightnvr.db

Under [models] change:

path = /var/lib/lightnvr/models to path = /mnt/sda1/lightnvr/models

Under [memory] change:

swap_file = /var/lib/lightnvr/swap to swap_file = /mnt/sda1/lightnvr/swap

Reboot the NVR and after a bit the thingino web ui should be available at the board ip while lightnvr will be at the same ip but port 8080.

Swapping ports

If you prefer lighnvr to be the main webui as this is an NVR and not a camera you can easily swap ports with thingino.

To put thingino on port 8080 edit /etc/init.d/S50httpd and change:

if [ -f "$PORTAL_MODE_FLAG" ]; then
	DAEMON_ARGS="-f -c $PORTAL_CONF"
else
	DAEMON_ARGS="-f -c $HTTPD_CONF -r Authentication"
fi

to

if [ -f "$PORTAL_MODE_FLAG" ]; then
	DAEMON_ARGS="-p 8080 -f -c $PORTAL_CONF"
else
	DAEMON_ARGS="-p 8080 -f -c $HTTPD_CONF -r Authentication"
fi

Note how we have now told the http daemon to use port (-p) 8080.

To put lightnvr on port 80 edit /etc/lightnvr/lightnvr.ini and under [web] change port = 8080 to port = 80.

Reboot and now the two webui should've swapped places.

Usage

Pair the NVR with a 2.5" SSD, add a 12V 2A power source, a mouse, and you have a fully working unit capable of handling up to 16 IP cameras.

image

Connecting Camera over ONVIF

image

Settings

  • Protocol: ONVIF
  • Onvif version: auto
  • Address:
  • Port: 80
  • Device information:
  • Network type: UDP or TCP
  • User name: thingino
  • Password: thingino (or what you have changed it to)

Playback

$15 NVR can play up to four channels simultaneously on the same screen.

image

Where to buy

Retail NVR

image

https://www.aliexpress.com/item/1005006224516280.html

Bare module

image

Resources

Firmware analysis

User Manual

3D-Printed Shell

image

newer board/port layout: https://www.printables.com/model/1148794-ingenic-a1-nvr-case-new-board-layout

image

legacy board/port layout: https://www.printables.com/model/1094266-ingenic-a1-nvr-case

  1. Wiki Home
  2. About the Project
    1. Contributions
    2. Features
    3. Project Philosophy
    4. Releases
  3. Getting Started
    1. FAQ
    2. Hardware Identification
    3. Ingenic USB Cloner
      1. OTG Booting
    4. Installation: General
    5. Installation: No Tools Methods
    6. Resources and Links
    7. Support Community
    8. Troubleshooting
    9. UART Connection
    10. Updating Firmware
    11. Web UI
  4. Supported Cameras
    1. Cameras
    2. 360 AP1PA3
    3. AliExpress LTIA‐37FJZ (Vanhua Z55 module)
    4. AOQEE C1
    5. Aosu C5L
    6. Cinnado
      1. Cinnado D1 2K
      2. Cinnado D1 3K
    7. Dekco DC5L
    8. Eufy
      1. Eufy E210 Outdoor Cam
      2. Eufy E220
    9. Galayou/Wansview
      1. Galayou G2
      2. Galayou G7
      3. Wansview W6
      4. Wansview W7/Galayou Y4
    10. Hualai (Wyze/Atom/Neos/Personal)
      1. Dafang Upgrading for Wyze v2
      2. NEOS conversion
      3. Personalcam
      4. Wyze Cam Pan V1
      5. Wyze Doorbell (V1)
        1. Chime Reverse Engineering
      6. Wyze v2/Neos SmartCam/ATOM Cam 1
      7. Wyze v3
      8. Wyze Accessories
    11. iFlytek XFP301‐M
    12. Jienuo JN-107-AR-E-WIFI
    13. Jooan A6M
    14. LaView L2
    15. LongPlus X07
    16. LSC 3215672
    17. Sannce I21AG
    18. Sonoff Cam‐S2
    19. Wuuk Y0510
    20. Xiaomi
      1. Xiaomi Mijia1080p (SXJ02ZM)
      2. Xiaomi MJSXJ03HL
      3. Xiaomi Outdoor Camera AW200 (MJSXJ05HL)
  5. Configuration
    1. Administration
    2. Automation
    3. Cron jobs
    4. General
    5. LED Indicators
    6. Lighting
    7. Media Streaming Endpoints
    8. Network Storage
    9. Networking
      1. Wireless Networking
      2. USB Direct w CDC
      3. USB Ethernet Networking
      4. Remote Access
      5. VPN
        1. Tailscale
        2. Wireguard
        3. Zerotier
      6. Wi-Fi
        1. Self Hosted AP
        2. Tips and Tricks
      7. WWAN (Cellular)
    10. Night Mode
    11. ONVIF
    12. OSD (On-screen Display)
    13. Plugins
      1. Motion Guard
      2. Yandex Disk
    14. SSH Access Keys
    15. Wi-Fi Access
    16. Provisioning
  6. Integration
    1. Home Assistant
    2. Frigate
    3. Ingenic A1/$15 NVR
    4. Mobile Apps
    5. MQTT Integration
    6. Virtual Webcam on Linux
    7. Mainsail (Klipper)
  7. Development
    1. Booting
      1. Boot: MMC SD
      2. Boot: NFS
    2. CH341A Programmer
    3. RTSP Players
    4. Flash Chips
    5. go2rtc
    6. Porting Guide
    7. Ingenic Platform Capability Matrix
    8. Ingenic Image Processor
    9. ISP Reserved Memory (RMEM)
    10. Debugging
    11. Software
      1. Building From Sources
      2. Buildroot
      3. Toolchain
      4. Choice of JSON library
    12. SSL and TLS Web UI in thingino
    13. Tech Info
      1. Hardware
      2. PWM Info
      3. Supported Hardware
      4. T23 GPIOs
      5. T31 GPIOs
    14. U-Boot Cheatsheet
    15. Zeratul/Atlas/Tassadar
    16. Resources
Clone this wiki locally