Scaling an IoT deployment? Join our webinar on May 28th where we dive into real-world scaling pain points and how to overcome them.

Blues Developers
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
Button IconHelp
Notehub StatusVisit our Forum
Button IconSign In
Sign In
Sign In
Docs Home
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
API Reference
Glossary
System Notefiles
Notecard API
Introduction
card Requests
dfu Requests
dfu.getdfu.status
env Requests
file Requests
hub Requests
note Requests
ntn Requests
var Requests
web Requests
Notehub API
API Introduction
Authorization API
Billing Account API
Device API
Event API
Monitor API
Project API
Route API
homechevron_rightDocschevron_rightAPI Referencechevron_rightNotecard APIchevron_rightdfu Requests - API Reference

dfu Requests

The Notecard offers a set of host firmware update APIs that can be utilized by developers, in concert with Notehub, to update the firmware of a Host MCU.

Notecard Firmware Version:
8.x LTS
Latest (9.x)8.x LTS7.x6.x LTS5.x4.x LTS3.x2.x LTS

dfu.get CellCell+WiFiWiFi

Retrieves downloaded firmware data from the Notecard for use with IAP host MCU firmware updates.

This request is functional only when the Notecard has been set to dfu mode with a hub.set, mode:dfu request.

Arguments

length

integer

The number of bytes of firmware data to read and return to the host. Set to 0 to verify that the Notecard is in DFU mode without attempting to retrieve data.

offset

integer (optional)

The offset to use before performing a read of firmware data.

{
  "req": "dfu.get",
  "length": 32,
  "offset": 32
}
J *req = NoteNewRequest("dfu.get");
JAddNumberToObject(req, "length", 32);
JAddNumberToObject(req, "offset", 32);
NoteRequest(req);
req = {"req": "dfu.get"}
req["length"] = 32
req["offset"] = 32
rsp = card.Transaction(req)
Response Members

payload

string

A base64 string containing firmware data of the provided length.

Example Response
{
  "payload": "AAAAAAAAAAAAAAAAcy8ACIEvAAgAAAAAjy8ACJ0vAAg="
}

dfu.status CellCell+WiFiWiFi

Gets and sets the background download status of MCU host or Notecard firmware updates.

Arguments

name

string (optional)

Determines which type of firmware update status to view. The value can be "user" (default), which gets the status of MCU host firmware updates, or "card", which gets the status of Notecard firmware updates.

stop

boolean (optional)

true to clear DFU state and delete the local firmware image from the Notecard.

status

string (optional)

When setting stop to true, an optional string synchronized to Notehub, which can be used for informational or diagnostic purposes.

version

string (optional)

Version information on the host firmware to pass to Notehub. You may pass a simple version number string (e.g. "1.0.0.0"), or an object with detailed information about the firmware image (recommended).

If you provide an object it must take the following form.

{"org":"my-organization","product":"My Product","description":"A description of the image","version":"1.2.4","built":"Jan 01 2025 01:02:03","ver_major":1,"ver_minor":2,"ver_patch":4,"ver_build": 5,"builder":"The Builder"}

Code to help you generate a version with the correct formatting is available in Enabling Notecard Outboard Firmware Update.

vvalue

string (optional)

A voltage-variable string that controls, by Notecard voltage, whether or not DFU is enabled. Use a boolean 1 (on) or 0 (off) for each source/voltage level: usb:<1/0>;high:<1/0>;normal:<1/0>;low:<1/0>;dead:0. For example, with usb:1;0;, DFU downloads would occur when USB-powered, but not in any other state.

on

boolean (optional)

true to allow firmware downloads from Notehub.

off

boolean (optional)

true to disable firmware downloads from Notehub.

err

string (optional)

If err text is provided along with "stop":true, this sets the host DFU to an error state with the specified string.

{
  "req": "dfu.status",
  "on": true
}
J *req = NoteNewRequest("dfu.status");
JAddBoolToObject(req, "on", true);

NoteRequest(req);
req = {"req": "dfu.status"}
req["on"] = True
rsp = card.Transaction(req)
{
  "req": "dfu.status",
  "off": true
}
J *req = NoteNewRequest("dfu.status");
JAddBoolToObject(req, "off", true);

NoteRequest(req);
req = {"req": "dfu.status"}
req["off"] = True
rsp = card.Transaction(req)
{
  "req": "dfu.status",
  "vvalue": "usb:1;high:1;normal:0;low:0;dead:0"
}
J *req = NoteNewRequest("dfu.status");
JAddStringToObject(req, "vvalue", "usb:1;high:1;normal:0;low:0;dead:0");

NoteRequest(req);
req = {"req": "dfu.status"}
req["vvalue"] = "usb:1;high:1;normal:0;low:0;dead:0"
rsp = card.Transaction(req)
Response Members

mode

string

The current DFU mode. Will be one of:

"idle" when there is no firmware download in progress, and no data previously downloaded.

"error" when the download or verification has failed. In this mode, the status field will contain the reason.

"downloading" when the download is in progress. In this mode, the status field will contain info about progress.

"ready" when the firmware data is fully downloaded.

"completed" when the firmware has been installed.

status

string

The current status of the firmware download.

on

boolean

true when firmware downloads are enabled.

off

boolean

true when firmware downloads are disabled.

pending

boolean

true when Notecard DFU is currently in-progress.

body

JSON object

Object that includes essential details about the firmware binary, including the length of the length, its md5 hash, notes from the Notehub admin, created and updated dates, and more.

Example Response
{
  "mode": "ready",
  "status": "successfully downloaded",
  "on": true,
  "body": {
    "crc32": 2525287425,
    "created": 1599163431,
    "info": {},
    "length": 42892,
    "md5": "5a3f73a7f1b4bc8917b12b36c2532969",
    "modified": 1599163431,
    "name": "stm32-new-firmware$20200903200351.bin",
    "notes": "Latest prod firmware",
    "source": "stm32-new-firmware.bin",
    "type": "firmware"
  }
}
More information:
  • Notecard API Requests for DFU
  • Notecard Outboard Firmware Update Guide
card Requests env Requests
Can we improve this page? Send us feedback
© 2025 Blues Inc.
© 2025 Blues Inc.
TermsPrivacy
Notecard Disconnected
Having trouble connecting?

Try changing your USB cable as some cables do not support transferring data. If that does not solve your problem, contact us at support@blues.com and we will get you set up with another tool to communicate with the Notecard.

Advanced Usage

The help command gives more info.

Connect a Notecard
Use USB to connect and start issuing requests from the browser.
Try Notecard Simulator
Experiment with Notecard's latest firmware on a Simulator assigned to your free Notehub account.

Don't have an account? Sign up