Slowbeam.dev
Embedded Vision

Arducam Quad 12MP(IMX477) color 카메라 연결

language
kor
date
Dec 29, 2025
slug
arducamQuadIMX477
author
status
Public
tags
Arducam
Embedded Vision
IMX477
Camera
summary
Arducam에서 구매한 Quad 12MP(IMX477) color 카메라 연결 방법 및 소개
type
Post
thumbnail
2379d94dd3ebd010645706ecc53974d8.jpg
category
Embedded Vision
updatedAt
Dec 29, 2026 03:21 AM

연결 방법

Arducam은 센서 보드 카메라를 자체적 방식(클럭이 다름)으로 synchronized하기 때문에 Multi Adapter 보드에 다른 임베디드 카메라 연결은 불가. arducam Camarray hat 보드 + arducam 카메라로 사용해야함.
아래 링크에서 Arducam Quad 12MP color 카메라에 대한 자세한 정보를 확인할 수 있습니다.
Camarray hat을 연결하기 위해서는 사용하는 임베디드 컴퓨터가 무엇인지에 따라서 다름.
*이 테스트에서는 Raspberry pi4 bulleye OS에서 진행했음.
  • Raspberry pi4 bulleye OS가 가지고 있는 카메라 드라이버 활용
sudo nano /boot/config.txt #Find the line: camera_auto_detect=1, update it to: camera_auto_detect=0 dtoverlay=imx477 #Save and reboot.
  • Camarray hat 보드 컨트롤 with I2C 통신 (몇 개 카메라의 이미지를 붙일지)
처음에 아무리 해도 i2c 연결이 안 잡혀서 헤맸는데, flat cable이 제대로 연결되지 않아서였다. 꼭 깊게 넣어서 연결해보도록. 생각보다 인터넷에도 자료가 없음.
# Set to single channel 0 i2cset -y 10 0x24 0x24 0x02 # Set to single channel 1 i2cset -y 10 0x24 0x24 0x12 # Set to single channel 2 i2cset -y 10 0x24 0x24 0x22 # Set to single channel 3 i2cset -y 10 0x24 0x24 0x32 # Set to double channel (single channel 0 and single channel 1) i2cset -y 10 0x24 0x24 0x01 # Set to double channel (single channel 2 and single channel 3) i2cset -y 10 0x24 0x24 0x11 # Set to four in one mode (Default) i2cset -y 10 0x24 0x24 0x00

Troubleshooting

V4L2 driver for arducam IMX477.

드라이버가 제대로 설치됐는지 확인하기 위해서 아래와 같이 명령어 입력. 아래와 같이 Device 확인되면 제대로 드라이버가 설치된 것.
jamesyeon@raspberrypi:~ $ dmesg | grep -E "imx477|imx219|arducam"~ [ 8.425914] imx477 10-001a: Device found is imx477 [ 8.426711] imx477 10-001a: Consider updating driver imx477 to match on endpoints

Cannot Allocate Memory

sudo nano /boot/cmdline.txt
맨 뒤에 cma=400M 추가.
console=serial0,115200 console=tty1 root=PARTUUID=6ad9d548-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cma=400M

Test code

GitHub - edward-ardu/libcamera-cpp-demo: libcamera c++ demo 기반으로 확대, 축소, 이미지 저장 등 기능 추가. 사용 코드는 아래 파일에서 확인 가능
 

확인한 Arducam 및 상용 임베디드 카메라 한계점

  • 카메라 케이블 길이 제한
MIPI 케이블의 최대 길이는 0.3m 미만으로 알려져있다. 일반적인 제품을 구매하면 0.2m 이내의 케이블을 사용해야함.
barrel distortion으로 이미지가 심하게 왜곡되지 않는 수준에서 타겟 FOV를 채우기 위해서는 0.1m의 WD가 필요. 해당 구조에서는 한 시료를 4방향에서 볼 수 있게 설치가 쉽지 않음.(보드가 시료 위나 아래에 위치해야함)
  • 산업용 임베디드 보드 필요성
    • 쉽게 접할 수 있는 Jetson Nano나 Raspberry pi는 CPU chip과 이를 이용할 많은 IO들을 탑재하고 있는 일종의 evaluation kit의 개념.
    • 이를 실제 application에 사용하려면 해당 chip을 탑재한 SoM을 개발해서 사용해야함.
