Testing the Mindstorms CruizCore Sensor MEMS

PDF24    Send article as PDF   
My New Mindstorms NXT CruizCore Sensor arrived today after a bit of a wait, but in time for my Birthday. The CruizCore® XG1300L is a digital Sensor containing MEMS gyroscope and accelerometer sensors. This device is compatible with the LEGO® Mindstorms NXT kit. The CruizCore® XG1300L processes the sensor signals eliminating the most of the significant errors associated with these type of inertial devices. This results in the sensor outputs from the CruizCore® XG1300L to be near-free of these errors and can be used by the NXT, without further processing in many types of applications.
The LEGO Mindstorms NXT CruizCore® XG1300L Sensor

The CruizCore® XG1300L contains a single axis MEMS gyroscope. The internal signal processing applies factory calibrated scale factors, and compensates for the most significant errors that affect gyroscopes such as changes in bias drift. The XG1300L has a 50Hz bandwidth and can precisely measure angular rates up to ± 100 °/sec, it can also measure rates up to ± 150 °/sec with lesser accuracy. And it can select measure range, ±2G, ±4G, ±8G. The start-up time is less than 1 second, which is used to compute bias parameters; it does not require further calibration thereafter. The XG1300L is the best single axis rate measuring solution for navigation applications.

LEGO Mindstorms NXT Robot Draws a Bear

CruizCore® XG1300L Features:

  • Ultra Low Bias Drift
  • High Resolution and Accuracy
  • Outstanding Scale Factor Linearity
  • Fast Start-up
  • Fully Self Contained
  • Digital Output (I2C)
  • Low Power Consumption
  • Low Cost
  • Roughed and Compact Package
  • Selectable Output(Angular Rate, Angle, Acceleration)







Microelectromechanical systems (MEMS) (also written as micro-electro-mechanical, MicroElectroMechanical or microelectronic and microelectromechanical systems) is the technology of very small electrically driven mechanical devices; it merges at the nano-scale into nanoelectromechanical systems (NEMS) and nanotechnology. Microelectromechanical systems (MEMS) (also written as micro-electro-mechanical, MicroElectroMechanical or microelectronic and microelectromechanical systems) is the technology of very small mechanical devices driven by electricity; it merges at the nano-scale into nanoelectromechanical systems (NEMS) and nanotechnology. MEMS are also referred to as micromachines (in Japan), or micro systems technology – MST (in Europe).
MEMS are made up of components between 1 to 100 micrometres in size (i.e. 0.001 to 0.1 mm) and MEMS devices generally range in size from 20 micrometres (20 millionths of a metre) to a millimetre. They usually consist of a central unit that processes data, the microprocessor and several components that interact with the outside such as microsensors.
The fabrication of MEMS derived from the process technology in semiconductor device fabrication, i.e. the basic techniques are deposition of material layers, patterning by photolithography and etching to produce the required shapes.

SOURCE: Wikipedia®


The CruizCore® XG1300L internally computes the accumulated angle and makes it available to the user as an additional measurement. Users interested in measuring angles are encouraged to use this measurement because of the following reasons:

  1. Applications with limited computational resources will not need to integrate the rate measurements in order to obtain angle information. Furthermore, some applications can choose a lower update rate of the angle value and still get the maximum accuracy since the integration is always performed at the maximum update rate (100 Hz). For example, for position estimation in low dynamic robotic applications, users can use an angle update rate of 10 Hz without loosing accuracy.
  2. The internal angle estimation is the most accurate, because the XG1300L computes it using full floating point precision. The XG1300L also includes a three-axis accelerometer. This device can be configured to use one of the following ranges ±2G, ±4G and ±8G. As in the case of the gyroscopes, these sensors are factory calibrated.


The CruizCore® XG1300L communicates with the Lego® Mindstorms NXT using the I2C bus. It includes a connector compatible with Lego® NXT cables. The CruizCore® XG1300L I2C address is set to 0x02. Sensor data is stored internally in different registers that the NXT can access by sending read commands to the appropriate registers (see Table 1).


In addition to the register read operations, the CruizCore® XG1300L provides some additional functions that can be accessed by sending write commands to specific registers as shown in Table 2. These functions allow resetting the sensor as well as changing the accelerometers scale factor.



Programming Tools and Environments:

The CruizCore® XG1300L implements a communication protocol compatible with Lego® NXT, therefore giving users freedom to work with their favorite programming tools. The CruizCore® XG1300L has been verified to work reliably with the following programming tools and environments:

  • NXT-G
  • NXC
  • RobotC
  • Lejos
  • nxtOsek
NXC Source Code Example:

The following program shows all the functions available in the CruizCore®XG1300L using the NXC programming language. The program reads and displays the complete device data packet. Users can reset the device by pressing the left button or change the accelerometers scale factor by pressing the right button.

NXC Source Code:


CruizCore Sensor Example:

Testing the CruizCore Sensor:

After seeing the above LEGO Mindstorms NXT CruizCore Sensor Robot Video, I just had to source one for my sensor collection.As soon as I had the CruizCore® XG1300L in my had, I had to build the Drawing Robot to see if it was as good as the Video showed? I started by downloading the “Drawing Robot Instructions” and NXC Code from the CruizCore® XG1300L website.

The first couple of attempts with using the Robot  as per instructions, wasn’t all that successful. There seemed to be two main issues:

  1. The Pen Holding Mechanism
  2. The Accuracy of the Drawings

Eventually after a lot of frustration, I ditched the Pen Holding Mechanism all together and built a new one. I started by gluing a #60479 12×1 LEGO Plate to a whiteboard pen with a couple of drops of 5 Minute Araldite, to give a solid base to attach three  #3743 LEGO Gear Racks too. I also redesigned the Pen Holding Mechanism, replacing it with one built from LEGO Beams instead of Technic Bricks and Plates. The finished Pen Holding and Lifting Mechanism functions in a far superior manor than the original. The Pen is held solid with no unwanted movement.


Another major change from the original Instructions, was to replace the rear Idler-Wheel with a Rotacaster Omni-wheel. The Rotacaster out-preformed the original Jockey-wheel, wheel also gained me some more accuracy when drawing. I aslo found that placing the centre of the CruizCore® XG1300L Sensor, direct over the the Front axle, improved the remaining drawing errors.

LEGO Mindstorms NXT Drawing Robot:

CruizCore Sensor Draws a Bear:

The Drawing Robot works really well. I’m amazed at the accuracy I was able too achieve so far. As can be seen below, the large circle which forms the head, doesn’t quite line-up. I think part of this accuracy issue may be due to the slipperiness of the Whiteboard surface. The circle that makes up the bear’s snout is absolutely perfect!

Robot Draws  Bear

Download Instructions:

LEGO Digital Designer CAD files for the Drawing Robot



Previous Post

LEGO Mindstorms NXT Laser Guided Shooter

I've been busy playing with my  LASER   Sensors , and have put together a Zamor powered LEGO Mindstorms NXT Laser Guided Shooter. If you would like to build your own, ... Read more

Next Post

The NXTant

This is a Lego Mindstorms NXT Hexapod Ant, using 3 Motors, 3 Position/Touch Sensors, Ultrasonic Distance Sensor and a Sound Sensor for ´Hand-clap´ Commands. It was the first Robot I ... Read more

Short URL: Generating...

Leave a Reply

Your email address will not be published. Required fields are marked *

Do NOT follow this link or you will be banned from the site!
error: Content is protected !!