Forum Replies Created
-
AuthorPosts
-
There is a pinout diagram on page 12 of the UM7 datasheet, available here: http://www.chrobotics.com/docs/UM7_Datasheet.pdf
Connect the pin labeled BT0 to the pin labeled 3.3V, on the bottom-right connector shown in the diagram.
-
Hi Eugene,
The SPI pins on the UM7 are not 5V tolerant, and operating above their absolute maximum rating could damage them (See page 10 of the datasheet, here: http://www.chrobotics.com/docs/UM7_Datasheet.pdf). The pins do have built-in ESD protection, so they may be OK. But it’s possible that the protection circuitry was burnt out, since they aren’t designed to handle sustained overvoltage conditions.
Also, make sure that the timing constraints described in the datasheet aren’t being violated. To wit,
“The maximum SPI clock rate is 10 MHz. However the UM7 needs at least 5 microseconds between bytes to copy the next byte into the SPI transmit register. For high clock rates, this means that a delay must be added between consecutive bytes for correct operation”
-
To update the firmware, use the following steps:
1) Download the newest firmware HEX file from here: http://www.chrobotics.com/shop/um7-orientation-sensor
2) Make sure you have the latest version of the Serial Interface, available here: http://www.chrobotics.com/serial-interface
3) Connect the BOOT pin on the UM7 to the 3.3V pin before applying power.
4) Power up you UM7. The LED should *not turn on. This means that the bootloader started in programming mode.
5) Make sure that your UM7 is appropriately connected to your computer. The USB Expansion Board is a good way to do so.
6) Open the Serial Interface and select the correct COM port. Do NOT click “Connect.” Select the firmware HEX file you downloaded in step 1 and click “Program.” It should flash the new firmware. Once it finishes, disconnect the BOOT pin and cycle power. You are finished! -
What is the logic level of you Arduino Uno? (ie. 3.3V or 5V?)
-
Hi Bob,
That’s very interesting. I haven’t observed that problem directly before, but the Serial Interface does automatically retry if it doesn’t get a response, or if it receives a packet with a bad checksum. And when the Serial Interface does attempt to read the FW revision, it occasionally does receive a packet with a bad checksum. So this may very well be a bug. I’ll look into it.
In the mean-time, make sure that you validate the checksum before accepting a packet, and on bad checksum, request the FW revision again.
-
Hi Jens,
No, covariance data is not available from the UM7.
-
Hi Alejandro,
It’s most likely that the magnetometer measurements are being distorted by the permanent magnets in the quadrotor motors. On a small rotorcraft like a quadcopter, yaw angle stability is a tough nut to crack.
-
-
Usually, if there is yaw drift on the UM7, it is because there are magnetometer calibration issues that prevent the angle from being measured properly. If there are time-varying magnetics fields (from the permanent magnets in a motor, for example), it can make it very difficult to get a good yaw estimate.
The magnetometer reference vector tells the UM7 what magnetometer measurement to expect when yaw = pitch = roll = 0 degrees. During operation, it takes the measured magnetic field in the sensor body frame and uses the current attitude estimate to rotate it into the inertial frame (see this library article for details about coordinate frames used on the UM7). If the attitude estimate is perfect and there are no magnetic field distortions, the rotated magnetic field measurement should match the reference vector perfectly. Distortions cause the sensor to erroneously measure attitude error.
You are doing all the right things to prevent yaw drift, but it could be that motor magnetics are causing problems. Also, be sure that you are writing everything to FLASH.
-
Decreasing the GPS variance causes the GPS measurements to be assigned more weight in the filter, so that GPS correction happens more quickly. This causes the yaw angle to converge more quickly, and it causes the bias estimator to lock on faster. This would explain why the yaw drift decreases when you’ve decreased GPS variance.
The tradeoff is that any GPS error will cause larger yaw, pitch, and roll measurement errors.
-
Hi Arto,
The default settings work very well on small airplanes. The yaw angle is only observable when the sensor is accelerating. The longer it goes without acceleration, the more the yaw angle can drift.
-
Hi David,
The UM7 currently does not support coordinate-frame rotations for different mounting orientations.
-
The GP9 has a built-in GPS and doesn’t need an external module. How much accuracy do you need on position? The accuracy of the GPS on the GP9 depends on the quality of the GPS lock. With a consistent satellite constellation, the GPS is typically accurate to within 3 - 4 meters CEP.
-
Hi Jason,
You could do that, but it might take some work. The UM7 has a free-running hardware timer with better than microsecond resolution that starts running when it powers on. It uses incoming PPS pulses and GPS packets to perform a second-order calibration on that timer, synchronizing it to GPS time. The PPS pulse is expected to come in at 1 second intervals with very high accuracy, on the second. Once the GP9 receives the PPS pulse, it uses the next GPS RMC packet to extract the time at which the pulse went high.
To synthesize the timing synchronization without GPS, you’d need to have a piece of hardware that outputs a PPS pulse once a second, and that sends a NMEA RMC packet immediately after each pulse so that the UM7 can extract the time.
-
Hi Jason,
That’s definitely odd. I haven’t observed that behavior before. Can you open the data plot, make sure it is the active window, and take a screenshot? Use Alt-PrintScreen to just take a picture of the data graph. You can then paste it into an email and send it to [email protected], or upload it to this forum.
-
AuthorPosts