The Adafruit Ultimate GPS and Lady Ada's video is mentioned and linked in the question Did the NASA PhoneSat actually try to use the GPS from the phone itself?:
where the firmware has been modified to extend the altitude to at least 50km as an example.
Also, the use of commercial, consumer GPS units for spaceflight applications is discussed in the questions below, and especially their answers:
As this comment suggests, you will first need to convert a series of GPS fixes to some cartesian coordinates, and then use some form of numerical derivative to infer a velocity vector.
Most consumer hobbyist GPS modules will generate NMEA sentences that provide GPS coordinates at the 1 Hz "heartbeat" rate. You will have to read your documentation very carefully to interpret the timing, but there should be an NMEA sentence that includes BOTH the 3D GPS coordinates latitude, longitude, and altitude necessary to build a vector, and the GPS time. If you have all of those in a single sentence, you MIGHT be able to believe it, but you need to read the documentation carefully.
If you have those for two consecutive seconds, you can covert each to an XYZ coordinate in the frame of your choice in units of meters, subtract them to get a delta position, divide by the time difference (in seconds) between the two (presumably 1 second) and voilà you have an approximate velocity vector from your Adafruit Ultimate GPS NMEA data stream!
You'd then assign that velocity to the midpoint in time between those two times. You could also use three points, and use a quadratic fit to position for those three, differentiate the quadratic at the time in the middle in order to get a velocity vector that applies to that particular heartbeat instance.
Of course in any of these cases, your velocities will now be historical and not instantaneous, but it should be good enough for a simple Kalman filter application.
How to convert from GPS lat/lon/alt referenced to a geodetic reference ellipsoid (I think GPS uses WGS84) to Earth-centered coordinates (either Earth-fixed for referencing to the Earth, or "inertial" for referencing to Earth orbit) is a different question, and you can find answers here in Space SE (see @DavidHammen's answer just for example), or in other Stack Exchange sites like GIS for example.
You can also read further in these links, though much (but not all) of it applies to more advanced data inside the GPS module, not to the final NMEA results: