cancel
Showing results for 
Search instead for 
Did you mean: 

Why AHRS Update rate is 50Hz when STM32 can work at 72MHz ?

harinath
Associate III
Posted on April 06, 2012 at 09:35

I don't understand why AHRS updated only at 50Hz when STM32F103xx can work at 72MHz.

I want to reprogram iNEMO v2 board to change the AHRS update rate to 200Hz. 

What limits STM32 to update AHRS at only 50Hz.

I'm working on designing a AHRS board based on STM32, if STM32 can't update more than 150Hz, i want to drop working on STM32.

Thanks.

#inemo #ekf-update-rate
4 REPLIES 4
email2jprasad
Associate II
Posted on April 09, 2012 at 23:24

Hi Harinath

I am not expert in this area. But trying to provide you some help here.

I believe we can increase the output rate more than 50Hz. the limitations might be from embedded EKF frequency which is 100Hz( EKF freq limitation understood from inemo_marketing_pres.pdf). otherwise proper buffer managment, and increasing I2C bus speed are some of the pointers to enable increasing output rates.

I could get 400Hz raw out put from accel and gyro. Just now i fixed the code to get this rate.

Regards,

Prasad 

harinath
Associate III
Posted on April 10, 2012 at 04:05

Hi Prasad,

Thank you for reply. They say EKF updatesup to 100Hz in

inemo_marketing_pres.pdf .

But why did they limit to 50Hz ? I don't understand. Also, when EKF update is 50Hz, why do they limit sensors data rate to 50Hz ?

It is possible to provide each sensor data at different desired rates according to user settings. By the way, i changed below setting to 100Hz in

void Timer_Config(void)

function of

iNemo.c

unsigned 
char
frequency = 50; 
//This value is the frequency interrupts in Hz

Programmed the iNEMO v2 through IAR Embedded Workbench & ST-Link JTAG/SWD. Opened the visual studio sample they provided, modified the mode of data streaming from default to AHRS, i could get the data streaming fine. I think EKF is working at 100Hz. But, I'm unable to check at what rate the EKF working. Provide if you have any idea to check this. The iNEMO Suite GUI allows us to get raw data of accelerometer at 400Hz. I think you are talking about when the AHRS is enabled, you are getting raw data of accelerometer at 400Hz, isn't it ? I'm curious to know what things have you changed to get accelerometer data at 400Hz when AHRS is enabled. Thanks Harinath
email2jprasad
Associate II
Posted on April 10, 2012 at 06:43

Hi Harinath,

By raw i meant, unprocessed measurements from sensors, both accel and gyro at same time.

I am also a developer like you, so I said I am not an expert in this area in my last post.

The code on which we are working might be different, but the areas to look in to are those, that I already told you in my last post to get higher output rates. (client server communication buffer sizes, I2C speeds)

Unfortunately I wont be able to assist you much. Since I was able to change the acquiring rate to more than 100Hz, I thought of conveying you that I could do it in raw mode, and you would not loose hope : )

May be some expert should provide more clues to you if you need.

Regards,

Prasad

email2jprasad
Associate II
Posted on April 18, 2012 at 09:19

Hi Harinath,

One more point is that my STM32 board is fitted with LIS3DH and L3G4200D sensors.

If you have other model of sensors with different frequency set, it might be a frequency mismatch, and the server will choose based on the allowed sensor frequencies and endup with a different frequencies than the requested frequencies.

Br,

Prasad