iPort IW-2 User manual

Introduction
This specification provides the communication protocol that
allows two-way communication between an RS-232 enabled
controller and an Apple®iPod™ docked into an RS-232 enabled
enabled iPort™ model. This document specifies telegrams that
will allow for the command and control of the docked iPod in
extended interface mode and for receiving meta data from the
iPod for display on the controller’s display.
Applicable iPort Models
This specification only applies to iPort models that are two-way
communication enabled. Two-way communication is enabled in
the IW-4 and IW-5 systems, and can be added to iPort IW-2 and
IW-3 systems by adding the iPort RS-232 Upgrade Kit (sold
separately) to the IW-3, and the iPort RS-232 and the iPort
Balanced Audio Upgrade kits (both sold separately) to the IW-2.
Summary of RS-232 Operation
This communication protocol is enabled when the iPod is in
extended interface mode, which can be determined by checking
the iPod screen. The iPort logo will be on the iPod screen when
in extended interface mode.
NOTE: The iPod interface is disabled when in two-way
(RS-232) mode. The user will no longer be able to
control the iPod from the iPod when in two-way mode.
There are commands to enter two way and exit two way. One
may wish to make these commands available to the customer
through the user interface. Refer to section 35 and section 36.
NOTE: If the iPod is docked while in the Play mode it
will automatically enter the Pause mode. This is due to
the iPod protocol. You may wish to set the RS-232
control system to automatically send a Play command to
return the iPod to the last playing song when it is
inserted in the dock.
Connection Description
The iPort communication protocol uses an RJ-11 connector on
the Balanced Audio Wallplate or external break-out box.
(A compatible RJ-11/DB-9 cable is supplied with RS-232 enabled
iPort systems and the iPort RS-232 Upgrade Kit.)
The pin assignments for the RS-232 cable are:
RJ-11 Pin DB-9 Name
1 2 PC Rx
2* 5 GND
3* 5 GND
4 3 PC Tx
5 2 PC Rx
6 N/A
* Only one GND pin may be connected, if desired.
Com Port Settings:
Baud Rate = 19200
Parity = N
Stop Bits = 1
Data Bits = 8
Packet Structure
The iPort communication packet structure is constructed using a
combination of ASCII characters and hex data. A packet consists
of seven elements described below.
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0xNN Packet Length High Byte
0x03 0xNN Packet Length Low Byte
0x04 0xNN Packet Command Type
0x05 0xNN Packet Command High Byte
0x06 0xNN Packet Command Low Byte
0x07 – 0xNN 0xNN Packet Data Bytes
0xNN 0xNN Checksum = 2’s compliment of the
sum of all bytes excluding the start
character and checksum
Packet
Command
Type:
Code Command Type
0x38 Two-Way
0x3C General
0x01* LED control
* Device type code for this command is 0x4D
Instruction Manual iPort RS-232 Programming
1

