BLE command set
serviceUUID: 0000be80-0000-1000-8000-00805f9b34fb writeCharacteristic: 0000be81-0000-1000-8000-00805f9b34fb readCharacteristic: 0000be82-0000-1000-8000-00805f9b34fb Lenght - 16 byte command stuff - optional protobuf SN is a 2 byte message counter starting at 0x0200 (512). Seems to be not relevant Video starts with the stettings currently set in each mode. Maybe some protobuf can change this. // Mode 0x04 Commands: // 01 App mode // 02 switch mode/close app mode // 03 take photo // 04 start video normal // 05 stop video // 0E C8 response // 0F some data // 18 whipe SD // 1A Periodic message activation // 1F F5 response // 20 reboot // 21 some data // 22 some data // 23,24,25,28 C8 // 29 video bullet // 30 stop video // 33 video HDR // 34 stop video // 39 reset (factory reset) // 3D timeshift video // 3E stop video // 42 gyro calib data? // 45 loop record // 46 stop video // // 19, 41, 43,44 freeze --> needs reboot // 52 unknown C8 respose // 53 9301 response // Example take photo // Send 10 000000 04 0000 03 00 020C 0000 800000 Example video stop. Last block is protobuf including filename etc. //Send 10 000000 04 0000 0500 0201 0000800000 //Got: 16 000000 04 0000 1020 02FF 8A43F40000 080010001A00 //Got: 07 000000 05 0000 //Got: 14 000000 04 0000 0620 02FF 8A43F40B40 08001000 //Got: 49 000000 04 0000 C800 0201 0000800000 0A370A2E2F4443494D2F43616D65726130312F5649445F32303233303130335F3134303630385F31305F3036312E696E7376108080800A180810000000040000172002FF8A43F400C0 //Got: 07 000000 05 0000 --> "/DCIM/Camera01/VID_20230103_140608_10_061.insv" and some other stuff If you get a response, try to decode the protobuf content. may include error codes as string. 23 000000 04 0000 9001 020E 010080BF00 1211756E6B6E6F776E206D736720636F64652E = "unknown msg code." 22 000000 04 0000 F401 0211 01008000C0 12106D73672065786563757465206572722E = "msg execute err."
Some old stuff:
These comands seems to be kind of outdated. (sourced from android wear app for One X2)
// GPS Data (send as 20 byte blocks)
// 47 000000 04 0000 3500 + SN + 0000 800000 0a35 + unix4Hex + 00000000000041 + 53/4E + lat8HEX + 57/45 + lon8hex + speed8Hex + heading8Hex + altitude8Hex
// 1: 53 byte message
// TakePhoto
// 07 000000 05 0000
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 3f 000000 04 0000 0300 + SN + 0000 800000 122d 5a18000000000000000000000000000000000000000000000000 6a023001 9a0100 aa0100 ba0100 d20100 e20200
// 2:
// 11: 0x00
// 13: 6: 1
// 19: 0x00
// 21: 0x00
// 23: 0x00
// 26: 0x00
// 44: 0x00
// TakePhotoHDR
// 07 000000 05 0000
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 46 000000 04 0000 0300 + SN + 0100 800000 0801 122d 5a18000000000000000000000000000000000000000000000000 6a023001 9a0100 aa0100 ba0100 d20100 e20200 1a0327004e
// 1: 1
// 2:
// 11: 0x00
// 13: 6: 1
// 19: 0x00
// 21: 0x00
// 23: 0x00
// 26: 0x00
// 44: 0x00
// 3: 0x27 0x00 0x4e
// Stop video
// 07 000000 05 0000
// 12 000000 04 0000 0500 + SN + 0000 800000 1001
// 2: 1
// StartVideo4K30
// 07 000000 05 0000
// 17 000000 04 0000 0900 + SN + 0000 800000 0a011f 1200 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801 // 1: 1
// 1: 0x1F
// 2: -empty-
// 3: 7
// StartVideo5K30
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 1203f8010a 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// 1: 0x1F
// 2: 31: 10
// 3: 7
// StartVideoGPS
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 1203f8010a 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// StartVideo4K50
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 1203f8010c 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// 1: 0x1F
// 2: 31: 12
// 3: 7
// StartVideoBullet
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 12 03f8010d 1804
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// 1: 0x1F
// 2: 31: 13
// 3: 4
// StartVideo5K25
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 12 03f80113 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// 1: 0x1F
// 2: 31: 19
// 3: 7
// StartVideo5K24
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 12 03f80114 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// 1: 0x1F
// 2: 31: 20
// 3: 7
// StartVideoHDR
// 07 000000 05 0000
// 1a 000000 04 0000 0900 + SN + 0000 800000 0a011f 1203f80115 1807
// 10 000000 04 0000 0f00 + SN + 0000 800000
// 12 000000 04 0000 0400 + SN + 0000 800000 0801
// 1: 0x1F
// 2: 31: 21
// 3: 7