Skip to content

NeutralNUS Terminal is a BLE client that is a platform agnostic terminal for NUS (BLE UART) which connects to any device that supports NUS rather than specifically servicing particular hardware.

License

Notifications You must be signed in to change notification settings

KevinJohnMulligan/neutral-nus-terminal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeutralNUS Terminal

NeutralNUS: pronounced "neutralness" (ˈnjuːtrəlnəs)

NeutralNUS Terminal is a BLE client that is a platform agnostic terminal for NUS - Nordicsemiconductor Uart Services (BLE UART) which connects to any device that supports NUS rather than specifically servicing particular hardware. Other solutions tend to serve specific hardware and require a specific setup. NeutralNUS Terminal aims to be as generic as possible, providing a pure terminal experience over BLE NUS.


Download and Usage:

Please download from releases and read the release notes


Terminology:

NUS: Nordicsemiconductor UART Service
UART: Universal Asynchronous Receiver-Transmitter
BLE: Bluetooth Low Energy, Bluetooth 4.0, Bluetooth 5.0
BLE client/central: A PC/mobile device that connects to BLE peripherals to collect data and send commands. The central device connects as a client to a BLE peripheral.
BLE server/peripheral: The small device that performs actions in the world. The peripheral device runs the BLE server.
Platform Agnostic: Runs on Windows/Linux/macOS

Technology:

This project is based on web-device-cli which makes use of the Web Bluetooth protocol. Additions were made using React and NWjs to convert web-device-cli into an agnostic desktop application.

Features:

  • Stand alone application
  • Connects to BLE peripherals and provides a terminal interface over serial (NUS)
  • Deploys a TCP server that runs on 127.0.0.1:8888 which can be used to connect to a TCP client written in any language
  • Basic interface with automatic scrolling
To be implemented:

TCP backend:

  • NeutralNUS Terminal will have a TCP server that allows any local connection to the NUS on the BLE peripheral
  • NeutralNUS Terminal will have a TCP server that allows any remote connection to the NUS on the BLE peripheral

Etymology:

What's in a name? (too much)

I originally thought of using NUS4all but found that this was used as a political hashtag so I dropped it.

Next I went for agnostic NUS written as ag-NUS

  • agnus means lamb in latin
  • ag means silver on the period table of elements
  • therefore I could have used a silver lamb to represent the project, but this seemed too religious given the project is meant to be agnostic after all 😜

After that JustNUS Terminal - Just this. Seemed a bit bland.

Finally I settled on NeutralNUS Terminal - pronounced neutralness (ˈnjuːtrəlnəs)