Command Code Summary
The table below lists the valid command codes for use in packet
command high and low bytes for the Two-Way command type:
PACKET COMMAND TYPE: 0x38
0x3C 0x04 SelectSortDBRecord
0x3C 0x09 GetNumPlayingSongs
0x3C 0x0A ReturnNumPlayingSongs
0x3C 0x0B SetCurrentPlayingSong
0x3C 0x0C ReturnRepeat
0x3C 0x0D SetRepeat
0x3C 0x10 GetShuffle
0x3C 0x11 ReturnShuffle
0x3C 0x12 SetShuffle
0x3C 0x13 GetRepeat
0x3C 0x14 PlayCurrentSelection
0x3C 0x15 PlayControl
0x3C 0x18 GetIndexedPlayingSongAlbumName
0x3C 0x19 ReturnIndexedPlayingSongAlbumName
0x3C 0x1A SetPlayStatusChangeNotification
0x3C 0x1B PlayStatusChangeNotification
0x3C 0x1C GetIndexedPlayingSongTitle
0x3C 0x1D ReturnIndexedPlayingSongTitle
0x3C 0x1E GetIndexedPlayingSongArtistName
0x3C 0x1F ReturnIndexedPlayingSongArtistName
0x3C 0x20 GetPlayStatus
0x3C 0x21 ReturnPlayStatus
0x3C 0x22 GetCurrentPlayingSongIndex
0x3C 0x23 ReturnCurrentPlayingSongIndex
0x3C 0x24 GetNumberCategorizedDBRecords
0x3C 0x25 ReturnNumberCategorizedDBRecords
0x3C 0x26 RetrieveCategorizedDBRecords
0x3C 0x27 ReturnCategorizedDBRecord
0x3C 0x28 RequestiPodName
0x3C 0x29 ReturniPodName
0x3C 0x2A ResetDBSelection
0x3C 0x2B SelectDBRecord
0x3C 0x3D Acknowledge
The table below lists the valid command codes for use in packet
command high and low bytes for the General command type:
PACKET COMMAND TYPE: 0x3C
0x3C 0x38 ReturnRemoteUIMode
0x3C 0x39 EnterRemoteUIMode
0x3C 0x3A ExitRemoteUIMode
0x3C 0x3E Acknowledge
0x3C 0x3F RequestRemoteUIMode
The table below lists the valid command codes for use in packet
command high and low bytes for adjusting the LED:
DEVICE TYPE: 0x4D /
PACKET COMMAND TYPE: 0x01
0x00 0x01 LED_ON/OFF_Docked
0x00 0x02 LED_ON/OFF_Undocked
0x00 0x03 LED_Brightness_Docked
0x00 0x04 LED_Brightness_Undocked
2
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Application Usage Example
The following table is an example of telegram traffic between the
iPort and the controller:
Sent from Controller Sent from iPort
RequestiPodName
ReturniPodName (“My iPod”)
ResetDBSelection
Acknowledge
SelectDBRecord
(Category = Artist,
Index = 1)
Acknowledge
GetNumber
CategorizedDBRecords
(Category = Songs)
ReturnNumber
CategorizedDBRecords
(Matching Record Count = 2)
Retrieve
CategorizedDBRecords
(Category = Songs,
Index = 1,
Read Count = 2)
ReturnCategorizedDBRecord
“Zooropa”
ReturnCategorizedDBRecord
“Babyface”
[User selects “Zooropa”]
SelectDBRecords
(Category = Songs,
Index = 0)
Acknowledge
PlayCurrentSelection
(Index = 0)
Acknowledge
Command Code Description
The following section describes the individual iPort commands
and includes the packet structure for each command.
PACKET COMMAND TYPE: 0x38
1. SelectSortDBRecord
0x3C 0x04 SelectSortDBRecord
Direction: Controller —>iPort
Description: Selects one or more records in the iPod database
based on a category type, index, and sort order.
Category
Type
Code:
Code Category Type
0x01 Playlist
0x02 Artist
0x03 Album
0x04 Genre
0x05 Song
0x06 Composer
Sort
Order
Code:
Code Sort Order
0x00 Genre
0x01 Artist
0x02 Composer
0x03 Album
0x04 Song
0x05 Playlist
0xFF Default
Packet
structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x09 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x04 Packet Command Low Byte
0x07 0xNN Category Type Code
0x08 0xNN Record Index (byte 4)
0x09 0xNN Record Index (byte 3)
0x0A 0xNN Record Index (byte 2)
0x0B 0xNN Record Index (byte 1)
0x0C 0xNN Sort Order Code
0x0D 0xNN Checksum
2. GetNumPlayingSongs
0x3C 0x09 GetNumPlayingSongs
Direction: Controller —>iPort
Description: Requests the number of tracks in the actual list of
songs queued. In response the iPort will send a
ReturnNumPlayingSongs
packet with the count of
the songs queued to play.
3
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x09 Packet Command Low Byte
0x07 0x37 Checksum
3. ReturnNumPlayingSongs
0x3C 0x0A ReturnNumPlayigSongs
Direction: iPort —>Controller
Description: In response to
GetNumPlayingSongs
the return pack-
et will include the count of the songs queued to play.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x0A Packet Command Low Byte
0x07 0xNN Number of tracks (byte 4)
0x08 0xNN Number of tracks (byte 3)
0x09 0xNN Number of tracks (byte 2)
0x0A 0xNN Number of tracks (byte 1)
0x0B 0xNN Checksum
4. SetCurrentPlayingSong
0x3C 0x0B SetCurrentPlayingSong
Direction: Controller —>iPort
Description: Sets the index of the track that needs to be playing
in the now playing playlist on the iPod. The index
that is specified is obtained by sending the
GetNumPlayingSongs
and
GetCurrentPlayingSong
Index
commands to obtain the number of playing
songs and current playing song index respectively.
NOTE: This command is only usable when the iPod is in
a playing or paused state. The command will fail if the
iPod is stopped.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x0B Packet Command Low Byte
0x07 0xNN New Current Playing Song Index (byte 4)
0x08 0xNN New Current Playing Song Index (byte 3)
0x09 0xNN New Current Playing Song Index (byte 2)
0x0A 0xNN New Current Playing Song Index (byte 1)
0x0B 0xNN Checksum
5. ReturnRepeat
0x3C 0x0C ReturnRepeat
Direction: iPort —>Controller
Description: In response to the
GetRepeat
command the current
iPod track repeat mode state is returned.
Repeat
Mode
Code:
Code Category Type
0x00 Repeat Off
0x01 Repeat One Track
0x02 Repeat All
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x0C Packet Command Low Byte
0x07 0xNN Repeat Mode Code
0x08 0xNN Checksum
4
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

