Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data-forwarder in CLI Potentially Buggy When Detecting Frequency #41

Open
floftus-at-csm opened this issue Aug 23, 2023 · 0 comments
Open

Comments

@floftus-at-csm
Copy link

Current set up:
Arduino Uno with Gyroscope and Accelerometer printing to the serial. Baud Rate 115200. Frequency set at 50Hz
Macbook running Big Sur OS

When I run edge-impulse-data-forwarder I get this error:

[SER] Detecting data frequency...
[SER] Failed to get information off device No valid sensor readings received from device. Note that the data forwarder can only auto-detect frequencies >2Hz. You can override the frequency via --frequency

When I run edge-impulse-data-forwarder --frequency 50 I get the same error

When I run edge-impulse-data-forwarder --frequency 1 this runs and I get this message:

[SER] Detected data frequency: 21.6Hz
[SER] Sampling frequency seems to have changed (was 50Hz, but is now 21.6Hz), re-configuring device.

[SER] Detecting data frequency...
[SER] Detected data frequency: 50Hz
? 6 sensor axes detected (example values: [13292,7764,3552,-3216,-72,-113]). Wha
t do you want to call them? Separate the names with ',': a_x,a_y,a_z,g_x,g_y,g_z


[SER] Overriding frequency to 1Hz (via --frequency)

So I can currently only run the program if I override the frequency to 1hz. Is this a limitation with my setup or a problem in the frequency detection of Edge Impulse?

Thanks!

btw my arduino code looks like this

#include <Wire.h>
const int MPU = 0x68;
int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;
#define CONVERT_G_TO_MS2 9.80665f
#define FREQUENCY_HZ 50
#define INTERVAL_MS (1000 / (FREQUENCY_HZ + 1))

static unsigned long last_interval_ms = 0;
void setup() {
  Wire.begin();
  Wire.beginTransmission(MPU);
  Wire.write(0x6B);
  Wire.write(0);
  Wire.endTransmission(true);
  Serial.begin(115200);
}
void loop() {
  if (millis() > last_interval_ms + INTERVAL_MS) {
    last_interval_ms = millis();
    Wire.beginTransmission(MPU);
    Wire.write(0x3B);
    Wire.endTransmission(false);
    Wire.requestFrom(MPU, 12, true);
    AcX = Wire.read() << 8 | Wire.read();
    AcY = Wire.read() << 8 | Wire.read();
    AcZ = Wire.read() << 8 | Wire.read();
    GyX = Wire.read() << 8 | Wire.read();
    GyY = Wire.read() << 8 | Wire.read();
    GyZ = Wire.read() << 8 | Wire.read();

    // Accelerometer
    Serial.print(AcX);
    Serial.print(",");
    Serial.print(AcY);
    Serial.print(",");
    Serial.print(AcZ);
    Serial.print(",");
    // Gyroscope
    Serial.print(GyX);
    Serial.print(",");
    Serial.print(GyY);
    Serial.print(",");
    Serial.println(GyZ);
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant