Skip to content

PSKey configuration mode for OVC3860 based bluetooth audio modules

Tomáš Kováčik edited this page Mar 4, 2019 · 7 revisions

What are PSkeys

More info about PSKeys, what they are and how they works is in this document.

Entering PSKey configuration mode

BT modules immediately after start send this message on serial port at 115200b:

0x04 0x0F 0x04 0x00 0x01 0x00 0x00

to enter PSKey configuration mode we must reply with message:

0xC5 0xC7 0xC7 0xC9 0xD0 0xD7 0xC9 0xD1 0xCD

and module acknowledge entering configuration mode with message:

0x04 0x0F 0x04 0x01 0x01 0x00 0x00

for more info see enterConfigMode() in OVC3860.cpp

Communication in PSKey configuration mode:

all messages in this mode are at least 4bytes long, based on this structure:

  • TYPE (4bits)
  • ADDR (12bits)
  • SIZE (16bits)

0xTYPE(4bits)+ADDR(upper4bits) 0xADDR(8bits) 0xSIZE 0xSIZE

  • 1st byte is used as indication of message type (upper 4bits) and as part of address
  • 2nd byte address
  • 3st and 4th byte number of bytes to by send.

message types (bits 7,6,5,4 of byte 1):

  • 0x1* read
  • 0x2* response to read
  • 0x3* write
  • 0x4* response to write
  • 0x5* used to quit configuration mode (command ??)

If we send for example 0x11, 0xc7, 0x00, 0x10 (read module name) we are sending:
0x1* - read data from address 0x*1c7, size 0x0010 - sixteen characters

module will responce with:

0x21 0xc7 0x00 0x10 0x4b 0x4f 0x56 0x4f 0x54 0x45 0x53 0x54 0x42 0x54 0x00 0x35 0x20 0x62 0x79 0x74

0x2* - responce to read command
0x*1c7 - address
0x0010 - size, 16bytes
0x4b 0x4f 0x56 0x4f 0x54 0x45 0x53 0x54 0x42 0x54 0x00 0x35 0x20 0x62 0x79 0x74
K O V O T E S T B T NULL(term.) .. garbage

to write new name TEST123456789012, we must send:

0x31 0xc7 0x00 0x10 0x54 0x45 0x53 0x54 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30 0x31 0x32

0x3* - indicating that we wanna write something
0x*1c7 - address
0x0010 - size of 16bytes
0x54 0x45 0x53 0x54 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30 0x31 0x32 - actual name
T E S T 1 2 3 4 5 6 7 8 9 0 1 2

module will acknowledge it be sending:

0x41 0xC7 0x00 0x10

0x4* - ack of write
0x*1c7 - address
0x0010 - size

(catching response is not fully implemented yet in function )