6. SetRepeat
0x3C 0x0D SetRepeat
Direction: Controller —>iPort
Description: Sets the repeat state of the iPod. The repeat mode
codes are listed in the ReturnRepeat command
code description.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x0D Packet Command Low Byte
0x07 0xNN Repeat Mode Code
0x08 0xNN Checksum
7. GetShuffle
0x3C 0x10 GetShuffle
Direction: Controller —>iPort
Description: Requests the current iPod shuffle mode state.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x10 Packet Command Low Byte
0x07 0x30 Checksum
8. ReturnShuffle
0x3C 0x11 ReturnShuffle
Direction: iPort —>Controller
Description: In response to the
GetShuffle
command the current
iPod shuffle mode state is returned.
Shuffle
Mode
Code:
Code Category Type
0x00 Shuffle Off
0x01 Shuffle Songs
0x02 Shuffle Albums
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x11 Packet Command Low Byte
0x07 0xNN Shuffle Mode Code
0x08 0xNN Checksum
9. SetShuffle
0x3C 0x12 SetShuffle
Direction: Controller —>iPort
Description: Sets the shuffle mode state of the iPod. The shuffle
mode codes are listed in the
ReturnShuffle
command code description.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x12 Packet Command Low Byte
0x07 0xNN Shuffle Mode Code
0x08 0xNN Checksum
5
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

