Open Source Projects

Community-driven tools and libraries for IoT development

πŸ—„οΈ

QuarkDB

NoSQL Database for Arduino Microcontrollers

Overview

QuarkDB is an open-source NoSQL database designed specifically for Arduino-based microcontroller platforms. It leverages ArduinoJson 6 to manage JSON documents on resource-constrained hardware, making it perfect for edge computing and IoT applications.

Key Features

βœ“
Platform Support: ESP8266, ESP32, and compatible Arduino boards
βœ“
JSON Document Storage: Store and retrieve JSON documents with ease
βœ“
Flexible Querying: MongoDB-style operators ($eq, $gt, $lt, $gte, $lte, $eleMatch)
βœ“
SPIFFS Integration: Persistent storage using SPIFFS file system
βœ“
API & CLI Access: Both programmatic and command-line interfaces

Database Operations

QuarkDB supports fundamental CRUD operations optimized for microcontrollers:

  • Create: Initialize lists with names under 12 characters
  • Add: Insert JSON records (default 500-byte limit per record)
  • Retrieve: Query with filters using comparison operators
  • Update: Replace matched records entirely
  • Delete: Remove specific records or entire lists

Configuration

QuarkDB provides sensible defaults while allowing customization:

  • Maximum 300 records per list (configurable)
  • 500 bytes per record limit (configurable)
  • Dedicated APIs for configuration management
☸️

K3S Edge Orchestrator

Lightweight Kubernetes for IoT Edge Devices

Overview

K3S Edge Orchestrator enables container orchestration on edge devices, bringing Kubernetes capabilities to resource-constrained IoT gateways and edge computing platforms.

Key Features

βœ“
Lightweight: Minimal resource footprint for edge devices
βœ“
Container Management: Deploy and manage containerized IoT applications
βœ“
Edge Computing: Run workloads closer to data sources
βœ“
Remote Management: Centralized control of distributed edge nodes
πŸ“‘

Quarkifi Stream OTA

Over-The-Air Firmware Updates for ESP8266 & ESP32 via Quarkifi Stream

Overview

Quarkifi Stream OTA is an open-source Arduino library that enables seamless over-the-air firmware updates for ESP8266 and ESP32 microcontrollers. It integrates directly with the Quarkifi Stream Platform via MQTT, allowing you to push firmware upgrades to your IoT devices remotely β€” no physical access required.

Key Features

βœ“
Platform Support: ESP8266 and ESP32 boards, with more planned
βœ“
Quarkifi Stream Integration: Native MQTT-based OTA trigger via the Stream platform
βœ“
Third-party Compatible: Works with any OTA-supporting platform, not just Quarkifi
βœ“
Live Progress Tracking: Real-time status and download percentage callbacks
βœ“
Comprehensive Error Handling: Detailed status codes covering Wi-Fi, HTTP, storage, and write errors

API Reference

The library exposes three core methods:

  • setCallback(fn): Register a function to receive OTA status and progress updates
  • buildAuth(user, pass): Build an authentication token from credentials
  • startOTA(url, auth): Initiate the firmware download and install from a given URL

Status Codes

The callback receives a status byte and a progress byte (0–100%). Status values include:

  • 0–4: STARTING, DOWNLOADING, INSTALLING, SUCCESS, RESTARTING
  • 10–17: ERR_BUSY, ERR_NO_WIFI, ERR_HTTP, ERR_NO_SPACE, ERR_WRITE, ERR_TIMEOUT, ERR_FINALIZE, ERR_RETRIES

Your callback must publish the following JSON back to the platform: {"ota_status__": <code>, "ota_progress__": <0-100>}

Contribute to Our Projects

We welcome contributions from the community. Fork our repos, submit pull requests, or report issues.