Serial Turntable Communication Protocol
Protocol
	
		| This part is for developers only. | 
 
Datagram
Length: 4…8 bytes
	
		| device ID | command | nr. databytes | 0-4 databytes | checksum | 
The default device ID is 193.
 
Checksum
static byte __checksum(byte* datagram, int len) {
  int i = 0;
  byte chk = datagram[0];
  for( i = 1; i < len; i++) {
    chk = chk ^ datagram[i];
  }
  return chk % 128;
}
 
Response
The response on every command is the same as the command with zero data bytes.
 
Commands
Start
Start accepting commands.
 
Stop
Stop accepting commands, and hold on bridge at next position in case of pending.
 
Motor Speed
	
		| ID | 21 | 3 | Vmin% | Vmax% | accel% | checksum | 
 
Motor Kick Start
	
		| ID | 22 | 3 | delay% | n * 8ms | on/off(1/0) | checksum | 
 
Motor Delay
	
		| ID | 23 | 3 | start n * 100ms | end n * 100ms | off n * 100ms | checksum | 
 
Decelerate Start Position
	
		| ID | 24 | 1 | nr positions before end (max 6) | checksum | 
 
Set Type
	
		| ID | 26 | 2 | type: 1=48pos, 2=24pos, 3=24pos15° | sensor behaviour: 0=odd, 1=even | checksum | 
 
Goto Position
	
		| ID | 5 | 3 | direction 1=CW, 2=CCW | position | nop | checksum | 
 
Bridge Polarisation
	
		| ID | 4 | 1 | 0=standard, 1=inverted | checksum | 
 
Reset Emergency Break
Set Emergency Break
	
		| ID | 8 | 1 | status 1=ebreak, 2=soft stop, 3=reset ebreak | checksum | 
 
Set Track Relais
	
		| ID | 6 | 2 | on/off(1/0) | tracknr. | checksum | 
 
 
Queries
Status
Response:
	
		| ID | 3 | 3 | status | position | nop | checksum | 
Status: 0 = end position reached, 1 = turning right, 2 = turning left, 3 = ebreak
 
Events
Position
	
		| ID | 10 | 3 | status | position | relais | checksum | 
Status: 0 = end position reached, 1 = turning right, 2 = turning left, 3 = ebreak
 
Emergency Break