10. GetRepeat
0x3C 0x13 GetRepeat
Direction: Controller —>iPort
Description: Requests the current iPod track repeat state.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x13 Packet Command Low Byte
0x07 0x2D Checksum
11. PlayCurrentSelection
0x3C 0x14 PlayCurrentSelection
Direction: Controller —>iPort
Description: Requests playback of the currently selected songs
or list of songs. The currently selected songs will be
placed in the now playing playlist. Finally, the song
record index is passed to the iPod to play.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x14 Packet Command Low Byte
0x08 0xNN Selection Song Record Index (byte 4)
0x09 0xNN Selection Song Record Index (byte 3)
0x0A 0xNN Selection Song Record Index (byte 2)
0x0B 0xNN Selection Song Record Index (byte 1)
0x0C 0xNN Checksum
12. PlayControl
0x3C 0x15 PlayControl
Direction: Controller —>iPort
Description: Sets the new play state of the iPod.
Play
Control
Command
Code:
Code Category Type
0x01 Toggle Play/Pause
0x02 Stop
0x03 Next Track
0x04 Previous Track
0x05 StartFF
0x06 StartRew
0x07 EndFFRew
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x15 Packet Command Low Byte
0x07 0xNN Play Control Command Code
0x08 0xNN Checksum
13. GetIndexedPlayingSongAlbumName
0x3C 0x18 GetIndexedPlayingSongAlbumName
Direction: Controller —>iPort
Description: Requests the album name of the indexed playing
song from the iPod.
NOTE: iPod will respond with an ACK including the
specific error status if the received command length or
playing song index is invalid.
6
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x18 Packet Command Low Byte
0x08 0xNN Database Song Record Index (byte 4)
0x09 0xNN Database Song Record Index (byte 3)
0x0A 0xNN Database Song Record Index (byte 2)
0x0B 0xNN Database Song Record Index (byte 1)
0x0C 0xNN Checksum
14. ReturnIndexedPlayingSongAlbumName
0x3C 0x19 ReturnIndexedPlayingSongAlbumName
Direction: iPort —>Controller
Description: In response to the
GetIndexedPlayingSongAlbum
Name
command, returns the album name of the
indexed playing song.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0xNN Packet Length High Byte
0x03 0xNN Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x19 Packet Command Low Byte
0x07 – 0xNN 0xNN Album Name in ASCII
0xNN 0xNN Checksum
15. SetPlayStatusChangeNotification
0x3C 0x1A SetPlayStatusChangeNotification
Direction: Controller —>iPort
Description: Sets the play status change notification from the iPod.
Notification of play status changes can be globally enabled
or disabled. If enabled, the iPod will continue to send
PlayStatusChangeNotificaiton
telegrams until this telegram
is sent (again) with the disable notification option.
Play
Status
Change
Notification
Mode
Code:
Code Category Type
0x00 Disable All
0x01 Enable All
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1A Packet Command Low Byte
0x08 0xNN Play Status Change Notification Code
0x09 0xNN Checksum
16. PlayStatusChangeNotification
0x3C 0x1B PlayStatusChangeNotification
Direction: iPort —>Controller
Description: When the Play Status Change Notifications is
enabled on the iPod using the
SetPlayStatusChange
Notification
command, the iPod will send this com-
mand with details about the new play status when
there is a change. Notification telegrams for song
position will occur approximately every 500 millisec-
onds while the iPod is playing. Notification
telegrams will be sent from the iPod until the Play
Status Change Notifications is disabled.
Play
Status
Change
Code:
Code Category Type
0x00 Playback Stopped
0x01 Playback Song Changed
0x02 Playback Forward Seek Stop
0x03 Playback Backward Seek Stop
0x04 Playback Song Position
7
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Packet
Structure:
Playback Stopped (0x00)
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1B Packet Command Low Byte
0x08 0x00 New Status: Playback Stopped
0x09 0x24 Checksum
Playback Song Changed (0x01)
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x08 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1B Packet Command Low Byte
0x07 0x01 New Status: Playback Song Changed
0x08 0xNN New Database Song Record Index (byte 4)
0x09 0xNN New Database Song Record Index (byte 3)
0x0A 0xNN New Database Song Record Index (byte 2)
0x0B 0xNN New Database Song Record Index (byte 1)
0x0C 0xNN Checksum
Playback Forward Seek Stop (0x02)
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1B Packet Command Low Byte
0x08 0x02 New Status: Playback Forward Seek Stop
0x09 0x22 Checksum
Playback Backward Seek Stop (0x03)
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1B Packet Command Low Byte
0x08 0x03 New Status: Playback Backward Seek Stop
0x09 0x21 Checksum
Playback Song Position Changed (0x04)
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x08 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1B Packet Command Low Byte
0x07 0x04 New Status: Playback Song Position Changed
0x08 0xNN New Database Song Record Index (byte 4)
0x09 0xNN New Database Song Record Index (byte 3)
0x0A 0xNN New Database Song Record Index (byte 2)
0x0B 0xNN New Database Song Record Index (byte 1)
0x0C 0xNN Checksum
17. GetIndexedPlayingSongTitle
0x3C 0x1C GetIndexedPlayingSongTitle
Direction: Controller —>iPort
Description: Requests the song title of the indexed playing song
from the iPod.
NOTE: iPod will respond with an ACK including the
specific error status if the received command length or
playing song index is invalid.
8
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command

Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1C Packet Command Low Byte
0x08 0xNN Database Song Record Index (byte 4)
0x09 0xNN Database Song Record Index (byte 3)
0x0A 0xNN Database Song Record Index (byte 2)
0x0B 0xNN Database Song Record Index (byte 1)
0x0C 0xNN Checksum
18. ReturnIndexedPlayingSongTitle
0x3C 0x1D ReturnIndexedPlayingSongTitle
Direction: iPort —>Controller
Description: In response to the
GetIndexedPlayingSongTitle
command, returns the song title of the indexed
playing song.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0xNN Packet Length High Byte
0x03 0xNN Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1D Packet Command Low Byte
0x07 – 0xNN 0xNN Song Title in ASCII
0xNN 0xNN Checksum
19. GetIndexedPlayingSongArtistName
0x3C 0x1E GetIndexedPlayingSongArtistName
Direction: Controller —>iPort
Description: Requests the artist name of the indexed playing
song from the iPod.
NOTE: iPod will respond with an ACK including the
specific error status if the received command length or
playing song index is invalid.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1E Packet Command Low Byte
0x08 0xNN Database Song Record Index (byte 4)
0x09 0xNN Database Song Record Index (byte 3)
0x0A 0xNN Database Song Record Index (byte 2)
0x0B 0xNN Database Song Record Index (byte 1)
0x0C 0xNN Checksum
20. ReturnIndexedPlayingSongArtistName
0x3C 0x1F ReturnIndexedPlayingSongArtistName
Direction: iPort —>Controller
Description: In response to the
GetIndexedPlayingSongArtist
Name
command, returns the artist name of the
indexed playing song.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0xNN Packet Length High Byte
0x03 0xNN Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x1F Packet Command Low Byte
0x07 – 0xNN 0xNN Song Title in ASCII
0xNN 0xNN Checksum
21. GetPlayStatus
0x3C 0x20 GetPlayStatus
Direction: Controller —>iPort
Description: Requests the current iPod playback status allowing
the controller to display information to the user.
9
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x20 Packet Command Low Byte
0x07 0x20 Checksum
22. ReturnPlayStatus
0x3C 0x21 ReturnPlayStatus
Direction: iPort —>Controller
Description: In response to the
GetPlayStatus
command, returns
the current iPod playback status.
NOTE: The song length/song position fields are only
valid if the iPod is playing or paused.
Play
State
Code:
Code Sort Order
0x00 Stopped
0x01 Playing
0x02 Paused
0xFF Error
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x0C Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x21 Packet Command Low Byte
0x07 0xNN Song Length in milliseconds (byte 4)
0x08 0xNN Song Length in milliseconds (byte 3)
0x09 0xNN Song Length in milliseconds (byte 2)
0x0A 0xNN Song Length in milliseconds (byte 1)
0x0B 0xNN Song Position in milliseconds (byte 4)
0x0C 0xNN Song Position in milliseconds (byte 3)
0x0D 0xNN Song Position in milliseconds (byte 2)
0x0E 0xNN Song Position in milliseconds (byte 1)
0x0F 0xNN Player State Code
0x10 0xNN Checksum
23. GetCurrentPlayingSongIndex
0x3C 0x22 GetCurrentPlayingSongIndex
Direction: Controller —>iPort
Description: Requests the database index of the currently
playing song.
NOTE: The song index returned is only valid if the iPod
is currently playing or paused a song.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x22 Packet Command Low Byte
0x07 0x1E Checksum
24. ReturnCurrentPlayingSongIndex
0x3C 0x23 ReturnCurrentPlayingSongIndex
Direction: iPort —>Controller
Description: In response to the
GetCurrentPlayingSongIndex
command, returns the database index of the current
playing song. If there is no song playing/paused, an
index of -1 will be returned.
Packet Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x23 Packet Command Low Byte
0x07 0xNN Database Song Record Index (byte 4)
0x08 0xNN Database Song Record Index (byte 3)
0x09 0xNN Database Song Record Index (byte 2)
0x0A 0xNN Database Song Record Index (byte 1)
0x0B 0xNN Checksum
10
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

25. GetNumberedCategorizedDBRecords
0x3C 0x24 GetNumberedCategorizedDBRecords
Direction: Controller —>iPort
Description: Requests the number of records of a particular data-
base category. Category type codes are described
in the
SelectSortDBRecord
command code descrip-
tion section.
NOTE: The record count returned by this command depends on
the database state before this command is sent. If the database
has been reset (
ResetDBSelection
), then this command will return
the total number of records for a given category. If this command
is sent after one or more categories are selected, then the record
count will be the subset of records that are members of all the
categories selected prior to this command.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x24 Packet Command Low Byte
0x07 0xNN Category Type Code
0x08 0xNN Checksum
26. ReturnNumberedCategorizedDBRecords
0x3C 0x25 ReturnNumberedCategorizedDBRecords
Direction: iPort —>Controller
Description: In response to the
GetNumberedCategorizedDB
Records
command, returns the number of database
records matching the specified database category. If
no matching database records are found, a record
count of zero will be returned.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x07 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x25 Packet Command Low Byte
0x07 0xNN Database Record Count (byte 4)
0x08 0xNN Database Record Count (byte 3)
0x09 0xNN Database Record Count (byte 2)
0x0A 0xNN Database Record Count (byte 1)
0x0B 0xNN Checksum
27. RetrieveCategorizedDBRecords
0x3C 0x26 RetrieveCategorizedDBRecords
Direction: Controller —>iPort
Description: Retrieves one or more database records from the
iPod based usually based on the results from the
GetNumberCategorizedDBRecords
query. Category
type codes are described in the
SelectSort
DBRecord
command code description section.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x0C Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x26 Packet Command Low Byte
0x07 0xNN Category Type Code
0x08 0xNN Database Record Start Index (byte 4)
0x09 0xNN Database Record Start Index (byte 3)
0x0A 0xNN Database Record Start Index (byte 2)
0x0B 0xNN Database Record Start Index (byte 1)
0x0C 0xNN Database Record Read Count (byte 4)
0x0D 0xNN Database Record Read Count (byte 3)
0x0E 0xNN Database Record Read Count (byte 2)
0x0F 0xNN Database Record Read Count (byte 1)
0x10 0xNN Checksum
11
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

