You can definitely use CoreMotion to get data from the gyro. The main approach would be to get the CMAttitude.rotationMatrix and multiply its inverse (transpose) by the reference matrix that you originally installed. The sample Teapot project on developer.apple.com shows a basic approach to working with CoreMotion.
For a real augmented reality application, you will need to create a model using OpenGL ES. I personally found v1.1 more reliable in iOS by trying GL ES 2.0. The Kettle sample also uses GLES 1.1.
Using a gyroscope is much more accurate and "smooth" than using a Magneotmeter to get a rotary device around its reference axis. The trick is how to initially calibrate the reference matrix to get the true βtitleβ of the device and place the GL ES model objects in the correct position around the camera. Once you have achieved this, you can rotate your model in 3D by multiplying the GL viewMatrix by the back of CMAttitude.rotationMatrix.
Finally, if you intend to support iPhone 3Gs, then be sure to check the gyroAvailable CMMotionManager property and provide an alternative implementation using a magnetometer.
100grams
source share