v3.9.4¶
v3.9.4는 buzzer 모듈, Himax HM01B0 모션 검출 ioctl(저전력 모션 감지 웨이크업 예제 포함), MT9V034 리드아웃 윈도우 제어, Ethernet 저전력 함수, OV7670 카메라 드라이버, 그리고 Arduino Nano 33 BLE Sense 카메라를 추가합니다. 또한 대규모의 JPEG / LCD / TV 속도 개선이 적용됩니다. VSYNC 출력 API가 콜백으로 교체되었고 MT9V034 게인/노출 계산이 수정되었습니다 — 아래의 호환성을 깨는 변경 사항을 확인하세요.
주요 변경 사항¶
Buzzer 모듈 — OpenMV Pure Thermal에서 새로운
buzzer모듈(freq(),duty(),RESONANT_FREQ).HM01B0 모션 검출 — 새로운 Himax 모션 검출 ioctl과 저전력 모션 감지 웨이크업 예제.
MT9V034 리드아웃 윈도우 —
sensor.ioctl()을 통해 글로벌 셔터 리드아웃 윈도우를 제어합니다.새로운 카메라 / 보드 — 기본 OV7670 드라이버, Arduino Nano 33 BLE Sense 카메라, 그리고 Bormio 보드.
더 빠른 파이프라인 — SIMD JPEG 인코더 재작성, 더 빠른 디베이어링, 그리고 대폭적인 LCD/TV 전송 속도 개선.
호환성을 깨는 변경:
sensor.set_vsync_output()이sensor.set_vsync_callback()으로 교체되었고 MT9V034 게인/노출 계산이 수정되었습니다 — 호환성을 깨는 변경 사항을 참조하세요.
새로운 기능¶
Buzzer —
buzzer.freq(),buzzer.duty(), 그리고buzzer.RESONANT_FREQ상수를 갖춘buzzer모듈을 추가했습니다(OpenMV Pure Thermal).HM01B0 모션 검출 —
IOCTL_HIMAX_MD_ENABLE/MD_WINDOW/MD_THRESHOLD/MD_CLEAR및IOCTL_HIMAX_OSC_ENABLEioctl을 추가했으며, Himax 모션 검출 예제와himax_wakeup_on_motion_detection.py저전력 웨이크업 예제를 함께 제공합니다.MT9V034 리드아웃 윈도우 —
sensor.ioctl()을 통한 MT9V034 리드아웃 윈도우 제어를 위해IOCTL_SET_READOUT_WINDOW/IOCTL_GET_READOUT_WINDOW를 추가했습니다.Ethernet 저전력 — Ethernet 전원 차단 / 저전력 함수를 추가했습니다.
Portenta — 외부 오실레이터 활성화/비활성화 콜백 함수를 추가했습니다.
기타 변경 및 개선 사항¶
JPEG 인코더를 SIMD로 재작성하고 Bayer→YCbCr 인코딩 속도를 높였으며, 스크립트 실행 중 하드웨어 JPEG 코어의 전원을 유지하고, 디베이어링 속도를 높였습니다(VGA에서 약 19.5 ms). JPEG 압축을 MDMA로 오프로드하고, SIMD/효율적인 DMA로 TV/LCD 전송 경로를 가속했으며, SPI LCD 버스 사용량을 대폭 줄였습니다. 고속 USB를 위한 USB3320 ULPI PHY 드라이버를 추가했습니다.
버그 수정¶
카메라 및 센서:
HM01B0 드라이버 초기화/스트리밍을 수정하고 AE 타깃 / 최대 게인을 조정했으며, MT9V034 AGC/AEC 게인 클램핑을 수정하고, OV5640 오토포커스 펌웨어 로딩(바이트 순서)을 수정했습니다.
디스플레이:
64 KB보다 큰 SPI LCD DMA 전송, LCD 출력 극성, 그리고 LCD 버스 안정성(AXI QOS)을 수정했습니다.
시스템 및 연결:
CYW43 WiFi 드라이버가 사용하는 SDMMC 인스턴스를 수정하고(보드에서 정의된 SDMMC 인스턴스 사용), FLIR Lepton DMA 효율을 개선했으며(H7에서 VOSPI를 20 MHz로 상향), Portenta 저전력 / 대기 동작을 수정하고(PMIC SW1 전류 제한, Ethernet 및 ULPI 저전력), RTSP 서버가 순서가 뒤바뀐
CSeq및PLAY Range헤더를 허용하도록 만들었으며(FFPLAY), 링커 스택의 8바이트 EABI 정렬을 수정하고, Portentamqtt_sub.py예제의 깨진 import를 수정했습니다.
하드웨어 및 보드 지원¶
OV7670 카메라 센서 — 기본 드라이버.
Arduino Nano 33 BLE Sense — 리셋 핀 및 I2C 버스 수정이 포함된 카메라 센서 드라이버(nrf 포트).
HM01B0 — 320x320 해상도를 추가했습니다.
Bormio — PLL 클록 구성, 플래시 레이아웃, 그리고 GPIO PORT K(Portenta에서도 활성화).
USB3320 ULPI PHY — 고속 USB.
호환성을 깨는 API 변경¶
v3.9.3과 v3.9.4 사이의 사용자에게 보이는 API 변경. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.
각 변경에는 그 영향이 태그로 표시되어 있습니다:
major — 해당 기능을 사용한 대부분의 스크립트에 영향을 줍니다. 코드를 이식해야 합니다.
behavior — 동일한 API, 다른 결과. 튜닝된 스크립트를 다시 확인하세요.
변경 사항은 그 순서대로 영향별로 그룹화되어 있습니다. 코드를 이식하기만 하면 된다면, 끝에 있는 마이그레이션 체크리스트로 건너뛰세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
VSYNC 출력이 콜백으로 교체됨 (major)¶
sensor.set_vsync_output(pin)이 제거되고 sensor.set_vsync_callback(callback)으로 교체되었습니다. VSYNC 라인은 더 이상 Pin을 직접 구동하지 않습니다. 대신 VSYNC 상태로 Python 호출 가능 객체가 호출되며, 콜백이 직접 Pin을 토글합니다. sensor.set_vsync_output()을 사용한 코드는 이식해야 합니다(업데이트된 vsync_gpio_output.py 예제 참조).
커밋: 5bbe25c20
MT9V034 게인/노출 계산 수정됨 (behavior)¶
MT9V034 클록 속도와 게인/노출 계산이 수정되어, sensor.set_auto_gain() / sensor.set_auto_exposure()가 이제 이전보다 정확한(따라서 다른) 값을 생성합니다. MT9V034 글로벌 셔터 카메라에서 이전의 잘못된 계산을 보정하기 위해 게인/노출 값을 하드코딩했던 스크립트는 그러한 우회책을 제거하고 다시 튜닝해야 합니다.
커밋: 4420536c4
마이그레이션 체크리스트¶
v3.9.4로 깔끔하게 이식하려면 일반적으로 다음 작업이 필요합니다:
sensor.set_vsync_output(pin)을sensor.set_vsync_callback(callback)으로 교체하고 콜백 내부에서Pin을 토글하세요(VSYNC 변경).수정된 계산에 맞춰 MT9V034 게인/노출 우회책을 다시 튜닝하세요(MT9V034 변경).
다른 모든 스크립트는 변경 없이 실행됩니다.