After some adventures, I have the bootloader/firmwared updated via DFU.
It never worked from the IDE because the Python version can’t find the installed pyusb module even though it works when trying the Python REPL directly.
UALC02TV456HV2Q:~ jgraves$ python
Python 2.7.13 |Anaconda 4.4.0 (x86_64)| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import usb
>>> import usb.core
I think it’s possible that the IDE is hard-coding a path to the python executable but that version of python doesn’t have the required libraries installed.
UALC02TV456HV2Q:pydfu jgraves$ which python
I was able to run it directly from the command line after changing to the
/Applications/OpenMV IDE.app/Contents/Resources/pydfu directory
UALC02TV456HV2Q:pydfu jgraves$ python pydfu.py -l
Bus 20 Device 039: ID 0483:df11
0x8000000 4 pages of 16K bytes
0x8010000 1 pages of 64K bytes
0x8020000 7 pages of 128K bytes
UALC02TV456HV2Q:pydfu jgraves$ python pydfu.py -u /Users/jgraves/Downloads/firmware/OPENMV2/bootloader.dfu
DfuSe v1, image size: 13621, targets: 1
Target 0, alt setting: 0, name: "ST...", size: 13336, elements: 1
0, address: 0x08000000, size: 13328
usb: 0483:df11, device: 0x0000, dfu: 0x011a, UFD, 16, 0x25169075
0x08000000 13328 [=========================] 100%
even with the new bootloader the IDE still can’t find the firmware directory.
I tried multiple times from the IDE (restart IDE, unplug/plug in board, etc)
I finally just updated from the command line.
UALC02TV456HV2Q:pydfu jgraves$ python pydfu.py -u /Users/jgraves/Downloads/firmware/OPENMV2/firmware.dfu
DfuSe v1, image size: 981909, targets: 1
Target 0, alt setting: 0, name: "ST...", size: 981624, elements: 1
0, address: 0x08010000, size: 981616
usb: 0483:df11, device: 0x0000, dfu: 0x011a, UFD, 16, 0x9934b548
0x08010000 981616 [=========================] 100%
I can now connect, the helloworld_1.py works without commenting out the
skip_frames call and the firmware version reports 2.5.0.