Documentation of the incoming packets for the SDI protocol

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

andrewhowdencom

  • Posts: 2
  • Joined: Wed Jan 25, 2023 8:12 pm
  • Real Name: AndrewHowden

Documentation of the incoming packets for the SDI protocol

PostWed Jan 25, 2023 8:23 pm

Heya lovely people,

I am currently playing around with implementing a library in Go that talks to my Black Magic BMCC6kPRO camera. This has been an enormously fun project, and the documentation provided so far is very useful! As well, when I've gotten stuck (as I have little experience with Bluetooth), I have appreciated this forum.

Where I am currently struggling is in understanding how the non-incoming camera control Bluetooth topics work. I am most interested for now in understanding whether there are references for the Outgoing camera control topic. I have been able to enable notifications without issue, and receive a message such as:

Code: Select all
255 18 0 0 12 12 5 2 55 50 48 109 109 32 116 111 32 56 50 48 109 109


In which the payload is:

Code: Select all
720mm to 820mm


I guess giving me information about the lens. But I'm struggling to understand what the 12th group is, 12th parameter of that is and what the 2nd operation (i guess read) is.

Has anyone found any docs on this? Am I overlooking something obvious?

(In other news, has anyone gotten any of the other bluetooth topics working? I can not switch the camera off, nor give my device a name :D)

Cheers!
Offline

andrewhowdencom

  • Posts: 2
  • Joined: Wed Jan 25, 2023 8:12 pm
  • Real Name: AndrewHowden

Re: Documentation of the incoming packets for the SDI protoc

PostFri Jan 27, 2023 4:45 pm

So far I've figured out that upon issuing at least some calls, you get a response back on the incoming camera control ID with the same parameters _except the operation type_ byte. 0 and 1 are documented, but 2 appears to be "this is me".

For example,
Code: Select all
out: [255 4 0 0 0 1 0 0]
in: [255 4 0 0 0 1 0 2]


This is dope! It means I can build a state in my library, and then keep that state updated based on the response from the camera. For some calls, I can even force them to await a response! Kind of like writing to, and then polling from a socket or whatever.
Offline

Brendan Dower

Blackmagic Design

  • Posts: 60
  • Joined: Thu Oct 10, 2019 5:56 am
  • Real Name: Brendan Dower

Re: Documentation of the incoming packets for the SDI protoc

PostWed Feb 15, 2023 3:02 am

Hi Andrew,

Category 12 is Metadata.
This info is documented in the Camera Code Samples, which are publicly available on our Developer website.
See the file CCUPacketTypes.swift in the CCU library for more info.

The packet you have received:
Code: Select all
255 18 0 0 12 12 5 2 55 50 48 109 109 32 116 111 32 56 50 48 109 109


.. is decoded as follows:
Code: Select all
Destination: 255 - All cameras
Length: 18 - 18 bytes
Command: 0
Reserved: 0
Category: 12 - Metadata
Parameter: 12 - Lens Distance
Type: 5 - UTF-8 String
Operation: 2 - Undocumented/Reserved
Data: {55 50 48 109 109 32 116 111 32 56 50 48 109 109} = "720mm to 820mm"


Note: the 18 bytes are counted from the Category to the end of the data payload (which is 14 bytes alone).
Brendan Dower
Blackmagic Design Developer Support
Offline
User avatar

Xtreemtec

  • Posts: 5391
  • Joined: Wed Jan 02, 2013 11:48 am
  • Location: The Netherlands

Re: Documentation of the incoming packets for the SDI protoc

PostWed Feb 15, 2023 8:25 am

Brendan, Interesting. Is there more undocumented data in ANC at the moment??

As we have implemented almost all commands in Hardware for our Decoding BMD to CCU Solution. But that is fully based on the Docu found in the Ursa manual and from decoding data from the Atem and Camera control panel...
Daniel Wittenaar .:: Xtreemtec Media Productions ::. -= www.xtreemtec.nl =-
4K OBV Trailer, ATEM TVS HD, 4M/E Broadcast Studio 4K, Constelation 8K, Hyperdeck Studio 12G, Ursa Broadcast 4K, 4K fiber converters with Sony Control
Offline

Brendan Dower

Blackmagic Design

  • Posts: 60
  • Joined: Thu Oct 10, 2019 5:56 am
  • Real Name: Brendan Dower

Re: Documentation of the incoming packets for the SDI protoc

PostThu Feb 16, 2023 12:26 am

Hi Daniel,

This info is publicly available in the CCUPacketTypes.swift file included in the Camera Code Samples.
I recommend reviewing the code from the Camera Code Samples for more detailed information.

The code samples are for use with Bluetooth, but the Camera Control protocol is the same in both cases. The difference is in the Bluetooth implementation (Service & Characteristics).

You can download the Camera Code samples here:
https://www.blackmagicdesign.com/au/dev ... uct/camera

Kind regards,
Brendan
Brendan Dower
Blackmagic Design Developer Support
Offline

Anthony Lunt

  • Posts: 10
  • Joined: Wed Feb 22, 2023 6:11 am
  • Location: United States
  • Real Name: Anthony Lunt

Re: Documentation of the incoming packets for the SDI protoc

PostMon Feb 27, 2023 8:39 am

andrewhowdencom wrote:Heya lovely people,

I am currently playing around with implementing a library in Go that talks to my Black Magic BMCC6kPRO camera. This has been an enormously fun project, and the documentation provided so far is very useful! As well, when I've gotten stuck (as I have little experience with Bluetooth), I have appreciated this forum.

Where I am currently struggling is in understanding how the non-incoming camera control Bluetooth topics work. I am most interested for now in understanding whether there are references for the Outgoing camera control topic. I have been able to enable notifications without issue, and receive a message such as:

Code: Select all
255 18 0 0 12 12 5 2 55 50 48 109 109 32 116 111 32 56 50 48 109 109


In which the payload is:

Code: Select all
720mm to 820mm


I guess giving me information about the lens. But I'm struggling to understand what the 12th group is, 12th parameter of that is and what the 2nd operation (i guess read) is.

Has anyone found any docs on this? Am I overlooking something obvious?

(In other news, has anyone gotten any of the other bluetooth topics working? I can not switch the camera off, nor give my device a name :D)

Cheers!

Thanks for sharing information.
Offline

Anthony Lunt

  • Posts: 10
  • Joined: Wed Feb 22, 2023 6:11 am
  • Location: United States
  • Real Name: Anthony Lunt

Re: Documentation of the incoming packets for the SDI protoc

PostWed Mar 01, 2023 6:58 am

andrewhowdencom wrote:Heya lovely people,

I am currently playing around with implementing a library in Go that talks to my Black Magic BMCC6kPRO camera. This has been an enormously fun project, and the documentation provided so far is very useful! As well, when I've gotten stuck (as I have little experience with Bluetooth), I have appreciated this forum.

Where I am currently struggling is in understanding how the non-incoming camera control Bluetooth topics work. I am most interested for now in understanding whether there are references for the Outgoing camera control topic. I have been able to enable notifications without issue, and receive a message such as:

Code: Select all
255 18 0 0 12 12 5 2 55 50 48 109 109 32 116 111 32 56 50 48 109 109


In which the payload is:

Code: Select all
720mm to 820mm


I guess giving me information about the lens. But I'm struggling to understand what the 12th group is, 12th parameter of that is and what the 2nd operation (i guess read) is.

Has anyone found any docs on this? Am I overlooking something obvious?

(In other news, has anyone gotten any of the other bluetooth topics working? I can not switch the camera off, nor give my device a name :D)

Cheers!

Thanks for sharing your idea I really enjoyed this thread.

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 18 guests