Blynk-Technologies / Blynk-NCP-Driver

A shared interface to the services provided by Blynk.NCP
Apache License 2.0
10 stars 0 forks source link
coprocessor iot network

Blynk.NCP low-level driver

A shared interface to the services provided by Blynk.NCP

version downloads issues ci status license Stand With Ukraine

Blynk.NCP is a solution that off-loads connectivity to a Network Co-Processor (NCP) while your application logic resides on the Primary MCU. This implies a dual-Microcontroller Unit (MCU) architecture.

When to use Blynk.NCP? Using Blynk.NCP is recommended if one of these is true: - You're building a new IoT product with specific requirements for the Primary MCU, and you're adding a separate connectivity module - You are using Blynk for retrofitting your existing products - You have included an **AT command**-based module, but you struggle to make it work right or to achieve your product goals - You are looking for **ridiculously low** risks, integration efforts, and time to market, along with **improved reliability** of your products
Core Features - **Blynk.Inject**: connect your devices easily using [**Blynk IoT App**](https://docs.blynk.io/en/downloads/blynk-apps-for-ios-and-android) ( Android, iOS) or [🌐 Web Dashboard](https://blynk.cloud) - `BLE`-assisted device provisioning for the best end-user experience - `WiFiAP`-based provisioning for devices without BLE support - **Network Manager**: WiFi (up to 16 saved networks), Ethernet, Cellular (depending on the hardware) - Advanced network connection troubleshooting - Secure **Blynk.Cloud** connection that provides simple API for: - Data transfer with Virtual Pins, reporting Events, and accessing Metadata - `Time`, `Timezone` and `Location` with an ability to track local time when the device is offline, including DST transitions - **Blynk.Air** - automatic Over The Air firmware updates using Web Dashboard - Both NCP and the Primary MCU firmware updates - Direct firmware upgrade using iOS/Android App before device activation
Extra Features Additional services provided by the Blynk.NCP: - `⏳ soon` Persistent automation scenarios - work even if the device is offline - `⏳ soon` Non-volatile storage for the [Preferences](https://github.com/vshymanskyy/Preferences) library - `βœ… ready` NCP-assisted [fail-safe OTA updates](https://github.com/Blynk-Technologies/BlynkNcpDriver/blob/main/docs/Firmware%20Upgrade.md#ncp-assisted-fail-safe-ota-updates) - `βœ… ready` Connectivity-related **device state indication** - requires a monochrome/RGB/addressable LED attached to the NCP - `βœ… ready` **User button** (also used for configuration reset) - requires a momentary push button attached to the NCP - `βœ… ready` **Factory testing** and provisioning - `πŸ€” later` Generic File System storage - `πŸ€” later` Generic UDP/TCP/TLS socket API

Minimum System Requirements

C99 compiler | 1KB RAM | 8KB Flash | 38400 8N1 UART

Integrations

Based on this low-level NCP driver, Blynk also provides first class support and examples for multiple platforms.
This includes a reference implementation of NCP initialization, re-initialization, primary MCU OTA updates and other features.

Documentation

Disclaimer

The community edition of Blynk.NCP is available for personal use and evaluation.
If you're interested in using Blynk.NCP for commercial applications, feel free to contact Blynk. Thank you!