28. ReturnCategorizedDBRecord
0x3C 0x27 ReturnCategorizedDBRecords
Direction: iPort —>Controller
Description: In response to the
RetrieveCategorizedDBRecords
command, returns information for a single database.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0xNN Packet Length High Byte
0x03 0xNN Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x27 Packet Command Low Byte
0x07 0xNN Database Record Category Index (byte 4)
0x08 0xNN Database Record Category Index (byte 3)
0x09 0xNN Database Record Category Index (byte 2)
0x0A 0xNN Database Record Category Index (byte 1)
0x0B – 0xNN 0xNN Database Record as ASCII
0xNN 0xNN Checksum
29. RequestiPodName
0x3C 0x28 RequestiPodName
Direction: Controller —>iPort
Description: Requests the name of the user’s iPod.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x28 Packet Command Low Byte
0x07 0x18 Checksum
30. ReturniPodName
0x3C 0x29 ReturniPodName
Direction: iPort —>Controller
Description: In response to the RequestiPodName command,
returns the name of the user’s iPod.
NOTE: If the iPod name is undefined will return “iPod.”
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0xNN Packet Length High Byte
0x03 0xNN Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x29 Packet Command Low Byte
0x07 – 0xNN 0xNN iPod Name in ASCII
0xNN 0xNN Checksum
31. ResetDBSelection
0x3C 0x2A ResetDBSelection
Direction: Controller —>iPort
Description: Resets the current database selection to an empty
state.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x2A Packet Command Low Byte
0x07 0x16 Checksum
12
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

