Skip to content

For 12MP IMX477 Motorized Focus Camera

Product


Product Image SKU Pin/Connect Type Sensor Resolution Features Lens Type Field of View(HxV) Focus Type IR Sensitivity
B0272 22/TOP IMX477 12MP High Resolution M12 75°(H) x 56.3°(V) Motorized Focus 650nm IR-cut filter

Hardware


autofocus_hardaware_connection

Software


Enable the Focus Driver


1.Download the Archive

cd ~
mkdir imx477_dtb_test
cd imx477_dtb_test
wget https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/releases/download/Arducam_pivariety_v4l2_v1.0/imx477_rpi_dtoverlay.tar.gz

2.Unzip File

tar xzvf imx477_rpi_dtoverlay.tar.gz

477af1

3.Compile and Install

cd imx477_rpi_dtoverlay/
./build_and_install.sh
sudo reboot

477af2

4.Configure the Camera

sudo nano /boot/config.txt

# Turn off the camera auto-detection
camera_auto_detect=0

# Add following content below [all]
dtoverlay=imx477,vcm

477af3

5.Reboot

sudo reboot

Install libcamera from Arducam


  • Step 1. Download the bash scripts
wget -O install_pivariety_pkgs.sh https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/releases/download/install_script/install_pivariety_pkgs.sh
chmod +x install_pivariety_pkgs.sh
  • Step 2. Install libcamera
./install_pivariety_pkgs.sh -p libcamera
  • Step 3. Install libcamera-apps
./install_pivariety_pkgs.sh -p libcamera_apps

Focus Control for Pi0~4


libcamera-still -t 0 --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
  • Continuous Autofocus
libcamera-still -t 0 --autofocus-mode continuous --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
  • Single Autofocus
libcamera-still -t 0 --autofocus-mode auto --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
  • Manual Focus
libcamera-still -t 0 --autofocus-mode manual --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
# Use keyboard to control focus
# "f" trigger one-shot autofocus
# "a" add the lens position, "d" decrease the lens position, the minimum unit of step adjustment is 1
libcamera-still -t 0 --autofocus-mode manual -k --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
  • Adjust Lens Position
libcamera-still -t 0 --autofocus-mode manual --lens-position 5 --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
  • Autofocus Before Capture images
libcamera-still -t 0 --autofocus-on-capture --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
  • Set Focus Range
# Normal
libcamera-still -t 0 --autofocus-range normal --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json
# Close Focus
libcamera-still -t 0 --autofocus-range macro --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json

Focus Control for Pi5


libcamera-still -t 0 --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
  • Continuous Autofocus
libcamera-still -t 0 --autofocus-mode continuous --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
  • Single Autofocus
libcamera-still -t 0 --autofocus-mode auto --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
  • Manual Focus
libcamera-still -t 0 --autofocus-mode manual --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
# Use keyboard to control focus
# "f" trigger one-shot autofocus
# "a" add the lens position, "d" decrease the lens position, the minimum unit of step adjustment is 1
libcamera-still -t 0 --autofocus-mode manual -k --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
  • Adjust Lens Position
libcamera-still -t 0 --autofocus-mode manual --lens-position 5 --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
  • Autofocus Before Capture images
libcamera-still -t 0 --autofocus-on-capture --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
  • Set Focus Range
# Normal
libcamera-still -t 0 --autofocus-range normal --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json
# Close Focus
libcamera-still -t 0 --autofocus-range macro --tuning-file /usr/share/libcamera/ipa/rpi/pisp/imx477_af.json