fps is slow when OpenMV boot from file system

Hi,
I run the code.
IDE: 1.6.0; firmware: 2.4.1;

# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!

import sensor, image, time

from pyb import UART
uart = UART(3, 115200)

sensor.reset()                      # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000)     # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.



while(True):
    clock.tick()                    # Update the FPS clock.
    img = sensor.snapshot()         # Take a picture and return the image.
    uart.write(str(clock.fps())+"\n")              # Note: OpenMV Cam runs about half as fast when connected
                                    # to the IDE. The FPS should increase once disconnected.

And when I run this code on OpenMV IDE, this fps is 46, when I disabled framebuffer, the fps is 91.
But when I save this code as “main.py” in file system. After boot, the fps is only 29.

So how to improve the fps?

Thanks.

really? Maybe I have the same problem,let me check

Ibrahim, can you check this? Maybe timeout_char = 1000 is missing for the UART call?

I’m getting ~90FPS. Tried flash and uSD and both run at 90FPS.
Screenshot from 2017-08-07 18-50-35.png
This is an M7, right ?

Yes,the board is an M7. :open_mouth:

Yeah, I know what’s wrong… Your getting serial characters overwriting each other…

Please add “timeout_char = 1000” to the UART constructor as another argument.

Still no work, I added “timeout_char = 1000”, still 29fps.

import sensor, image, time

from pyb import UART
uart = UART(3, 115200, timeout_char = 1000)

sensor.reset()                      # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000)     # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.



while(True):
    clock.tick()                    # Update the FPS clock.
    img = sensor.snapshot()         # Take a picture and return the image.
    uart.write(str(clock.fps())+"\n")              # Note: OpenMV Cam runs about half as fast when connected
                                    # to the IDE. The FPS should increase once disconnected.

Can you copy the print out text here?

92 FPS… make sure to disable the frame buffer otherwise you get 30 FPS…

But when boot main.py from file system, how to disable framebuffer?

Oh, yes, from the file system.

Mmm, okay… Ibrahim, do we compress the frame buffer if the camera is attached to the PC but OpenMV IDE isn’t connected? Maybe that’s the problem? The IDE normally tells the camera to disable the frame buffer.

The state is preserved so when you soft-reset the cam the FB stays disabled or enabled. I was able to reproduce the issue, the fb_enabled flag was Not initialized. Will fix it.

@kidswong999

Please test the attached FW let me know if it fixes the issue.
firmware.zip (1010 KB)

Hi, in fact, I don’t know how to download bin file. :smiley:
Could you send a dfu file?

Thanks.

OpenMV IDE, tools, run bootloader.

It works!
Thanks.

Thanks for finding this bug.