Open Source IoT Operating System

Overview

IoTaaP OS

Open Source IoT Operating System

Build Status

Usage

Include IoTaaP_OS.h to your project and define IoTaaP OS object

Usage example

#include <IoTaaP_OS.h>

IoTaaP_OS iotaapOs("1.0.1");

Hardware

For development you can use official IoTaaP Hardware

Tutorials

Follow official tutorials for even faster IoT development process!

Documentation

Official documentation

Community

Join IoTaaP community today!

Authors

Contributing

See CONTRIBUTING for more information.

License

Apache License 2.0, see LICENSE

Issues
  • Fix/certicatedup

    Fix/certicatedup

    Removed Duplicate Certificate Loading. Testing Criteria completed using the same main code, alternating library dependency master vs fork .

    MQTT

    • Cloud device Parameter Passed to IoTaap MQTT Instance.
    • MQTT Subscription & Unsubscription to topics.
    • Sending Unique Parameters to MQTT Instance.
    • Receiving MQTT Payloads from MQTT Instance.
    • Sending Payloads to devices topic & Events on IoTaap Console.

    OTA

    • Check for auto update forward revisioning to highest version.
    • Check for auto update backward revisioning.
    • Check for manual update forward revisioning.
    • Check for manual update through 20 revisions. Note each runtime.

    Notes: Behaviour consistent when only the lines to set certificate removed. When either wifiClientSecure.stop(); lines are removed then unhandled exception occurs in a repeatable way. Thus inability to perform the check update function.

    Repeatable behaviour also discovered on hardware reset of connected device to create overflow on the uptime within console.

    enhancement 
    opened by AlexsCode 4
  • ESP32 MQTT problem, subscribe broken

    ESP32 MQTT problem, subscribe broken

    If uploading the code, and not using sleep function, ESP32 subscribes and publishes to some topic succesfully (MQTT Broker is on Raspberry PI, all debugging is done in serial monitor).

    Serial output:

    WiFi connected
    IP address: 
    x
    Boot number: 2
    Setup ESP32 to sleep for every 5 Seconds
    Attempting MQTT connection...connected
    Subscribed to esp32/topic
    Going to sleep now
    ets Jun  8 2016 00:22:57
    
    help wanted invalid 
    opened by sunilkul1 2
  • OTA Update fail

    OTA Update fail

    During normal operation, the device cannot perform an update due to memory issues.

    IoTaaP OS version: 3.0.2

    Log:

    [2021-03-07 02:35:34] [INFO] - Checking for updates
    sendRequest code=200
    [2021-03-07 02:35:37] [INFO] - New update available!
    [2021-03-07 02:35:37] [INFO] - Starting update process...
    sendRequest code=200
    [E][Updater.cpp:158] begin(): malloc failed
    [E][HTTPUpdate.cpp:382] runUpdate(): Update.begin failed! (No Error)
    
    [E][HTTPUpdate.cpp:334] handleUpdate(): Update failed
    
    [2021-03-07 02:35:40] [ERROR] - Update failed with error (0): 
    
    [2021-03-07 02:35:40] [WARNING] - Not connected to MQTT broker
    [2021-03-07 02:35:40] [INFO] - Data stored locally!
    

    After few retries, the update will succeed. It looks like a heap issue with the MqttTask or an overall memory issue on a system level (something is consuming a lot of memory at random points). This could be connected with Queue dynamic allocation.

    Needs further investigation.

    bug 
    opened by igolubic 1
  • wifiClientSecure.setCACert() is duplicated

    wifiClientSecure.setCACert() is duplicated

    wifiClientSecure.setCACert() is duplicated, now it loads the same certificate (before it was loading MQTT and OTAu certificates separately).

    This is maybe redundant since there can be only one wifiClientSecure but now we use the same certificate, this maybe can be removed?

    Usage in ota_module.cpp:

    https://github.com/iotaap/iotaap-os/blob/2d61943b79f46973b7092c9631eae79d5b77f2e7/src/ota/ota_module.cpp#L51 https://github.com/iotaap/iotaap-os/blob/2d61943b79f46973b7092c9631eae79d5b77f2e7/src/ota/ota_module.cpp#L95

    Usage in mqtt_client.cpp:

    https://github.com/iotaap/iotaap-os/blob/c7f25e4baecd3dd315aa99160b324582b8073ef3/src/mqtt/mqtt_client.cpp#L184

    enhancement 
    opened by igolubic 1
  • v5.0.0

    v5.0.0

    IoTaaP OS v5.0.0 introduces performance and usability improvements, stability updates, improved web configurator and various bug fixes. This version also intruduces batch data publishing to ensure fast and reliable publishing of high frequency data.

    Added

    • MQTT Batch implemented
    • Support for unsecured MQTT connection (without encryption)
    • Subscribing to any topic is now supported
    • Backup before reset

    Changed

    • Using WiFi events instead of basic functional approach
    • Certificate is now using dynamic allocation of the memory
    • Web configurator imrovements and new fields
    • OTA server configuration improvement
    • NTP servers are removed, IoTaaP Heartbeat is now used to sync time with server
    • MQTT client now accepts IP addres for server
    • 3rd party libraries updated
    • Task timing optimized
    • Configurator internal handling

    Fixed

    • WiFi password generator bug
    • Starting web server dinamically
    • Static allocation is replaced by dynamic
    • Fixed rebooting issue with local configurator
    • High memory usage is now optimized
    • Queue is fixed and replaced by native solution
    • Timestamp was reseting after restart
    • Linked list
    opened by igolubic 0
  • v4.0.0

    v4.0.0

    [4.0.0] - 2021-03-31

    Breaking changes

    IoTaaP OS v4.0.0 introduces filesystem changes, bug fixes, various cosmetic changes and performance and usability improvements. Please read the Official IoTaaP OS documentation to catch up easily.

    Added

    • Implemented remote update trigger for devices
    • Implemented remote update trigger for devices in the group
    • Added development feature for monitoring free stack in internal tasks (disabled by default)
    • Added start() function, which now has to be called at the beginning in order to start IoTaaP OS

    Changed

    • System will not start unitl start() function is called
    • Updated initial code (example)
    • Implemented internal FAT filesystem, SD is not mandatory to start the system. If SD is not present, logging and data backup will be disabled
    • Removed getUserParameter function. Custom parameters are not supported due to switching to internal FAT FS for configuration (better implementation of custom parameters will be implemented in the future releases)
    • CA certificate is now stored on internal filesystem, not on the SD card
    • SD card is not mandatory and file structure will be automatically created during the first boot (manual SD flashing is not required anymore)
    • Improved system logging and serial output

    Fixed

    • IoTaaP hostname (during Web Configurator AP) is now generated from device MAC, and it is the same as the SSID
    • Fixed resetting synced time if WiFi connection is lost (now it will work with previously synced time)
    • Internal tasks performance optimizations
    opened by igolubic 0
  • 3.1.0

    3.1.0

    Added

    • Added checking and creating FS at startup
    • Creating default config file (template) at startup if not present
    • Web configurator
    • CoC and issue templates to the repository

    Changed

    • Stack size for WiFi and MQTT tasks
    • Queue size for logs and local messages
    • Status publishing period (to 5000ms)
    • Logging (introduced SYSTEM tag and reduced writing of INFO tag log to SD card)

    Fixed

    • Showing error message if FS is not available, even if serial debug print is disabled
    opened by igolubic 0
