-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
I've been spying on my BOOST Color and Distance sensor
Like EV3 UART sensors, Powered Up UART devices (can't say "sensors" anymore since BOOST Interactive Motor is also UART) send data about the device at 2400 baud until the brick syncs with the device.
Here is the data that I captured and the interpretation according to lms2012.h and d_uart_mod.c.
Recorded bytes and interpretation (click to expand)
40 MESSAGE_CMD + LENGTH_1 + CMD_TYPE 25 Type = 37; BOOST Color and Distance Sensor 9a checksum; 0xff ^ 0x40 ^ 0x25 51 MESSAGE_CMD + LENGTH_4 + CMD_MODES (similar to EV3 CMD_MODES with 2 extra bytes) 07 7 + 1; Modes = 8 (value used on EV3) 07 7 + 1; Views = 8 (value used on EV3) 0a 10 + 1; Modes = 11 (value used on Powered Up) 07 7 + 1; Views = 8 (value used on Powered Up) a3 checksum; 0xff ^ 0x51 ^ 0x07 ^ 0x07 ^ 0x0a ^ 0x07 52 MESSAGE_CMD + LENGTH_4 + CMD_SPEED 00 LSB c2 .. 01 .. 00 MSB; BitRate = 115200 6e checksum; 0xff ^ 0x52 ^ 0x00 ^ 0xc2 ^ 0x01 ^ 0x00 5f MESSAGE_CMD + LENGTH_8 + CMD_UNK1 (new PF2 command) 00 LSB 00 .. 00 .. 10 MSB; ??? = 0x10000000 00 LSB 00 .. 00 .. 10 MSB; ??? = 0x10000000 a0 checksum; 0xff ^ 0x5f ^ 0x00 ^ 0x00 ^ 0x10 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x10 9a MESSAGE_INFO + LENGTH_8 + MODE_2; really mode 10 20 MODE_PLUS_8 + INFO_NAME 43 'C' 41 'A' 4c 'L' 49 'I' 42 'B' 00 '' 00 '' 00 ''; Name = "CALIB" 00 checksum; 0xff ^ 0x9a ^ 0x20 ^ 0x43 ^ 0x41 ^ 0x4c ^ 0x49 ^ 0x42 ^ 0x00 ^ 0x00 ^ 0x00 9a MESSAGE_INFO + LENGTH_8 + MODE_2; really mode 10 21 MODE_PLUS_8 + INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB ff .. 7f .. 47 MSB; RawMax = 65535.0 83 checksum; 0xff ^ 0x9a ^ 0x21 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0xff ^ 0x7f ^ 0x47 9a MESSAGE_INFO + LENGTH_8 + MODE_2; really mode 10 22 MODE_PLUS_8 + INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 cd checksum; 0xff ^ 0x9a ^ 0x22 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0xc8 ^ 0x42 9a MESSAGE_INFO + LENGTH_8 + MODE_2; really mode 10 23 MODE_PLUS_8 + INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB ff .. 7f .. 47 MSB; SiMax = 65535.0 81 checksum; 0xff ^ 0x9a ^ 0x23 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0x00 ^ 0xff ^ 0x7f ^ 0x47 92 MESSAGE_INFO + LENGTH_4 + MODE_2; really mode 10 24 MODE_PLUS_8 + INFO_SYMBOL 4e 'N' 2f '/' 41 'A' 00 ''; Symbol = "N/A" 69 checksum; 0xff ^ 0x92 ^ 0x24 ^ 0x4e ^ 0x2f ^ 0x41 ^ 0x00 8a MESSAGE_INFO + LENGTH_2 + MODE_2; really mode 10 25 MODE_PLUS_8 + INFO_UNK1 (new PF2 info) 10 ??? 00 ??? 40 checksum; 0xff ^ 0x8a ^ 0x25 ^ 0x10 ^ 0x00 92 MESSAGE_INFO + LENGTH_4 + MODE_2; really mode 10 a0 MODE_PLUS_8 + INFO_FORMAT 08 DataSets = 8 01 Format = DATA16 05 Figures = 5 00 Decimals = 0 c1 checksum; 0xff ^ 0x92 ^ 0xa0 ^ 0x08 ^ 0x01 ^ 0x05 ^ 0x00 99 MESSAGE_INFO + LENGTH_8 + MODE_1; really mode 9 20 MODE_PLUS_8 + INFO_NAME 44 'D' 45 'E' 42 'B' 55 'U' 47 'G' 00 '' 00 '' 00 ''; Name = "DEBUG" 17 checksum 99 MESSAGE_INFO + LENGTH_8 + MODE_1; really mode 9 21 MODE_PLUS_8 + INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB c0 .. 7f .. 44 MSB; RawMax = 1023.0 bc checksum 99 MESSAGE_INFO + LENGTH_8 + MODE_1; really mode 9 22 MODE_PLUS_8 + INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 ce checksum 99 MESSAGE_INFO + LENGTH_8 + MODE_1; really mode 9 23 MODE_PLUS_8 + INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; SiMax = 10.0 24 checksum 91 MESSAGE_INFO + LENGTH_4 + MODE_1; really mode 9 24 MODE_PLUS_8 + INFO_SYMBOL 4e 'N' 2f '/' 41 'A' 00 ''; Symbol = "N/A" 6a checksum 89 MESSAGE_INFO + LENGTH_2 + MODE_1; really mode 9 25 MODE_PLUS_8 + INFO_UNK1 (new PF2 info) 10 ??? 00 ??? 43 checksum 91 MESSAGE_INFO + LENGTH_4 + MODE_1; really mode 9 a0 MODE_PLUS_8 + INFO_FORMAT 02 DataSets = 2 01 Format = DATA16 05 Figures = 5 00 Decimals = 0 c8 checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0; really mode 8 20 MODE_PLUS_8 + INFO_NAME 53 'S' 50 'P' 45 'E' 43 'C' 20 ' ' 31 '1' 00 '' 00 ''; "SPEC 1" 53 checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0; really mode 8 21 MODE_PLUS_8 + INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. 7f .. 43 MSB; RawMax = 255.0 7a checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0; really mode 8 22 MODE_PLUS_8 + INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 cf checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0; really mode 8 23 MODE_PLUS_8 + INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. 7f .. 43 MSB; SiMax = 255.0 78 checksum 90 MESSAGE_INFO + LENGTH_4 + MODE_0; really mode 8 24 MODE_PLUS_8 + INFO_SYMBOL 4e 'N' 2f '/' 41 'A' 00 ''; Symbol = "N/A" 6b checksum 88 MESSAGE_INFO + LENGTH_2 + MODE_0; really mode 8 25 MODE_PLUS_8 + INFO_UNK1 (new PF2 info) 00 ??? 00 ??? 52 checksum 90 MESSAGE_INFO + LENGTH_4 + MODE_0; really mode 8 a0 MODE_PLUS_8 + INFO_FORMAT 04 DataSets = 4 00 Format = DATA8 03 Figures = 3 00 Decimals = 1 c8 checksum 9f MESSAGE_INFO + LENGTH_8 + MODE_7 00 INFO_NAME 49 'I' 52 'R' 20 ' ' 54 'T' 78 'x' 00 '' 00 '' 00 ''; "IR Tx" 77 checksum 9f MESSAGE_INFO + LENGTH_8 + MODE_7 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB ff .. 7f .. 47 MSB; RawMax = 65535.0 a6 checksum 9f MESSAGE_INFO + LENGTH_8 + MODE_7 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 e8 checksum 9f MESSAGE_INFO + LENGTH_8 + MODE_7 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB ff .. 7f .. 47 SiMax = 65535.0 a4 checksum 97 MESSAGE_INFO + LENGTH_4 + MODE_7 04 INFO_NAME 4e 'N' 2f '/' 41 'A' 00 ''; Symbol = "N/A" 4c checksum 8f MESSAGE_INFO + LENGTH_2 + MODE_7 05 INFO_UNK1 00 ??? 04 ??? 71 checksum 97 MESSAGE_INFO + LENGTH_4 + MODE_7 80 INFO_FORMAT 01 DataSets = 1 01 Format = DATA16 05 Figures = 5 00 Decimals = 0 ed checksum 9e MESSAGE_INFO + LENGTH_8 + MODE_6 00 INFO_NAME 52 'R' 47 'G' 42 'B' 20 ' ' 49 'I' 00 '' 00 '' 00 ''; Name = "RGB I" 5f checksum 9e MESSAGE_INFO + LENGTH_8 + MODE_6 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB c0 .. 7f .. 44 MSB; RawMax = 1023.0 9b checksum 9e MESSAGE_INFO + LENGTH_8 + MODE_6 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 e9 checksum 9e MESSAGE_INFO + LENGTH_8 + MODE_6 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB c0 .. 7f .. 44 MSB = 1023.0 99 checksum 96 MESSAGE_INFO + LENGTH_4 + MODE_6 04 INFO_SYMBOL 52 'R' 41 'A' 57 'W' 00 ''; Symbol = "RAW" 29 checksum 8e MESSAGE_INFO + LENGTH_2 + MODE_6 05 INFO_UNK1 10 ??? 00 ??? 64 checksum 96 MESSAGE_INFO + LENGTH_4 + MODE_6 80 INFO_FORMAT 03 DataSets = 3 01 Format = DATA16 05 Figures = 5 00 Decimals = 0 ee checksum 9d MESSAGE_INFO + LENGTH_8 + MODE_5 00 INFO_NAME 43 'C' 4f 'O' 4c 'L' 20 ' ' 4f 'O' 00 '' 00 '' 00 ''; Name = "COL O" 4d checksum 9d MESSAGE_INFO + LENGTH_8 + MODE_5 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; RawMax = 10.0 02 checksum 9d MESSAGE_INFO + LENGTH_8 + MODE_5 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 ea checksum 9d MESSAGE_INFO + LENGTH_8 + MODE_5 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; SiMax = 10.0 00 checksum 95 MESSAGE_INFO + LENGTH_4 + MODE_5 04 INFO_SYMBOL 49 'I' 44 'D' 58 'X' 00 ''; Symbol = "IDX" 3b checksum 8d MESSAGE_INFO + LENGTH_2 + MODE_5 05 INFO_UNK1 00 ??? 04 ??? 73 checksum 95 MESSAGE_INFO + LENGTH_4 + MODE_5 80 INFO_FORMAT 01 DataSets = 1 00 Format = DATA8 03 Figures = 3 00 Decimals = 0 e8 checksum 94 MESSAGE_INFO + LENGTH_4 + MODE_4 00 INFO_NAME 41 'A' 4d 'M' 42 'B' 49 'I'; Name = 'AMBI' 6c checksum 9c MESSAGE_INFO + LENGTH_8 + MODE_4 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; RawMax = 100.0 e8 9c MESSAGE_INFO + LENGTH_8 + MODE_4 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 eb checksum 9c MESSAGE_INFO + LENGTH_8 + MODE_4 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; SiMax = 100.0 ea checksum 94 MESSAGE_INFO + LENGTH_4 + MODE_4 04 INFO_SYMBOL 50 'P' 43 'C' 54 'T' 00 ''; Symbol = 'PCT' 28 checksum 8c MESSAGE_INFO + LENGTH_2 + MODE_4 05 INFO_UNK1 10 ??? 00 ??? 66 checksum 94 MESSAGE_INFO + LENGTH_4 + MODE_4 80 INFO_FORMAT 01 DataSets = 1 00 Format = DATA8 03 Figures = 3 00 Decimals = 0 e9 checksum 9b MESSAGE_INFO + LENGTH_8 + MODE_3 00 INFO_NAME 52 'R' 45 'E' 45 'F' 4c 'L' 54 'T' 00 '' 00 '' 00 ''; Name = "REFLT" 2d checksum 9b MESSAGE_INFO + LENGTH_8 + MODE_3 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; RawMax = 100.0 ef checksum 9b MESSAGE_INFO + LENGTH_8 + MODE_3 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 ec checksum 9b MESSAGE_INFO + LENGTH_8 + MODE_3 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; SiMax = 100.0 ed checksum 93 MESSAGE_INFO + LENGTH_4 + MODE_3 04 INFO_SYMBOL 50 'P' 43 'C' 54 'T' 00 ''; Symbol = "PCT" 2f checksum 8b MESSAGE_INFO + LENGTH_2 + MODE_3 05 INFO_UNK1 10 ??? 00 ??? 61 checksum 93 MESSAGE_INFO + LENGTH_4 + MODE_3 80 INFO_FORMAT 01 DataSets = 1 00 Format = DATA8 03 Figures = 3 00 Decimals = 0 ee checksum 9a MESSAGE_INFO + LENGTH_8 + MODE_2 00 INFO_NAME 43 'C' 4f 'O' 55 'U' 4e 'N' 54 'T' 00 '' 00 '' 00 ''; Name = "COUNT" 26 checksum 9a MESSAGE_INFO + LENGTH_8 + MODE_2 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; RawMax = 100.0 ee checksum 9a MESSAGE_INFO + LENGTH_8 + MODE_2 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 ed checksum 9a MESSAGE_INFO + LENGTH_8 + MODE_2 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; SiMax = 100.0 ec checksum 92 MESSAGE_INFO + LENGTH_4 + MODE_2 04 INFO_SYMBOL 43 'C' 4e 'N' 54 'T' 00 ''; Symbol = "CNT" 30 checksum 8a MESSAGE_INFO + LENGTH_2 + MODE_2 05 INFO_UNK1 08 ??? 00 ??? 78 checksum 92 MESSAGE_INFO + LENGTH_4 + MODE_2 80 INFO_FORMAT 01 DataSets = 1 02 Format = DATA32 04 Figures = 4 00 Decimals = 0 ea checksum 91 MESSAGE_INFO + LENGTH_4 + MODE_1 00 INFO_NAME 50 'P' 52 'R' 4f 'O' 58 'X'; Name = "PROX" 7b checksum 99 MESSAGE_INFO + LENGTH_8 + MODE_1 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; RawMax = 10.0 06 checksum 99 MESSAGE_INFO + LENGTH_8 + MODE_1 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 ee checksum 99 MESSAGE_INFO + LENGTH_8 + MODE_1 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; SiMax = 10.0 04 checksum 91 MESSAGE_INFO + LENGTH_4 + MODE_1 04 INFO_SYMBOL 44 'D' 49 'I' 53 'S' 00 ''; Symbol = "DIS" 34 checksum 89 MESSAGE_INFO + LENGTH_2 + MODE_1 05 INFO_UNK1 50 ??? 00 ??? 23 checksum 91 MESSAGE_INFO + LENGTH_4 + MODE_1 80 INFO_FORMAT 01 DataSets = 1 00 Format = DATA8 03 Figures = 3 00 Decimals = 0 ec checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0 00 INFO_NAME 43 'C' 4f 'O' 4c 'L' 4f 'O' 52 'R' 00 '' 00 '' 00 ''; Name = "COLOR" 3a checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0 01 INFO_RAW 00 LSB 00 .. 00 .. 00 MSB; RawMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; RawMax = 10.0 07 checksum 98 MESSAGE_INFO + LENGTH_8 + MODE_0 02 INFO_PCT 00 LSB 00 .. 00 .. 00 MSB; PctMin = 0.0 00 LSB 00 .. c8 .. 42 MSB; PctMax = 100.0 ef 98 MESSAGE_INFO + LENGTH_8 + MODE_0 03 INFO_SI 00 LSB 00 .. 00 .. 00 MSB; SiMin = 0.0 00 LSB 00 .. 20 .. 41 MSB; SiMax = 10.0 05 checksum 90 MESSAGE_INFO + LENGTH_4 + MODE_0 04 INFO_SYMBOL 49 'I' 44 'D' 58 'X' 00 ''; Symbol = "IDX" 3e checksum 88 MESSAGE_INFO + LENGTH_2 + MODE_0 05 INFO_UNK1 c4 ??? 00 ??? b6 checksum 90 MESSAGE_INFO + LENGTH_4 + MODE_0 80 INFO_FORMAT 01 DataSets = 1 00 Format = DATA8 03 Figures = 3 00 Decimals = 0 ed checksum 88 MESSAGE_INFO + LENGTH_2 + MODE_0 06 INFO_UNK2 (second new PF2 info - others are 05) 4f ??? 00 ??? 3e checksum 04 MESSAGE_SYS + BYTE_ACK 00 MESSAGE_SYS + BYTE_SYNC
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels