Blynk.NCP
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 have one of the supported dual-MCU boards and want connect it to Blynk
- You're building a new IoT product with specific requirements for the Primary MCU, so 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
Android App,
iOS App or π Web Dashboard
BLE
-assisted device provisioning for the best end-user experienceWiFiAP
-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
andLocation
, 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 that can be provided by the Blynk.NCP:
β³ soon
Persistent automation scenarios - work even if the device is offlineβ³ soon
Non-volatile storage for the Preferences libraryβ ready
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
Supported Boards
Dual-MCU Boards
This example project is compatible with a set of ready-to-use Dual-MCU boards:
Board | π MCU / NCP | π | βοΈ | ποΈ | |
---|---|---|---|---|---|
UNO R4 WiFi | unoR4wifi |
β³ / β
|
WiFi 2.4 | BLE | 4.25 MB |
Portenta C33 | portentaC33 |
β³ / β
|
WiFi 2.4 | BLE | 512 KB |
Nano RP2040 Connect | rp2040connect |
β
/ β |
WiFi 2.4 | BLE | 384 KB |
Nano 33 IoT | nano33iot |
β
/ β |
WiFi 2.4 | BLE | 384 KB |
MKR WiFi 1010 | mkrwifi1010 |
β
/ β |
WiFi 2.4 | BLE | 384 KB |
T-PicoC3 | t_pico_c3 |
β
/ β
|
WiFi 2.4 | BLE | 512 KB |
RPi Pico + ESP8266 | pico_esp8266 |
β
/ β
|
WiFi 2.4 | WiFiAP | 1000 KB |
Wio Terminal | β³ |
β
/ β |
WiFi 2.4/5 | BLE | β |
π Over-the-Air Updates, π Connectivity, βοΈ Provisioning, ποΈ File System
Custom Boards
You can also add one of the supported connectivity modules to your own board.
Getting started
-
This is a PlatformIO project. Please install the VSCode plugin or PlatformIO CLI.
-
Clone this repository using
git
, or download it as aZIP
file. -
Flash the Blynk.NCP firmware (replace
nano33iot
with your board type):pio run -e nano33iot -t upload_ncp
Warning: This overwrites both the Main MCU and the connectivity module firmware.
You can restore the stock firmware easily. -
Open
src/main.cpp
and fill in information from your Blynk Template:#define BLYNK_TEMPLATE_ID "TMPxxxxxx" #define BLYNK_TEMPLATE_NAME "MyDevice"
-
Upload the example project, and run the serial monitor:
pio run -e nano33iot -t upload -t monitor
-
Use the Blynk iOS/Android app to configure your new device
Ensure that the Blynk App is installed on your smartphone and scan this QR code:
Alternatively: Open theBlynk App
-> clickAdd New Device
-> selectFind Devices Nearby
Troubleshooting
If something doesn't work, try some of these solutions:
- If your board is based on a Raspberry Pi RP2040 chip, it may fail to work on Windows. Please apply this fix
- Upgrade PlatformIO to the latest version. Run:
pio upgrade
- Upgrade packages to the latest version. Run:
pio pkg update --no-save
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!