Releases(v5.0.0)
  • v5.0.0(Nov 23, 2021)

    IoTaaP OS v5.0.0 introduces performance and usability improvements, stability updates, improved web configurator and various bug fixes. This version also intruduces batch data publishing to ensure fast and reliable publishing of high frequency data.

    Added

    • MQTT Batch implemented
    • Support for unsecured MQTT connection (without encryption)
    • Subscribing to any topic is now supported
    • Backup before reset

    Changed

    • Using WiFi events instead of basic functional approach
    • Certificate is now using dynamic allocation of the memory
    • Web configurator imrovements and new fields
    • OTA server configuration improvement
    • NTP servers are removed, IoTaaP Heartbeat is now used to sync time with server
    • MQTT client now accepts IP addres for server
    • 3rd party libraries updated
    • Task timing optimized
    • Configurator internal handling

    Fixed

    • WiFi password generator bug
    • Starting web server dinamically
    • Static allocation is replaced by dynamic
    • Fixed rebooting issue with local configurator
    • High memory usage is now optimized
    • Queue is fixed and replaced by native solution
    • Timestamp was reseting after restart
    • Linked list
    Source code(tar.gz)
    Source code(zip)
  • v4.0.1(Mar 31, 2021)

  • v4.0.0(Mar 31, 2021)

    Breaking changes

    IoTaaP OS v4.0.0 introduces filesystem changes, bug fixes, various cosmetic changes, and performance and usability improvements. Please read the Official IoTaaP OS documentation to catch up easily.

    Added

    • Implemented remote update trigger for devices
    • Implemented remote update trigger for devices in the group
    • Added development feature for monitoring free stack in internal tasks (disabled by default)
    • Added start() function, which now has to be called at the beginning in order to start IoTaaP OS

    Changed

    • System will not start until start() function is called
    • Updated initial code (example)
    • Implemented internal FAT filesystem, SD is not mandatory to start the system. If SD is not present, logging and data backup will be disabled
    • Removed getUserParameter function. Custom parameters are not supported due to switching to internal FAT FS for configuration (better implementation of custom parameters will be implemented in future releases)
    • CA certificate is now stored on the internal filesystem, not on the SD card
    • SD card is not mandatory and file structure will be automatically created during the first boot (manual SD flashing is not required anymore)
    • Improved system logging and serial output

    Fixed

    • IoTaaP hostname (during Web Configurator AP) is now generated from device MAC, and it is the same as the SSID
    • Fixed resetting synced time if the WiFi connection is lost (now it will work with previously synced time)
    • Internal tasks performance optimizations
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Mar 17, 2021)

    Added

    • Added checking and creating FS at startup
    • Creating default config file (template) at startup if not present
    • Web configurator
    • CoC and issue templates to the repository

    Changed

    • Stack size for WiFi and MQTT tasks
    • Queue size for logs and local messages
    • Status publishing period (to 5000ms)
    • Logging (introduced SYSTEM tag and reduced writing of INFO tag log to SD card)

    Fixed

    • Showing error message if FS is not available, even if serial debug print is disabled
    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(Mar 8, 2021)

  • v3.0.2(Feb 10, 2021)

  • v3.0.1(Feb 5, 2021)

  • v3.0.0(Jan 29, 2021)

