err4o4 / tilta-nucleus

Tilta Nucleus N reverse engineering
20 stars 6 forks source link

better Titla protocol description #3

Open trosacz opened 1 year ago

trosacz commented 1 year ago

startchar : char - always ":" deviceID : byte - 1,2,4,8 for motors 1,2,3,4 (each motor is on own bit, because you can send command to more motors) modbuscmd: byte - always 6, this is modbus command for write commnad: byte paramID: byte data: word; checksum: byte

checksum is using 2's complement (code

// Calculate the 8-bit checksum using 2's complement
uint8_t calcChecksum(uint8_t *data, int len) {
  int sum = 0;

  // Sum all the bytes in the data
  for (int i = 0; i < len; i++) {
    sum += data[i];
  }

  // Take the 2's complement of the sum
  return (uint8_t)(~sum + 1);
}

)

example of commands:

//calibration DEVICEID: 63 CMD: 0 PARAM: 1 DATA: 2

//ping DEVICEID: 150 CMD: 0 PARAM: 2 DATA: 7 DEVICEID: 201 CMD: 128 PARAM: 0 DATA: 0

//rec ON DEVICEID: 201 CMD: 0 PARAM: 0 DATA: 1

//rec OFF DEVICEID: 201 CMD: 0 PARAM: 0 DATA: 0

//focus DEVICEID: 1 CMD: 5 PARAM: 0 DATA: 0-9999

maxholgasson commented 7 months ago

in focus, PARAM is speed of movement. 0..127 for incementing DATA, 128..255 for decrementing data

what does that mean?