PrIoT open source framework main design philosophy is
code once port anywhere

PrIoT framework aims to leverage IoT adoption and usage from design to deployment
to better handle the heterogeneity property of the IoT services and applications.

PrIoT design goal

PrIoT proposes to stitch together the different components that makes an IoT-end system namely the hardware consisting of sensors, actuators, transceiver and Human-Machine Interface, the embedded systems that are used to program the IoT devices, the components that serves at providing the higher level libraries for Network and Cloud functionalities. Finally, PrIoT leverage IoT device programming by exposing a service element with a high level language for heterogeneous device programmation and an orchestrator to synchronize all devices together and ease upgrading the entire system.

PrIoT Prototyping Elements

PrIoT exposes developers with a device independent application programming interface (API) specially designed to cover most IoT scenarios and yet concise enough for easy application development.

PrIoT is tailored to better manage IoT device heterogeneity and fasten the IoT prototyping phase by introducing an intelligent intermediate software layer over the IoT physical device that allows service developers to easily and quickly program IoT devices independently of the hardware manufacturer. This PrIoT intelligence is also able to understand the commands of the IoT device firmware and uses a hardware abstraction layer (HAL) that can translate the high level IoT service functionalities into hardware specific commands. In addition, PrIoT aggregates different aknowledged and accepted tools under a common umbrella to foster and ease IoT prototyping.

PrIoT Workflow

Based on application requirements IoT hardware application logic is designed and implemented first by selecting the components in the PrIoT-DB and the targeted scenario can be developped using PrIoT-Lang and PrIoT-APIs. PrIoT provides a uniform access interface across all hardware components, so at this point the components selected represent high level hardware elements with default outcomes which is independent of hardware manufacturer. Once the application logic is created in Step 1, then in Step 2 user select off-the-shelf embedded board and hardware which represents the actual hardware. In step 3 application logic is tested and validated on the board and hardware selected in Step 2. Since in PrIoT application logic is independent of underlying hardware, the IoT service provider as compared to conventional methods has freedom to easily replace hardware boards from any vendor without rewriting the application logic.

PrIoT Main components

In PrIoT the application logic is independent of any IoT-end system hardware, this implies that the same application logic can be ported to any hardware supported by PrIoT.

  • PrIoT-DB

    PrIoT maintains a database of IoT-end de- vices ranging from hardware components (Sensors, Actuators and Human/Machine Interface) to Embeded Systems (MCU, MPU, SoC). The primary goal of this database is to provide users with a large set of components that can be programmed with a high level abstraction set of functionalities and param- eters that can be accessed through the PrIoT-Lang.

  • PrIoT-Lang

    PrIoT is equipped with high level programming language - PrIoT- Lang, which exposes user with device independent high level programming interface (PrIoT-API). The set of PrIoT-APIs is kept limited but captures most practical IoT scenarios, the set includes functions like - read, write, execute, send, receive and wait.

  • PrIoT-HAL

    PrIoT-HAL is a hardware abstraction layer (HAL) which consist of abstract functions for interfacing peripherals using standard embedded communication interface such as SPI, I2C, UART, 1-wire, etc.

  • PrIoT-Config

    PrIoT-Config pro- vides user with the interface to add information about the type of IoT-end device, cloud service and communication protocol and is parsed using PrIoT-Parser.

  • PrIoT-UI

    To increase the productivity of application development, PrIoT encapsulates the building blocks (PrIoT- GI, PrIoT-HAL, PrIoT-Config, PrIoT-Parser) with graphical interface (PrIoT-UI) which helps developers to build appli- cation without dealing with the underlying complexity.

  • PrIoT-GI

    PrIoT-GenericInterface is an abstract interface layer which provides an uniform interface for the development of PrIoT-Lang and PrIoT-APIs, network stack and system libraries. The generic interface is a concept which is designed in such a way that the application written with PrIoT-GI can be mapped easily on existing embedded OSes.

Get in touch

PrIoT is at an early stage of development and we are willing to share and bootstrap a community around IoT Prototyping. Our core phylosophie is built around open source software and sharing knowledge is a basis of our goal to deepen IoT features. At the moment we don't have a public repository as we will release our software soon but if you want to try and participate we would be eagger to send you the betta version.