Pololu Maestro Servo Serial Steps Calculating Position Data for Serial Commands https://www.pololu.com/docs/0J40/5.e ; Initialize the serial to the Maestro Auto-Detect ; Target = (0x84,Position) ; Servo Position Word: ; Second byte holds the lower 7 bits of target. XXXXµs = 0123456, 1234567 = /0x, /0x ; Servo Position XXXXµs = XXXms = (XXXXx4 = 1234567 = in binary) = /0x ; Third data byte holds the bits 7-13 of target. ; Servo Position XXXXµs = XXXms = (XXXXx4 = 0123456 = in binary) = /0x ; 50ms = (16,15) 55ms = (24,8) 60ms = (96,9) 65ms = (24,8) 70ms = (112,10) 75ms = (56,11) 80ms = (0,12) ; 85ms = (72,13) 90ms = (16,14) 95ms = (88,14) 100ms = (56,11) 105ms = (104,16) 110ms = (48,17) 115ms = (120,17) ; 120ms = (64,18) 125ms = (8,19) 130ms = (80,20) 135ms = (24,21) 140ms = (96x21) 145ms = (40,22) 150ms = (46,112) ; 155ms = (112,23) 160ms = (0,25) 165ms = (72,25) 170ms = (16,26) 175ms = (88,27) 180ms = (32,28) 185ms = (104,28) ; 190ms = (48,29) 195ms = (120,30) 200ms = (64,31) 205ms = (8,32) 210ms = (80,32) 215ms = (24,33) 220ms = (96,34) ; 225ms = (40,35) 230ms = (112,35) 235ms = (56,36) 240ms = (0,37) 245ms = (72,38) 250ms = (78,16) ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 500µs = 0001111 1010000 = 16/0x10, 15/0x0F ; Servo Position 500us = 50ms = 208 ( 500x4 = 2000 = 010000 in binary) = 16 = 0x10 Lowest ; Third data byte holds the bits 7-13 of target. ; Servo Position 500us = 50ms = 208 ( 500x4 = 2000 = 0001111 in binary) = 15 = 0x0F Lowest ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 550µs = 00001000 10011000 = 24/0x18, 8/0x08 ; Servo Position 550us = 55ms = (550x4 = 2200 = 0011000 in binary) = 24/0x18 ; Third data byte holds the bits 7-13 of target. ; Servo Position 550us = 55ms = (550x4 = 2200 = 0001000 in binary) = 8/0x08 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 600µs = 00001001 01100000 = 96/0x60, 9/0x09 ; Servo Position 600µs = 60ms = (600x4 = 2400 = 1100000 in binary) = 96/0x60 ; Third data byte holds the bits 7-13 of target. ; Servo Position 600µs = 60ms = (600x4 = 2400 = 0001001 in binary) = 9/0x09 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 650µs = 00001000 10011000 = 24/0x18, 8/0x08 ; Servo Position 650µs = 65ms = (650x4 = 2600 = 0011000 in binary) = 24/0x18 ; Third data byte holds the bits 7-13 of target. ; Servo Position 650µs = 65ms = (650x4 = 2600 = 0001000 in binary) = 8/0x08 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 700µs = 00001010 11110000 = 112/0x70, 10/0x0A ; Servo Position 700µs = 70ms = (700x4 = 2800 = 1110000 in binary) = 112/0x70 ; Third data byte holds the bits 7-13 of target. ; Servo Position 700µs = 70ms = (700x4 = 2800 = 0001010 in binary) = 10/0x0A ; Second byte holds the lower 7 bits of target. 750µs = 00001011, 10111000 = 56/0x38, 11/0x0B ; Servo Position 1500us = 750ms = (750x4 = 3000 = 0111000 in binary) = 56 = 0x38 Center ; Third data byte holds the bits 7-13 of target. ; Servo Position 1500us = 750ms = (750x4 = 3000 = 0001011 in binary) = 11 = 0x0B Center ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 800µs = 00001100 10000000 = 0/0x00, 12/0x0C ; Servo Position 800µs = 80ms = (800x4 = 3200 = 0000000 in binary) = 0/0x00 ; Third data byte holds the bits 7-13 of target. ; Servo Position 800µs = 80ms = (800x4 = 3200 = 0001100 in binary) = 12/0x0C ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 850µs = 00001101 01001000 = 72/0x48, 13/0x0D ; Servo Position 850µs = 85ms = (850x4 = 3400 = 1001000 in binary) = 72/0x48 ; Third data byte holds the bits 7-13 of target. ; Servo Position 850µs = 85ms = (850x4 = 3400 = 0001101 in binary) = 13/0x0D ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 900µs = 00001110 00010000 = 16/0x10, 14/0x0E ; Servo Position 900µs = 90ms = (900x4 = 3600 = 0010000 in binary) = 16/0x10 ; Third data byte holds the bits 7-13 of target. ; Servo Position 900µs = 90ms = (900x4 = 3600 = 0001110 in binary) = 14/0x0E ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 950µs = 00001110 11011000 = 88/0x58, 14/0x0E ; Servo Position 950µs = 95ms = (950x4 = 3800 = 1011000 in binary) = 88/0x58 ; Third data byte holds the bits 7-13 of target. ; Servo Position 950µs = 95ms = (950x4 = 3800 = 0001110 in binary) = 14/0x0E ; Second byte holds the lower 7 bits of target. 1000µs = 00001011 10111000 = 56/x38, 11/X0B ; Servo Position 1000us = 100ms = (1000x4 = 4000 = 0111000 in binary) = 56/0x38 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1000us = 100ms = (1000x4 = 4000 = 0001011 in binary) = 11/0x0B ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1050µs = 00010000 01101000 = 104/0x68, 16/0x10 ; Servo Position 1050µs = 105ms = (1050x4 = 4200 = 1101000 in binary) = 104/0x68 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1050µs = 105ms = (1050x4 = 4200 = 0010000 in binary) = 16/0x10 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1100µs = 00010001 00110000 = 48/0x30, 17/0x11 ; Servo Position 1100µs = 110ms = (1100x4 = 4400 = 0110000 in binary) = 48/0x30 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1100µs = 110ms = (1100x4 = 4400 = 0010001 in binary) = 17/0x11 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1150µs = 00010001 11111000 = 120/0x78, 17/0x11 ; Servo Position 1150µs = 115ms = (1150x4 = 4600 = 1111000 in binary) = 120/0x78 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1150µs = 115ms = (1150x4 = 4600 = 0010001 in binary) = 17/0x11 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1200µs = 00010010 11000000 = 64/0x40, 18/0x12 ; Servo Position 1200µs = 120ms = (1200x4 = 4800 = 1000000 in binary) = 64/0x40 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1200µs = 120ms = (1200x4 = 4800 = 0010010 in binary) = 18/0x12 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1250µs = 00010011 10001000 = 8/0x08, 19/0x13 ; Servo Position 1250µs = 125ms = (1250x4 = 5000 = 0001000 in binary) = 8/0x08 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1250µs = 125ms = (1250x4 = 5000 = 0010011 in binary) = 19/0x13 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1300µs = 00010100 01010000 = 80/0x50, 20/0x14 ; Servo Position 1300µs = 130ms = (1300x4 = 5200 = 1010000 in binary) = 80/0x50 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1300µs = 130ms = (1300x4 = 5200 = 0010100 in binary) = 20/0x14 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1350µs = 00010101 00011000 = 24/0x18, 21/0x15 ; Servo Position 1350µs = 135ms = (1350x4 = 5400 = 0011000 in binary) = 24/0x18 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1350µs = 135ms = (1350x4 = 5400 = 0010101 in binary) = 21/0x15 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1400µs = 00010101 11100000 = 96/0x60, 21/0x15 ; Servo Position 1400µs = 140ms = (1400x4 = 5600 = 1100000 in binary) = 96/0x60 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1400µs = 140ms = (1400x4 = 5600 = 0010101 in binary) = 21/0x15 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1450µs = 00010110 10101000 = 40/0x28, 22/0x16 ; Servo Position 1450µs = 145ms = (1450x4 = 5800 = 0101000 in binary) = 40/0x28 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1450µs = 145ms = (1450x4 = 5800 = 0010110 in binary) = 22/0x16 ; Second byte holds the lower 7 bits of target. 1500µs = 00101110 01110000 = 46/0x2E, 112/0x70 ; Servo Position 1500us = 150ms = (1500x4 = 6000 = 1110000 in binary) = 112 = 0x70 Center ; Third data byte holds the bits 7-13 of target. ; Servo Position 1500us = 150ms = (1500x4 = 6000 = 0101110 in binary) = 46 = 0x2E Center ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1550µs = 00010111 01110000 = 112/0x70, 23/0x17 ; Servo Position 1550µs = 155ms = (1550x4 = 6000 = 1110000 in binary) = 112/0x70 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1550µs = 155ms = (1550x4 = 6000 = 0010111 in binary) = 23/0x17 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1600µs = 00011001 00000000 = 0/0x00, 25/0x19 ; Servo Position 1600µs = 160ms = (1600x4 = 6400 = 0000000 in binary) = 0/0x00 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1600µs = 160ms = (1600x4 = 6400 = 0011001 in binary) = 25/0x19 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1650µs = 00011001 11001000 = 72/0x48, 25/0x19 ; Servo Position 1650µs = 165ms = (1650x4 = 6600 = 1001000 in binary) = 72/0x48 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1650µs = 165ms = (1650x4 = 6600 = 0011001 in binary) = 25/0x19 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1700µs = 00011010 10010000 = 16/0x10, 26/0x1A ; Servo Position 1700µs = 170ms = (1700x4 = 6800 = 0010000 in binary) = 16/0x10 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1700µs = 170ms = (1700x4 = 6800 = 0011010 in binary) = 26/0x1A ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1750µs = 00011011 01011000 = 88/0x58, 27/0x1B ; Servo Position 1750µs = 175ms = (1750x4 = 7000 = 1011000 in binary) = 88/0x58 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1750µs = 175ms = (1750x4 = 7000 = 0011011 in binary) = 27/0x1B ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1800µs = 00011100 00100000 = 32/0x20, 28/0x1C ; Servo Position 1800µs = 180ms = (1800x4 = 7200 = 0100000 in binary) = 32/0x20 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1800µs = 180ms = (1800x4 = 7200 = 0011100 in binary) = 28/0x1C ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1850µs = 00011100 11101000 = 104/0x68, 28/0x1C ; Servo Position 1850µs = 185ms = (1850x4 = 7400 = 1101000 in binary) = 104/0x68 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1850µs = 185ms = (1850x4 = 7400 = 0011100 in binary) = 28/0x1C ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1900µs = 00011101 10110000 = 48/0x30, 29/0x1D ; Servo Position 1900µs = 190ms = (1900x4 = 7600 = 0110000 in binary) = 48/0x30 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1900µs = 190ms = (1900x4 = 7600 = 0011101 in binary) = 29/0x1D ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 1950µs = 00011110 01111000 = 120/0x78, 30/0x1F ; Servo Position 1950µs = 195ms = (1950x4 = 7800 = 1111000 in binary) = 120/0x78 ; Third data byte holds the bits 7-13 of target. ; Servo Position 1950µs = 195ms = (1950x4 = 7800 = 0011110 in binary) = 30/0x1F ; Second byte holds the lower 7 bits of target. 2000µs = 00011111 01000000 = 64/0x40, 31/0x1F ; Servo Position 2000us = 200ms = (2000x4 = 8000 = 1000000 in binary) = 64/0x40 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2000us = 200ms = (2000x4 = 8000 = 0011111 in binary) = 31/0x1F ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2050µs = 00100000 00001000 = 8/0x08, 32/0x20 ; Servo Position 2050µs = 205ms = (2050x4 = 8200 = 0001000 in binary) = 8/0x08 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2050µs = 205ms = (2050x4 = 8200 = 0100000 in binary) = 32/0x20 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2100µs = 00100000 11010000 = 80/0x50, 32/0x20 ; Servo Position 2100µs = 210ms = (2100x4 = 8400 = 1010000 in binary) = 80/0x50 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2100µs = 210ms = (2100x4 = 8400 = 0100000 in binary) = 32/0x20 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2150µs = 00100001 10011000 = 24/0x18, 33/0x21 ; Servo Position 2150µs = 2150ms = (2150x4 = 8600 = 0011000 in binary) = 24/0x18 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2150µs = 2150ms = (2150x4 = 8600 = 0100001 in binary) = 33/0x21 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2200µs = 00100010 01100000 = 96/0x60, 34/0x22 ; Servo Position 2200µs = 220ms = (2200x4 = 8800 = 1100000 in binary) = 96/0x60 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2200µs = 220ms = (2200x4 = 8800 = 0100010 in binary) = 34/0x22 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2250µs = 00100011 00101000 = 40/0x28, 35/0x23 ; Servo Position 2250µs = 225ms = (2250x4 = 9000 = 0101000 in binary) = 40/0x28 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2250µs = 225ms = (2250x4 = 9000 = 0100011 in binary) = 35/0x23 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2300µs = 00100011 11110000 = 112/0x70, 35/0x23 ; Servo Position 2300µs = 230ms = (2300x4 = 9200 = 1110000 in binary) = 112/0x70 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2300µs = 230ms = (2300x4 = 9200 = 0100011 in binary) = 35/0x23 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2350µs = 00100100 10111000 = 56/0x38, 36/0x24 ; Servo Position 2350µs = 235ms = (2350x4 = 9400 = 0111000 in binary) = 56/0x38 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2350µs = 235ms = (2350x4 = 9400 = 0100100 in binary) = 36/0x24 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2400µs = 00100101 10000000 = 0/0x00, 37/0x25 ; Servo Position 2400µs = 240ms = (2400x4 = 9600 = 0000000 in binary) = 0/0x00 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2400µs = 240ms = (2400x4 = 9600 = 0100101 in binary) = 37/0x25 ; Servo Position Word: ; Second byte holds the lower 7 bits of target. 2450µs = 00100110 01001000 = 72/0x48, 38/0x26 ; Servo Position 2450µs = 245ms = (2450x4 = 9800 = 1001000 in binary) = 72/0x48 ; Third data byte holds the bits 7-13 of target. ; Servo Position 2450µs = 245ms = (2450x4 = 9800 = 0100110 in binary) = 38/0x26 ; Second byte holds the lower 7 bits of target. 2500µs = 1001110, 0010000 = 78/0x4E, 16/0x10 ; Servo Position 2500us = 250ms = 16 (2500x4 = 10000 = 0010000 in binary) = 16/0x10 Highest ; Third data byte holds the bits 7-13 of target. ; Servo Position 2500us = 250ms = 16 (2500x4 = 10000 = 1001110 in binary) = 78/0x4E Highest ; Servo Position Word: ; DEC/0xHEX ; Second byte holds the lower 7 bits of target. XXXXµs = 0123456, 1234567 = /0x, /0x ; Servo Position XXXXµs = XXXms = (XXXXx4 = 1234567 = in binary) = /0x ; Third data byte holds the bits 7-13 of target. ; Servo Position XXXXµs = XXXms = (XXXXx4 = 0123456 = in binary) = /0x A B C D E F G H I J 50ms 55ms 60ms 65ms 70ms 75ms 80ms 85ms 90ms 95ms 0x10,0x0F 0x18,0x08 0x60,0x09 0x18,0x08 0x70,0x0A 0x38,0x0B 0x00,0x0C 0x48,0x0D 0x10,0x0E 0x58,0x0E 016,015 024,008 096,009 024,008 112,010 056,011 000,012 072,013 016,014 088,014 K L M N O P Q R S T 100ms 105ms 110ms 115ms 120ms 125ms 130ms 135ms 140ms 145ms 0x38,0x0B 0x68,0x10 0x30,0x11 0x78,0x11 0x40,0x12 0x08,0x13 0x50,0x14 0x18,0x15 0x60,0x15 0x28,0x16 056,011 104,016 048,017 120,017 064,018 008,019 080,020 024,021 096,021 040,022 U V W X Y Z 0 1 2 3 150ms 155ms 160ms 165ms 170ms 175ms 180ms 185ms 190ms 195ms 0x2E,0x70 0x70,0x17 0x00,0x19 0x48,0x19 0x10,0x1A 0x58,0x1B 0x20,0x1C 0x68,0x1C 0x30,0x1D 0x78,0x1F 046,112 112,023 000,025 072,025 016,026 088,027 032,028 104,028 048,029 120,030 4 5 6 7 8 9 . , ( ) 200ms 205ms 210ms 215ms 220ms 225ms 230ms 235ms 240ms 245ms 0x40,0x1F 0x08,0x20 0x50,0x20 0x18,0x21 0x60,0x22 0x28,0x23 0x70,0x23 0x38,0x24 0x00,0x25 0x38,0x26 064,031 008,032 080,032 024,033 096,034 040,035 112,035 056,036 000,037 072,038 ^ 250ms 0x4E,0x10 078,016