the wifi protocol
Starting with camera firmware release v1.2, the on-board Wi-Fi is enabled. The connectivity is provided through Marvell's Avastar 88W8787A16 chip with MAC address in the range of Tayio Yuden Co., Ltd. (00:22:58).
The wireless communication must be explicitly enabled by user on the camera itself. This causes a network with SSID lytro.camera.### (where ### are the last three numbers of its serial number) to be broadcasted. The network is WPA2-CCMP protected with fixed keyphrase consisting of 8 arabic digits. A new keyphrase is generated when the camera is soft reseted, either manually from settings menu or when it hangs and resets itself.
Camera responds to ping messages. Wireless communication is power demanding and is turned off if not actively used for 5 minutes (even if a client is connected and the camera itself is being used).
Available UDP services:
- DHCP server, currently supporting one client at a time only (port 67).
10.100.1.1 is IP address of the camera (gateway),
10.100.1.100 receives the connecting client,
255.255.255.0 is the subnet mask.
- DNS-Based Service Discovery, compatible with Multicast DNS (port 5353).
This system uses PTR requests to discover services on the network. Also, the service types and instances are broadcasted at startup. The Lytro camera uses a _lytro._tcp service in the local domain. The DNS response/broadcast contains these answers:
type | name | value | comments |
PTR | _services._dns-sd._udp.local | _lytro._tcp.local | (service type announcement) |
PTR | _lytro._tcp._local | lytro-A#########._lytro._tcp.local | (service instance announcement) |
SRV | lytro-A#########._lytro._tcp.local | lytro-A#########.local:5678 | service endpoint |
TXT | lytro-A#########._lytro._tcp.local | (empty) | named attributes |
A | lytro-A#########.local | 10.100.1.1 | camera IP |
NSEC | lytro-A#########.local | lytro-A#########.local | (no more entries) |
Open TCP ports:
- 5677 (callback messages)
Once a client connects to this port, camera automatically starts sending various events back. The syntax is pretty straightforward, data are UTF-8 encoded strings, each event on its line, ending with CR LF and a null character. The callback name is enclosed in square brackets, followed by parameter(s) separated by space.
[CallbackName] param1 param2 ...\r\n\0
See detailed callback reference for individual messages description and their parameters.
- 5678 and 5679 (lytro service)
These ports use the same protocol, so they will be discussed together. The mobile application uses port 5678 for control requests and port 5679 for downloading pictures.
Communication is based on binary request-response pairs. Messages consist of 28 bytes of header and optional payload:
AF 55 AA FA LE LE LE LE FL FL FL FL CM CM (magic number, content/buffer length, flags, command)
PA PA PA PA PA PA PA PA PA PA PA PA PA PA (parameters)
__ __ __ __ __ __ __ __ __ __ __ __ __ __ (optional payload)
See detailed commands reference for individual commands description and the respective payload format.
The library (and the communicator based on it) can be used to talk to the camera from your computer.
the usb protocol
sorry, don't have this one yet
Disclaimer: Jan Kučera and miloush.net are not affiliated with or endorsed by Lytro, Inc. and the above information is not confirmed.