Hello,
I am using the Razor M0 IMU (https://www.sparkfun.com/products/14001). I followed the tutorial, and have been getting reliable data. However, when it is hooked up to the micro-controller, sometimes it will stop transmitting on reboot. The blue light still flashes, but there is no data getting to the micro-controller. I have tried turning it off, disconnecting it, rebooting both of them, and various other methods, but the only thing that works is re-flashing the IMU. I am using the standard firmware with no modifications other than the ones suggested in the tutorial. I am attaching it here.
Thanks
_9DoF_Razor_M0_Firmware.zip (7.58 KB)
Hi skemp117,
I am a bit confused by your wording here. Are you sending data from the 9DoF Razor to another microcontroller? If so, how are you sending it? The stock firmware will only output via seria l or log to an SD card inserted into the SD slot. Also, you mentioned the “modifications suggested in the tutorial”, can you please point to what modifications you have made either in your code or where they are mentioned in the Hookup Guide?
Sorry about the confusion. Yes, I am sending data to another micro-controller over Serial1. The section in the hookup guide I am referring to is the tutorial under: Serial Output Through Hardware UART Pins. All it mentions there is to comment out the lines for production testing and change #define LOG_PORT SERIAL_PORT_USBVIRTUAL to #define LOG_PORT SERIAL_PORT_HARDWARE.
I have also found that when this error is occurring while the LED is flashing (usually supposed to flash while serial data is sending), the TX line is pulled high (3.3V) and the RX line is left floating (this is the standard end transmission behavior for UART).
Keep in mind, I have this working. It works great 50% of the time, just occasionally it’ll stop transmitting (pulling TX high), and I have to re-flash the firmware.
Found the solution! It turns out, when connected to another microcontroller, if that microcontroller resets and the IMU stays on, the random noise from the floating voltage on the inactive microcontroller TX pin can sometimes cause the IMU to think it has received a command. All you need to do is comment out the line in the loop that checks for input.
Good catch, I’m glad to hear you have solved the issue! I’m sure this information will come in handy for other users so thank you for following up. If you run into any other issues or have any other questions about the 9DoF Razor, let us know and we would be happy to help!