v1.3.0¶
v1.3.0은 카메라 통신 계층을 구조화된 명령/응답 프로토콜을 중심으로 다시 작성하고, IDE와 함께 번들로 제공되는 리소스 모두에 대해 IDE 내 자동 업데이트 기능을 추가합니다. Qt Creator 4.0.2 기반으로 빌드되었으며 OpenMV 카메라 펌웨어 2.0.0을 번들로 포함합니다. macOS와 Linux에서는 이제 DFU 펌웨어 플래시를 위해 Python과 함께 libusb 및 pyusb의 일회성 설치가 필요합니다. 호환성 변경 사항을 참고하세요.
주요 내용¶
통신 계층 재작성. 시리얼/USB 디버그 코드가 명령별 응답 길이 및 시작/종료 대기 지연을 갖춘 구조화된 명령/응답 프로토콜을 중심으로 재구성되어, 연결, 스크립트 실행, 프레임 버퍼 및 부트로더 작업이 더욱 안정적으로 동작합니다.
IDE 내 자동 업데이터. 이제 IDE가
openmv.io에서 최신 버전을 확인하여 Download 버튼을 제공하며, 별도로 업데이트된 리소스 패키지(예제, 펌웨어, 문서)를 다운로드 및 설치한 후 재시작을 안내합니다.원클릭 펌웨어 업데이트. 이제 상태 표시줄의 펌웨어 버전이 클릭 가능한 버튼이 되어, 연결된 카메라를 번들 펌웨어와 비교하고 최신 버전을 사용할 수 있을 때 원클릭 업데이트를 제공합니다.
모든 플랫폼에서의 DFU 펌웨어 플래시. 이제 Windows, macOS, Linux x86 및 Linux x86_64에서 DFU를 통해 펌웨어를 플래시할 수 있으며, 펌웨어 선택기는
.bin외에도.dfu파일을 허용합니다.자동 DFU 폴백. 펌웨어 업데이트 중 시리얼 부트로더에 연결할 수 없을 때, 이제 IDE가 대신 카메라의 DFU 부트로더를 통한 업그레이드를 제공하며
BOOT/RST점퍼를 추가하는 과정을 안내합니다.
새로운 기능¶
IDE 내 업데이터.
openmv.io에서 최신 IDE 버전을 확인하여openmv.io/download를 여는 Download 버튼을 제공하며, 재시작을 안내하기 전에openmv-ide-resources-X.Y.Z.zip리소스 패키지를 IDE에 직접 다운로드, 압축 해제 및 설치합니다 (8a1f92bb1, 194acd828, b0be97e3e).클릭 가능한 펌웨어 버전 버튼. 상태 표시줄의 버전 레이블이
QToolButton으로 바뀌어updateCam()흐름에 연결되며, 이는 번들된firmware/firmware.txt를 읽어 연결된 카메라와 비교하고, 최신 버전일 경우 내부 파일 시스템 삭제 옵션과 함께 Firmware Update를 제공합니다 (b2ac8defe).DFU 파일 지원. 부트로더/펌웨어 플래시 대화 상자가 이제
.bin외에도.dfu파일을 허용하며,.dfu를 플래시할 때 전체 내부 파일 시스템 삭제를 강제합니다. 펌웨어 선택기 필터가Firmware Binary (*.bin *.dfu)로 확장되었고.dfu강제 삭제 흐름은4ad2be5f9에서 도입되었으며, 선택한 파일 확장자에 따라 자동으로 전환되는 항상 선택된 비활성화 삭제 체크박스는b2ac8defe에서 추가되었습니다 (4ad2be5f9, b2ac8defe).부트로더 실패 시 자동 DFU 폴백.
.bin펌웨어 업데이트가 시리얼 부트로더를 시작할 수 없을 때, 이제 IDE가Unable to connect to the bootloader!를 보고한 후 대신 카메라의 DFU 부트로더를 사용한 업그레이드를 제공하며, DFU가 내부 플래시 파일 시스템을 삭제한다고 경고하고BOOT/RST점퍼 와이어를 추가한 뒤 재연결하는 과정을 안내한 다음 (Windows에서)DfuSeCommand.exe를 실행합니다 (4ad2be5f9).HoG 예제.
img.find_hog()를 사용하는 방향 기울기 히스토그램(Histogram of Oriented Gradients) 시각화 예제(09-Feature-Detection/hog.py)를 추가했습니다 (b03a707f7).
기타 변경 사항 및 개선 사항¶
기존의 임시방편적 보드 레이트/패킷 코드를
OpenMVPluginSerialPortCommand/Result클래스,__USBDBG_*및__BOOTLDR_*opcode, 그리고write()/readAll()/isOpen()대신command()/commandResult()헬퍼로 교체했습니다 (b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).이제 Windows 시리얼 포트 드라이버 설치가 자동/무인 방식으로 진행되어,
openmv.cmd/pybcdc.cmd드라이버 스크립트가 대화형InfDefaultInstall대신dpinst기반 설치 프로그램으로 전환되었으며, Visual C++ 재배포 가능 패키지 설치 프로그램(vcr.cmd으로vcredist_x86.exe및vcredist_x64.exe를 조용히 실행)이 추가 및 수정되었습니다 (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
버그 수정¶
가상 머신 내부에서 펌웨어 플래시 및 통신이 중단되던 문제를 수정하고, 다양한 명령 시간 초과 및 프레임 버퍼/tx 버퍼 폴링을 완화하여 연결과 실행이 더욱 견고해졌습니다. 이제 재프로그래밍 대화 상자에 “최대 5분이 걸릴 수 있습니다”라는 안내가 표시되며, DFU 프로세스 시간 초과가
324f243f9에서 240초에서 300초로 늘어났습니다 (c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).펌웨어/IDE 업데이트 가능 여부 비교를 수정하여, 상위 필드가 동일할 때 더 높은 마이너 또는 패치 버전이 잘못 트리거되지 않도록 했으며, 플래시하기 전에 부트로더 대화 상자에 유효한 선택 파일이 있어야 하도록 요구했습니다 (4ad2be5f9).
파일 핸들(보드 목록, 펌웨어/버전 파일)을 읽은 후 닫고, 펌웨어 플래시 청크 패딩을
FLASH_WRITE_CHUNK_SIZE로 패딩하도록 수정하여, 펌웨어 업데이트 중 핸들 누수와 마지막 청크의 잘못된 패딩을 방지했습니다 (4ad2be5f9).OpenMV
Help메뉴와 출력 창을 수정했습니다. About OpenMV Cam 항목이 더 이상 플랫폼의 About 역할과 충돌하지 않으며(AboutRole→ApplicationSpecificRole), 출력 창이 더 이상Alt/Cmd+ 숫자 단축키를 가로채지 않습니다 (a0694eac7).외부 OpenMV 웹 링크(포럼, 다운로드, 지원)를 열 때 URL을 실행할 수 없으면 이제 조용히 아무 동작도 하지 않는 대신 “Failed to open” 오류 대화 상자를 표시합니다 (b0be97e3e).
플랫폼 및 도구 지원¶
Qt Creator 기반: 4.0.2.
번들 카메라 펌웨어: 2.0.0으로 업데이트되었으며, OMV2 및 OMV7용으로 새로운
firmware.bin/openmv.bin및 새로 추가된firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf를 포함합니다.번들된 ST
DfuSeCommand.exe, ST DfuSe USB 드라이버 패키지(Win7/Win8에서는 DfuSe v3.0.4.0, Win8.1에서는 v3.0.5.0), 그리고dfuse.cmd드라이버 설치 프로그램을 사용하여 Windows DFU 플래시가 추가되었습니다 (4ad2be5f9).macOS 및 Linux DFU 플래시가 사전 빌드된
dfu-util바이너리에서 번들된pydfu.py플래셔로 옮겨졌으며, IDE가 필요한 libusb/pyusb 설치 명령을 표시합니다.ac248c0ec가 Linux x86_64용dfu-util/dfu-prefix/dfu-suffix바이너리를 잠시 추가했으나, 이후324f243f9가pydfu.py를 위해 이를 모두 제거했습니다. 최종 릴리스에는dfu-util바이너리가 포함되지 않으며,static.pro가 Windows를 제외한 모든 호스트에pydfu데이터 디렉터리를 번들로 제공하고 Windows는 번들된 DfuSe 흐름을 사용합니다 (ac248c0ec, 324f243f9, 7837a07da).Linux udev 규칙이
SUBSYSTEM매칭(카메라 VID 1209/PID abd1 tty 및 STM DFU 0483/df11)을 사용하도록 업데이트되어 32비트 Linux에서 장치 및 DFU 심볼릭 링크가 동작하며, 리디렉션을 따라가는 네트워크 요청은 구버전 Qt를 위해 가드 처리되었습니다 (194acd828).
호환성 변경 사항¶
macOS 및 Linux용 번들 독립형 dfu-util 바이너리가 제거되고 Python pydfu.py 플래셔로 대체되었습니다. macOS와 Linux에서는 이제 펌웨어 DFU 플래시를 위해 Python과 함께 libusb 및 pyusb의 일회성 설치가 필요합니다(IDE가 정확한 MacPorts/HomeBrew/apt-get 명령을 표시합니다). Windows는 계속해서 번들된 DfuSe 기반 흐름을 사용합니다. 스크립팅 API의 호환성 변경은 없으며, Qt Creator 4.0.2 기반도 변경되지 않았습니다.