storm 1400 Series AudioNav EF Config Utility and API User Manual

May 15, 2024
STORM

AudioNav EF
Config Utility & API

storm 1400 Series AudioNav EF Config Utility and 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

storm 1400 Series AudioNav EF Config Utility and API - Installing the
Configuration Utility

The “Disk Cost” shows available space at your chosen folder. The program requires 10MB of space.

storm 1400 Series AudioNav EF Config Utility and API - The
program

A shortcut will be installed on your desktop.

storm 1400 Series AudioNav EF Config Utility and API -
shortcut

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

storm 1400 Series AudioNav EF Config Utility and API - panel at the
top

storm 1400 Series AudioNav EF Config Utility and API -
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:

storm 1400 Series AudioNav EF Config Utility and API - Select a Code
Table

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”

storm 1400 Series AudioNav EF Config Utility and API - 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.

storm 1400 Series AudioNav EF Config Utility and API - Create a Custom Code
Table

Click on ‘Customise Code table. The following will be displayed

storm 1400 Series AudioNav EF Config Utility and API - Customise Code
table

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.

storm 1400 Series AudioNav EF Config Utility and API - Adding a
modifier

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| storm 1400 Series AudioNav EF Config Utility and API -
The background colour
---|---

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).

storm 1400 Series AudioNav EF Config Utility and API -
button

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.

storm 1400 Series AudioNav EF Config Utility and API - customize
form

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

storm 1400 Series AudioNav EF Config Utility and API - LED
Brightness

In addition, there are 3 separate lighting zones

storm 1400 Series AudioNav EF Config Utility and API - 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

storm 1400 Series AudioNav EF Config Utility and API - Test the
AudioNav

First test the audio (make sure it is set as the default audio device).

storm 1400 Series AudioNav EF Config Utility and API - First test the
audio

Now press each key on keypad, each key will light up on screen.

storm 1400 Series AudioNav EF Config Utility and API - press each key on
keypad

Press close when finished.

storm 1400 Series AudioNav EF Config Utility and API - Press close when
finished

Update the Firmware

storm 1400 Series AudioNav EF Config Utility and API - 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

storm 1400 Series AudioNav EF Config Utility and API - Reset the AudioNav EF
to Factory Defaults

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

storm 1400 Series AudioNav EF Config Utility and API - Reset the AudioNav
from a saved Configuration

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

storm 1400 Series AudioNav EF Config Utility and API - Device
Status

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|

storm 1400 Series AudioNav EF Config Utility and API - LED Brightness
Command Response

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|

storm 1400 Series AudioNav EF Config Utility and API - Load New Table
Command Response

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 – !

<0xE1><0x04><0x00><0x04><0x00><0x26><0xE5><0x1E>< 0x00><0x00>< 0x00><0x00>< 0x00><0x00><0x00><0x00>< 0x00><0x00>< 0x00><0x00>< 0x00><0x00>< 0x00><0x00>< 0x00><0x00>< 0x00><0x00><0x00><0x00>< 0x00><0x00> **Note:** 20 bytes must be sent, for unused key code pad the values with 0x00.

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|

storm 1400 Series AudioNav EF Config Utility and API - Keypad Command
Response

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.

storm 1400 Series AudioNav EF Config Utility and API - Write Config
Data

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|

storm 1400 Series AudioNav EF Config Utility and API - Default
Response

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|

storm 1400 Series AudioNav EF Config Utility and API - Enable BSL
Command

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|

storm 1400 Series AudioNav EF Config Utility and API - Set Serial Number
command Response

(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.

storm 1400 Series AudioNav EF Config Utility and API - protocol for
communicating with host

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:

storm 1400 Series AudioNav EF Config Utility and API - 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.

storm 1400 Series AudioNav EF Config Utility and API - True for
success

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 :

storm 1400 Series AudioNav EF Config Utility and API -
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.

storm 1400 Series AudioNav EF Config Utility and API - True for success
2

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

storm 1400 Series AudioNav EF Config Utility and API - Return
Value

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

storm 1400 Series AudioNav EF Config Utility and API - 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

storm 1400 Series AudioNav EF Config Utility and API -
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

storm 1400 Series AudioNav EF Config Utility and API - Parameters
2

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

storm 1400 Series AudioNav EF Config Utility and API -
timeToWait

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)

Loading......

Download This Manual (PDF format)

Download this manual  >>

STORM User Manuals

Related Manuals