sparkfun / 9dof_razor_imu Goto Github PK
View Code? Open in Web Editor NEW9DOF Razor IMU available from SparkFun Electronics
License: Other
9DOF Razor IMU available from SparkFun Electronics
License: Other
There are some errors while compiling without the solution file.
First: non existing member of the volatile structures of U
Error 'volatile struct ' has no member named 'TRCPT' at 9dof_bootloader_sparkfun\board_driver_usb.c 176 52 Build
Error 'volatile struct ' has no member named 'STALLRQ' \9dof_bootloader_sparkfun\board_driver_usb.c 307 51 Build
Both of them are located in USB_DEVICE_EPINTFLAG_Type struct in usb.h. But the compiler could not find.
Furthermore, could you guide me how to correctly compile this in Atmel studio?
The board shows up as /dev/ttyACM0 but cannot be read from or written to. Arduino IDE in Linux hangs on writing data in serial monitor. The board works fine in windows.
Hi,
tried to compile razor firmware in arduino IDE.
Included library SparkFunMPU9250-DMP.cpp from this git directory.
But during compilation I receive several errors.
MPU9250DMP/SparkFunMPU9250-DMP.cpp.o: In Funktion MPU9250_DMP::dmpSetOrientation(signed char const*)':
/home/marco/sketchbook/libraries/MPU9250DMP/SparkFunMPU9250-DMP.cpp:532: Nicht definierter Verweis auf `mpu_set_lpf'
/home/marco/sketchbook/libraries/MPU9250DMP/SparkFunMPU9250-DMP.cpp:532: Nicht definierter Verweis auf "mpu_set_sample_rate"
/home/marco/sketchbook/libraries/MPU9250DMP/SparkFunMPU9250-DMP.cpp:532: Nicht definierter Verweis auf "mpu_set_compass_sample_rate"
/home/marco/sketchbook/libraries/MPU9250DMP/SparkFunMPU9250-DMP.cpp:532: Nicht definierter Verweis auf "mpu_get_gyro_sens"
/home/marco/sketchbook/libraries/MPU9250DMP/SparkFunMPU9250-DMP.cpp:532: Nicht definierter Verweis auf "mpu_set_gyro_fsr"
/home/marco/sketchbook/libraries/MPU9250DMP/SparkFunMPU9250-DMP.cpp:532: Nicht definierter Verweis auf "mpu_get_accel_sens"
....
collect2: error: ld returned 1 exit status
Any advise?
Using this firmware, it seems the gyro introduces a significant drift into the roll, pitch, and yaw measurements (about 1 degree/second). I found that this can be fixed by changing this section of the code:
if (ENABLE_GYRO_CALIBRATION)
{
// Gyro calibration re-calibrates the gyro after a set amount
// of no motion detected
dmpFeatureMask |= DMP_FEATURE_SEND_CAL_GYRO;
}
and replacing it with the following:
if (ENABLE_GYRO_CALIBRATION)
{
// Gyro calibration re-calibrates the gyro after a set amount
// of no motion detected
dmpFeatureMask |= DMP_FEATURE_GYRO_CAL; //added this line
dmpFeatureMask |= DMP_FEATURE_SEND_CAL_GYRO;
}
This way the gyro calibrates after 8 seconds of no movement from the accelerometer. I can't think of a situation in which you wouldn't want this feature turned on.
Hi, trying the MPU9250_Basic example from the Arduino library, I can see (using the serial port monitor) that the measurements are sent from the unit with just four or even three digits of precision. Both the accelerometer and the magnetometer on MPU 9250 have 16-bit ADCs, which means that with the accelerometer returning values such as 1.23, the precision was unnecessarily significantly reduced, was not it? Is it possible to configure the library functions such that higher number of digits can be read from the IMU? Thanks.
I have an issue when runing the Arduino -SPI library for IMU M0. Because in the datasheet there are no reference to identify SPI pins. Therefore can you help us to identify which pins are referenced for SPI protocol.
I have 2 Sparkfun MPU9250 ,first is connected with the arduino by itc I2C pin ,another one is connected with my PC via USB
Accidently I had upload Sparkfun MPU 9250 breakout program (which is connect with i2c in arduino) into the Saprkfun with DMP IMU(which is connect with the PC via USB).
Just after that it cannot detect in COM port.
What should I do?
The Sparkfun 9DOF_razor_imu that I have is not able to store the data on my sd Card which is a SanDisk Ultra 64GB MicroSDXC Class 10 Card. is there a problem with the SD card type or do i have to add any more firmware? Have added all libraries and firmware according to the setup guide
Hello everybody,
I am working on this new Razor Imu M0 with SN14001. I want to use the sampling frequency around 200 hz and i tried many ways to change it however, more than 100 hz always got some errors on ros. i would strongly appreciate if someone have already solved this issue. thanks .
Hi,
Anyone know the correct SPI pinouts of the razor imu mo. In the website they said that 10-13 can be used for SPI communication. Can anyone explain it further. What are the mappings of MISO, MOSI, SCK, and SS to those pins (what is the order.....)
Thank you.
Can you provide a drawing for the overall dimensions, hole dimensions, and the IMU location / orientation? While this info is probably available within the eagle PCB files, it would be much more convenient for your users to publish as a PDF.
I run the code but it doesn't save logs to sd.
Maybe is the problem with the selected pin for SD - 38?
Or maybe I define in the config function something incorrect?
Best Regards
Oleg
In the file "9DOF_Razor_IMU/Libraries/Arduino/src/util/arduino_mpu9250_i2c.cpp", in the function "arduino_i2c_read()", there is a Wire.endTransmission()
after a Wire.requestFrom()
.
That Wire.endTransmission()
is at the moment here: https://github.com/sparkfun/9DOF_Razor_IMU/blob/master/Libraries/Arduino/src/util/arduino_mpu9250_i2c.cpp#L46 and can be removed.
Explanation: Common-mistakes#2
I have two issues with the Roll, Pitch, Yaw values returned from the RAZOR IMU M0.
Yaw values are different every time the IMU turns on.
Depending on the heading of the IMU the time it turns on the yaw 0 value "snaps" on the closest cardinal point.
Roll and Pitch values interchange depending the Yaw value.
Turning the IMU around it's Y mag axis while Yaw is 0, changes the Roll value
Turning the IMU around it's Y mag axis while Yaw is 90, changes the Pitch value
Are those two issues normal? Because they are counterintuitive to me...
I am using MPU9250_DMP_Pedometer example with Adafruit Feather M0.
Once compiled and uploaded the example into the board, I noticed that the walks number and their refresh interval into the serial monitor is so slow and I am not pretty sure that precise.
Anybody can help me? is it necessary calibrate the MPU9250 before or something like that?
Thanks in advanced,
The datasets:
1996551, 0.01, 0.12, -1.00, 0.73, 0.38, 0.31, 12.15, -66.92, -45.91, 0.0369, -0.7548, -0.6537, -0.0402, 169.71
I command t+a+g+m+q
and it should be 1+3+3+3+4 = 14
While the datasets I received is 15. What is the last data?
Any suggestions would be much appreciated!
I just wired up my razor and turned it on, the menu shows up, and I can interact with it, the magnometer and the gyro work properly (print out measurements), however, if I try and trigger the Accelerometer output, the device crashes:
9DOF IMU Firmware v23
==========================
[1]Accelerometer: ADXL345
[2]Magnetometer: HMC5883
[3]Gyroscope: ITG-3200
[4]Raw Output
[5]Change Baud Rate: 57600bps
[Ctrl+z]Toggle Autorun
[?]Help
<PRESSED 1>
x=-22772, y= -28, ITG: GOOD
HMC: GOOD
ADXL: GOOD
9DOF IMU Firmware v23
==========================
[1]Accelerometer: ADXL345
[2]Magnetometer: HMC5883
[3]Gyroscope: ITG-3200
[4]Raw Output
[5]Change Baud Rate: 57600bps
[Ctrl+z]Toggle Autorun
[?]Help
This cycle is accompanied by the LEDs doing their "4 blinks and off" for "good"
Hi!
I have a weird issue that I've seen in two separate firmwares for this IMU board. What I'm observing is that if I connect the IMU to my USB port while the SBC is running everything seems to work well - I can read data, and with the default .ino sending a space character stops the stream (1).
If however I have the IMU plugged in to the SBC when I power up the SBC I read the IMU data just fine but I can't send anything to the board (2).
When debugging I was printing the serial available bytes (LOG_PORT.available()) in case 1 as I was sending characters I could see that available() bytes on the log port increased. In case of 2nd configuration the LOG_PORT.available() always returned 0.
Did anyone run into this? Any tips on how to approach this problem?
The razor_imu_9dof (http://wiki.ros.org/razor_imu_9dof) only mentions that it supports SEN-10736 and SEN-10125. Does it support this model as well?
Dear all,
I bought the Sparkfun Razor imu m0 to compare its results with an industrial optical motion tracking system ( double integration to extract trajectory plus euler angles). The IMU will be used on a model falling in the air from about 3m height and then impacting on the water. I would like to add to my logs an analog input: a voltage signal ranging from 0 to 5v, sampled @100hz like the rest of the imu data. As I am totally new to arduino I kindly ask you a suggestion of how and where to modify the code to add the voltage read to the log file data output and to the serial monitor.
Thank you!
Compass heading values are not responding to reality in RAZOR IMU M0.
A full circle around z axis is changing heading values between 250 and 360 only... (should change respectively with the yaw value but it is not)
Hello,
I wanted to use the sparkfun Razor to record long-term accelerations. However, the default I2C address is 0x68 which conflicts with almost every decent I2C Real-Time Clock on the market.
I suggest that the default address should be changed to 0x69 or exposed with a small port on the breakout to be changed manually
When I initially received the unit, it worked with only the USB connected. I hooked another device to the VCC GRND Rx and TX breakout pins to receive serial output. Now the IMU fails in during loop in the call: if ( imu.dmpUpdateFifo() != INV_SUCCESS )
I also cannot log to the LOG_PORT. LOG_PORT.println("foo") does not produce any output. I debugged the programs progress using the Blue LED.
So several questions. What are the Tx Rx breakout pins? Is it Serial1
Seems like IMU is disabled somehow? What to do to reenable?
Dear all,
Recently I have acquired a 9DOF_Razor_IMU. I am currently trying to scan the i2c to check the addresses of the MPU9250, but if a run the i2c scanner the arduino does not print any addresses found. Does anybody know how can I scan the i2c from the 14001 9DOF_Razor_IMU board?
Best regards,
Miguel
From document <<MPU-9250-Register-Map.pdf>>, there is information below:
"
TEMP_degC = ((TEMP_OUT โ RoomTemp_Offset)/Temp_Sensitivity)+ 21degC
Where Temp_degC is the temperature in degrees C measured by the temperature sensor.
TEMP_OUT is the actual output of the temperature sensor.
"
mpu_get_temperature function in "inv_mpu.c" file give a wrong temperature value, codes is below:
"
data[0] = (long)((35 + ((raw - (float)st.hw->temp_offset) / st.hw->temp_sens)) * 65536L);
"
Why is there a "35" here ? It should be a bug.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.