32. SelectDBRecord
0x3C 0x2B SelectDBRecord
Direction: Controller —>iPort
Description: Selects one or more records in the iPod database
based on a category relative index. Selections are
additive and limited only by the category hierarchy.
Category
Type
Code:
Code Category Type
0x01 Playlist
0x02 Artist
0x03 Album
0x04 Genre
0x05 Song
0x06 Composer
Packet
structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x08 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x2B Packet Command Low Byte
0x07 0xNN Category Type Code
0x08 0xNN Database Record Index (byte 4)
0x09 0xNN Database Record Index (byte 3)
0x0A 0xNN Database Record Index (byte 2)
0x0B 0xNN Database Record Index (byte 1)
0x0C 0xNN Checksum
33. Acknowledge
0x3C 0x3D Acknowledge
Direction:iPort —>Controller
Description: This telegram acknowledges the receipt of a
command received and returns the command status.
Command
Result
Status
Code:
Code Category Type
0x00 Success (OK)
0x01 Error: Unknown Database Category
0x02 Error: Command Failed
0x03 Error: Out of Resources
0x04 Error: Bad Parameter
0x05 Error: Unknown ID
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x06 Packet Length Low Byte
0x04 0x38 Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x3D Packet Command Low Byte
0x07 0xNN Command Result Status Code
0x08 0xNN Command High Byte being ACK’d
0x09 0xNN Command Low Byte being ACK’d
0x1A 0xNN Checksum
13
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

PACKET COMMAND TYPE: 0x3C
34. ReturnRemoteUIMode
0x3C 0x38 ReturnRemoteUIMode
Direction: iPort —>Controller
Description: In response to the
RequestRemoteUIMode
command, returns the state of the iPod UI mode.
UI
Mode
Code:
Code Category Type
0x00 Two-Way Mode
0x01 Standard Mode
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x3C Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x38 Packet Command Low Byte
0x07 0xNN UI Mode Code
0x08 0xNN Checksum
35. EnterRemoteUIMode
0x3C 0x39 EnterRemoteUIMode
Direction: Controller —>iPort
Description: Command to force the iPod to enter two-way
communication mode.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x3C Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x39 Packet Command Low Byte
0x07 0x03 Checksum
36. ExitRemoteUIMode
0x3C 0x3A ExitRemoteUIMode
Direction: Controller —>iPort
Description: Command to force the iPod to exit two-way
communication mode.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x3C Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x3A Packet Command Low Byte
0x07 0x02 Checksum
37. Acknowledge
0x3C 0x3E Acknowledge
Direction: iPort —>Controller
Description: This telegram acknowledges the receipt of a
command and returns the command status.
Command
Result
Status
Code:
Code Category Type
0x00 Success (OK)
0x01 Error: Unknown Database Category
0x02 Error: Command Failed
0x03 Error: Out of Resources
0x04 Error: Bad Parameter
0x05 Error: Unknown ID
14
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x06 Packet Length Low Byte
0x04 0x3C Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x3E Packet Command Low Byte
0x07 0xNN Command Result Status Code
0x08 0xNN Command Low Byte being ACK’d
0x09 0xNN Checksum
38. RequestRemoteUIMode
0x3C 0x3F RequestRemoteUIMode
Direction: Controller —>iPort
Description: Requests the iPod UI mode.
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x49 Device type (iPort)
0x02 0x00 Packet Length High Byte
0x03 0x03 Packet Length Low Byte
0x04 0x3C Packet Command Type
0x05 0x3C Packet Command High Byte
0x06 0x3F Packet Command Low Byte
0x07 0xFE Checksum
DEVICE TYPE: 0x4D /
PACKET COMMAND TYPE: 0x01
39. LED_ON/OFF_Docked
0x00 0x01 LED_ON/OFF_Docked
Direction: Controller —>iPort
Description: Command to turn ON/OFF the LEDs when an iPod
is docked into the iPort.
LED
Mode
Code:
Code LED Mode
0x00 OFF
0x01 ON
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x4D Device type (iPort Micro)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x01 Packet Command Type
0x05 0x00 Packet Command High Byte
0x06 0x01 Packet Command Low Byte
0x07 0xNN LED Mode Code
0x08 0xNN Checksum
40. LED_ON/OFF_Undocked
0x00 0x02 LED_ON/OFF_Undocked
Direction: Controller —>iPort
Description: Command to turn ON/OFF the LEDs when an iPod
is not docked into the iPort.
LED
Mode
Code:
Code LED Mode
0x00 OFF
0x01 ON
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x4D Device type (iPort Micro)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x01 Packet Command Type
0x05 0x00 Packet Command High Byte
0x06 0x02 Packet Command Low Byte
0x07 0xNN LED Mode Code
0x08 0xNN Checksum
15
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

