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 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 custom 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.
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!