.. _ch11a_BringUpPigeon2:
Bring Up: Pigeon 2.0
====================
.. warning:: The Pigeon 2.0 Phoenix 5 API has been removed in 2025. Users should migrate to the `Phoenix 6 library `__.
Power Boot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pigeon 2.0 measurements can be obtained immediately after boot.
Phoenix Tuner
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Open Phoenix tuner and use the Self-test Snapshot feature to confirm values.
Rotate IMU and confirm Yaw moves as expected.
.. image:: img/bring-12a.png
.. tip:: There is a modernized version called `Tuner X `__ that is available for Windows and Android devices (works with Phoenix 5 and `Phoenix 6 `__).
.. note:: Moving counter-clockwise is interpreted as a positive change.
Pigeon API
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a Pigeon 2 object in your robot application and poll the Yaw value.
.. note:: Pigeon 2.0 uses a different class than Pigeon 1. It is named Pigeon2 instead of PigeonIMU.
.. code-block:: java
import com.ctre.phoenix.sensors.Pigeon2;
public class Robot extends TimedRobot {
Pigeon2 _pigeon = new Pigeon2(0, "rio");
int _loopCount = 0;
public void teleopPeriodic() {
if(_loopCount++ > 10)
{
_loopCount = 0;
double yaw = _pigeon.getYaw();
System.out.println("Pigeon Yaw is: " + yaw);
}
}
Confirm that the output matches the Self-test Snapshot results.
If using LabVIEW plotter or SmartDash plotting, send the Yaw value into the plotted channel. Then confirm Yaw value provides a smooth curve while robot is rotated by hand.