Speeds above 4 or 5 degrees per second are possible with the right stepper motors/gear reduction/driving voltages.
Initialization of date/time/location, and align with one, two, or three stars. Align with one-star to quickly get going or two/three stars to correct for polar axis misalignment, cone error, etc.
Meridian flips happen automatically as needed, the software doesn't allow you to pick the meridian side during GOTOs, but it does provide a command to inform you as to what side of the mount the telescope is on.
The guide commands are for pulse-guiding, centering objects, etc.
There's even rotator and focuser support (for imaging etc; or de-rotator support for Alt/Az mounts.)
Parking functionality includes the ability to set the park position (anywhere you like), park, and to unpark.
Home commands including the ability to move the telescope to the home position and stop tracking or reset the controller when at the home position for initialization. OnStep even supports home switches on German Equatorial Mounts, so it can automatically orientate the mount at the start of operation.
PEC commands include the ability to record, play-back, read, and write PEC data.
The Android App allows for initialization, parking, alignment, PEC programming, etc. Along with the Moon and Planets, several catalogs of objects are included for GOTOs: Messier, NGC/IC, Herschel 400, and a named bright star catalog. The Android App can communicate with OnStep across Bluetooth or IP connections.
The iOS App, Gotomote by Satnam Sing allows similar functionality on you iPhone or iPad. The iOS App can communicate with OnStep across IP connections only.
Typical Bluetooth devices include the HC05, HC06, Sparkfun Bluetooth Silver.
IP devices supported are either the ESP8266 WiFi or the Arduino M0 and Ethernet Shield. My firmware gets uploaded to one of these and it connects to OnStep via. a serial interface. IP devices have both a Command Channel (for my Android App, Sky Safari, ASCOM, etc.) and a Web Server.