v2.4.0

v2.4.0은 Qt Creator 4.0.2를 기반으로 하며, 새로운 V3 부트로더(펌웨어 로딩 중 QSPI 플래시 레이아웃 조회 및 온보드 데이터 플래시 전체 소거 시 소거), 상태 표시줄의 실시간 센서 및 보드 보고, 그리고 번들 펌웨어와 일치하는 새로운 32비트 USB 디버그 프로토콜을 중심으로 합니다. 또한 첫 실행 LED 안내와 다수의 새로운 TensorFlow, Modbus, WiFi 예제를 추가합니다. 디버그 프로토콜이 변경되었으므로, 연결하려면 카메라에서 새로운 번들 펌웨어를 실행해야 합니다.

주요 사항

  • V3 부트로더 지원은 펌웨어 로딩 중 보드의 외장 QSPI 플래시 레이아웃을 조회하고, 온보드 데이터 플래시 전체 소거 시 이를 소거합니다 (d953df62f).

  • 센서 및 보드 보고는 연결 시 연결된 카메라의 센서 모듈을 조회하여 새로운 보드 유형 레이블과 함께 상태 표시줄에 표시합니다(OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) (0ffa82958).

  • TensorFlow 모델 복사를 통해 .network 신경망 파일뿐만 아니라 .tflite 모델도 카메라에 복사할 수 있습니다 (ad1aa98f0).

  • 온보드 데이터 플래시 소거(Erase Onboard Data Flash)는 펌웨어를 다시 플래시하지 않고 확인 프롬프트 후 카메라의 온보드 파일시스템 플래시만 소거하는 새로운 Tools 명령입니다 (d953df62f, 98686ac46).

  • 첫 실행 LED 안내는 온보드 LED 상태를 설명하고 영구적으로 닫을 수 있는 새로운 OpenMV Cam LED Colors 대화 상자입니다 (c2d00422f).

새로운 기능

  • V3 부트로더는 펌웨어 로딩 중 QSPI 플래시 레이아웃을 조회하고, 온보드 데이터 플래시 전체 소거 시에만 외장 QSPI 플래시를 소거합니다. connectClicked는 V3 보드에서 항상 bootloaderQSPIFLayout을 구동하지만, bootloaderQSPIFEraseforceFlashFSErase가 설정된 경우에만 실행합니다(QSPI 쓰기/메모리 테스트 명령은 IO 계층에 구현되어 있지만 로더에서는 사용되지 않습니다) (d953df62f).

  • 센서 및 보드 상태는 연결 시 카메라의 센서 모듈을 조회하여 새로운 sensors.txt ID-이름 매핑을 사용해 새로운 보드 유형 레이블과 함께 상태 표시줄에 표시합니다(OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) (0ffa82958).

  • 첫 실행 LED 안내는 첫 실행 시 helloworld_1.py가 열린 문서일 때 짧은 지연 후 나타나 온보드 LED 상태(녹색 깜박임 = 부트로더 실행 중, 파란색 = main.py 실행 중, 흰색 = 하드웨어 오류 패닉)를 설명하는 새로운 OpenMV Cam LED Colors 대화 상자를 추가합니다. “Don’t show this message again.” 체크박스는 DONT_SHOW_LED_STATES_AGAIN 설정을 통해 닫힘 상태를 유지합니다 (c2d00422f).

  • OpenMV Cam 드라이브 폴더 열기(Open OpenMV Cam Drive folder)는 시스템 파일 브라우저에서 카메라의 마운트된 드라이브를 여는 새로운 Tools 메뉴 항목입니다 (a49f54305).

  • 온보드 데이터 플래시 소거(Erase Onboard Data Flash)는 펌웨어를 다시 플래시하지 않고 확인 프롬프트 후 온보드 파일시스템 플래시만 소거하는 새로운 Tools 명령입니다 (d953df62f, 98686ac46).

  • TensorFlow 모델 복사를 통해 모델 복사 대화 상자에서 .network 신경망 파일에 더해 .tflite 모델도 카메라에 복사할 수 있습니다. 대화 상자 필터에도 Label Files (*.txt)All Files 항목이 추가되었습니다 (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • 디버그 프로토콜 버전 전환은 신뢰성을 위해 펌웨어 3.5.3+와 통신할 때 GetAttribute, SetAttribute, FBEnable, JPEGEnable 시리얼 명령을 분할합니다 (83b9ca18f).

  • 새로운 번들 예제는 TensorFlow Lite mobilenet 및 인물 검출 슬라이딩 윈도우 스크립트와 STM32Cube.AI(nn_stm32cubeai.py) MNIST 예제, 새로운 32-modbus 폴더(modbus_rtu_slave.py, modbus_apriltag.py), WiFi 실드 추가(http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI 슬레이브, 그리고 CAN을 추가합니다 (e26b90d79, 42ba8f5c4).

기타 변경 사항 및 개선

  • USB 디버그 프로토콜을 새 펌웨어에 맞게 업데이트했습니다: 속성 읽기는 새로운 32비트 ATTR_READ_2 (0xCA) 명령을 사용하며, 속성, 값, 프레임버퍼 활성화 페이로드는 16비트 워드 대신 32비트 long으로 전송됩니다 (55d7cfe70).

  • Save open script to OpenMV Cammain.py를 기록함을 명확히 하기 위해 Save open script to OpenMV Cam (as main.py)로 이름을 변경했습니다 (a49f54305).

  • Run Bootloader의 용도를 명확히 하기 위해 Run Bootloader (Load Firmware)로 이름을 변경했습니다 (ad1aa98f0).

  • 예제 메뉴는 이제 숫자 폴더/파일 접두사를 기준으로 정렬되며, 표시되는 이름에서 앞쪽의 NN- 숫자가 제거됩니다 (ad1aa98f0).

  • 출력 및 시리얼 터미널은 이제 하드코딩된 너비 8 대신 텍스트 편집기 설정의 구성 가능한 시리얼 터미널 탭 너비를 사용하여 탭을 공백으로 렌더링합니다 (98686ac46).

  • Linux 드라이브 감지는 이제 카메라 드라이브를 연결할 때 fuseblk로 마운트된 파일시스템(예: exFAT/NTFS 볼륨)도 허용합니다 (c0dbdd9e5).

  • IDE 도움말에 표시되는 번들 MicroPython HTML 문서 세트(라이브러리 레퍼런스, esp8266/esp32 튜토리얼, 생성된 페이지 및 이미지)를 업데이트했습니다 (e69d71f7c, 90b5c6eb5, 97b0f645a).

버그 수정

  • 누산기를 int에서 64비트로 확장하여 히스토그램 통계(평균, 사분위수, 중앙값, 표준 편차)의 숫자 오버플로를 수정함으로써 큰 이미지에서 잘못된 통계가 나오는 것을 방지했습니다 (55d7cfe70).

  • Linux에서의 연결 해제/꺼내기를 재작업했습니다. 신뢰할 수 없던 syncfs/closedir 플러시를 제거하고, 이제 진행 대화 상자 없이 일반 umount 명령으로 드라이브를 마운트 해제합니다 (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • 이제 보드의 USB 드라이브는 펌웨어가 충분히 최신이거나 .openmv_disk 마커 파일이 있을 때만 연결되어, IDE가 잘못된 이동식 드라이브를 가져가는 것을 방지합니다 (e464eaed4).

  • 재연결 로직을 수정하여, 연결된 상태에서 부트로더/소거 작업을 트리거하면 이제 먼저 깔끔하게 연결을 해제한 후 재시도하므로 작업 상태에 멈추는 현상을 방지합니다 (d953df62f).

  • 카메라로 스크립트를 보낼 때 사용하는 주석/공백 제거기를 문자열을 인식하는 상태 머신으로 다시 작성하여, 문자열 내부의 # 문자가 더 이상 주석으로 오인되지 않으며 후행 공백과 docstring도 처리됩니다 (24dff1b2f).

  • 여러 연결/터미널 대화 상자 메시지의 번역 문자열 처리를 수정하여, 포함된 셸 명령(sudo adduser, pydfu 설치 단계)이 더 이상 번역 가능한 텍스트의 일부가 되지 않고 올바르게 렌더링되도록 했습니다 (b5705a57e).

플랫폼 및 도구 지원

  • Qt Creator 기반: 4.0.2.

  • OpenMV Cam H7 Plus 보드/펌웨어의 이름을 OPENMV4R에서 OPENMV4P(OMV4P_H7_32768_SDRAM)로 변경하고 그 펌웨어를 새 이름으로 번들했습니다 (c0dbdd9e5).

  • H7 Plus 보드 표시 이름을 공백 대신 밑줄을 사용하도록 수정했습니다(OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • 번들 펌웨어가 이번 릴리스 전반에 걸쳐 업데이트되어 OPENMV2/3/4/4P의 버전 3.5.2에서 마무리되었습니다(최종 증가는 15c07498c에서, 이전 누적 증가는 3.4.2로 42ba8f5c4, 3.4.3으로 a99c2e3e1, 3.5.0으로 e26b90d79, 3.5.1로 97b0f645a에서 이루어졌습니다).

  • 번들 펌웨어 버전: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.

  • OpenMV IDE 버전이 2.2.1에서 2.4.0으로 올라갔습니다.

호환성 변경 사항

USB 디버그 속성 읽기 프로토콜이 기존 16비트 ATTR_READ (0x8A) 명령에서 새로운 32비트 ATTR_READ_2 (0xCA) 명령으로 전환되었으며, 속성, 값, 활성화 페이로드가 이제 32비트 long으로 전송됩니다. 또한 IDE는 연결 시 카메라 센서 ID를 조회합니다. 이를 위해서는 새 프로토콜을 구현한 펌웨어가 필요합니다. 번들로 제공되는 1.2.15 / 1.4.11 펌웨어가 이를 지원하므로, 구형 카메라는 연결하려면 새 펌웨어로 플래시해야 합니다.