Hub SDK Overview¶
Hub SDK Introduction¶
The Hub SDK is a software development kit designed to give developers access to the capability of SyncSign. The SDK simplifies the application development process by taking care of lower-level functionality such as e-ink display, signal transmission, data communication, device management, power saving, etc. This way, the developer does not require a background in a low power mesh network or embedded systems and can instead focus on the application the SyncSign product is being integrated into.
The SDK includes:
A library/framework that can be imported into the Hub that gives access to the Display product
The debugger and remote logger
A simulator and visualization tool (coming soon)
Sample code and tutorials
This developer guide and SDK documentation
This introduction will describe how the SDK runs inside the products, what functionality the SDK provides, and an introductory architecture of the SDK.
The architecture is designed to be highly extensible. Abstract product and component classes are used so applications can control different products with the same code. Features that are not consistent across all generations of supported products can be queried at runtime, and those that are consistent will simply work.
This also means when new products are released, they will already work with existing applications (when that application is rebuilt with the latest SDK that supports the new product). Any new features of the new product will need to be added to the application, but all existing features will not need modification.
An embedded user plug-in accesses the Hub SDK through several main classes illustrated in the diagram below.
FreeRTOS: The system is running on FreeRTOS.
MicroPython: A lean implementation of Python 3, runs as a FreeRTOS task.
Core Manager: Manages user plug-in App and core Apps.
PAN Manager: Manages display nodes connection and provides access to the displays.
Renderer: Parse the layout template, and provide helper methods on the font, bitmap, etc.
Networking: Manages LAN & Internet connection.
Peripherals: Handles input & output, such as Bluetooth Classic, BLE, buttons, LEDs, and Buzzer.
On top of these components, runs the Core Application & User Plug-in. Both core app & user plug-in can run simultaneously; however, some resources may conflict with each other. Thus, developers are allowed to disable some modules in Core Applications (see settings in Hub Web Portal).
The SDK provides these features:
Python programming and imports third-party libs
Peripherals on Hub
Update displays and handle events