Kcheadset V8.4 User Guide
Kcheadset V8.4 User Guide
Kcheadset V8.4 User Guide
kcHeadset v8.4
User Guide
Bluetooth v3.0
© 2015 KC Wirefree Corporation
kcHeadset User Guide
kcHeadset v8.4.1
Introduction
Our kcHeadset firmware is primarily a speaker/headset receiver system. It can maintain a connection to a stereo
transmitter (a remote A2DP Source device) and a connection to a cell phone (a remote AGHFP device) simultaneously.
However, only one of the remote devices can stream audio at a time. Typically, kcHeadset is receiving stereo, until an
incoming phone call is signaled. Then, if the user accepts the phone call, the stereo device is paused while the phone
call is streamed. Once the phone call ends, the stereo streaming is resumed. Our kcHeadset can disable either of the
audio profiles.
A rudimentary Serial Port Profile connection is available. This profile can transmit and receive data simultaneously
with audio streaming. High bandwidth usage may negatively affect audio quality. Currently, the Serial Profile is not
implemented with any features, and simply accepts incoming connection requests, where all data is seamlessly
connected to the Uart for transmitting and receiving.
Hardware
This User Guide covers device operations specific to this firmware edition. Hardware features and capabilities are
outlined in the module Datasheets.
Supported Bluetooth Profiles
Firmware Editions
Our default kcHeadset is released in class 1 and class 2 editions.
Audio Codec Options
A2DP supports several audio codec formats. SBC (Sub‐Band Coding) is the Bluetooth mandatory default. AAC is
enabled by default, and subject to license fees for production products. ADPCM, APTX, and MP3 are optionally
available. HFP support CVSD, aLAW, and uLaw codec formats, and are the Bluetooth mandatory defaults.
A2DP & HFP Sampling Rates
A2DP supports 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, and 48KHz sampling rate outputs. The sampling rate is
determined by the A2DP Source device. HFP supports 8 and 16KHz (wide band) sampling rates. The sampling rate is
determined by the AGHFP device.
Page 2
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Firmware Change Log
V8.4 b1
Changed customer specific features.
V8.4 b0
Added AT ConnectConfig command.
Modified AT Connect to no longer drop connections while previously connected.
Fixed A2DP reconnection bug.
Added PTT detection upon HFP connection.
Updated HFP commands display.
Updated system output messages and synchronized build output to match kcGateway.
V8.3 b3
Added customizable HFP AT commands with the AT HfpCmd command.
Changed customer specific features.
V8.2 b1
Fixed AT Events bug.
V8.2 b0
Added AT PairingMax, PairingDelete, PinCode, PinConfig, PioRead, PioStatus, PioWrite, RemoteConnect
commands.
Added remote command mode for SPP linked devices.
Added PTT command to and SQ command compatible with AGv6.9 and later.
V8.1 b1
Added AT AudioLoopback, OutputCallIn, OutputOnCall, ReconnectMode, TimeoutDisc, TimeoutIdle, TimeoutLinkloss
commands.
Updated the At Command responses.
Fixed audio streaming bugs.
V8.0 b45
Added AT AutoAnswer, AuoDisc, AutoReconnect, Battery, Call, Connect, Disconnect, MonoMode, MicGainInit,
commands.
Renamed AT InputGain ‐> MicGain, VolumeDefault ‐> VolumeInit.
Updated At Command responses and system messages.
Page 3
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Automatic Behaviors
Feature
Reconnect on startup
Reconnect on link loss
4 hour Idle shutoff
90 sec Discoverable timeout
Feature Activation
PIO pins are used to activate firmware features. PIO default state is LOW (0V), and activates the assigned feature with
a HIGH (3.3V) signal press, and LOW (0V) signal release. The “button presses” are debounced by 4 readings within
15ms. The following timings are configured for a “button press” to activate an assigned feature.
LED Event and State Indicators
When battery is low, the Red led blinks instead of the Blue led.
Page 4
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
PIO Assignments
Multifunctional ENABLE / BTB
The BTB – Bluetooth button is a multi‐featured input button. Most of the features are activated differently based on
the current operating mode of the device. For example, if the device is not currently connected, then a short BTB
press will trigger the reconnection feature. However, if a phone call is incoming, then a short BTB press will answer the
call instead.
The ENABLE pin is a dual purpose pin, and kcAudioHeadset firmware can operate both power switch and power
button modes.
First, power button mode is supported, where the ENABLE pin is tied to a momentary button (typically supplied
directly from a li‐ion battery). In this usage model, the ENABLE pin is used as the BTB. A long press of ENABLE will
power up the device, and a subsequent very long press will power off the device. When the device is on, this ENABLE
pin will provide the same features as the BTB.
Secondly, power switch mode is supported, where an external system power switch is used, typically to supply a DC
power source. In this mode the ENABLE pin will be tied to this switched power source, and will simply turn on/off the
device. In this mode, since the ENABLE pin is held HIGH when powered on, then BTB features must be operated using
the BTB assigned PIO 4.
The device provides both power switch and power button operations by latching the system ENABLE internally, thus
allowing the ENABLE pin to turn on/off the device with simple button presses, and additionally triggering all the
features of the BTB when subsequently pressed. However, if the system is powered up, and the ENABLE pin remains
HIGH for over 10 seconds, then the ENABLE button disables the internal power latch, which will allow the device to
power off immediately upon release of the ENABLE pin (LOW).
Page 5
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Button Controls
Note: The ENABLE button also inherits the same features as BTB when it is used as momentary power on/off button.
Page 6
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Output Volume
Default output volume for new connections is Level 14 = 0 dB, and can be changed with the AT VolumeInit command.
Current volume levels are saved for each device, and separately for each profile (A2DP & HFP).
Microphone Gain
Default input gain is level 15 = 0.0 dB. Values are changed with the AT MicGainInit command.
MicBias Settings
Default MicBias voltage is level 11, and default current is level 7. Values are changed with the AT MicBias command.
Page 7
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Internal System Events
The following systems events are available for operations and notifications. These are listed to provide a
comprehensive understanding of the built in capabilities. Most of these events are utilized in the default firmware,
and all others can be triggered or utilized with customized editions of firmware.
Page 8
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Operational Messages
The device will send many different uart messages during operations, included device state changes, connection and
disconnection notices, audio channel usage, and more.
For example, it will display multiple state changes in between adding a connection, dropping it, and returning to a
discoverable idle mode.
‐> State [Connectable]
‐> ConnectionUp Hfp 00:26:E2:27:F5:75
‐> State [Connected]
‐> VolumeHfp 15
‐> AutoAnswer
‐> ConnectionDown Hfp 00:26:E2:27:F5:75
‐> State [Connectable]
‐> State [Discoverable]
Incoming and outgoing call activity will also generate system messages regarding changes in state and settings.
‐> AudioChannelDn
‐> State [CallOutgoing]
‐> AudioChannelUp Hfp Cvsd
‐> VolumeHfp 13
‐> State [CallActive]
‐> VolumeHfp 14
‐> VolumeHfp 15
‐> State [Connected]
‐> Call End
‐> AudioChannelDn
Page 9
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Device State Messages
State Message Description
A2dpStreaming The headset is streaming A2DP audio.
CallActive The headset has a current call, and the audio channel is utilized.
CallActiveNoAudio The headset has a current call, but not using the audio channel (i.e. speaker phone mode).
CallIncoming An incoming call is in progress on the remote device (phone).
CallOutgoing An outgoing call is in progress on the remote device (phone).
Connectable The headset is connectable, in idle mode.
Connected The headset is connected to a remote device, in standby mode.
Discoverable The headset is discoverable and connectable, in idle mode.
Limbo The headset is logically off but physically on – limbo.
TestMode The headset is in test mode.
Tutorial
Startup
Make sure the Bluetooth demo board is either supplied power from the USB port or from a battery connection, or
both. Having the USB supply power while the battery is plugged in will charge the battery while the device is in
operational and limbo mode. When charging with USB, the device cannot fully shut off. Instead, it will enter a deep
sleep (limbo) mode in which only the Enable button is monitored.
To turn the device on, press and hold the Enable button until the LED’s flash. If the Enable button is held high for ten
seconds after startup, the device can be turned off simply by cutting power from the Enable button. If however the
Enable button was released after startup, turning off the device can be accomplished by pressing the button again.
On the side of the demo board are three micro USB ports. The first is a USB port and can be used for charging and
downloading DFU firmware updates in DFU mode. Second is the UART port which will be the main use for device
outputs and commands to and from the user. Lastly is the SPI port, which will require a SPI adaptor for computer
connection. SPI is used for installing .xuv type files as well as reading and writing the device flash memory.
For UART operation, connect your computer to the micro USB port labeled UART. You will then need to open a UART
text box terminal. You can download the kcTerminal v5.6 at www.kcwirefree.com/downloads.html. Select the proper
COM port after making sure the UART settings are the same as our device default settings (see AT Command Syntax).
After properly powered and connected to UART, a successful startup should look similar to below.
Page 10
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Getting Connected
Device operations can be initiated by either button pressing or using the AT commands from a UART input. Changing
device settings and customizing timeouts and features however can only be done from the AT commands.
In order to get connected to a Gateway source device, the headset device must be put into the Discoverable Bluetooth
state. The Gateway device will then need to start a device inquiry, where it will find the Headset and begin the pairing
process.
Press and hold the BTB (PIO 4) for a couple seconds until the state becomes Discoverable. Do the same on the
Gateway device to begin its Inquiry. If the signal is strong enough and they have the same profiles enabled, they
should automatically pair up.
Below is an example of a successful connection using only button presses. This could have also been accomplished by
using the “AT Discoverable” command instead of the button presses.
Page 11
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
To reconnect to a device after a connection is dropped, quickly press and release the BTB. This issues a reconnection
process which, depending on your settings, sends connection requests to all paired devices one at a time or just the
last device repeatedly. Below is a successful reconnection after the Headset was turned off
Page 12
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
If the reconnection is unsuccessful, you may need to change the profiles back what they were when connected.
Deleting pairing information and then going through the pairing process again is often a very effective tool for
connecting two devices.
Sending HFP Commands
During HFP profile connections, wireless commands are sent between the devices in the form of HFP AT commands.
These are not the same as the UART commands and have different formatting.
The UART “AT HfpCmd” command can be used to send your own custom HFP AT commands to a Hands Free Profile
connected device. Details on how to format the command can be found in the AT HfpCmd section further below.
The device will also display any custom HFP commands that it receives. An example of sending and receiving proper
custom HFP commands with a Gateway is shown below.
Note that most ASCii characters can be sent. Also be aware that it is best to send smaller strings.
Push‐To‐Talk
The PTT feature is only available for HFP connections, just like the HFP commands.
The functionality of PTT is to suspend audio playback while the PTT PIO is high without terminating the audiostream.
For our kcGateway devices, pressing the PTT button on the Headset (setting PIO 2 high) will send an HFP AT command
to the gateway, suspending the audio and also setting the kcGateway equivalent PTT (PIO 2) to high. Releasing the
Headset PTT button (dropping PIO 2 to low) sends another HFP AT command that will resume audio playback and drop
the PTT PIO.
Page 13
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
SQ works similarly to PTT, except that no audio is suspended and it is a PIO 3 change on the Gateway that is sent to
the Headset. Below is an example of a Headset connecting to a Gateway, holding the PTT high for one second, then
releasing it. Afterwards, the Gateway holds the PIO for SQ (PIO 3) high for one second before releasing it.
What cannot be seen is that while PTT was on, Gateway PIO 2 was high and audio was suspended. Those changed
after PTT turned off. While SQ was on, Headset PIO 3 was high, but then switched to low after SQ turned off.
Remote Command
For a connection using the Serial Port Profile (SPP), it is possible to control how data received wirelessly is handled
using the “AT RemoteCommand”
When RemoteCommand is disabled, an SPP connection will simply pass data to the HS where it is taken from the RFCOMM
and redirected straight to the UART output. With RemoteCommand enabled, the data from the SPP device will be
processed by the handler and all HS responses will be directed to the remote device.
Below is an example of the Headset being connected to a kcSerial module with Serial Port Profile.
Page 14
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
At first the Headset has RemoteCommand disabled. All of the commands we issue to the Headset are sent to the Serial
device as data. Then RemoteCommand becomes enabled. Issuing commands on the Headset side does nothing because
the Serial device is now given control. The kcSerial device issues commands for the Headset to process and all outputs
are relayed back to the remote Serial device.
AT Command Syntax
Syntax
Default UART setting is 115200‐8‐N‐1, without hardware flow control.
Enter AT Commands via UART as standard strings, with a CR End Of Line marker (0x0D), and optionally LF (0x0A).
Output messages are terminated with CRLF (0x0D 0x0A).
Each AT Command accepts a “?” parameter, which will then display the required and optional parameters for that
particular command.
Entering an AT Command without any required parameters, in most cases, will simply display the current parameter
settings.
AT Command List
Page 15
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command lines parsed and executed when the EOL carriage return is received.
Page 16
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
AT Commands
AT AutoAnswer
The AutoAnswer command enables or disables the device from automatically answering calls.
Command AT AutoAnswer <e/d>
<e/d> Enable or Disable
Example AT AutoAnswer E
‐> E
AT AutoDisc
The AutoDisc command allows the headset to automatically enter discoverable mode when unconnected.
Command AT AutoDisc <e/d>
<e/d> Enable or Disable
Example AT AutoDisc E
‐> E
AT AutoReconnect
The AutoReconnect command allows the headset to automatically reconnect with the last known device at power on.
Command AT AutoReconnect <e/d>
<e/d> Enable or Disable
Example AT AutoReconnect E
‐> E
AT Avrcp
The Avrcp command is purely an operational command to control the remote device’s media player. The headset must
be in A2DPStreaming mode, and the AVCRP profile must be enabled and connected with the remote device,
otherwise, these commands have no effect.
The Avrcp FF (Fast Forward) and Avrcp RR (Rewind) commands have several options, including
Press/Release/Skip/Group. When a FF or RR Press command is sent, the remote media begins playing in the fast
forward or rewind direction, until the FF or RR Release command is received.
The Avrcp FF or RR Skip command simply prompts the remote media player to skip to the next (FF) or previous (RR)
track
The Avrcp FF or RR Group command prompts the remote media player to skip to the next (FF) or previous (RR) playlist.
Page 17
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
The Avrcp PP command is PlayPause, which will toggle the remote media play status.
The Avrcp SP command will issue a stop message to the remote media device.
Command AT Avrcp <cmd> <option*>
<cmd> FF*, RR* (*requires an option parameter)
PP, SP
<option> Press, Release, Skip, Group (option parameters only used with FF or RR commands)
Example AT Avrcp FF Press
‐> Avrcp FF Press
Example AT Avrcp PP
‐> Avrcp pp
AT Battery
The Battery command provides a VDD pin voltage level reading, which is commonly a Lithium Ion battery.
Command AT Battery
Example AT Battery
‐> 3812 mV
AT BtAddr
The Build command outputs the full Bluetooth address.
Command AT BtAddr
Example AT BtAddr
‐> 64:6E:6C:00:00:03
AT Build
The Build command outputs the full firmware version information.
Command AT Build
Example AT Build
‐> [Build]
‐> BtAddr 64:6E:6C:00:00:03
‐> Bluetooth: v3.0
‐> Hardware: KC6012
‐> Firmware: kcAudioHS
‐> Version: v8.2.0
‐> Date: Mar 25 2015 14:28:08
‐> [Build End]
Page 18
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
AT Call
The Call command allows the user to make a call by either choosing to answer an event incoming call, end a current
event call, redial the last number, reject an incoming call, or initiate voice dial.
Command AT Call <answer/end/redial/reject/voice>
<option> Answer, End, Redial, Reject, Voice
Example AT Call Answer
‐> Call Answer
AT Codec
The Codec command can be enabled/disabled individual available codecs. This configuration is saved in flash memory.
Note: MP3, AAC, APTX, APTXLL are subject to licensing fees by their respective owners. MP3 and AAC codecs are fully
functional, and are provided for evaluation purposes only, but not licensed for production products. APTX and APTXLL
are not functional without an additional license configuration. Please contact KC Wirefree for demo edition licenses.
Command AT Codec <eeee/dddd (Aac/Aptx/AptxLL/Fast)>
<e/d> Enable/Disable for each audio compression codec Aac/Aptx/AptxLL/Fast
Example ‐> AT Codec DDDE
‐> Aac[D] Aptx[D] AptxLL[D] Fast[E]
AT Connect
The Connect command initiates a reconnection sequence as specified by the AT ConnectConfig command. Same
operation as the Connect button press. If issued while currently connected then it will respond with the connection
type.
Command AT Connect
Example ‐> AT Connect
‐> Connect HFP 64:6E:6C:00:00:04
AT ConnectConfig
The ConnectConfig command will set the settings the AT Connect and Connect button press will use for reconnection.
The first parameter is the type of reconnection that will be made. Either “LAST” which sends all connection attempts to
the last connected device, or “LIST” which will send attempts one at a time through previously connected devices on
the paired device list until the limit of attempts is reached. The second optional parameter sets the number for
connection attempts. Default is LAST type and 4 attempts.
Page 19
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT ConnectConfig <Type> <*number>
<Type> Type of reconnection. “List” or “Last”
<*number> Amount of attempts to connect the device will make
Example AT ConnectConfig List 6
‐> List 6
AT DeepSleep
The DeepSleep command is used to enable and disenable DeepSleep mode. Please contact technical support on the
usage of the command.
Command AT DeepSleep <e/d>
Example AT DeepSleep E
‐> E
AT Dfu
The Dfu command is used to set the device into firmware update mode. The device will immediate reboot into the Dfu
mode, where the DfuWizard application can download a new firmware image into the device via USB interface. Please
see Firmware Update section regarding specific procedure details.
Command AT Dfu
Example AT Dfu
‐> DfuMode [Reboot]
AT Disconnect
The Disconnect command will disconnect all currently connected devices, and revert to Connectable or Discoverable
mode (set to Discoverable by default). Same operation as the Disconnect button press.
Command AT Disconnect
Example AT Disconnect
‐> Disconnecting
AT Discoverable
The Discoverable command immediately turns on or off Discoverable (Pairing) mode upon an unsuccessful connection
attempt. The device remains Discoverable for 90 seconds by default. The duration time is configurable separately
using AT TimeoutDisc.
Page 20
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT Discoverable <e/d>
<e/d> Enable/Disable discoverable mode
Example AT Discoverable E
‐> E
AT Event
The Event command provides a quick method to trigger system functions or responses. Most system events are highly
dependent upon the current device state and many other device settings, so the actual effect can be unexpected. This
command is provided as an experimental option, or perhaps used as simple backdoor method to trigger an otherwise
unimplemented function or response. The table of all events and id numbers is listed in this document.
Command AT Event <event>
<event> Event ID number in hex
(Event 0C is VolumeDown)
Example
AT Event 0C
‐> 0C
AT Help
The Help command will list all implemented AT Commands. Also, each command can accept an optional “?”
parameter, which will output the list of command arguments.
Command AT Help
Example AT Help
‐> AutoAnswer
‐> AutoDisc
‐> Avrcp
‐> Battery
...etc
AT HfpCmd
The AT HfpCmd sends a custom HFP AT Command to a connected Gateway device. It can be used to send Bluetooth
standard At Commands or custom AT commands. The formatting of the command must begin with “AT”. It is
customary for Bluetooth AT commands to have a “+” or “‐“ between the “AT” and the command itself. A line return
character is appended automatically. All AT commands are automatically converted to upper case. This command will
only be effective in a HFP connection.
Page 21
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT HfpCmd <Command>
<Command> Custom or established HFP At Command. Must begin with “AT”.
Example AT HfpCmd AT+Ptton
‐> AT+PTTON
Example AT HfpCmd AT+PttOff
‐> AT+PTTOFF
AT LinkTest
The LinkTest command can connect to a remote SPP device, and report the link quality reading.
Command AT Linktest <bdaddr> <iterations*>
<btaddr> The remote device Bluetooth address
<iterations*> Number of test iterations, default = 1
Example AT Linktest 646e6cffffff 5
‐> [LinkTest Start]
LinkTest 1919 Bytes BER%=0.0900
LinkTest 1919 Bytes BER%=0.1000
LinkTest 1919 Bytes BER%=0.2600
LinkTest 1919 Bytes BER%=0.2600
LinkTest 1919 Bytes BER%=0.1800
‐> [LinkTest End]
AT MicBias
The MicBias command is used to configure the physical bias settings on the input port.
Command AT MicBias <voltage> <current> <e/d/f>
<voltage> Value 0‐15
<current> Value 0‐15
<enable> D=Disabled, E=Enabled Automatic, F=Forced On
Example AT MicBias 11 7 E
‐> Voltage[11] Current[7] Enable[E]
AT MicGain
The MicGain command adjusts or sets the microphone input gain without modifying the default gain setting. The
command without parameters returns the current setting. The adjusted input gain setting is not saved in memory. Use
AT MicGainInit to set the default input gain.
Page 22
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT MicGain <+/‐/gain*>
<+/‐/gain> Either + increment gain, – decrement gain, or set level 0‐22
Example AT MicGain
‐> 6
Example AT MicGain +
‐> 7
Example AT MicGain 20
‐> 20
AT MicGainInit
The MicGainInit command sets the initial or default microphone input gain the device will have upon activation or
startup.
Command AT MicGainInit <gain>
<gain> Set Gain level 0‐22
Example AT MicGainInit 14
‐> 14
AT MonoMode
The MonoMode command forces the stereo signal into a mono output only on the left channel.
Command AT MonoMode <e/d>
<e/d> Enable/Disable Mono Mode
Example AT MonoMode E
‐> E
AT Name
The Name command is used to set the name of this device reported when other Bluetooth devices perform
discoveries. The name is saved in flash memory.
Command AT Name <devicename*>
<key> Up to 32 character name.
Example AT Name My Speaker
‐> My Speaker
AT OutputCallIn
The OutputCallIn command will allow the user to set a PIO Output as an indicator for an incoming call. This command
Page 23
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
uses a disable or a pin number as an enable.
Command AT OutputCallIn <d/pio>
<e/d> Disable/PIO to set as
Example AT OutputCallIn D
‐> D
Example AT OutputCallIn 3
‐> 3
AT OutputOnCall
The OutputOnCall command will set the PIO to drive when on a call. This command uses the basic disable or enable
switch <e/d>.
Command AT OutputOnCall <e/d>
<e/d> Disable/Enable
Example AT OutputOnCall E
‐> E
AT PairingMax
The PairingMax command is used set the limit for how many previous devices the device can store in the Paired
Devices List. The default limit is 8. The acceptable range is 1‐8.
Command AT PairingMax <max>
<max> Limit of Bluetooth devices to remember in PDL. <1‐8>
Example AT PairingMax 4
‐> 4
AT PairingDelete
The PairingDelete command is used to erase all paired device entries.
Command AT PairingDelete
Example AT PairingDelete
‐> Ok
‐> ResetPairedList
AT PinCode
The PinCode command allows changing the Pin code for pairing. Default Pincode for kcAudio is 1234. The Pincode is
only required when a secure connection is requested by a legacy device (Bluetooth v2.0 or earlier). By default,
kcAudio automatically sends this Pincode when a Pincode is requested.
Page 24
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT PinCode <pin>
<pin> Valid Pincode is 1‐15 alphanumeric characters.
Example AT PinCode 5565
‐> 5565
AT PioConfig
The PioConfig command is used to configure one of the general PIO pins as an input or output. All PIO pins are set as
inputs by default, unless they have been assigned to special Output features. A PIO Feature assigned to a pio pin must
be disabled prior re‐configuring the pio. The pio configurations are not saved in memory.
Command AT PioConfig <pio> <i/o> <+ pull*>
<pio> 0‐15, The PIO pin to configure
<i/o> i=Input, o=Output
<+ pull> +=StrongPull up/down
Example AT PioConfig 8 O +
‐> Pio[8] = Output+
Example AT PioConfig 8 I
‐> Pio[8] = Input
AT PioRead
PioRead will supply the current reading of the pin, the configuration input or output, and the name of any special PIO
Feature currently using this pin. If the PIO pin is configured as a strong pull up/down, a ‘+’ sign will print following
configuration.
Command AT PioRead <pio>
<pio> 0‐15, the PIO pin to read
Example AT PioRead 8
‐> Pio[8] = 1 Input+
Example AT PioRead 7
‐> Pio [7] = 1 Output+
Example AT PioRead 19
‐> ErrInvalidParam
AT PioStatus
The PioStatus command provides readings for all PIO pins in a compact hexadecimal format. The Read parameter
indicates the HIGH or LOW reading state, where the hexadecimal bit position [15‐0] corresponds to the PIO pin
number. The Dir parameter indicates the Input or Output direction of the PIO, with Input LOW and Output HIGH. The
Str parameter indicates if any PIO is set to have a strong pull up/down. The mask also uses the hexadecimal bit
position [15‐0] to correspond with the PIO pin number, where HIGH is a present strong pull up/down and LOW is not.
Page 25
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
E.g. Read[0020] indicates PIO 6 is HIGH, and remaining PIO’s are LOW.
E.g. Dir[0000] indicates PIO’s 10 and 3 are set as Outputs, and the remaining PIO’s are Inputs.
E.g. Str[0001] indicates PIO 8 was set for a strong bias.
Command AT PioStatus
Example AT PioStatus
‐> Read[0020] Dir[0408] Str[0100]
AT PioTest
The PioTest command is a simple PIO high/low state test. Each PIO is set, and read back. Any discrepancy reports a
failure.
Command AT PioTest
Example AT PioTest
‐> Pio[3] 1 0 = Error
......
‐> [PioTest Fail]
Example AT PioTest
‐> [PioTest Pass]
AT PioWrite
The PioWrite command is used to set a PIO pin to high or low. A PIO pin may be set when configured as an input or
output
Command AT PioWrite <pio> <value>
<pio> The PIO pin 0‐15 to write
<value> The value to write, 0 or 1
Example AT PioWrite 5 1
‐> Pio[5] = 1
Example AT PioWrite 18 0
‐> ErrInvalidParam
AT Profiles
The Profile command enables or disables the A2DP, AVRCP, HFP, and SPP profiles available.
Page 26
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT Profiles <eeee/dddd (A2dp/Avrcp/Hfp/Spp)>
<e/d> Enable/Disable for each profile A2dp/Avrcp/Hfp/Spp
Example AT Profiles EEDD
‐> Profile A2dp[E] Avrcp[E] Hfp[D] Spp[D]
AT PsRead
The PsRead command reads the specified flash memory key. This command provides raw access to features and
settings stored in flash memory. Different Keys will output different number of columns for improved formatting.
Please contact technical support for additional information.
Command AT PsRead <key>
<key> Memory user key 0‐49
Example AT PsRead 4
‐> key[4] words[14]
‐> [PsRead]
‐> [0x00FF] [0xFFFF]
‐> [0xFFFF] [0xFF0A]
‐> [0x1900] [0xFF00]
‐> [0x0000] [0x0000]
‐> [0x6085] [0x6085]
‐> [0x0000] [0x0000]
‐> [0x0000] [0xFFFF]
‐> [PsRead End]
AT PsWrite
The PsWrite command writes data to the specified flash memory key. This command provides raw access to features
and settings stored in flash memory. Please contact technical support for additional information.
Command AT PsWrite <key> <data>
<key> Memory user key 0‐49
<data> Hexadecimal key data
Example AT PsWrite 4 00FFFFFFFFFFFF0A1900FF000000000060856085000000000000FFFF
‐> Key[4] Words[14]
Example AT PsWrite 4 00F
‐> InvalidLength
AT RemoteCommand
The RemoteCommand command is used to enable command from a remote device via SPP. All commands enter from
the remote device and all responses and system messages are sent back to the remote device. When disabled, an SPP
connection will simply pass data to the HS where it is taken from the RFCOMM and redirected straight to the UART
output. With RemoteCommand enabled, the data from the SPP device will be processed by the handler and all HS
Page 27
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
responses will be directed to the remote device.
Note: System responses sent wirelessly to remote devices will have the “<‐>“ prefix, indicating a remote response.
Command AT RemoteCommand
Example AT RemoteCommand E
‐> E
AT Reset
The Reset command will simply cold reset the device.
Command AT Reset
Example AT Reset
‐> [Reboot]
AT Restrict
The Restrict command limits connectivity to a single, specified device. All other device connection attempts are
rejected.
If enabled, when the Restrict device address has not been specified, or is set to zero, then the next device to connect
becomes the Restricted device. The specified address can be zeroed, and/or the Restrict can be Disabled.
This setting is Disabled by default, and is saved in flash memory, along with the Restricted device address.
Command AT Restrict <d/address>
<d/addres> Accepts D to disable the feature, or an address to enable the feature.
Example AT Restrict 000000000000
‐> 00:00:00:00:00:00
AT ShowSettings
The ShowSettings command indicates several of the configurable device settings.
Page 28
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT ShowSettings
Example AT ShowSettings
‐> [Settings]
‐> E AutoAnswer
‐> D AutoDiscoverable
‐> E AutoReconnect
‐> D Codec Aac
‐> D Codec Aptx
‐> D Codec AptxLL
‐> E Codec Fast
‐> D DeepSleep
‐> E Profile A2dp
‐> D Profile Avrcp
‐> E Profile Hfp
‐> D Profile Spp
‐> E Restrict
‐> MicInput DefaultGain[15]
‐> VolumeInit A2dp[15] Hfp[15]
‐> Discovery Timeout [90]sec
‐> Idle Shutoff Timeout [7800]sec
‐> LinklossReconnect [14]min
‐> [Settings End]
AT State
The State command allows the user to display the device’s current state of operation.
Command AT State
Example AT State
‐> [Connected]
AT TimeoutDisc
The TimeoutDisc command allows the user to adjust the time (in seconds) the device will last in discoverable mode.
This ranges from 0 – 65535 seconds. Note that setting timeout as 0 disables discoverability.
Command AT TimeoutDisc <sec>
<sec> Seconds until timeout
Example AT TimeoutDisc 1024
‐> 1024 seconds
AT TimeoutIdle
The TimeoutIdle command adjusts the time in seconds in which the device will turn off if not connected. Ranges from
0 – 600 seconds. Note that 0 means it remains on indefinitely.
Page 29
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT TimeoutIdle <sec>
<sec> Seconds until timeout
Example AT TimeoutIdle 1800
‐> 1800 seconds
AT TimeoutLinkloss
The TimeoutLinkloss command allows the user to change the automatic timeout (in minutes) of reconnection for
A2DP and HFP modes. The default is 5 minutes. Ranges from 0‐250 minutes. Automatic timeout can also be enabled
or disabled.
Command AT TimeoutLinkloss <e/d> <mins>*
<e/d> Enable or Disable
<mins> Minutes until Timeout
Example AT TimeoutLinkloss E 20
‐> E 20 minutes
AT Version
The Version command simply outputs the complete version. Version 8.0 followed by the specified Build version.
Command AT Version
Example AT Version
‐> kcAudioHS v8.2.0
AT Volume
The Volume command increments and decrements the currently volume level of the currently active profile (A2DP or
HFP). Volume levels are saved in flash memory per device, as separate levels for each A2DP and HFP.
Command AT Volume <+/‐/vol>
<+/‐> Either + increment volume, or – decrement volume
Example AT Volume +
‐> +
Example AT Volume ‐
‐> ‐
AT VolumeInit
Sets the default volume and input gain levels for new A2DP and HFP connections. These levels are saved in flash
memory. Using the ‘#’ character in place of an argument will preserve its current level.
Page 30
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Command AT VolumeInit ault <a2dp volume> <hfp volume>
<A2DP Vol> Volume level of 0‐15, or # to leave unchanged
<HFP Vol> Volume level of 0‐15, or # to leave unchanged
<Mic Gain> Gain level of 0‐22, or # to leave unchanged
Example AT VolumeInit
‐> A2dp[14] Hfp[14]
Example AT VolumeInit 10 #
‐> A2dp[10] Hfp[14]
Example AT VolumeInit # #
‐> A2dp[10] Hfp[14]
Page 31
www.kcwirefree.com Version August 5, 2015
kcHeadset User Guide
kcHeadset v8.4.1
Contact Information
KC Wirefree Corporation
2640 W Medtronic Way
Tempe, Arizona 85281
Phone (602) 386‐2640
Website www.kcwirefree.com
Sales Support info@kcwirefree.com
Technical Support tech@kcwirefree.com
Page 32
www.kcwirefree.com Version August 5, 2015