MX-700 commands

# List of all MX-700 commands

Command 4C (see below) returns a list of all the commands supported by the camera. On my MX-700 it gives the following list:

    00 02 07 09 0A 0B 0C 0E 0F 11 13 15 17 19 1B 27 29 30 32 34
    4C 51 62 64 80 82 84 86 C0 20 22 2A 2B.

## 00 - Download thumbnail

Input: frame number (int)
Output: picture data (variable size)

The first bytes of the picture (enough to get the whole Exif header) are transferred.

## 02 - Download picture

Input: frame number (int)
Output: picture data (variable size)

The whole picture is transferred.

## 07 - Change speed

Input: new speed parameter (byte)
Output: errno (byte)

The command prefix is 0x01, instead of 0x00 for all other commands.

## 09 - Get software version

Input: none
Output: string (variable size)

This command returns "`01.00,MX-700`" on my digicam.

## 0A - Get picture name

Input: frame number (int)
Output: the image filename (variable size)

## 0B - Number of pictures

Input: none
Output: the number of pictures (int)

## 0C - No operation

Input: none
Output: none

This command does nothing.

## 0E - Upload picture

## 0F - Set picture name for upload

## 11 - Unknown

## 13 - Unknown

## 15 - Get name of latest picture

Input: none
Output: picture name (variable size)

## 17 - Get image size

Input: frame number (int)
Output: picture size (long)

## 19 - Delete picture

Input: frame number (int)
Output: errno (byte)

## 1B - Get card status and available space

Input: none
Output: card status (byte), available space (long)

The card status is 0 in the normal case, non-zero for exceptional conditions (no card present, card not formatted, etc.). It is followed by the free space on the card, which is always a multiple of the block size (512 bytes), or zero on error.

## 20 - Unknown

## 22 - Unknown

## 2A - Get directory name

Input: directory number (int)
Output: directory name (variable size)

## 2B - Unknown

## 27 - Shoot

Input: none
Output: frame number (int), command status (int)

Take a picture. Don't know how to interpret the "command status" part.

## 29 - Get camera type

Input: none
Output: string (variable size)

This command returns "`DIGCAM\MX-700\FUJIFILM`" on my digicam.

## 30 - Get flash mode

Input: none
Output: flash status (byte)

Possible values are: 0 (disabled), 1 (forced), 2 (strobe) and 3 (auto).

## 32 - Set flash mode

Input: new flash mode (byte)
Output: errno (byte)

## 34 - Load flash

Input: flash intensity (int)
Output: errno (byte)

The Fuji software uses a value of 200 for the flash intensity. This command can take several seconds to complete. It should be issued before attempting to take a picture with command 0x27.

## 4C - Get list of supported commands

Input: none
Output: string (variable size)

Returns a list of the commands accepted by this camera.

## 51 - Get command information

Input: command number (byte)
Output: something (int)

I guess the "something" is an indication of how much time the command can take, so that the software can provide appropriate timeout values. In this case, the unit is probably something like 1/10 second, so that the timeouts will be between 0.5 and 20 seconds.

## 62 - Download preview

Input: none
Output: string (variable length)

The preview is transferred.

## 64 - Take preview

Input: none
Output: command status (int)

This command should be followed by 0x62 (download preview).

## 80 - Get camera ID

Input: none
Output: a string (10 bytes)

The "camera ID" is returned. This identifier, stored in the camera's nonvolatile memory, is 10 bytes long. It is used to fill the "Copyright" field in the Exif header of pictures.

## 82 - Set camera ID

Input: new camera ID string (variable size)
Output: errno (byte)

The string is truncated or padded with spaces to be exactly 10 bytes long, and is stored as the new "Camera ID".

## 84 - Get date

Input: none
Output: YYYYMMDDHHMMSS (14 bytes)

## 86 - Set date

Input: YYYYMMDDHHMMSS (14 bytes)
Output: errno (byte)

## C0 - Get image information