Cannot Achieve Default Framerate (Lighting is not the issue)

I am using the default hello world example. I cannot achieve the default framerate listed here (More Speed | OpenMV). In fact, I can only achieve 50% of what the blog suggest.

I’ve tried the OpenMV H7 as well as the OpenMV H7 plus. I’ve tried a wide variety of lightning conditions. The lighting isn’t affecting the FPS at all (e.g. covering up the lens vs pointing the lens directly at the sun caused no change in framerate). I have the firmware updated, I’ve tried a variety of sensor settings, and I’ve disabled the frame buffer. I still can’t get the desired FPS.

On a possibly related note, the FPS clock in the hello world example is inaccurate.

clock = time.clock()                
while(True):
    clock.tick()                   
    img = sensor.snapshot()         
    print(clock.fps())

When I time instead using the utime module with utime.ticks_ms(), the FPS is much lower than what clock.fps() is producing. I’ve verified the utime.ticks_ms() timing over the clock.fps() timing by recording the resulting video and checking the FPS using various methods. Perhaps the blog is advertising an inaccurate FPS produced by the clock module?

Um, we might have changed what FPS the system runs at in a firmware update. You need to disable the frame buffer to see what the FPS is without the cost of JPEG compression to stream the image to the PC.

The 150 FPS to be clear is just the rate at which the camera can generate images. You can’t actually process data at that rate.

However… in a few months we will be releasing triple buffer support which will lock the FPS to max and allow you to run faster than the camera makes frames.