Skip to content

not fast enough at 3200Hz #1

Open
@hutauf

Description

Hi,
I've tried your code on an ESP32 development board. If I run it as is, I get the message that the actual sampling rate is 320Hz, so only 1/10th of the desired 3200Hz. Which board did you use to achieve the 3200Hz?

I also had to reduce the aquisition_time to 0.1s, because otherwise I would ran into MemoryErrors.

Here is my code:

def start_measurement():
    accelerometer = Accelerometer()
    accelerometer.init_spi()
    accelerometer.set_sampling_rate(3200)
    accelerometer.set_g_range(16)
    accelerometer.set_fifo_mode('stream')
    accelerometer.set_power_mode('measure')
    cntr=0
    try:
        while True:
            cntr+=1
            buf, T = accelerometer.read_continuos_xyz_fromfifo(acquisition_time=0.1)
            x, y, z = accelerometer.xyzbytes2g(buf)
            print(len(x))
            if cntr>100:
                break
    except:
        pass
    finally:
        accelerometer.set_power_mode('standby')
        accelerometer.deinit_spi()

I've tried removing stream/standby switches and cs.value() calls to make it faster, but with no success. Only if I remove your "# it is impossible to read a block of measures from fifo"-for-loop, and read all the data inside the fifo at once, I can read ~28 samples at once (so right before the FIFO is full, maybe) and end up with an actual sampling rate of ~7200 or ~4500Hz, depending if I use cs.value calls or not. Which is strange, because I'm checking the size of the FIFO and I am only reading what is there. So I guess I'm not acually reading the whole FIFO, and it just pops one sample... But the size is not increasing to 32, so I'm really not sure what is happening. The data that I get from this also doesn't look plausible, there are a lot of 0's in there, but not everywhere as I would expect.
Why is it that we cannot read the complete FIFO at once?
Should I switch to Adruino IDE/C and back off of python if I need the 3200Hz? Did you manage to get it working?

Thanks

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions