DIY Projects

#Test: 2MP Motion Detection Camera with Motion Detection based on Orange Pi Lite and Motion

orange pi lite camera review

Orange Pi markets a small 2MP color camera with wide-angle optics that can be used to create a small additional surveillance camera. In this tutorial, we will install the gc2035 and vfe_v4l2 drivers that support the camera. The software part will be entrusted to Motion capable of detecting movements in front of the camera. With the exception of the Orange Pi Zero, all Orange Pi board computers have a camera port in CSI (Camera Serial Interface) format as well as Raspberry Pi (from the second generation).

Configuration used

This camera uses the gc2035 driver. It is compatible with all Orange Pi mini-PCs. Since the gc2035 driver is part of the default Debian distribution, it is very easy to activate it. For this tutorial, you will need the following hardware.

Orange Pi Lite

€12 (shipping cost, about €3.50 )

Power 5V – 3A

Or USB cable, about €2.50

Armbian on 8Go SD Card classe 10

From €6.90

Orange Pi 2MP camera module

About €7 (free shipping)

On the system side, I opted for Armbian (presented in this article). It is a lightweight system (a version without desktop is available) whose origins are known. So there is a very low risk of turning your 100% DIY surveillance camera into botnet and finding yourself involved in a new DDoS attack case!

Unpacking the Orange Pi Camera

The camera of Orange Pi is delivered in a simple transparent plastic bag. Low cost complies. The module includes the camera, an adapter (required) and a 15 cm long tape.

Compatible with the Raspberry Pi connector ?

The Raspberry Pi uses a CSI-2 connector that supports cameras up to 5 MPixels. The Orange Pi also has a CSI connector but the similarity stops there. Indeed, it is indeed a CSI connector but it is not the CSI-2 15 pin that equips the Raspberry Pi (2, 3 or Zero).

It is a 24-pin connector with a width of 12mm, while that of the Raspberry Pi measures 16mm. Difficult to know which version it is because nothing is clearly documented, including the technical documents available here.

Camera ribbon Orange Pi left (12mm, 24 tracks). Ribbon of a Raspberry Pi camera on the right (16 mm, 15 tracks).

If you want a better camera, for example a camera with a setting optics, no IR filter for better night vision, or a higher resolution, you will have to fall back to a standard USB webcam. The most classic is the Logitech C270.


Open the connector. Insert the ribbon until you feel the bottom of the connector. There is no indicator of direction, simply turn the ribbon so that the tracks are opposite the pins of the connector. Close the connector.

Note. It is not possible to connect the camera directly to the Orange Pi.

Do the same with Orange Pi.

The result after assembly

System Preparation

Before you start, it is best to update the system

sudo apt-get update
sudo apt-get upgrade

After the upgrade, you will probably have to change your video configuration if the Orange Pi is connected to a DVI monitor (and therefore restart on a TV in HDMI).

Now we add the drivers for the camera

sudo modprobe gc2035
sudo modprobe vfe_v4l2

To get the drivers loaded at boot time, open the /etc/modules  file and uncomment the gc2035 and vfe_v4l2 drivers, for example


Installing and configuring Motion

Let’s start by creating a destination directory for images and assigning all permissions. For example /home/pi/motion/

mkdir ~/motion
chmod 777 ~/motion

Now we can install Motion

sudo apt-get install motion

When the installation is complete, open the configuration file

sudo nano /etc/motion/motion.conf

Modify the following keys:

Save with CTRL+X then Y

If Motion does not seem to work, it points to the / etc directory to load the configuration file. In this case, copy the configuration file with the cp command, for example.

sudo cp /etc/motion/motion.conf /etc/motion.conf

Allow the Motion daemon to start at startup

To have Motion start at system startup, you need to modify a last configuration file.

sudo nano /etc/default/motion

Change the start_motion_daemon = yes parameter and save.

Start manually Motion

Now we can start Motion via its service

sudo /etc/init.d/motion start

After a modification of the configuration file, it will be necessary to restart Motion to take account of the new parameters:

sudo /etc/init.d/motion restart

Motion crash after a few seconds

During the development of this article, I encountered some difficulties, and in particular the crash of Motion after a few seconds of operation. Regardless of the problem encountered, it is best to first activate the Motion event log. Open the configuration file

sudo nano /etc/motion/motion.conf

Then look for the line that starts with logfile and removed the semicolon.

# Use a file to save logs messages, if not defined stderr and syslog is used. (default: not defined)
logfile /tmp/motion.log
Restart the Motion service
sudo /etc/init.d/motion restart

Now you have a log just open to see what causes Motion to crash

nano /tmp/motion.log

In my case, Motion crashed when an event was detected, especially when the image was saved in the destination folder.

[1] [NTC] [ALL] [Dec 01 08:39:54] motion_detected: Motion detected - starting event 1
[1] [ERR] [ALL] [Dec 01 08:39:54] myfopen: Error opening file /var/lib/motion/01-20161201083954-01.jpg $
[1] [ERR] [ALL] [Dec 01 08:39:54] put_picture: Can't write picture to file /var/lib/motion/01-201612010$
Thread is going to finish due to this fatal error:
[1] [NTC] [ALL] [Dec 01 08:39:55] motion_loop: Thread exiting
[1] [NTC] [STR] [Dec 01 08:39:55] stream_stop: Closing motion-stream listen socket & active motion-stre$
[1] [NTC] [STR] [Dec 01 08:39:55] stream_stop: Closed motion-stream listen socket & active motion-strea$
[1] [NTC] [VID] [Dec 01 08:39:55] vid_close: Closing video device /dev/video0
[0] [NTC] [ALL] [Dec 01 08:39:55] main: Threads finished
[0] [NTC] [STR] [Dec 01 08:39:55] httpd_run: motion-httpd - Finishing
[0] [NTC] [STR] [Dec 01 08:39:55] httpd_run: motion-httpd Closing
[0] [NTC] [STR] [Dec 01 08:39:55] motion_web_control: motion-httpd thread exit

So we just need to assign permissions to the directory to allow Motion to write into. But it is not a very good idea to touch this folder.

sudo chmod 777 /var/lib/motion

In fact, I simply forgot to change the destination directory of the images in the configuration file.

In the next tutorial, we will see how to make our own IP surveillance camera.


Now you have an IP Motion Detection camera that you simply include in your DIY home automation server.

Click to rate this post!
[Total: 0 Average: 0]
Exit mobile version