AMD-Xilinx 자료 참조
  • 고객들의 Linux 개발 접근성 낮음(Linux OS 종류 별, 버전 별 파편화)
    • 임베디드 카메라 제조사/기존 머신비전 카메라 제조사 모드 리눅스에서 기본 제공하는 커널드라이버를 이용한 카메라 통신/카메라 데이터 획득을 함.
    • 따라서 linux OS 버전 별, 종류별(ubuntu, debian)로 드라이버가 조금씩 달라서, 지원 여부 및 사용 가능한 환경을 확인 후 환경 구성해야함.
  • 한 보드에 연결할 수 있는 카메라 수 제한
    • Arducam의 Camarray hat 보드를 사용한 multi camera 사용 시 한 보드에서 사용할 수 있는 최대 카메라 수는 4대.
    • 이를 늘리기는 어려우며 현재 Arducam 4대 사용도, 카메라 4대의 영상을 순차적으로 받아서 CamArray Hat 보드에서 12MP 이미지 메모리에 합쳐서 카메라 한 대처럼 임베디드 보드에 내보내는 방식임.
    • 따라서 카메라를 늘리거나, 줄이기 위해서는 보드 하드웨어 수정이 필요.
  • 결과 데이터 외부 전달이 어려움
    • 고객은 임베디드 보드에서 취득하고 싶어하는 방식은 2가지일 것으로 추정
      • 원본 이미지 O + 불량 검출 데이터 O
      • 원본 이미지 X + 불량 검출 데이터 O
    • 이미지, 불량 데이터를 모두 고객 PC에 취득할 수 있는 플랫폼 or 프로토콜이 없음.
    • 따라서, 두 가지 데이터 모두 socket통신을 이용하여 packet 전송을 해야함.
    • 문제는 GigE Vision camera와 마찬가지로 전송 데이터의 유효성에 대해서 검증할 수 있는 방법이 필요. => 프로토콜 필요
  • 외부 장비(조명, 모션)와 하드웨어 영상 취득 동기화 어려움.
    • Raspberry pi나 Jetson nano 보드에 있는 IO를 이용한다고 하더라도, arducam은 트리거를 지원하는 모델이 한정적임.
 
 
 

GStreamer를 이용한 영상 스트리밍

RPI4 64bit bullseye OS를 설치하면 기본적으로 gstreamer 1.18.4-2.1이 설치되어있다. 아래의 명령어를 이용해서 확인할 것.
dpkg -l | grep gstream
그 말은 Debian 11 Bullseye가 설치됐다는 말.
추가로 몇 가지 플러그인 설치 필요.
# install a missing dependency $ sudo apt-get install libx264-dev libjpeg-dev # install the remaining plugins $ sudo apt-get install libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ libgstreamer-plugins-bad1.0-dev \ gstreamer1.0-plugins-ugly \ gstreamer1.0-tools \ gstreamer1.0-gl \ gstreamer1.0-gtk3 # if you have Qt5 install this plugin $ sudo apt-get install gstreamer1.0-qt5 # install if you want to work with audio $ sudo apt-get install gstreamer1.0-pulseaudio
gst-launch-1.0 libcamerasrc ! video/x-raw, width=640, height=480, framerate=30/1 ! videoconvert ! videoscale ! clockoverlay time-format="%D %H:%M:%S" ! autovideosink ! tcpserversink port=8888 host=localhost
 
gst-launch-1.0 -v azurekinectsrc ! videoconvert ! x264enc key-int-max=12 byte-stream=true ! mpegtsmux
 

UDP 통신을 이용한 이미지 스트리밍 전송

gst-launch-1.0 -v libcamerasrc ! video/x-raw,width=640,height=480 ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=172.18.1.0 port=5000
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink
 

케이블 연장

  • Datasheet : [[B0091_CSI_to_HDMI.pdf]]
위와 같이 조사하고 구매했지만, 알고보니 CSI HDMI 연장은 IMX477 카메라는 지원하지 않는다고 함.. 제조사 표기 실수라고 하니, 구매할 분들은 꼭 제조사에게 확인을 받고 구매하는게 필요합니다.
 
 
← Back

Related posts

Axelera AI의 대형 투자 유치, 유럽 AI 반도체가 다시 주목받는 이유

Mar 9, 2026

네덜란드 AI 반도체 스타트업 Axelera AI가 2억5000만 달러 규모의 투자를 유치했다. 이번 소식은 단순한 자금 조달을 넘어, 유럽 AI 반도체 스타트업의 존재감과 AI 추론용 엣지 반도체 시장의 성장 가능성을 다시 보여준다. Axelera AI가 왜 주목받는지, 그리고 이 투자가 산업용 AI·머신비전 분야에 어떤 의미를 가지는지 정리해봤다.

GenFeA: 머신비전 통합의 장애물을 낮추기

Jan 11, 2026

EMVA GenIcam 그룹에서 임베디드/이종아키텍쳐에서 카메라 통합을 쉽게 할 수 있는 GenFeA에 대해서 발표했다. 이에 대한 내용 및 전망을 살펴보자

월드컵에 쓰인 컴퓨터 비전: 골라인 판정에서 반자동 오프사이드까지

Jul 5, 2026

월드컵 판정 기술은 단순한 비디오 판독을 넘어 경기장을 실시간 데이터 공간으로 바꾸고 있다. 골라인 기술, 반자동 오프사이드, 연결된 공과 광학 추적 시스템을 통해 컴퓨터 비전이 어떻게 공정성과 경기 흐름을 함께 개선하는지 정리한다.