storm 1400 Series AudioNav EF Config Utility and API User Manual
- May 15, 2024
- STORM
Table of Contents
AudioNav EF
Config Utility & API
System Requirements
The utility requires .NET framework to be installed on the PC and will communicate over the same USB connection but via the HID-HID data pipe channel, no special drivers are required.
Compatibility|
---|---
Windows 11|
Windows 10|
Windows 8|
Windows 7|
Windows Vista|
Windows XP| Only if you install .NET framework
The utility can be used to configure the product to
- Select Code Table
- LED brightness (0 to 9)
- Test AudioNav
- Create customised keypad table
- Configure Bluetooth settings
- Reset to factory default
- Load Firmware
Installing the Configuration Utility
To install the Configuration Utility download from www.storm- interface.com/downloads, double click on the downloaded .exe file and the Setup Wizard will launch
The “Disk Cost” shows available space at your chosen folder. The program requires 10MB of space.
A shortcut will be installed on your desktop.
Double-click this to start the Utility and the following screen will appear. If an AudioNav EF device is connected it will be detected automatically and the details displayed in the blue panel at the top
The following functions are available and will be described on the following
pages :‐
Select a Code table
Create a customised code table
Change the LED brightness
Test the AudioNav EF
Update the Firmware
Reset the AudioNav EF to factory defaults
Configure Bluetooth Touchless settings
Reset the AudioNav EF from a saved configuration
Select a Code Table
The user can select from three tables:
Once a table has been selected then the keypad will hold that configuration
unless it is disconnected.
Once the keypad has been disconnected that configuration will be lost unless
you save the configuration in memory by clicking on “Save Changes”
Create a Custom Code Table
First select Customise Table
Note that Multimedia Control Codes ( Vol Up / Down ) are not available in
Customised Table.
Please note: JACK IN/OUT and Horizontal/Vertical codes can also be customised.
Click on ‘Customise Code table. The following will be displayed
Choosing a USB Code
The current customised code table will be displayed from memory on the keypad.
Attached to each key is another button (“NONE”), this shows the modifier for
each key.
To customize a key, click on the key and Key Code combo box will appear, with
“Select Code.
The button colour will change to “Orange”
Now press on the down arrow on the combo box:
This will display all the codes that can be selected.
These codes are the ones defined by USB.org.
Once code is selected, the code will be displayed on the selected button.
In this example I have selected “e” and code is represented by 0x08 and button colour will change to Aqua.
Press the “Apply” button and the code will be sent to the AUDIONAV EF.
When you press key “Down” on keypad, “e” will be sent to the relevant
application.
Adding a modifier
Now if you wanted a “E” (uppercase) then you need to add a SHIFT modifier for
that key. Click on the modifier button for that key.
The background colour for modifier button will change to orange and modifier combo box will appear. Select down arrow key on modifier combo box and the following selection will be available:
L SHT – Left Shift
L ALT – Left Alt
L CTL – Left Ctrl
L GUI – Left Gui
R SHT – Right Shift
R ALT – Right Alt
R CTL – Right Ctrl
R GUI – Right Gui|
---|---
Select either L SHT or R SHT – I have selected R SHT.
The R SHT modifier is now displayed on the button and background colour changed to grey. Now if you click on “Apply” and if successfully transferred then pressing “down” on keypad will display “E” (uppercase).
If you did not want the current setting then click on “Reset” then all buttons
will revert to original coding and then click on “apply” to send this coding
to AudioNav EF keypad.
“Close” will exit the customize form and return back to main screen.
LED Brightness
This will set the brightness of the LEDs. The selection is from 0 to 9.
LEDs in Audio Nav EF can be configured differently when the jack is in or out
In addition, there are 3 separate lighting zones
Touchless Settings
If the AudioNav includes Bluetooth then with the utility you can :-.
- Enable / disable bluetooth functionality
- Rename the device – this name appears when connecting.
- Product Type can be set to Landscape / Portrait
- Enable / disable Trackpad in the Touchless-CX app.
- Adjust the Bluetooth operation range
The Bluetooth range is set by a combination of
– Transmit power level (from the AudioNav)
– RSSI level (as seen in the Touchless-CX app)
– Signal strength drop (as seen in the Touchless-CX app).
The signal strength is monitored by the Touchless-CX app :-
- It looks for Storm Bluetooth devices
- If it detects one and the RSSI level is greater than the level set then it will connect
- It records the initial signal strength on connection
- The signal strength will decrease when the user walks away from the kiosk
- When the signal strength drops by the figure set in RSSI Disconnect margin and remains low for 10 seconds then the app will automatically disconnect.
The factory default settings give an effective range of 1.5m. They are as follows
RSSI level range (for initial connection) 75 dbm| If you increase this
figure (e.g to 85 dbm) the range will increase
---|---
Transmit Power level 1.5 dbm| If you increase this figure the range will
increase
RSSI Disconnect Margin 5 dbm| If you increase this figure then you will need
to move further away from the kiosk to initiate automatic disconnection
If Bluetooth has been disabled then you can re-enable it without using the utility
-
Press and hold for 5 sec the 3 buttons shown
(Press and hold 1, then also 2, then also 3) -
The LEDs will flash to confirm Bluetooth is enabled
Test the AudioNav
This will test all the functions :-.
- illumination dimming levels
- Key test
- Jack in/out
- H/V Switch
- Audio test
First test the audio (make sure it is set as the default audio device).
Now press each key on keypad, each key will light up on screen.
Press close when finished.
Update the Firmware
Press YES
BROWSE for the file press UPGRADE and CLOSE
Reset the AudioNav EF to Factory Defaults
Clicking on “Factory Default” will reset the keypad to factory settings Code
Table – Default LED brightness – 9
Reset the AudioNav from a saved Configuration
You can load the saved settings onto another AudioNav.
This is useful (for example) you have set up a customised table and you wish
to load this table on a number of devices
Press to reset to load the saved settings from the previous device onto the
device that is currently connected
API for controlling the AudioNav device from the Host Computer
This section provides details on how the AudioNav can be controlled from a
host that has USB capabilities.
List of Messages
(Structure of Messages from Host to AudioNav™ is on the following pages
ID | Name | Description |
---|---|---|
01 | Device Status Request | Output the firmware version & selected parameters |
02 | ED Brightness | Adjust led brightness. |
03 | Reserved | Reserved for future use |
04 | Reserved | Reserved for future use |
05 | Load New code table | Load new code table |
06 | Reserved | Reserved for future use |
07 | Keypad Type | Select layout table |
08 | Reserved | Reserved |
09 | Write to default | AudioNav writes configuration data from ram to flash |
10 | Reset to factory default | Reset device back to factory default |
11 | Reserved | Reserved for future use |
12 | oad Firmware | Sets the AudioNav to detect the device loader for firmware |
loading
13| Reserved| Reserved for future use
14| Set Serial Number| Write 12 digit serial number
Structure of Messages from AudioNav to Host
01 Key Press Code sends a key scan code back to HOST when a key is pressed on keypad
AudioNav Device Communications
AudioNav keypad uses the ASCII/binary Message format described below. Every
message that is sent from a host should be acknowledged with the control byte
ACK (0x06). A retransmission should be initiated if an NAK (0x15) is received
or if no acknowledge is received at all.
Message Formats
A | Alpha character, ‘A’-‘Z’ and ‘a’ – ‘z’ |
---|---|
C | Control character one byte in length. |
H | Hexadecimal characters, ‘0’-‘9’, ‘A’-‘F’ |
N | Numeric character, ‘0’-‘9’ |
S | Special characters, entire character set 0x00 – 0xFF |
ASCII Message Format
| Message Field| Type| Length| Description
---|---|---|---|---
1| STX| C| 1| Control character Start of Text = 0x02
2| Message Id| H| 2| Defines the type of message and format of the data field
3| Data Length| H| 2| Hexadecimal value represented in ASCII defines the
number of bytes in the data field. ’00’ to ‘FF’. Maximum data field size is
256 bytes.
4| Data Field| S| var| In binary format
5| ETX| C| 1| Control character ETX = 0x03
6| LRC| C| 1| Longitudinal Redundancy Check Digit, calculated on all previous
data including STX
Message ID Definitions
Here is a general table describing the message Ids, more detailed descriptions
for each message Id follows. When a message is one way only, the Message Id.
is the same for both the message and response.
I D .| M e s s a ge| D
escription
---|---|---
01| Device Status Request| Host To AUDIONAV keypad – Output the firmware
version and all currently selected parameters
02| LED Brightness| Host To AUDIONAV keypad – adjust led brightness. (default:
0)
03| Reserved| RESERVED
04| Reserved| RESERVED
05| Load New code table| Host To AUDIONAV keypad – Load new code table
06| Reserved| RESERVED
07| Keypad Table| Host To AUDIONAV keypad – Select layout table 0 – Default
Table 1 – Alternate Table 2 – Customised
08| Reserved| Reserved
09| Write to default| Host To AUDIONAV – AudioNav writes configuration data
from ram to flash.
10| Reset to factory default| Host To AUDIONAV – Reset device back to factory
default
11| Reserved| RESERVED
12| Load Firmware| Host To AUDIONAV– Sets the AudioNav to detect the device
loader for firmware loading
13| Reserved| RESERVED
14| Set Serial Number| Host to AUDIONAV– to store a serial number (12 digits)
| |
Error Code
Every response message contains one of the following error codes:
00 | No error |
---|---|
01 | Command not recognized |
02 | Command not support at this stage |
03 | Parameter not supported |
04 | Hardware fault |
Device Status (01)
Host sends this message to AudioNav to request the status of the AudioNav
keypad
AudioNav Status Response
Keypad sends this message to Host in response to the Device Status message.
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| SH| 2|
Lb| LED Brightness| SN| 1| Value (0 – 9)
Kt| Keypad Table| SN| 1| 0 – Default Table
1 – Alternate Table
2 – Customised Table|
Js| Jack status| SN| 1| 0 – Jack IN, 1 – Jack Out
Hs| Horizontal/Verticle| SN| 1| 0 – Vertical 1 – Horizontal
Kc| Keycode| SH| 20| Customised keycode for each key
fw| Firmware Version| ANS| 20| Left justified, if Firmware Version is less
than 20 then just add enough spaces after the Firmware Version until this
field is completed, for instance, “123456” becomes: “123456 “
sn| Serial Number| ANS| 12| Returns serial number YYQQXXXXXXXX
Where YY – year, QQ – Quarter XXXXXXXX – Sequential number
LED Brightness Command (02)
Host sends this message to control brightness of LEDs
| Data Field| Type| Length| Description
---|---|---|---|---
1| LED brightness| SN| 1| 0 – 9
LED Brightness Command Response
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| H| 2|
Note: LED brightness of 0 value indicates LEDs are off LED brightness of 9 value indicates full brightness
Reserved (03)
Reserved (04)
Load New Key Code Table Command (05)
Host sends this message to Load New Code Table
| Data Field| Type| Length| Description
---|---|---|---|---
1| Load New Code Table| SH| 20| Key Code Table:
Load New Table Command Response
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| H| 2|
Note: Length is always 20,
Format of table is as follows:
<modifier for key 1><code for Key 1><modifier for key 2><Code for Key
2>……….etc
The code table is specified in the user manual together with the modifier
code. For example to program the following for 4 way :
Key 1 – A
Key 2 – a
Key 3 – 9
Key 4 – !
Note: For shift modifiers there is a left and right modifiers value
defined. So we can use 0xE1 – Left Shift and 0xE5 – Right shift. Similarly
there is left and right Alt
Reserved (06)
Keypad Table Command (07)
Host sends this message to set keypad type
| Data Field| Type| Length| Description
---|---|---|---|---
1| Keypad Type| SN| 1| 0 – Default Table
1 – Alternate Table
2 – Customised Table|
Keypad Command Response
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| H| 2|
Reserved (08)
Write Config Data To Flash command (09)
Host sends this command to request the AUDIONAV to write the configuration
data from RAM to FLASH. This command has no data associated with it.
RAM to FLASH command Response
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| H| 2|
Reset To Factory Default command (10)
Host sends this command to request the AUDIONAV to reset parameters back to
factory default. This command has no data associated with it.
Reset To Factory Default Response
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| H| 2|
Reserved (11)
Enable BSL Command (12)
Host sends this command to request the AUDIONAV to start downloader Enable BSL
command Response
| Data Field| Type| Length| Description
---|---|---|---|---
ec| Error Code| H| 2|
Reserved (13)
Set Serial Number command (14)
Host sends this command to set the serial number of the device in format
YYQQXXXXXXXX
| Data Field| Type| Length| Description
---|---|---|---|---
1| Serial Number| ANS| 12| YYQQXXXXXXXX
Set Serial Number command Response
| Data Field| Type| Lengt h| Description
---|---|---|---|---
ec| Error Code| H| 2|
(01) Key Press Code
With the USB stack configured for a standard keyboard interface, the AudioNav
sends appropriate key report to HOST when a key is pressed on keypad.
Keyboard Report
HID Keyboard Report Format
| BIT7| BIT6| BIT5| BIT4| BIT3| BIT2| BIT1|
BIT0
---|---|---|---|---|---|---|---|---
Byte0| Right GUI| Right Alt| Right Sft| Right Ctrl| Left GUI| Left Alt| Left
Shift| Left Ctrl
Byte1| Reserved Key_array[0] Key_array[1] Key_array[2] Key_array[3]
Key_array[4] Key_array[5]
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
For example if user has configured for Default Table. If the user now presses
the top key, which is “<<” and USB
code of 72. Then keyboard report sent to host would be:
Byte 0 – 0
Byte 1 – 0
Byte 2 – 72
Byte 3 – 0
Byte 4 – 0
Byte 5 – 0
Byte 6 – 0
Byte 7 – 0
Now if the user customizes the top key to be “R SHIFT” (modifier) and USB code
for “a” (04). If the user presses the top key, then the keyboard report sent
to host would be:
Byte 0 – 20 This is Right Shift modifier.
Byte 1 – 0
Byte 2 – 04
Byte 3 – 0
Byte 4 – 0
Byte 5 – 0
Byte 6 – 0
Byte 7 – 0
The Host API Library for the AudioNav is a middleware application between the Host application and Audio Nav device. You can download this together with the HIDAPI library from www.storm-interface.com.
- Audio Nav API – The AudioNavApi library allows for the host application to invoke Audio Nav functions as listed above. The API encapsulates all the communications to USB and provides a simple API for the host application developers.
- HIDAPI – This is a third party library, which allows an application to interface with USB HID-Compliant devices on Windows, Linux, and Mac OS X. While it can be used to communicate with standard HID devices like keyboards, mice, and Joysticks, it is most useful with custom (Vendor-Defined) HID devices.
This allows for host software to scan for the device using its VID/PID.
The Audio Nav uses USB for communicating with the host. It includes an HID-
compliant device . One of the advantages of using this implementation, which
uses only HID interfaces, is that no drivers are required on host system.
The protocol for communicating with host is described fully in the following
pages. The basic architecture is shown below.
The developer does not need to worry about the communication at low level. You can request source code from us for the library so it can be ported to your specific platform. Currently the library has been tested on Windows and Linux (Ubuntu) platform.
The API makes the following functions available to developers
All Message Types …………………………………………………. 28
GetDeviceStatus …………………………………………………..30
InitialiseStormUSBDevice …………………………………………………. 29
LoadCodeTable …………………………………………………. 32
ResetToFactoryDefault………………………………………………….35
SetKeypadTable …………………………………………………. 33
SetLedLevel …………………………………………………. 31
Workspace …………………………………………………. 36
WriteDefaultToFlash …………………………………………………. 34
All Message Types
This is referenced in below functions:
InitialiseStormUSBDevice
This function is used to initialise the Audio Nav. The Audio Nav is identified by the Product PID and Manufacturer VID. This are assigned to Keymat:
- Vendor ID – 0x2047
- Product ID – 0x09D0
On successful finding the Audio Nav the manufacturer_local will be filled with “Storm Interface” and product_local will be filled with “AUDIO NAV”. If not successful both of the strings will be filled with “none”
Parameters :
storm_vid – Vendor ID
product_pid – Product ID
manufacturer – vendors name will be stored
product – product name will be stored
Return Value:
True for success
False for failure.
GetDeviceStatus
This function retrieves status information about the Audio Nav. For
example, Jack status, HV switch status, led level status etc. All information
is stored in DEVICE_INFO structure.
Parameters :
_deviceInfo – DEVICE_INFO sturcture, that will be filled by the function
timeToWait – maximum time to wait for command to complete
Return Value:
True for success
False for failure.
SetLedLevel
This function sets the brightness of the led. The led level can be set with
values 0 to 9.
Parameters :
Int ledLevel timeToWait – maximum time to wait for command to complete
Return Value:
0 for success
LoadCodeTable
This function loads the keycode table in customise table.
Parameters :
Int *keyCodePtr – pointer to code table must hold 20 values including
modifier. For each key the values must be [modifier, USB key code].
timeToWait – maximum time to wait for command to complete
Return Value:
0 for success
SetKeypadTable
This function sets the current keypad table that will be used. 0 – default,
1 – alternate, 2 – customise
Parameters :
Int KeypadTable 0 – default, 1 – alternate, 2 – customise
timeToWait – maximum time to wait for command to complete
Return Value:
0 for success
WriteDefaultToFlash
This function commnds the AudioNav to commit current values to flash.
Parameters :
timeToWait – maximum time to wait for command to complete
Return Value:
0 for success
ResetToFactoryDefault
This function commnds the AudioNav to reset the Audio Nav to factory default.
Parameters :
timeToWait – maximum time to wait for command to complete
Return Value:
0 for success
Workspace
Click on AudioNavApi (microsoft visual studio solution) and the workspace will
be launched. The workspace has 5 projects:
AudioNavApi – This is the API as described above.
Hidapi – This is freeware api for low level communication with USB device.
TestApi – This shows how the AudioNavApi is used using c++.
Wrapper -This wrapper is created to allow to integrate the AudioNavApi to
languages such as c sharp
CSharpExample – Show how the AudioNavApi + Wrapper is used to communicate with
the device.
Change History
Instructions for | Da te | Version | Details |
---|---|---|---|
Config Utility & API | 13 Sep 19 | 1.0 | First release (split out from AudioNav |
tech manual
| 14 Dec 20| 1.1| API added
06 Jan 21| 1.2| Utility update
02 Mar 23| 1.3| BLE Settings added
Configuration Utility| Date| Version| Details
---|---|---|---
| 14 Jun 19| 1.0| First Release
| 06 Jan 21| 2.0| Bug fix – added missing dll files & microphone test
01 Feb 22| 2.1| Update user license agreement
12 Sep 22| 4.0| BLE functions added
Host API Library| Date| Version| Details
---|---|---|---
| 11 Dec 20| 1.0| First Release
| |
| |
| |
The content of this communication and/or document, including but not limited to images, specifications, designs, concepts and information is confidential and is not to be used for any purpose or disclosed to a third party without the express and written consent of Keymat Technology Ltd., Copyright 2018. All rights reserved.
1400 Series AudioNav EF – Config Utility & API Rev 1.3 www.storm- interface.com
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>