History and Standardization
PTP was first introduced in the early 2000s as a replacement for the proprietary protocols that camera manufacturers were using. The protocol was designed to:- Provide a standardized way to communicate with digital cameras
- Enable remote control of camera settings and functions
- Facilitate image transfer from camera to computer
- Support event-driven communication for real-time updates
How PTP Works
PTP operates on a request-response model where a host device (like your computer) sends operations to the camera, and the camera responds with data or status information. The protocol defines several key components, a few examples of which are outlined below.Operations
Operations are commands sent from the host to the camera. Common operations include:- GetDeviceInfo - Retrieve information about the camera
- GetObject - Download an image or file from the camera
- GetProperty - Read a camera setting (ISO, aperture, shutter speed, etc.)
- SetProperty - Change a camera setting
- CaptureImage - Trigger the camera to take a photo
Properties
Properties represent camera settings and state. Standard PTP properties include:- ExposureIndex (ISO)
- FNumber (Aperture)
- ExposureTime (Shutter Speed)
- WhiteBalance
- FocusMode
Events
Events allow cameras to notify the host about changes without polling:- ObjectAdded - A new image was captured
- PropertyChanged - A camera setting was modified
- DevicePropChanged - Device property was updated
Vendor Extensions
While the original spec provided a starting foundation, most camera manufacturers have extended PTP with vendor-specific operations and properties to support advanced features that might not have been a core focus for still imaging devices with initially limited capabilities in the early 2000s, including:- Live view streaming
- Video recording
- Granular control over camera functions like white balance, focus, external flashes, etc.
Further Reading
- ISO 15740:2013 - The official PTP specification
- PTP Reference Documentation - Complete reference for PTP operations, properties, and events
- Camera API Documentation - Learn how to use PTP with Darkgrade Link