• Improving the Edge Processing Capabilities of neqto: Bridge



1. OVERVIEW -NVIDIA Jetson Nano

With the increasing number of IoT solutions being used in numerous industries, a massive amount of data is being collected. This large pool of data is opening the door for the use of collected information to predict future results, make intelligent decisions, and more. One example of this is image processing. Using algorithms on data collected from cameras, one can extract information that can be used in industrial automation, surveillance, and in various other applications. However, sending large amounts of data (like thousands of images) to the cloud for analysis incurs a large data-transfer cost, which makes it impractical for common applications. Yet, not all data has critical information, so there is an opportunity to decrease the data sent. If this data judgement could be made on the edge (i.e. if the gateway collecting all of the data were capable of heavy data analysis) the amount of data transferred would reduce, along with a significant amount of the cost. Moreover, instead of sending raw data, these systems are capable of processing the data on the edge and making intelligent decisions, saving time. Only the results of the analysis would be sent to the cloud. There are some solutions on the market capable of light edge computation, including the neqto Bridge. The Bridge is unique in its plug-and-play functionality and ease-of-use, but does not specialize in the heavy computation power required for processing large data. However, when paired with hardware capable of such processing, the Bridge can deliver an exceptional edge-processing solution. The heavy-computation hardware we will be looking at today is the NVIDIA Jetson Nano. NVIDIA JETSON NANO The Jetson Nano is an embedded system-on-module (SoM) and developer kit from the Nvidia Jetson family of embedded systems. It has a powerful GPU, which gives it the capability to do high-level computational tasks (such as machine learning and image processing) to utilize the collected data. Quoting from Nvidia’s website:NVIDIA Jetson Nano enables the development of millions of new small, low-power AI systems. It opens new worlds of embedded IoT applications, including entry-level Network Video Recorders (NVRs), home robots, and intelligent gateways with full analytics capabilities. Using the Jetson Nano, high-level, computation-heavy tasks can be executed at the edge instead of burdening servers with unprocessed data. However, the Jetson Nano completely foregoes the option of sending data to servers; the Jetson Nano does not have built-in wireless network capabilities. This is where the neqto Bridge is proficient. The Bridge can both send the results of those computations to the neqto Cloud, as well as allow users to manage their devices remotely. Furthermore, using the Machine Driver features of neqto, the Bridge can be used to update the scripts on the Jetson Nano. The potential of the Jetson Nano and the Bridge combined are limitless, but this blog only aims to be an introduction to the possibilities. Specific use cases will be showcased in future blog posts.

2. IMPLEMENTATION WITH neqto

The first task in combining the Jetson Nano and the Bridge was to establish a connection that both devices could exchange information through. It was simple to establish the connection using UART protocol. The remainder of this blog will detail the complete setup.

Setup

Hardware Connection Diagram

Figure 1: Diagram of the physical setup

  • Connect the Jetson Nano and Bridge using a Type-C USB cable
  • Decide on a baud rate for communication and ensure that they match for both devices (eg. 921600)
  • Find the port the device is connected to
  • On the neqto Bridge, the USB port uses I2C_NODE_2
  • On the Jetson Nano, it can be found by running the command ls /dev/ttyUSB*

Writing to the Bridge Jetson Nano Script

import serial
bridge = serial.Serial('/dev/ttyUSB1', 921600)

data = bridge.readline()[:-1].decode()
do_something_with(data)

neqto Bridge Script

nqEx.enUART(true);
var nano = new UART(2);
nano.open(921600, false, 0);

nano.setRecvEvent(function(data){
  do_something_with(data);
}, false);

Reading from the Bridge

Jetson Nano Script

import serial
bridge = serial.Serial('/dev/ttyUSB1', 921600)
data = bridge.readline()[:-1].decode()
do_something_with(data)

neqto Bridge Script

nqEx.enUART(true);
var nano = new UART(2);
nano.open(921600, false, 0);
data = 'Hello, I am neqto Bridge';
nano.send(data + '\n', false);

3. Possibilities with neqto

Using the Jetson Nano with neqto bridge can add a number of new technical functionalities, such as the following:

  • Sensor prediction and correction
  • Auto-calibration/auto-thresholding
  • Video/Signal processing for surveillance
  • More sensor-integration capabilities due to the added GPIO pins
  • Advanced Machine Learning
  • Temporary/permanent storage

4. Summary

The Jetson Nano is capable of powerful computing for processing data on the edge, while neqto adds network connectivity, cloud connectivity for remote management, and an overall ease-of-use to the Jetson Nano. Combining the strengths of the NVIDIA Jetson Nano and the neqto Bridge creates a powerful solution; they compliment each other well, and their combination creates good prospects for enterprise-level, computation-heavy IoT solutions.