Samsung NX Mount Protocol – General

I have already reverse-engineered Samsung NX mount protocol around 5 years ago. It has been done with NX10 body which is very first Samsung NX body. All info. I found with the NX10 might be out-dated or changed somehow in newer bodies.

Also, in order to provide correct info. of attached Canon Lens to NX body, I restarted to reverse-engineer Samsung NX protocol again.

This post will help you to understand NX mount protocol as well.

Signal Capturing Tool

SAM_0001-en

 

I used this set a long ago for capturing NX10 signal, now I pulled out this dusty set for rework. 🙂

I attached a Saleae 8 channel logic analyzer to modified NX macro extension tube. The tube was made for my wooden NX macro extension tube set project. It is one of tested one with Oak wood. It is quite suitable to connect cable to the contacts and it can be used in between any NX body and lens.

 

NX Mount Contact Configuration

Below image is NX mount and contacts. I numbered 1 through 8 from left to right.

NX-Mount-Contacts

 

Following is the name of contacts and basic descriptions. (I named the contacts. 🙂 )

  • Pin 1 : CLK (Clock) – (Body –> Lens) SPI Clock signal
  • Pin 2: DLC (Data from Lens to Camera) – (Lens –> Body)
  • Pin 3: DCL (Data from Camera to Lens) – (Body –> Lens)
  • Pin 4: LRR (Lens Report Request) – (Body –> Lens) : Used for requesting lens status in AF mode.
  • Pin 5: LDR (Lens Data Ready) : (Lens –> Body) Used when lens has data to send to body.
  • Pin 6: GND (Ground)
  • Pin 7: VDD : Logic power (3.3V)
  • Pin 8: VCC : All motor power ( ex: AF motor, Aperture Moter, Zoom motor, etc.) (5V)

NX Mount Communication General

The communication uses simplified SPI communication. It doesn’t use SS-Slave Select.

  • Camera body is SPI Master and lens is SPI slave.
  • Pin 1: CLK is for SPI Clock
  • Pin 2: DLC is MISO(Master Input Slave Output)
  • Pin 3: DCL is MOSI (Master Output Slave Input)
  • Most Significant Bit First
  • 8 Bit per Transfer
  • Clock is High When Inactive (CPOL = 1)
  • Data is Valid on Clock Tailing Edge (CPHA = 1)

Following screen shot is from actual NX body-lens capture. You can see how 0x07 data is sent from NX body to NX lens.

OneByte

 

Typical NX Body and Lens Communication Procedure

I captured the very first communication between NX body and lens when the camera is power up as below.

The communication is typically formed that the body sends data (or command), and  the lens responds for the body request.

Below screen shot shows body sends 0x03 0xAA 0x55 to the lens, and the lens replies back to body the same as 0x03 0xAA 0x55.

OnePacket

Now you can see LDR signal changes. It keeps HIGH in normal. It goes down LOW when the lens sends data back to the body. After the sending data completed, LDR signal goes back to HIGH.

The LDR is controlled by the lens and it changes to LOW when the lens has data to send back to the body.

  1. Camera body generated CLK signal for 3 bytes and loaded 3 bytes data on DCL and the lens received them.
  2. After about 0.1 ms, the lens changed LDR state as LOW, and waited camera generates CLK signal.
  3. Once the camera body generated CLK signal, lens loaded its data on DLC and sent back to the body 3 bytes.
  4. Once lens sent all 3 bytes and changed LDR state as HIGH and went back to normal.