Owner
IoTaaP
Internet of Things as a Platform
IoTaaP
Espressif IoT Library. IoT Device Drivers, Documentations And Solutions.

Espressif IoT Library. IoT Device Drivers, Documentations And Solutions.

Espressif Systems 1.3k Aug 10, 2022
Iot smart weighting concept code

iot-smart-sensory-weighing Iot smart weighting concept code - Coded in C language [ Hardware assembly code ] - Module for Arduino In this project we h

Ashutosh Rana 1 Nov 17, 2021
Google IOT MQTT Sample

This is an adaptation of Zephyr's Google Cloud IoT Core MQTT sample samples/net/cloud/google_iot_mqtt for the nRF9160-DK, using modem features to offload certificate storage, TLS and JWT calculation.

Jeffrey Urban 5 Jan 27, 2022
Introduction to AWS IoT Core and a Post Messaging demo

IoT_Message_Box_Workshop Introduction to programming microcontrollers for IoT applications and interfacing them with AWS IoT Core This workshop was pr

Raw Matter 5 Dec 1, 2021
SNIF ~ e2e TLS trust for IoT

/************************************************************************** * _________ * /````````_\ S N I F ~ e2e TLS trus

VESvault 11 Apr 24, 2022
Hyelicht is an IoT/embedded project for home decoration/automation.

Hyelicht is an IoT/embedded project for home decoration/automation. Its software allows you to do colorful painting and animations on a LED-b

Eike Hein 7 Jan 17, 2022
Linux Terminal Service Manager (LTSM) is a set of service programs that allows remote computers to connect to a Linux operating system computer using a remote terminal session (over VNC or RDP)

Linux Terminal Service Manager (LTSM) is a set of service programs that allows remote computers to connect to a Linux operating system computer using a remote terminal session (over VNC)

null 14 Jan 5, 2022
Open source file system for small embedded systems

STORfs Open Source File System Release Version 1.0.2 Created by: KrauseGLOBAL Solutions, LLC What is STORfs? STORfs is an open source flash file syste

null 17 Jul 26, 2022
Steve's Unreal Quest System: data-driven quest system for UE4

Steve's Unreal Quest System (SUQS) What Is It? SUQS is a simple, data-driven quest system for UE4. It helps you define quest structures for your game,

Steve Streeting 58 Jul 29, 2022
The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. Its main component is a service management ("init") system.

InitWare isn't ready to use yet!! Unless you are doing so for fun, to experiment, or to contribute, you most likely do not want to try to install Init

null 152 Aug 12, 2022
RakNet is a cross platform, open source, C++ networking engine for game programmers.

RakNet 4.081 Copyright (c) 2014, Oculus VR, Inc. Package notes The Help directory contains index.html, which is full help documentation in HTML format

Facebook Archive 3.1k Aug 14, 2022
An easy to use and powerful open source websocket library written in C.

libwebsock Easy to use C library for websockets This library allows for quick and easy development of applications that use the websocket protocol, wi

Jonathan Hall 46 May 4, 2022
Zyre - an open-source framework for proximity-based peer-to-peer applications

Zyre - Local Area Clustering for Peer-to-Peer Applications Linux & MacOSX Windows Contents Overview Scope and Goals Ownership and License Using Zyre B

The ZeroMQ project 796 Aug 8, 2022
RakNet is a cross platform, open source, C++ networking engine for game programmers.

RakNet 4.081 Copyright (c) 2014, Oculus VR, Inc. Package notes The Help directory contains index.html, which is full help documentation in HTML format

Facebook Archive 3.1k Aug 11, 2022
ASN intelligence information (IP to ASN mapping) collected and distributed in open source and transparent way

ASN Intelligence The main goal of this project to retrieve information required to map IP address to ASN number in open source and transparent way. Wh

Pavel Odintsov 60 Jun 27, 2021
STUNTMAN - An open source STUN server

Version 1.2. This is the source code to STUNTMAN - an open source STUN server and client code by john selbie. Compliant with the latest RFCs including 5389, 5769, and 5780. Also includes backwards compatibility for RFC 3489. Compiles on Linux, MacOS, BSD, Solaris, and Win32 with Cygwin. Windows binaries avaialble from www.stunprotocol.org.

John Selbie 1.2k Aug 11, 2022
OtterCastAmp is an open-source WiFi Speaker amplifier, based on a Sochip S3 SoC. Powered by any USB PD adapter for up to 100W of music.

OtterCastAmp is an open-source WiFi Speaker amplifier, based on a Sochip S3 SoC. Powered by any USB PD adapter for up to 100W of music.

Ottercast 249 Aug 7, 2022
Eclipse Mosquitto - An open source MQTT broker

Mosquitto is an open source implementation of a server for version 5.0, 3.1.1, and 3.1 of the MQTT protocol. It also includes a C and C++ client library, and the mosquitto_pub and mosquitto_sub utilities for publishing and subscribing.

Eclipse Foundation 6.5k Aug 10, 2022
A virtual network Differential GNSS server-client project using Precise Point Positioning (PPP). Global coverage. Without physical base station construction needed. An open-source virtual base station approach.

Virtual-Network-DGNSS-Project This project is the software implementation for a publicly available, open-source, client/server VN-DGNSS implementation

null 10 May 20, 2022