41. LED_Brightness_Docked
0x00 0x03 LED_Brightness_Docked
Direction: Controller —>iPort
Description: Command to adjust the brightness of the LEDs
when an iPod is docked into the iPort.
LED
Brightness
Mode
Code:
Code LED Brightness Mode
0x01 Dim
0x02 Medium
0x03 Bright
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x4D Device type (iPort Micro)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x01 Packet Command Type
0x05 0x00 Packet Command High Byte
0x06 0x03 Packet Command Low Byte
0x07 0xNN LED Brightness Mode Code
0x08 0xNN Checksum
42. LED_Brightness_Undocked
0x00 0x04 LED_Brightness_Undocked
Direction: Controller —>iPort
Description: Command to adjust the brightness of the LEDs
when an iPod is not docked into the iPort.
LED
Brightness
Mode
Code:
Code LED Brightness Mode
0x01 Dim
0x02 Medium
0x03 Bright
Packet
Structure:
Byte Number Value Meaning
0x00 0x2A Start character
0x01 0x4D Device type (iPort Micro)
0x02 0x00 Packet Length High Byte
0x03 0x04 Packet Length Low Byte
0x04 0x01 Packet Command Type
0x05 0x00 Packet Command High Byte
0x06 0x04 Packet Command Low Byte
0x07 0xNN LED Brightness Mode Code
0x08 0xNN Checksum
16
Instruction Manual iPort RS-232 Programming
iPort
Command
High Byte
iPort
Command
Low Byte Command
iPort
Command
High Byte
iPort
Command
Low Byte Command

Sent from Controller
RequestiPodName
Value Meaning
0x2A Start character
0x49 Device type (iPort)
0x00 Packet Length High Byte
0x03 Packet Length Low Byte
0x38 Packet Command Type
0x3C Packet Command High Byte
0x28 Packet Command Low Byte
0x18 Checksum
Sent from iPort
ReturniPodName
(“My
iPod”)
Value Meaning
0x2A Start character
0x49 Device type
0x00 Packet Length (H)
0x0A Packet Length (L)
0x38 Command Type
0x3C Packet Command (H)
0x29 Packet Command (L)
0x4D ASCII “M”
0x79 ASCII “y”
0x20 ASCII space
0x69 ASCII “i”
0x50 ASCII “P”
0x6F ASCII “o”
0x64 ASCII “d”
0x00 ASCII null
0x9E Checksum
17
Instruction Manual iPort RS-232 Programming
Detailed Example
The following example is a
ReturniPodName
command response from the iPort in response to a
RequestiPodName
command.

©2005 iPort. All rights reserved. iPort and RotoLock are trademarks of Dana Innovations. iPod is a registered trademark of Apple Computer, Inc.
Decora is a registered trademark of Leviton Manufacturing Co., Inc.
Instruction Manual iPort RS-232 Programming
07/05
san clemente ca | 888 .45 . iPort | www.iportmusic.com
This manual suits for next models
4
Table of contents
Other iPort Docking Station manuals
Popular Docking Station manuals by other brands

Sirius Satellite Radio
Sirius Satellite Radio Orbiter SH4000 installation guide

Philips
Philips DC1050/12 quick start guide

Datalogic
Datalogic Memor 1 installation guide

Bang & Olufsen
Bang & Olufsen BeoSound 5 Encore user manual

Griffin Technology
Griffin Technology iTrip Pocket quick start guide

Philips
Philips DC912 Specifications