SlimeVR / SlimeVR-Tracker-ESP

SlimeVR tracker firmware for ESP32/ESP8266 and different IMUs
Apache License 2.0
830 stars 285 forks source link

Unable to use 9250s as auxiliary if the main imu is 20948 #127

Closed TinyOra closed 2 years ago

TinyOra commented 2 years ago

[DEBUG] [ICM20948Sensor:0] DMP initialized [DEBUG] [ICM20948Sensor:0] Using 9 axis configuration [DEBUG] [ICM20948Sensor:0] Enabled DMP sensor for sensor orientation [DEBUG] [ICM20948Sensor:0] Set Quat9 to 100Hz frequency [DEBUG] [ICM20948Sensor:0] FIFO Enabled [DEBUG] [ICM20948Sensor:0] DMP Enabled [DEBUG] [ICM20948Sensor:0] Reset DMP [DEBUG] [ICM20948Sensor:0] Reset FIFO [INFO ] [MPU9250Sensor:1] Connected to MPU9250 (0x71) at address 0x69 [INFO ] [MPU9250Sensor:1] Flip front to confirm start calibration [DEBUG] [MPU9250Sensor:1] Starting calibration... [DEBUG] [MPU9250Sensor:1] Gathering raw data for device calibration... [INFO ] [MPU9250Sensor:1] Put down the device and wait for baseline gyro reading calibration [INFO ] [MPU9250Sensor:1] Gently rotate the device while it's gathering accelerometer and magnetometer data [DEBUG] [MPU9250Sensor:1] Calculating calibration data...

User exception (panic/abort/assert) --------------- CUT HERE FOR EXCEPTION DECODER ---------------

Unhandled C++ exception: OOM

stack>>>

last failed alloc call: 4020D112(24000)

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

last failed alloc caller: 0x4020d112

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 3460, room 16 tail 4 chksum 0xcc load 0x3fff20b8, len 40, room 4 tail 4 chksum 0xc9 csum 0xc9 v0006f7e0 ~ld

TheDevMinerTV commented 2 years ago

Seems like we're running out of memory here :/

Eirenliel commented 2 years ago

weren't memory optimized for 9250 already?

TinyOra commented 2 years ago

weren't memory optimized for 9250 already?

Yep , it can be used alone , but if my main IMU is 20948, and 9250 as aux, i can't finish calibration process

TinyOra commented 2 years ago

I made a separate tracker for the chest, But the feet are difficult :<

LETS-BEE commented 2 years ago
Eirenliel commented 2 years ago

So we need to reduce memory usage of Magneto...

deiteris commented 2 years ago

Magneto library doesn't consume much memory with recent changes. The problem is most likely that DMP image is allocated on stack and takes a lot of space. We should try allocating it on heap and freeing when not needed.

unlogisch04 commented 2 years ago

With changing to pgmspace i could free about 14'304 byte heap on ESP8266. No change on ESP32 i think this was already fine before. #138

Eirenliel commented 2 years ago

Should be fixed. Reopen if the issue persists with the latest main.

TinyOra commented 2 years ago

Should be fixed. Reopen if the issue persists with the latest main.

After this fixed, new issue produced : When finished calibration, it will work fine with 20948, but if you restart tracker, 9250 will not work anymore(just like you never do a calibration process) Now the 9250 need recalibrate every time restart the tracker, otherwise it will not work (20948 is working fine)

[OK] Port opened [DEBUG] [ICM20948Sensor:0] DMP initialized [DEBUG] [ICM20948Sensor:0] Using 9 axis configuration [DEBUG] [ICM20948Sensor:0] Enabled DMP sensor for sensor orientation [DEBUG] [ICM20948Sensor:0] Set Quat9 to 100Hz frequency [DEBUG] [ICM20948Sensor:0] FIFO Enabled [DEBUG] [ICM20948Sensor:0] DMP Enabled [DEBUG] [ICM20948Sensor:0] Reset DMP [DEBUG] [ICM20948Sensor:0] Reset FIFO [INFO ] [MPU9250Sensor:1] Connected to MPU9250 (0x71) at address 0x69 [DEBUG] [MPU9250Sensor:1] Enabling DMP... [DEBUG] [MPU9250Sensor:1] DMP ready! Waiting for first interrupt... [INFO ] [WiFiHandler] Setting up WiFi [INFO ] [WiFiHandler] Loaded credentials for SSID potato and pass length 8 [DEBUG] [WiFiHandler] Status: 7 [NOTICE] OTA updates allowed .[ERROR] [ICM20948Sensor:0] Sensor timeout I2C Address 0x68 ...[INFO ] [WiFiHandler] Connected successfully to SSID 'potato', ip address 192.168.1.30

Logs seems to be normal except i got a "Sensor timeout", but in fact, the 20948 is working fine I had tried it on the other 20948 Main trackers, same issue

TinyOra commented 2 years ago

Should be fixed. Reopen if the issue persists with the latest main

I had done some more tests, I noticed it has some probability that it will work, not completely out of work The details is in discord https://discord.com/channels/817184208525983775/912982617010352159/959802967928754176

Sorry to bother you so much, thanks for a lot

unlogisch04 commented 2 years ago

seems a different issue with the configuration storage (eeprom). PR #134 should fix that anyway.

Eirenliel commented 2 years ago

134 in main, see if this works

TinyOra commented 2 years ago

134 in main, see if this works

It's work ,thanks