Coder Social home page Coder Social logo

9dof_razor_imu's Introduction

SparkFun 9DoF Razor IMU M0

SparkFun 9DoF Razor IMU M0

SparkFun 9DoF Razor IMU M0 (SEN-14001)

The SparkFun 9DoF Razor IMU M0 combines a SAMD21 microprocessor with an MPU-9250 9DoF (nine degrees of freedom) sensor to create a tiny, re-programmable, multi-purpose inertial measurement unit (IMU). It can be programmed to monitor and log motion, transmit Euler angles over a serial port, or to even act as a step-counting pedometer.

The 9DoF Razor's MPU-9250 features three, three-axis sensors -- an accelerometer, gyroscope, and magnetometer -- which gives it the ability to sense linear acceleration, angular rotation velocity, and magnetic field vector's. The on-board microprocessor -- Atmel's SAMD21G18A -- is an Arduino-compatible, 32-bit ARM Cortex-M0+ microcontroller also featured on the Arduino Zero and SAMD21 Mini Breakout boards.

Repository Contents

  • /Documentation - Data sheets, additional product information
  • /Firmware - Example code
  • /Hardware - Eagle design files (.brd, .sch)
  • /Libraries - Libraries for use with the 9DoF Razor IMU M0
  • /Production Files - Production panel files (.brd)

Documentation

Product Versions

Version History

  • V_3.0 - Hardware and firmware files for version 3.0 -- released as SEN-14001.
  • V_2.3 - Hardware and firmware design files for version 2.3 -- released as SEN-10736.

License Information

This product is open source!

Please review the LICENSE.md file for license information.

If you have any questions or concerns on licensing, please contact [email protected].

Distributed as-is; no warranty is given.

  • Your friends at SparkFun.

9dof_razor_imu's People

Contributors

adamsilva avatar elizabethsrobert avatar robert-hunke avatar santaimpersonator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

9dof_razor_imu's Issues

IMU does not detect in COM port

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?

Adding analog input to Logs

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!

What is the last data of SEN-14001? Razor 9DOF M0

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!

SPI pin for IMU M0

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.

SD Card logging

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

Not able to compile SparkFunMPU9250-DMP.cpp

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?

I2C scan

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

Roll, Pitch, Yaw values changing counterintuitive

I have two issues with the Roll, Pitch, Yaw values returned from the RAZOR IMU M0.

  1. 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.

  2. 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...

Not reading serial data if booting with SBC

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?

Wrong temperature output.

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.

Compass heading wrong values

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)

How to get higher number of digits using Arduino library?

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.

Increase the frequency more than 100 Hz

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 .

v23 Firmware Crashing on As-Delivered Razor

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"

Serial Output does not work

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?

volatile structure missing element error during compilation of board_driver_usb.c

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?

dmpGetPedometerSteps values

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,

IMU I2C address should be breakout

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

Gyro fails to calibrate

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.

Can't read or write in Linux

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.

SD card not detected

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

Mechanical Drawing

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.

SPI pins of Razor imu m0

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.