NSCOM (was BNSCP)

(N)etwork and (S)erial (COM)munication Tool


Version 0.3

Dan Toma - YO3GGX - yo3ggx@gmail.com


Please read the Privacy Policy first.

Introduction

This is an Android tool which allows you to configure devices over USB/Bluetooth/WiFi or to analyze the communication between two devices talking over different medium through a transparent mode.

Based on your feedback and suggestions, it will improve over time, so please be patient and confident that I will solve all the issues step by step. The application is and will remain free, but uses nonintrusive Ads displayed only when no connection established.

The idea of this application comes from a Windows application written by me many years ago, named SPCA (Serial Port Communication Analyzer) which is still available on my web site.

Features

Current version of the application has the following features:

Limitations

Current version of the application has the following limitations:

WARNING!!!

Use this application on your own risk. I cannot be held responsible for any damage caused to your Android device.

Starting the application

Download and install current version of the application from Google Play Store. Search for the name “NSCOM” or use the link from the top of this doc.

Run the application (named NSCOM) with the icon below:



If you start the application for the first time or after a configuration file reset, you will get the following startup page:

On the startup page you can see some information about:

If for some reason you want to reset the entire configuration file (if for example gets corrupted), you just have to long press on the START button. You will be asked for confirmation.

Press “OK” if you want the configuration file to be reset, or “Cancel” if not.

To start using the application just press “START” button.



Using the main application screen


After you pressed START button you must see a screen similar with the following (based on the operation mode):


Client or Server Mode when not connected Transparent mode when not connected

Client or Server Mode when connected Transparent mode when connected


If you have issues related to the application fonts (too big or too small) go directly to the chapter explaining how to change font size here.

One or two big panes are used to display received/transmitted data. Received data is displayed in Green, sent data in Cyan. The same colors are used to display the number of bytes received/sent. Each type of connection is represented by the following symbols – colors. When that specific connection is not active, the symbol is grayed.

Four gray buttons are used to select the way received data is displayed. By clicking on any of them several new buttons will pop-up, as follows:



First button – Format: hex (8-32 bit), signed decimal (8-32 bit), binary (8-32 bit) or char (8-16 bit);

Second Button – number of bits per received value (8 - byte, 16 - word, 32 – double word, 64 quad word);

Third button has different functions for char mode or other modes. In char mode you can select between UTF-8, ASCII or UNICODE convention, for the other between little or big endian convention;

Fourth button allows you to select how many values you want to be displayed per row, between 1, 2, 4, 8 or unlimited;

The green button has multiple functions and can have one of the following labels: “CONN/WAIT/DISC”

The actions are described in the following table.

Label

Click

Long Click

CONN

Connect

Clear data from all available panes

WAIT

Do nothing

Cancel connecting

DISC

Disconnect

Clear data from all available panes


A box in the upper right corner of the screen (available only when connected) will display the data entered by the user, will allows you to change between char and code mode and to opt for adding CR and/or LF characters at the end of the entered data.

When CR and/or LF are selected, button color will change to orange.

The cyan field is used to display the data buffer prepared to be send over Bluetooth / USB-Serial or Ethernet.

You can shortly press on that field to erase the last entered char/byte or long press to clear the full field and reset the buffer.

In the right part of this field the number of the bytes from the send buffer is displayed as a decimal value. If CR and/or LF characters are selected, then the number will be incremented accordingly.

A blue button is used to switch between Char and Code modes. In Char mode, any character entered from the keypad will be added to the buffer as his byte value (in UTF-8). In Code mode, the button caption will change to “CODE” and you have to enter the value of that byte. The cyan field will contain the text “Code:” waiting for your input.

You can use decimal value, hex value (using ‘0x’ prefix) or binary value (using ‘1x’ prefix). Entered value must not be less than -128 or greater than 127 (decimal). The application accepts both signed and unsigned values.

Some valid examples below:

Decimal

Hex

Binary


The keypad is presented in the following chapter.

The keypad

The keypad is composed of 30 keys and you can select between 4 possible layouts.

A green button is used to change between the layouts (caption changes together with the layout for the next available one).

For some specific functions (like code entering) the layout is selected automatically and the options to change restricted.

First is the letters layout (in both capitals and small). To toggle between then, long press on any letter. Long press on SPC (Space) key to generate a dot. This can be useful to enter hostnames. The orange key in the lower tight part of the keyboard is the ENTER key. This one, together with SPC key are common for all the layouts. When in Char entering mode, pressing ENTER key will send the data from the buffer and will clear the buffer and enter field. When in Code entering mode, load current displayed code as a byte and add it to the buffer.



Pressing the green ‘123’ button the keypad layout will switch to numbers. This one contain some characters which can be useful to enter hex digits (A-F), arithmetic operations (+, -, *, /,=) or hex/binary values (‘x’).

Pressing the green SYM key the layout will change to symbols. There are no special functions for this layout.

Pressing the green MEM key the layout will switch to Memories (MACROS).

You have 26 memory locations available to save group of bytes which you need to send most often.

The memory keys color is gray when no data is stored at that position and goes orange when minimum one byte was saved at that position. To save first enter the char/bytes you want and then long press on a free memory button.

You will be asked for how many times you want to repeat that sequence (between 1 and 999999).

If that memory was not empty, the new value will overwrite the previous one. All memories data is saved in the configuration file for further use.

