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:...
Read more »