As part of the "GPS Attitude, Positioning, and Profiling experiment (GAP)" of the Canadian CASSIOPE science and technology mission, a set of four geodetic GPS receivers connected to independent antennas on the top-panel of the spacecraft can be operated concurrently to collect dual-frequency code and phase measurements on both the L1 and L2 frequencies. The qualification of the commercial off-the-shelf (COTS) GPS receivers is discussed, and flight results of precise orbit and attitude determination are presented. Pseudorange and carrier phase errors amount to roughly 65 cm and 8 mm for the ionospherefree dual-frequency combination, which compares favorably with other missions using fully qualified space GPS receivers and is mainly limited by choice of simple patch antennas without choke rings. Precise orbit determination of CASSIOPE using GPS observations can achieve decimeter-level accuracy during continued operations but suffers from onboard and mission restrictions that limit the typical data availability to less than 50% of each day and induce regular long-duration gaps of 4-10 h. Based on overlap analyses, daily peak orbit determination errors can, however, be confined to 1 m 3D on 84% of all days, which fulfills the mission needs for science data processing of other instruments. The attitude of CASSIOPE can be determined with a representative precision of about 0.2° in the individual axes using three GAP receivers and antennas. Availability of dual-frequency measurements is particularly beneficial and enables single-epoch ambiguity fixing in about 97% of all epochs. Overall, the GAP experiment demonstrates the feasibility of using COTS-based global navigation satellite system receivers in space and the benefits they can bring for small-scale science missions.