To load a specific set of bytes from the memory, just short press on that memory and containing data will be appended to the existing send buffer and length value incremented accordingly.

Setting application fonts size

Use this procedure only if you are not satisfied with the automatically set font size.

Select from the application menu “FONTSIZE”.

The current font size and height is displayed with black on a cyan background, inside the received data frame.

Slide one finger vertically over the black background of the frame, up to increase or down to decrease font size. The background will go gray and all the fonts on the screen will change to the new value. Below you can see two examples with small and very big fonts (keypad section only).

NOTE: When the font is too big, some fields from the screen may be wrapped. You can return to the procedure at any time and decrease the font size. The maximum font size is limited in the application to 32.

The minimum value is limited to 3. The absolute value for font size depends on the device type, Android version and system font size.

When you are satisfied with the aspect, slide one finger horizontally to save the new font size value in the configuration file and to return from this mode through a small animation.




Setting the operation mode

To set the operation mode select “SETUP” from the application menu or click on the zone with the symbols representing the connection types (in both transparent and non-transparent modes). The screen will change like in the following picture.

In the upper part you can see the name and MAC address of the local Bluetooth device plus the name and MAC address of the remote device (only if a connection was previously established and data saved). These fields are not editable.

In the middle you can see your own IP address, which must be used if you use Network Server mode. Below that, 3 editable fields are used for:

To edit any of these fields just short press on it and the background will change to cyan.

Use the keypad to enter the name or the IP address. To delete the last char, short press the cyan field. To completely delete the whole field, long press on it. The same procedure applies for the other two fields.

Use MODE button to toggle between the available modes. See here for the full list.

In the upper right corner there is a dropdown list of possible Baudrates to choose from for the USB/Serial connection. Click on the Magenta field to display the full list.

You can choose between the following values: 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600,115200,230400, 460800 and 921600. Please check supported values for your specific interface.

When all the parameters are set, click on SAVE to save them in the configuration file.

If you want to cancel and to return to the main screen, long click on the SAVE button.

Operation modes

When you select a specific mode, the mode label is displayed on the left pane with big red letters. This label disappear when the connection is established.

Bluetooth mode

After you set Bluetooth mode as described in the previous chapter, click on CONN button to initiate Bluetooth connection. If this is for the second time, the connection will be established automatically. If for the first time, you will be prompted to select the device you want to connect to. The list will contain all the Bluetooth devices in the range which are discoverable and supports Serial Port Profile.

Select the device you want to connect to. Only if the device was never connected before, you will be asked for the pairing PIN. Enter it and click “OK”

The BT Symbol will go blue if the connection was successful and the Ad on top of the page will disappear.

You are now ready to send and receive data to/from that device. See the other chapters to learn how to enter data and to select output format.

USB-Serial mode

To use USB serial mode, you need to connect the USB/Serial interface before starting the application. You will be asked to automatically start the application.

Select “Just once” if you have other applications available too. The USB symbol will go Magenta if the connection was successful and the Ad on top of the page will disappear.

NOTE: If you disconnect a mode using USB, you will need to restart application in order to be able to reconnect the USB. This is a known bug in Android.

Network Client mode

After you set NETCLI mode as described in the chapter “Setting the operation mode”, click on the green CONN button to initiate network connection to the server/port specified in the setup window. If the connection is successfully established, the NETCLI symbol will go green and the Ad on top of the page will disappear.

You are now ready to send and receive data to/from that device. See the other chapters to learn how to enter data and to select output format.



Network Server mode

After you set NETSRV mode as described in the chapter “Setting the operation mode”, click on the green CONN button to start listening on the port configured in the setup window. You will be prompted to connect to the specified IP:port (local host IP). The NET SRV symbol will go orange to show you that the server is listening for external connections.





You can now connect from the remote client to the local server. When the connection is established, the NETSRV symbol will go green and the Ad on top of the page will disappear.

You are now ready to send and receive data to/from that device. See the other chapters to learn how to enter data and to select output format.

Using a combined transparent mode

You can choose between several available transparent modes which are just combinations between two basic operation modes. The full list is the following:

In each of those modes, you will not be able to send commands, but just to monitor the traffic between the two devices. Each direction data is displayed in the corresponding panel.

After you set NETSRV mode as described in the chapter “Setting the operation mode”, click on the green CONN button to start both connections. Only when both of the connections will be established the green button will change from “WAIT” to “DISC”. The number of bytes will be displayed with the color used for each pane (left – green, right – cyan). You can find an example below for a command send (in the right pane, cyan) and the answer (in the left pane, green), , in NET2NET mode different display modes.

Hexadecimal, 8 bytes per row Binary, 4 bytes per row

Decimal, 4 bytes per row Characters, ASCII, no line separation

Practical demonstration

You can see a short demo of the operation on YouTube: http://www.youtube.com/watch?v=Itqe7Hl06_E

Other demo videos will be added in the future, so you can subscribe to YO3GGX channel if you want to be informed in real time.

Please send me your feedback. Further development of the application fully depends on YOU.

Bibliography




Application history

Version 0.1 (Dec 8th, 2012). Initial version of the application (v0.1)

Version 0.3 (Jan 28th, 2014).





nscom_v0.3.pdf Bucharest, Jan 28th 2014 – © Dan Toma – YO3GGX – yo3ggx@gmail.com

14