v4.0.1¶
v4.0.1은 OpenMV IDE를 오랫동안 사용해 온 Qt Creator 4.0.2 기반에서 Qt Creator 10.0.1로 리베이스하는 전면적인 현대화 작업입니다. 전체 OpenMV 플러그인 스택(프레임 버퍼 뷰어, 시리얼/프로토콜, 터미널, 히스토그램, 임계값 및 키포인트 편집기, 비디오 도구, 펌웨어 플래싱 래퍼)이 새로운 기반 위에 다시 적용되었으며, 세련된 Flat Light/Flat Dark 테마 쌍, OpenMV를 인식하는 Python 구문 강조, 통합 펌웨어 로더 대화상자, 그리고 폭넓은 ARM64 Linux 및 macOS 장치 감지 지원도 함께 추가되었습니다. Qt Creator 기반 변경은 대규모 내부 현대화이지만 사용자 프로젝트를 손상시키지는 않습니다. 다만 일부 기본 동작과 보드 정의는 변경되었습니다(주요 변경 사항 참조).
주요 사항¶
Qt Creator 10.0.1 리베이스. IDE가 Qt Creator 4.0.2에서 10.0.1로 이동합니다. 업스트림 Qt Creator는 빌드 기본 요소만 남기고 정리되었으며(98b95fd3b), 전체 OpenMV 플러그인이 새로운 기반 위에 다시 추가되었습니다(0e8047372).
Flat Light 및 Flat Dark 테마. 세련된 라이트/다크 테마 쌍이 일치하는 사용자 지정 편집기 구문 강조 스타일과 함께 제공됩니다. 테마 선택기는 일반 설정에서 이 두 가지로만 제한되어 다시 노출되었으며, 기본 테마는 이제
flat-dark입니다(21348924b, 13c3849e8).Raw-REPL 시리얼 터미널. 이제 터미널은 적절한 MicroPython raw-REPL(CTRL-A/CTRL-D) 상태 머신을 통해 스크립트를 실행, 중단, 다시 로드, 붙여넣기 하며, 더 큰 스크립트도 안정적으로 처리합니다(a7241079c).
OpenMV 인식 Python 편집. OpenMV 모듈, 클래스, 함수, 메서드, 인수가 번들 문서를 기반으로 구문 강조되며, 더 똑똑한 자동 완성과 괄호/콜론을 인식하는 자동 들여쓰기 기능을 제공합니다(801eab8a8, 8e9f967e7, 9fdff9c6d).
통합 펌웨어 로더 대화상자. 이제 플래싱은 진행률 표시줄과 상태를 기억하는 접을 수 있는 세부 정보 표시/숨기기 로그를 갖춘 단일 상황별 대화상자(디스크 지우기 / 펌웨어 플래싱 / 부트로더 플래싱)를 표시합니다(5b51356f8).
OpenMV Cam RT1062 지원. 새로운 i.MX RT1060급 보드를 위한 펌웨어, DFU/플래시 로더, SDP/blhost 열거, eFuse 굽기 프로그래밍 단계가 추가되었으며(a6595f5f7), 이후 별도의 Secure Bootloader(SBL) 보드 변형이 부여되었습니다(d2b11c6c8).
새로운 기능¶
자동화 플래그.
-auto_update(release/development/ 경로),-auto_erase,-auto_run플래그를 사용하면 IDE가 연결 시 펌웨어를 부트로드/지우고 열려 있는 스크립트를 실행할 수 있습니다. 부트로더 재연결 후 IDE는 카메라가 다시 열거될 때까지 최대 10초간 기다린 후 계속 진행합니다(b54affe79, f4e03d978).``-disable_stop`` 플래그 와
stop on connect/disconnect메뉴 토글을 통해 사용자는 연결 또는 연결 해제 시 스크립트 중단을 비활성화할 수 있습니다(02724ca7d).연결/연결 해제 시 스크립트 중단 토글(기본값 켜짐)은 연결/연결 해제를 실행 중인 스크립트 중단과 분리합니다. 자동 재연결은 이제 기본값이 꺼짐입니다(a0e78057f).
보드 유형 프롬프트. 연결된 보드가 펌웨어 매핑에 없는 아키텍처를 보고하면, 이제 IDE는 “Unsupported board architecture!” 오류로 중단하는 대신 사용자에게 보드 유형을 선택하도록 요청합니다(마지막 선택을 기억함)(b7165eb3d).
OpenMV Python 구문 강조 는 번들 문서에서 채워진 키워드 목록을 사용하여 알려진 OpenMV 모듈, 클래스, 데이터, 함수, 메서드, 인수에 색상을 입힙니다(801eab8a8, b4d481bf5).
약 300개의 KSyntaxHighlighting 언어 정의 가 편집기와 함께 제공되어, 다양한 언어로 작성된 소스 파일이 별도 설정 없이 강조됩니다(39674a4dc).
번들 OpenMV 예제 스크립트 (Hello World, 스냅샷, 비디오 녹화, 옵티컬 플로우, 이벤트 카메라, 글로벌 셔터, FLIR Lepton 등)가 이제 IDE에 커밋되어 함께 제공됩니다(938ac6bbe).
바이너리/16진수 편집기 가 활성화되어 사용자가 바이너리 파일을 열고 검사할 수 있으며, 도구 모음은 OpenMV UI에 맞게 정리되었습니다(675bda966).
메모리 내 문서 비교. 새 파일과 읽기 전용 예제는 이제 백업용 임시 파일을 갖게 되어 저장되지 않은 문서도 비교할 수 있으며, 외부 파일 비교 대화상자는 마지막으로 사용한 폴더를 기억합니다(5281e5f6c, 2934d5216).
탭 편집기 플러그인 이 다시 추가되어 IDE에 탭 문서 표시줄이 생겼습니다. 미니맵 플러그인 소스는 다시 추가되었지만 이 릴리스의 빌드에서는 비활성화된 상태로 남겨졌습니다(0e8047372).
DfuSe 및 pydfu 폴백 플래싱 이 일련번호로 대상을 지정할 수 없는 DFU 장치를 위해 복원되었으며, 연결 중 대화상자 없는 자동 지우기 처리도 함께 제공됩니다(e42a5be7d).
i.MX RT eFuse 굽기. 이제 펌웨어 프로그래밍이 RT1060급 보드를 위해 eFuse(
efuse-program-once)를 굽습니다(8053bb578, a6595f5f7).Linux 루트 설치 마법사 페이지 를 통해 사용자는 권한 상승이 필요한 apt 라이브러리 설치와 udev 규칙 설치를 항상 실행하는 대신 직접 선택하여 켜거나 끌 수 있습니다(6bac80984).
기타 변경 사항 및 개선 사항¶
백그라운드 시리얼 포트 스캔. 포트 열거가 UI 스레드에서 전용
ScanSerialPortsThread워커로 옮겨져 스캔 중에도 IDE가 응답성을 유지합니다(7be4dab26).더 폭넓은 장치 감지. 포트 스캔이 재사용 가능한
filterPorts()헬퍼로 리팩터링되어 picotool 및 i.MX DFU 장치를 통합하고, 알려진 Arduino 부트로더 시리얼 포트(NRF/RPI의 구버전 및 로더 PID)를 DFU 장치로 재분류합니다(25a5d30fd).더 많은 터미널 폴백. Linux에서 번들 비디오 재생 도구(비디오 파일 재생 / RTSP 스트림 재생)를 실행할 때, 이제 IDE는
xterm및gnome-terminal외에도lxterminal,konsole,xfce4-terminal순으로 폴백합니다(df54007e0).보드 키 보고. 이제 카메라 등록이 “Remaining N” 응답을 파싱하여 사용자에게 남은 보드 키 수를 알려주며, 별도의 “Invalid Board Key for Board Type” 오류 메시지를 추가합니다(5759e73eb).
GitHub 호스팅 다운로드. 버전 확인과 리소스 다운로드가 이제
upload.openmv.io대신raw.githubusercontent.com/openmv/openmv-ide-version와openmv/openmv-ide릴리스를 사용합니다(994109c28).모든 곳에서 HTTPS. 모든 OpenMV 웹 요청(버전 확인, SWD ID 등록, 리소스 및 펌웨어 다운로드)이 이제
https://를 사용합니다(54347cad0).Linux 설정 자동화. 설치 프로그램이 누락된 라이브러리와 udev 규칙을 감지하고, 필요한 경우 정확한 apt-get/pip 및 udev 규칙 설치 명령이 담긴 실행 가능한
setup.sh(그리고 사용자에게 실행하라고 안내하는README)를 생성합니다(c6dc705e6).느린 보드 허용. 시리얼 터미널은 읽기당 대기 시간을 1ms에서 10ms로 높이고, 스크립트가 완료되면 “OK” 확인 응답을 보냅니다(c935e4489).
더 부드러운 플래싱 진행률. 이제 펌웨어 로더 진행률 표시줄이 첫 번째 백분율 틱 이후가 아니라 즉시 불확정 상태에서 0-100%로 전환되며, 이는 dfu-util, bossac, picotool, i.MX 플래싱 전반에 적용됩니다(19d947308, 86d021f92).
구형 부트로더 복구 가 fast 모드의 쿼리 동기화 패딩 없이 지우기/쓰기 명령을 보내는 비-fast 부트로더 모드를 통해 다시 추가되었습니다(c20112c07).
더 깔끔한 도구 콘솔. 펌웨어 플래싱 터미널(bossac, dfu-util, picotool, imx, 비디오 도구)이 이제 독립형 콘솔 프로세스로 실행되어 더 잘 정돈된 명령 출력을 제공합니다(8053bb578).
자동 완성 다듬기. 자동 완성이 별도의 인수 힌트로 클래스, 메서드, 함수를 구분하고, 적절한 코드 모델 아이콘을 사용하며, 밑줄 접두사로 public/protected/private 범위를 인식합니다. 또한 키워드 완성 처리기는 명시적으로(수동으로) 호출된 완성 시 커서 앞의 선행 공백을 건너뜁니다(8e9f967e7, 68b26b5fc).
통합된 대화상자. OpenMV의 임시방편적인 “다시 표시하지 않음” 대화상자들(시작 시의
OpenMV Cam LED Colors정보 대화상자, 펌웨어 업그레이드 및 예제 프롬프트 포함)이CheckableMessageBox기반의 “다시 묻지 않음/표시하지 않음” 대화상자로 통합되었고, 일반 설정에 “다시 묻지 않음/표시하지 않음 대화상자 재설정” 버튼이 추가되었으며, 코드 접기 표시는 기본적으로 비활성화되었습니다(9fdff9c6d).테마 인식 브랜딩. 다크 모드 스플래시 화면, 정보 상자의 다크/라이트 ST 및 NXP 칩 로고, 다크 모드 툴팁 색상, 그리고 적절한 자동 완성 아이콘 색상이 추가되었습니다(d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
이미지 뷰어 정리. 공유, 배경, 윤곽선, “기본값으로 설정” 작업이 숨겨지고, 화면 맞춤 작업이 추가되었으며, 애니메이션 이미지 크기 조정이 수정되었습니다(b37c55e25).
컨텍스트 메뉴 정리. “파일 시스템 보기에서 표시”, “터미널 열기”, “파일 속성”, “저장 시 UTF-8 BOM 추가/삭제” 항목이 숨겨졌습니다(5d862c78e).
다크 시리얼 터미널. 독립형 터미널이 스타일이 적용된 스크롤바, 업데이트된 도구 모음 아이콘, 그리고 화면 전반에 걸친 올바른 고DPI 스크롤바 아이콘 다시 로드를 갖춘 적절한 다크 테마를 사용합니다(5c3af6880).
찾기/검색 정리. 결과 패널에 다크 테마가 적용되고, 검색 엔진 선택기가 숨겨지며, 레이블이 간소화되고, 파일에서 찾기는 Documents/OpenMV 폴더를 기본값으로 사용합니다(20a806550).
애플리케이션 정체성. 이제 IDE가 바탕화면, 제목 표시줄, 작업 표시줄에 적절한 OpenMV 아이콘을 표시하며(Windows에서는 고DPI 처리 포함), IDE id가
openmvide로 변경되었습니다(8ad1eed1f).고DPI 스플래시 가 Retina/200% 배율 디스플레이에서 2배 스플래시 이미지를 표시합니다(626ff673e).
작업 표시줄 복구. 왼쪽 작업 표시줄(새 파일, 열기, 저장, 실행 취소, 다시 실행, 잘라내기, 복사, 붙여넣기)이 복구되고 사용자 지정 OpenMV 아이콘이 부여되었습니다(b8479b5d0).
정보 대화상자 로고. 이제 Arduino와 Edge Impulse 파트너 로고가 모두 표시되며(Edge Impulse는 이전에 숨겨져 있었음) 고DPI 2배 변형이 포함되고, 번들 스플래시 아트워크가 업데이트되었습니다(
splash-small-2/splash-large-2)(5facd8d9a).커서 아래 단어 선택 이 활성화되었습니다. 블록 시작/끝으로 이동(Ctrl+[ / Ctrl+]) 및 블록 위/아래 선택 명령이 잠시 다시 활성화되었지만(36ed5b1a8) 릴리스에서는 비활성화된 상태로 남겨졌습니다(626ff673e).
Linux 데스크톱 항목 에 Electronics 카테고리, 설명 주석, 검색 키워드(embedded electronics, microcontroller, micropython, computer/machine vision)가 추가되었습니다(470e5702e).
리소스 마이그레이션. 사용자 리소스가 버전이 지정된 위치로 이동되고(이전 qtcreator 폴더는 시작 시 제거됨), Windows에서 무해한 DirectWrite 글꼴 관련 경고가 억제됩니다(a04af5351, 70765dc2a).
숨겨진 내부 옵션. 내부
-color및-themeCore 옵션이 도움말 출력에서 숨겨지고, 프레젠테이션 모드가 다시 활성화되었습니다(434c7b4cc).다시 적용된 핵심 커스터마이징 이 fancy 작업 표시줄/탭 위젯, 메시지 관리자/출력 창, 프록시 작업, 구문 강조기, 텍스트 편집기에 적용되었습니다(0e8047372).
QCustomPlot 2.1.1. 번들 플로팅 라이브러리가 Qt 6.4 호환성과 동적으로 변하는 디스플레이 DPI의 올바른 처리를 위해 업데이트되었습니다(8801415fe).
외관 UI 정리 가 스크롤바 화살표 아이콘, 상태 표시줄, 문서 탭 표시줄 닫기 버튼, 편집기 스크롤러 너비에 적용되었습니다. 편집기의 “파일 줄 끝 표시” 표시기는 이제 기본적으로 꺼져 있습니다(e0c4d2325, 6a26f4430, e130988fb).
버그 수정¶
QSerialPortInfo가 USB 허브의 식별자를 반환하는 문제를 우회하여 실제 장치의 VID/PID를 얻기 위해/sys/class/tty/<port>/device/uevent를 읽도록 함으로써 Linux VID/PID 감지를 수정했으며, 그 결과 허브 뒤에 연결된 카메라도 올바르게 감지됩니다(28220b351).엔드포인트 크기 어설션을 완화하고 쓰기가 정확히 하나의 USB 엔드포인트 크기일 때만 동기화 쿼리 패킷을 추가하도록 하여 Mac 부트로더 펌웨어 플래싱을 수정했습니다(86d021f92).
Linux의 비디오 재생 도구를 수정했습니다. 비디오 파일 재생 / RTSP 스트림 재생은 이제 32비트 및 ARM Linux에서 숨겨지고(번들 ffplay 없음), xterm을 사용할 수 없을 때 gnome-terminal로 폴백하며, macOS ffmpeg 바이너리가 자리표시자에서 복원되었습니다(d342649cc, d896f4225).
펌웨어 업데이트 중 지우기 및 쓰기 명령이 겹치는 것을 방지하기 위해 부트로더 재설정 시작/종료 지연을 0에서 5로 늘렸습니다(fabc168b6).
부트로더 복구를 간소화했습니다. 벽돌이 된 카메라를 복구하기 위해 부트로더를 강제로 진입시킬 때 중복 프롬프트를 건너뛰며, DFU 부트로더 재설정 후 IDE가 사용자에게 재연결을 요청하는 대신 자동으로 업데이트를 재시도합니다(12b924088).
시리얼 프레임 버퍼/TX 버퍼 덤프 명령을 트랜잭션 도중에 중단할 수 있도록 허용했습니다(4a4afae1b).
응답에 0바이트를 패딩할 수 있던 시리얼 포트 읽기 정지 포기 우회책을 제거하여 빠른 USB 전송 안정성을 개선했습니다(0ee1d8e91).
WiFi 디버깅 및 자동 재연결을 수정했습니다. WiFi 포트는 재발견 시 마지막으로 본 타임스탬프를 갱신하고, WiFi 포트 회수 및 DFU/부트로더 감지에서 여러 erase-after-iterator 버그가 수정되었으며, 자동 재연결은 이제 재연결하기 전에 IDE가 바쁘지 않을 때까지 기다립니다(cf0b67dc6).
비디오를 MJPEG로 변환하는 변환기가 인코더 출력에서 프레임 속도를 파싱하고 올바른 프레임당 밀리초 델타를 기록하도록 수정하여, 변환된 비디오가 올바른 속도로 재생되도록 했습니다(4a7ad2057).
QProcess 백엔드를 강제하고 차단 프로세스 이벤트 루프 가드를 수정하여 펌웨어 플래싱 및 번들 명령줄 도구가 실행되지 않던 문제를 수정했습니다(200fe9f3c).
장치 픽셀 비율 변경 시 아이콘 스타일 시트를 다시 로드하도록 하여, HiDPI 디스플레이에서 데이터셋 편집기 트리의 펼치기/접기 분기 아이콘이 올바르게 렌더링되도록 수정했습니다(a0e78057f).
패키지/리소스 업데이트가 이제 설치 후 단순히 종료하는 대신 OpenMV IDE를 자동으로 다시 시작합니다(178ee1b8e).
찾기/검색 결과 강조를 수정하고, 현재 편집기가 없을 때 검색 결과/파일 열기 작업이 첫 번째로 보이는 편집기로 폴백하도록 했습니다(48c402dfc).
플래싱 작업이 완료될 때 펌웨어 로더 대화상자의 경고 텍스트가 지워지고 창 크기가 올바르게 조정되도록 수정했습니다(c505c6ade).
여러 macOS UI 버그를 수정했습니다. 탭 표시줄이 더 이상 아이콘 로드 오류를 쏟아내지 않으며 파일 열기 시 올바르게 표시됩니다(9be8c58de, 5322cf968).
macOS와 Linux에서 상태 표시줄 / 출력 창 스타일링 및 기준선 정렬을 수정했습니다(4fc4545de, d29b2baa0, a440d5cd8).
소스 코드 인쇄 시 페이지 제목 머리글이 페이지 가장자리에 닿는 대신 적절한 상단 및 측면 여백을 갖도록 수정했습니다(786d6012c).
플랫폼 및 도구 지원¶
Qt Creator 기반: 10.0.1(4.0.2에서 리베이스됨).
OpenMV IDE: 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060): 초기 RT1062 펌웨어, 플래시 로더, 서명된 이미지,
imx.txt항목, secure-bootloader/eFuseblhost구성 키가OPENMV5펌웨어 폴더에 추가되었습니다(a6595f5f7). 이후 보드가 단일OPENMV_RT1060폴더로 통합되었고, 별도의 Secure Bootloader(SBL) 보드 변형(OpenMV_Cam_RT1062_SBL)이 추가되었습니다(d2b11c6c8, 5baf28c6e).번들 플래싱 툴체인 (blhost, bossac, dfu-util, dfuse + STM32 드라이버, picotool, sdphost, ffmpeg, FTDI/Arduino 드라이버)이 Windows/macOS/Linux용으로 다시 번들되었으며, Linux 바이너리는 실행 가능으로 표시되었습니다(fbfa4903a, bfb6b32e2, 9551c64da).
ARM64 Linux DFU: 번들된 aarch64
dfu-util과 장치 목록 및 펌웨어 다운로드의 arm64 감지를 통해 Raspberry Pi와 같은 호스트에서 DFU 플래싱이 가능해졌습니다(16bc6fe0f, 470e5702e).i.MX 장치 감지 가 이제 Linux(
lsusb파싱)와 macOS(ioreg스캔)에서 작동하여, 해당 플랫폼에서 i.MX RT 펌웨어 로딩이 가능해졌습니다(e03ccbe71, 7cf505d09).플랫폼 게이팅: i.MX 사용은 Windows/macOS/Linux-x86_64로 제한되며 그 외 환경에서는 심각한 오류가 발생합니다. 또한 ARM/ARM64 Linux에서의 Portenta/Nicla 플래싱은 “DFU Util may not be stable on this platform” 경고를 표시합니다(9513f6475).
Windows OpenGL: 배포 패키지에
opengl32sw,Qt6OpenGL, Qt6Gui OpenGL 지원을 번들하여 소프트웨어 렌더링이 복원되었습니다(aaaa1928f).Arduino 보드 폴더/id 이름 변경. Portenta, Nicla Vision, Nano 33 BLE Sense 펌웨어 폴더와
boards.txt보드 id가ARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISION,ARDUINO_NANO_33_BLE_SENSE로 이름이 변경되었습니다(a70d6562a). 이후 Nano 33 BLE Sense 폴더/보드 id는 장치가 보고하는 보드 이름과 일치하도록arduino_nano_33_ble_sense로 소문자화되었습니다(22750d8c7, a801a81de).OPENMV_RT1060 부트로더 플래시 로더(
blhost_flash_loader.bin,sdphost_flash_loader.bin)가 업데이트되었습니다(5baf28c6e).QCustomPlot: 2.1.1(번들 플로팅 라이브러리)(8801415fe).
디스크상의 펌웨어 이미지 가 지원되는 모든 OpenMV/Arduino 보드(
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, 그리고WINC1500WiFi 펌웨어)에 대해 펌웨어와, 해당하는 경우 부트로더/uvc 이미지와 함께 다시 번들되었습니다(fbfa4903a).
주요 변경 사항¶
다음은 사용자에게 보이는 워크플로 및 동작 변경 사항입니다. Qt Creator 10.0.1 리베이스 자체는 사용자 프로젝트나 스크립트를 손상시키지 않습니다.
i.MX RT1060 보드 정의 변경.
EVKBMIMXRT1060및OPENMV5항목이 단일OPENMV_RT1060보드(OpenMV Cam RT1062 및 SBL 변형)로 대체되었고, 기존 펌웨어 폴더는 제거되었습니다(d2b11c6c8).기본 명령-응답 타임아웃 이 10000ms입니다(4.0.0에서는 5000ms였음).
-override_read_timeout도움말 텍스트도 이에 맞게 업데이트되었습니다(4a4afae1b).연결/연결 해제 동작 변경. 자동 재연결이 이제 기본적으로 꺼짐이며, 새로운 “연결/연결 해제 시 스크립트 중단” 토글이 활성화되어 있지 않는 한(기본값은 켜짐) 연결 또는 연결 해제가 더 이상 기본적으로 실행 중인 스크립트를 중단하지 않습니다(a0e78057f).
업데이트 흐름이 IDE를 다시 시작합니다. 패키지/리소스 업데이트가 이제 설치 후 종료하는 대신 OpenMV IDE를 자동으로 다시 시작합니다(178ee1b8e).
Arduino 보드 id 이름 변경. Portenta, Nicla Vision, Nano 33 BLE Sense의
boards.txt보드 id와 펌웨어 폴더가ARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISION,ARDUINO_NANO_33_BLE_SENSE로 이름이 변경되었습니다(마지막 항목은 이후arduino_nano_33_ble_sense로 소문자화됨)(a70d6562a, 22750d8c7, a801a81de).