v4.4.0¶
v4.4.0은 OpenMV IDE를 오랫동안 사용해 온 Qt Creator 10.0.1 기반에서 Qt Creator 14.0.2로 리베이스하여, 전체 OpenMV 플러그인과 모든 포크 커스터마이징을 더 새로운 기반 위에 다시 적용한 대규모 현대화 릴리스입니다. 그 위에 이번 릴리스는 오프라인 코드 자동 완성을 위한 임베디드 Python 언어 서버를 번들로 포함하고, 모든 플랫폼에서 GitHub Copilot을 활성화하며, 새로운 커스텀 OpenMV DFU 부트로더를 도입하고, OpenMV 카메라를 새로운 37C5 USB 벤더 ID로 마이그레이션합니다. 기반 변경은 대규모 내부 현대화이지만 사용자 프로젝트를 손상시키지 않습니다. 소수의 사용자에게 보이는 워크플로 변경 사항은 Breaking changes 를 참고하십시오.
주요 사항¶
Qt Creator 14.0.2 리베이스. IDE가 Qt Creator 10.0.1에서 14.0.2로 이동하며, 전체 OpenMV 플러그인과 모든
// OPENMV-DIFF //커스터마이징이 최신 기반 위에 다시 적용되었습니다 (d6c895be8, 1fa75b397).임베디드 Python 언어 서버. IDE는 이제 번들된
pylsp(astroid 3.3.5 포함)를 제공하고 자동으로 사용하여, Windows, macOS, Linux x86_64에서 별도의 pip 설치 없이 오프라인 Python/MicroPython 코드 자동 완성을 제공합니다 (257addee0, 5a2b3e72f, 94470798d).모든 플랫폼의 GitHub Copilot. Copilot이 통합되어 기본적으로 활성화되며, Windows, macOS, Linux용으로 번들된 Node.js 20.18.0 런타임을 포함하므로 더 이상 특정 장비에만 국한되지 않고, 이를 켤 수 있는 시작 대화 상자도 추가되었습니다 (bb07d582b, 1cb967c5a, b37e48040).
새로운 OpenMV DFU 부트로더. 완전히 구현된 커스텀
openmv_dfu부트로더 플로우가settings.json에서 펌웨어 업데이트를 구동하며, 최신 릴리스 설치, 특정 펌웨어 로드, 파일 시스템 삭제 선택지를 제공하는 “board in DFU mode detected” 대화 상자와 벽돌이 된 카메라를 복구하기 위한 폴백 부트로더 경로를 포함합니다 (08b9d0676, 6a6a9351d, 6d78d6571).새로운 카메라 지원. OpenMV Cam N6, RT1062, AE3 보드를 추가하고, 카메라를 새로운
37C5USB 벤더 ID로 마이그레이션하며 DFU 드라이버와 udev 규칙을 업데이트했습니다 (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).더욱 안정적인 시리얼 통신. 주요 시리얼 통신 수정으로 TinyUSB 기반 카메라에서 발생하던 깨진 터미널 텍스트와 무작위 연결 끊김 문제가 해결되었습니다 (caeba6a16, 6cf122a3c).
새로운 기능¶
OpenMV DFU 부트로더. 전용 DFU 드라이버와 폴백 부트로더 메커니즘을 갖춘 새로운
openmv_dfu부트로더 시스템이 여러 펌웨어 유형에 걸쳐 벽돌이 된 카메라를 복구합니다 (6a6a9351d, 6d78d6571). 이 플로우는settings.json에서 펌웨어 업데이트를 구동하며 최신 릴리스 설치, 특정 펌웨어 로드, 파일 시스템 삭제 옵션을 제공하는 “board in DFU mode detected” 대화 상자를 표시합니다 (08b9d0676, ef19133b6, 9c59d113c).포트 선택기의 보드 이름. 시리얼 포트 선택 대화 상자는 이제 각 포트를 탐색하여 포트 이름만 표시하는 대신 검출된 보드 이름을 포트 옆에 표시합니다(예:
COM3: OpenMV Cam H7) (9837d6cb5).탭형 에디터. 탭형 에디터 플러그인이 복원되어, 열려 있는 파일 간 전환을 위한 문서 탭 행이 에디터 영역 위에 추가되며 (c8519c09f), 이제 세션 간에 탭 순서를 유지하고 복원합니다 (55ccfb207).
Python 구문 강조. 문자열 포맷, 부동 소수점, 키워드 규칙을 갖춘 에디터용 전용 Python 구문 강조 정의를 추가했습니다 (9be46c0c3).
기타 변경 및 개선 사항¶
펌웨어 로딩 리팩터링. 펌웨어 로딩 코드가 유형별 부트로더 핸들러(OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool)로 분리되었으며, Arduino DFU 보드를 위한 touch-to-reset PID 처리와 대체 VID/PID 장치를 위한 명시적 “Legacy” 보드 변형이 추가되었습니다 (9f465f9f8).
STM32 ROM 부트로더 보호 장치. IDE는 이제
firmware.dfu/openmv.dfu를 STM32 ROM 복구 부트로더에 로드하는 것을 경고하거나 차단하며, 칩 ROM 부트로더 버그의 영향을 받는 STM32H7 보드가 벽돌이 되는 것을 막기 위해bootloader.dfu만 사용할 것을 권장합니다 (c5ce0ae1a, e7cde1ec1).자동 무음 Python LSP 설정. Python 언어 서버가 이제 정보 표시줄 프롬프트나 콘솔 메시지 스팸 없이 자동으로 설치 및 업데이트되며 (d89f5985f), Python 자동 완성/문서 호버 시스템이 번들된 HTML 라이브러리 문서를 파싱하여 키워드 강조 및 툴팁을 구동하는 전용 OpenMV 문서 엔진으로 재설계되었습니다 (47e02873b, 4f9853f21, 82cefc931).
Linux Python 인터프리터 검출. Linux에서의 인터프리터 검출이 이제 자동으로 이루어져,
PATH의 Python 3 인터프리터만 고려하고 가장 최신 버전을 단일 기본값으로 선택합니다 (214fdc758).Python 설정 정리. 인터프리터별 관리 그룹과 Interpreters 페이지가 숨겨지고, Language Server Configuration이
Python카테고리 아래로 정리되며, 사용되지 않는 REPL 및 인터프리터 선택기 도구 모음 버튼이 Python 에디터에서 숨겨집니다 (d89f5985f). Windows에서는 이제 IDE가 번들된 임베디드python.exe를 기본 인터프리터로 자동 등록하며, 번들된 언어 서버를 이미 설치된 것으로 취급합니다 (1d9ca003e, d89f5985f).깔끔해진 프로필 디렉터리. IDE는 더 이상 사용되지 않는 Qt Creator 설정 파일(devices, kits, toolchains, Qt versions)을 작성하지 않고 파일을 에디터에서 직접 엽니다 (3771b0107). 또한 더 이상 시스템에서 qmake/Qt 버전을 스캔하지 않으며 (42807f25f), 사용되지 않는 device/toolchain/kit 기능과 시작 노이즈를 로드하지 않습니다 (902a357de, b2666a35b).
더 안전한 업데이트. IDE 업데이트가 더 이상 사용자 리소스를 덮어쓰지 않습니다. 관리되는 리소스 폴더(examples, firmware, html, models)만 제거 후 다시 복사되며,
micropython-headers는 추가로 제거됩니다(이 경로를 통해 다시 복사되지 않고 별도로 설치됨).firmware/settings.json이 없거나 유효하지 않을 경우 더 명확한 오류가 표시됩니다 (b4b8c208d, 3255ba4fb).더 빠른 DFU 연결. DFU 연결 대기 시간이 단축되어 플래싱과 연결이 더 빨라졌습니다 (11d8c9fe3, 4700bf678).
복원된 OpenMV 메뉴 및 UI 커스터마이징. 간소화된 OpenMV 메뉴 레이아웃이 다시 적용되어 Build 및 Debug 메뉴를 숨기고 프로젝트 관리 동작을 제거합니다 (7503f2bec). 코드 자동 완성 엔진은 MicroPython 자동 완성을 위한 클래스/메서드 인식과 public/private 키워드 스코프를 되찾았습니다 (55fc348ea). 터미널 ANSI 색상 렌더링은 테마 인식 밝게/어둡게 값과 커서 백 이스케이프 지원과 함께 다시 적용되었습니다 (c6787a27a). 그리고 이미지 뷰어 도구 모음은 해상도/줌 툴팁과 위치가 변경된 Fit-to-Screen 동작으로 커스터마이징되었습니다 (734fec693).
복원된 번들 리소스. 리베이스로 제거되었던 플래싱 도구, DFU 드라이버, 펌웨어 및 전체 예제/스크립트 트리가 공유 리소스로 복원되었으며 (33c8354bc), OpenMV의 커스텀 애플리케이션 시작 로직이 다시 적용되었습니다. 즉
TextEditor플러그인을 필수로 요구하고(OpenMV 및 TabbedEditor 플러그인 검사는 존재하지만 비활성화됨), 커스텀 Qt 메시지 핸들러를 설치하고,-client/-pid/-block명령줄 옵션을 제거하며, 단일 인스턴스 동작을 강제합니다 (06c788f3d).플러그인 누락 실패. 이제 필수 플러그인이 누락되거나 비활성화된 경우 앱이 명확한 오류와 함께 강제 실패하며, OpenMV 플러그인은 Copilot 종속성을 추가했고, 여러 텍스트 에디터 옵션(Behavior 설정의
Prefer single line comments및 주석 위치 선택기, Display 설정의Highlight selection)이 숨겨졌습니다 (1bc02b1f3).더 짧은 시리얼 타임아웃. 더 빠른 실패 피드백을 위해 시리얼 프로토콜 타임아웃이 단축되었으며(읽기 10000에서 5000 ms, 쓰기 6000에서 3000 ms), 문서화된
-override_read_timeout기본값도 이에 맞게 업데이트되었습니다 (641385af4).멈춘 포트 복구. 명령 도중 멈춘 시리얼 포트는 이제 스크립트 실행 쿼리 대신
GET_STATE쿼리(get-state 설정으로 구성 가능)를 사용하여 복구됩니다 (a8598f550).설정 대화 상자 순서. 설정 대화 상자가 알파벳순 카테고리 정렬 체크박스를 숨겨, 페이지 목록이 OpenMV가 의도한 순서를 유지합니다 (1cb967c5a).
간소화된 Copilot 설정. Copilot 설정 페이지가 로그인/인증 및 프록시 컨트롤만 남기고 축소되어, enable-Copilot, Node.js 경로, dist 경로, 자동 완성 옵션이 숨겨졌습니다 (1cb967c5a).
버그 수정¶
시리얼 읽기 정지 타임아웃을 10배 늘리고 시리얼 터미널 텍스트를 깨뜨리던
GET_STATE기반 멈춤 해제 경로를 비활성화하여 주요 시리얼 통신 문제를 수정했습니다 (caeba6a16).연결을 끊는 대신 프레임 덤프 해제 명령을 보내고 읽기 정지 처리를 재작업하여 TinyUSB 기반 카메라에서 발생하던 무작위 시리얼 연결 끊김 문제를 수정했습니다 (6cf122a3c).
카메라
get_state처리가 짧거나 부분적인 응답을 허용하도록 만들고, 오류 복구 중 버퍼링된 시리얼 터미널 텍스트가 플러시되도록 하여 로그 출력이 손실되지 않게 했습니다 (c8b4248a6, 247a779dd).OpenMV Cam 펌웨어 로딩을 위한 DFU 부트로더 플래시 파티션/대체 설정 번호를 수정했습니다 (a8700d12d).
새로운
hidden보드 플래그를 준수하고, 시리얼 번호 필터링을 역필터로 전환하며, Arduino Nano RP2040 Connect UF2 항목에 작동하는 picotool 구성을 부여하여 모든 부트로더를 복원했습니다 (63cee629b).사람이 읽을 수 있는 보드 유형 선택과 IMX 보드 유형 선택에 별도의 기록 키를 사용하여, 부트로더 보드 유형 선택 대화 상자가 잘못된 값을 기억하던 문제를 수정했습니다 (a3325af32).
평균 프레임 간격을 마이크로초 단위로 계산하고, 새로운 v21
ImageWriter시간 형식을 지원하며, 변환 중 null 픽스맵을 방지하여 비디오 트랜스코딩(Save Video) 타임스탬프/프레임 레이트 계산을 수정했습니다 (f5c75c749, f8f762b3e).빈(null) 픽스맵이 수신될 때
pixmapUpdate()가 null 데이터를 방지하도록 하여 히스토그램/프레임 버퍼 뷰의 크래시를 수정했습니다 (622cf5ea8).텍스트 에디터의 호버 주석 툴팁을 복원하여, 텍스트 마크 위에 마우스를 올리면 다시 주석 툴팁이 표시되도록 했습니다 (1852d18e1).
IDE가 연결 또는 플래싱 작업으로 바쁜 동안 GitHub Copilot 및 LED 색상 정보 대화 상자가 팝업되지 않도록 했습니다 (f8f762b3e).
언어 클라이언트에 크래시 보호를 추가하여, 문서 콘텐츠 변경 처리가 경계 사례에서 더 이상 IDE를 크래시시키지 않도록 했습니다 (7926ffe4c).
Python 플러그인이 종료 전에 진행 중인 검사를 비동기적으로 대기하도록 만들어, Python 언어 서버 검사가 IDE의 깔끔한 종료를 막던 문제를 수정했습니다 (9ff6c7936).
Linux에서의 Python 자동 완성을 수정했습니다. 언어 클라이언트가 번들된
micropython-headers를 루트로 설정하고, 중복되는 에디터 도구 모음 자동 완성 팝업 동작이 숨겨집니다 (d37f66a9a, 56e748f9d, 016fa73eb).임시/저장되지 않은 파일 처리를 수정하여 Save As가 파일 대화 상자의 초기 디렉터리를 사용하고, Save Items 대화 상자와 Diff 에디터가 더 이상 내부 임시 파일 경로를 표시하지 않도록 했습니다 (b7f0bb378, c8e7b6b8f, 6b128c34c).
제목 없는/임시 버퍼를 저장할 때 이제 Save-As 대화 상자가 빈 이름 대신 적절한
.py파일 이름을 기본값으로 사용합니다 (3001fdfff).임시/제목 없는 문서가 이제 수정되면 저장 대상으로 제공되고, 자동 저장에서 제외되며, Save-As를 통해 올바르게 라우팅됩니다 (f87b71cf0).
Recent Files 메뉴 순서를 수정하여 이미 목록에 있는 파일을 다시 열어도 순서가 바뀌지 않도록 했으며, 파일 대화 상자가 이제 projects 디렉터리를 기본값으로 사용합니다 (d49c0c993).
체크 가능한 메시지 상자에 리치 텍스트 형식을 더 이상 강제하지 않도록 하여 메시지 상자 텍스트 렌더링을 수정함으로써, 원시 텍스트가 올바르게 표시되도록 했습니다 (0c565502f).
라이트 테마에서 툴팁이 올바르게 렌더링되도록 툴팁 색상을 수정했습니다 (35cbf077b).
코어 설정, 언어 클라이언트, MSVC 툴체인, 프로젝트 탐색기, Python 플러그인 전반에 걸친 일반적인 Qt Creator 안정성 및 정리 수정 (836b163dc, 134f43cb8).
Arduino Nano 33 BLE Sense 번들 펌웨어 폴더 이름을 수정하고 (b1d8ac227), AE3 DFU 부트로더 제품 ID에 대한 Linux udev 규칙을 수정하여
96E3을 소문자96e3으로 정정해 udev의 대소문자 구분idProduct매칭이 작동하도록 했습니다 (2cd43c96b). AE3 DFU 부트로더 Linux udev 규칙도openmvdfu심링크를 위한37c5:afe3제품 ID로 업데이트되었습니다 (b99555637).
플랫폼 및 도구 지원¶
Qt Creator 기반: 14.0.2 (10.0.1에서 리베이스됨).
OpenMV Cam N6 가 이제 지원되며(VID:PID 37C5:1206, DFU 부트로더 37C5:9206), 펌웨어 설정, Windows DFU 드라이버, Linux udev 규칙을 포함합니다 (000ed8a87, 1b950c8c6).
OpenMV Cam RT1062 가 이제 새로운 커스텀 USB VID/PID(37C5:1060) 하에서 지원되며, DFU 드라이버, udev 규칙, 그리고 구형 장치를 위해 유지된 레거시 1209:ABD1 항목을 포함합니다 (f453bc945, d55d6441f).
OpenMV Cam AE3 가 이제 지원되며, Windows DFU 드라이버, 펌웨어/구성 이미지 트리, USB VID/PID(런타임 37C5:16E3 / 부트로더 37C5:96E3으로 업데이트됨)를 포함합니다 (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).
새로운 USB VID/PID 시스템: OpenMV 카메라가 새로운 부트로더/DFU ID(예: 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205)와 함께 벤더 ID
37C5로 이동하며, 구형 1209:ABD1 보드를 Legacy로 재라벨링하면서도 구형 및 신형 펌웨어를 모두 계속 지원합니다 (6d78d6571, 6a6a9351d, 500b1a0bf).PAG7936 이미지 센서가 인식되는 센서 목록에 추가되었습니다 (f9e3f3461).
임베디드 Python 3.13 인터프리터가 macOS, Linux x86_64, Linux arm64, Linux arm용으로 번들되었으며 (9133b1516), 네이티브
libpython3.13및ujson공유 라이브러리를 포함합니다 (d3aa663d8, a2cb24e74).번들된 언어 서버: Windows, macOS, Linux x86_64에서 astroid 3.3.5를 갖춘
pylsp(257addee0). Windows 빌드에는 python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2, distlib 0.3.9를 갖춘 임베디드 CPython이 포함됩니다 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).번들된 Node.js 20.18.0 “Iron” LTS 런타임이 Windows, macOS, Linux arm64, Linux x64, Linux armv7용으로 포함되어 모든 플랫폼에서 GitHub Copilot을 사용할 수 있게 합니다 (bb07d582b, 6db78bf45, 1cb967c5a).
Alif Security Toolkit 서명된 부트/시스템 패키지 바이너리와 사용자 가이드가 Alif 기반 OpenMV 카메라(예: AE3) 프로비저닝을 위해 Windows, macOS, Linux x86_64용으로 번들되었습니다 (f63851be3).
Linux 데스크톱 통합 이 복원되어, 애플리케이션 데스크톱 항목과 AppStream 메타데이터를 설치하고 Python(
.py) MIME 유형을 등록합니다 (3fa25f571).
주요 변경 사항(Breaking changes)¶
스크립팅 API는 변경되지 않았습니다. 다음과 같은 사용자에게 보이는 워크플로 및 동작 변경 사항을 확인할 수 있습니다:
새로운 USB 벤더 ID. OpenMV 카메라가 새로운 제품 및 DFU 부트로더 ID와 함께 벤더 ID
37C5로 마이그레이션됩니다. 구형1209:ABD1VID의 보드는 이제 “Legacy”로 라벨링됩니다. IDE는 구형 및 신형 펌웨어를 동시에 지원하지만, Linux 사용자는 새 ID가 인식되도록 업데이트된 udev 규칙을 다시 설치해야 합니다.레거시 보드 항목 숨김. OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal 보드의 레거시 변형이 이제 새로운
legacy보드 플래그(기존hidden플래그와 구별됨)를 통해 펌웨어/보드 선택 목록에서 억제되므로, 특별히 레거시 보드 항목이 필요한 사용자는 더 이상 드롭다운에서 이를 볼 수 없습니다 (6d78d6571).더 짧은 시리얼 타임아웃. 기본 응답 읽기 타임아웃이 10000 ms에서 5000 ms로, 쓰기 타임아웃이 6000 ms에서 3000 ms로 단축됩니다(
-override_read_timeout기본값은 이제 5000으로 문서화됨). 더 긴 기본값에 의존하던 느린 보드/링크는 더 빨리 타임아웃될 수 있습니다.
Qt Creator 14.0.2 리베이스는 대규모 내부 현대화이지만 사용자 프로젝트에 대해서는 호환성을 깨지 않습니다.