🚀 Browse our open source reference applications to accelerate your IoT project!

Search
Documentation Results
End of results
Community Results
End of results
Support
Blues.io
Notehub.io
Shop
Sign In
Search
Documentation Results
End of results
Community Results
End of results
Support
Blues.io
Notehub.io
Shop
×
HomeNotecardNotecard API ReferenceNotecard Guides
Notecard Firmware UpdatesDeveloper Firmware ReleasesLTS Firmware ReleasesFirmware Release PoliciesManual DFUOTA DFU with Notehub
Notecard Walkthrough
Overview
Notecard Requests & Responses
JSON Fundamentals
Notecard Interfaces
Essential Requests
Time & Location Requests
Inbound Requests & Shared Data
Web Transactions
Low Power Design
Low Bandwidth Design
Host Firmware Update Requests
Advanced Notecard Configuration
Notecard Error and Status Codes
Rate this page  
  • ★
    ★
  • ★
    ★
  • ★
    ★
  • ★
    ★
  • ★
    ★
Can we improve this page? Send us feedbackRate this page
  • ★
    ★
  • ★
    ★
  • ★
    ★
  • ★
    ★
  • ★
    ★
© 2023 Blues Inc.Terms & ConditionsPrivacy
blues.ioTwitterLinkedInGitHubHackster.io
Disconnected
Notecard Disconnected
Having trouble connecting?

Try changing your Micro 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

Notecard Firmware Updates

Blues Wireless regularly provides updated firmware releases for the Notecard that include feature additions and other improvements.

warning

Make sure you read and understand the Blues Firmware Release Policies and Procedures before updating Notecard firmware.

  • Browse Developer Firmware Releases
  • Browse LTS Firmware Releases
  • Blues Firmware Release Policies and Procedures
  • Instructions for OTA DFU with Notehub
  • Instructions for Manual DFU

Developer Firmware Releases

v3.5.2 (November 2nd, 2022)

Firmware: notecard-3.5.2.15620$20221031190539.bin and checksums

  1. Reduce hub.setcontinuous mode data usage from ~4KB/hour to ~2.5KB/hour for apps requesting immediate inbound Notefile sync by specifying sync:true.
  2. Improvements to Notecard Outboard Firmware Update and a bug fix for STM32 hosts with inverted boot.

v3.5.1 (October 7th, 2022)

Firmware: notecard-3.5.1.15545$20221118160948.bin and checksums

  1. The card.motion.sync request now allows you to sync on orientation changes (instead of motion changes) by passing a threshold of 0. With this mode enabled, motion events now include a tilt field to show the number of orientation changes since the previous event.
  2. Added the ability to get alerts if USB power is connected or disconnected through the card.voltage request.
  3. The Notecard now automatically triggers a sync when its file system is full.
  4. Added a {wifi-unavailable} error when making a card.wifi request on cellular Notecards.
  5. Added 15 minutes as a minimum session length for Notecards in continuous mode.
  6. Fixed an issue where no-sat tracking notes could inadvertently appear when using external GPS.
  7. Fixed an issue that could cause loss of cmd requests if sent in rapid succession.

v3.4.1 (August 3, 2022)

Firmware: notecard-3.4.1.15128$20220811230306.bin and checksums

  1. Added card.aux.serial to expose various capabilities over the Notecard AUX pins.
  2. Added support for streaming of Notecard accelerometer data.
  3. Enhancements to env.get and env.set to fetch a group of variables, and query variables by modified time.
  4. Added env mode to card.attn to monitor environment variable changes.
  5. Added auxgpio mode to card.attn to monitor AUX GPIO changes.
  6. Added time field to env.modified to query for environment variable changes since a known epoch time.
  7. Added threshold to card.location.mode response when not 0.
  8. Added limit to card.aux to disable concurrent modem use when using an external GPS receiver.
  9. Added on, seconds, and off to hub.set to enable temporary continuous mode when performing web transactions.
  10. Enable GPS/GNSS activation even if Notecard time has not yet been set from a successful cell network connection.
  11. Change GPS/GNSS hdop to float.
  12. Allow GPS/GNSS seek even if the Notecard is in a cellular network penalty box.
  13. Add penalty box errors to status returns for GPS/GNSS and Network connectivity.
  14. Ensure hub.sync.status returns extended service failure errors in response.
  15. Restart continuous mode session if inbound notification is sent to the Notecard.

v3.3.1 (May 23rd, 2022)

Firmware: notecard-3.3.1.14612$20220518212851.bin and checksums

  1. Autonomous reporting of GPIO state with card.aux. See Using AUX GPIO Mode for more information.
  2. Addition of usb, gps, wifi, and cell to the response object of card.status which indicates the associated component is powered on.
  3. Adding unsigned types of uint8, uint16, uint24, and uint32, to Note templates.
  4. The card.motion.mode API's sensitivity settings have been updated to use 25Hz sampling, providing improved performance.
  5. The "best location" in Notehub will remain the most recent GPS location, as long as the device has not moved and an adequate GPS signal is established (instead of reverting to cell tower location after 72 hours of no GPS activity).
  6. In tracking applications, daily charging minutes added to _track.qo Note template.
  7. The card.wireless API is now supported on Wi-Fi Notecard.
  8. Wi-Fi Notecard error messages improved when there are Wi-Fi connection failures.
  9. Addition of the _restart_no_activity_hours reserved environment variable.
  10. Miscellaneous other minor improvements and fixes.

v3.2.1 (February 2, 2022)

Firmware: notecard-3.2.1.13982$20220821154627.bin and checksums

  1. note.template payloads and strings can now be variable-length.
  2. Added verify:true to note.template to return the current template on a Notefile.
  3. web.post now supports payload fragmentation and reassembly at Notehub.
  4. card.attn adds verify:true to show the current attention mode configuration.
  5. card.attn adds mode: disarm,-all to clear all monitored conditions.
  6. AUX UART baud rate is now configurable via a card.aux request.
  7. Added GPS HDOP to card.location response in status and threshold fields.
  8. Major rewrite of JSON marshalling/unmarshalling logic to reduce runtime memory needed and allow the Notecard to sync a much larger number of non-templated Notes.
  9. Miscellaneous sync and power management improvements and minor fixes.

v1.5.6 (October 8, 2021)

  1. Added the web.delete API.
  2. Added seconds as an optional parameter on all web requests as an override to the standard 90 second timeout.
  3. Support for bidirectional Notehub.io certificate verification during TLS authentication.
  4. A random, unique, Note ID can be created and returned on a note.add if the supplied Note ID is "?".
  5. file.stats now takes an optional "file" parameter that returns the stats for the specified Notefile only.
  6. note.add, note.update, and note.delete all accept the verify:true parameter to immediately save the Notefile change to flash.
  7. dfu.status adds an err string property. If used along with "stop":true, this sets the host DFU to an error state with the specified string.

v1.5.5 (May 27, 2021)

  1. Enhancements to support Notecard-related features in the Airnote product.
  2. Added support for end-to-end encryption of Notes through Notehub.
  3. Add GNSS Horizontal dilution of precision (HDOP) support, including waiting for location to converge to configured HDOP before recording _track.qo notes, and adding the HDOP to the _track.qo body.
  4. If sync:true is specified in card.location.track, an immediate sync occurs every time a track note is added.
  5. card.version now accepts a field api: major-version that defines, for compatibility purposes, the major version number of the notecard firmware that the host was developed to use. In the response, the api returns the current firmware’s version number.
  6. Added _tri_gps_failure environment variable as a triangulation configuration option for Notecard to first try GPS, then fallback to using cellular triangulation if it is unable to make a GPS fix.
  7. Fix to improve the accuracy of card.voltage readings.
  8. Corrected behavior of heartbeat reporting in card.location.track.
  9. Miscellaneous bug fixes and improvements to MCU/SBC host reliability, continuous mode operation, and external SIM support.

v1.5.3 (February 24, 2021)

  1. Notecard I2C request/response reliability improved when the I2C bus is shared among multiple devices.
  2. Added rearm and wireless modes to card.attn.
  3. Implemented minutes as a new response to card.location.mode to return the currently-configured ring-fence debounce period.
  4. To allow for long-range enclosed transportation use cases, Implemented an enhancement to suppress motion-induced Notecard wake up when repeated network connectivity failures occur.
  5. Added a warning to _health.qo if battery voltage is low or dead, at most once per day.
  6. Implemented a card.random function to obtain a single or buffer full of random numbers from the Notecard hardware RNG.
  7. Miscellaneous bug fixes and reliability improvements for devices communicating over I2C and those running in continuous communications mode.

Developer Firmware Checksums

md5

866098e724c5aef221d19fdf0356f538  notecard-3.2.1.13982$20220821154627.bin
e4a30632d42784c347f09aaf3825737d  notecard-3.3.1.14612$20220518212851.bin
fd7318030d4fef21b6e6c4b088ed16ca  notecard-3.4.1.15128$20220811230306.bin
97bc2aeb17dd6c573b47f58335f092cd  notecard-3.5.1.15545$20221118160948.bin
8cf964de13a2d2bbbbb96fb4146f1e24  notecard-3.5.2.15620$20221031190539.bin

sha256

3a1ef9c6ebe45501ca26b425569ed469cc2636807ef1a39c780f3657e803cdf1  notecard-3.2.1.13982$20220821154627.bin
8a58324e4d2a4b04b69a60fe101687f51354e6dcc1037fda33e15abb8a21129c  notecard-3.3.1.14612$20220518212851.bin
2e9043883e2f57265a18f74e79ad448b8a3d8e4567983011480d06c0a4cbf46f  notecard-3.4.1.15128$20220811230306.bin
6744e0c3f31849944151d08364fb02b2d27187897f0932d6c07cf1c4e1051e5d  notecard-3.5.1.15545$20221118160948.bin
ffbf202264ba7d2b7aa28167cc0722df90fbbed5e3064b0440273729fe13b9a9  notecard-3.5.2.15620$20221031190539.bin

LTS Firmware Releases

LTS v4.2.1 (March 3, 2023)

Firmware: notecard-4.2.1.4015688$20230227005219.bin and checksums

  1. Decrease duration of Wi-Fi penalty box if in continuous mode or on USB power.
  2. If hub.set mode changed to "off" while the modem is powering up, modem will quickly and gracefully shut down.
  3. Fix to make hub.set mode:"dfu" idempotent.
  4. Fix to keep the Notecard modem from powering on after a hard reset if mode:"off".
  5. Fix to keep the Notecard online if in continuous mode and OTA DFU has been paused.

LTS v2.4.1 (Feb 6, 2023)

Firmware: notecard-2.4.1.2014024$20230127210448.bin and checksums

  1. Enhance card.attn to add -all option and improve watchdog timing.
  2. Show extended service failures in hyb.sync.status requests.
  3. Improve timing accuracy of card.location.track heartbeat events, and prevent spurious heartbeat events if motion has occurred.
  4. Fix to ensure that Wi-Fi signal and SSID always show for card.wireless requests and in _session.qo Notefiles.
  5. Fix to keep the Notecard online when in continuous mode and DFU has been paused.

LTS v4.1.1 (December 7, 2022)

Firmware: notecard-4.1.1.4015681$20221206134917.bin and checksums

  1. Annual Long Term Support (LTS) release. For additional details and our LTS policy see this section. Includes all features in developer release 3.5.2 as well as the items below.
  2. Service failure retry & penalty box fixes.
  3. Clear files on card.attn when mode is disarm.
  4. Return current serial baud rate in response to a card.aux.serial request.
  5. ATTN Watchdog fixes for computing polling intervals and resets.
  6. Improvements related to JSON array and string handling in Notecard requests.

LTS v2.3.1 (June 14, 2022)

Firmware: notecard-2.3.1.2014013$20220613194620.bin and checksums

  1. Added additional programmatically testable error codes to JSON responses.
  2. Support for open SSIDs on the Wi-Fi Notecard.
  3. Enhancements to long term robustness for always-on devices.
  4. Miscellaneous enhancements for DFU timeouts, card.motion.mode sensitivity settings, GPS location updates.
  5. Addition of the _restart_no_activity_hoursreserved environment variable.

LTS v2.2.1 (March 1, 2022)

Firmware: notecard-2.2.1.2013856$20220219214539.bin and checksums

  1. Send Wi-Fi usage data to Notehub in session data.
  2. Add Wi-Fi usage data to card.version.
  3. Light red LED to register SoftAP button push, and when in SoftAP mode.

LTS v2.1.1 (November 15, 2021)

Firmware: notecard-2.1.1.2013839$20211117220152.bin and checksums

  1. First Long Term Support (LTS) version. For additional details and our LTS policy see this section.
  2. Added support for local-only Database Notefiles via a .dbx extension. These Notefiles reside on the Notecard and do not sync to Notehub.io.
  3. Miscellaneous fixes for DFU updates, Notehub connection management, and penalty box behavior.

LTS Firmware Checksums

md5

653d3045e3ab369a4641132c71bf9cef  notecard-2.1.1.2013839$20211117220152.bin
f1c207f897ac1a44a6f1f784c7353863  notecard-2.2.1.2013856$20220219214539.bin
b1bebc3c08001bce9f99a02a7b992ba5  notecard-2.3.1.2014013$20220613194620.bin
105c8a30865e5313ce527190286c8de8  notecard-4.1.1.4015681$20221206134917.bin
a7746b162b4a355229b5a651f58974b0  notecard-2.4.1.2014024$20230127210448.bin
f4c8ee422540de40edd51da7c4b72497  notecard-4.2.1.4015688$20230227005219.bin

sha256

bea9ad4e9e47fdc4114c5f20f55e06dbbe20520f69eb0b6b6a71566e2c9fbfc4  notecard-2.1.1.2013839$20211117220152.bin
1bc71770ac49d61d42ec80f9fc41928e81a7aa40083dcb34c3cd62f99b25641b  notecard-2.2.1.2013856$20220219214539.bin
3d65ac74b8c30cb18d661339356042d1108ace2b177b532ee02114729dfa8456  notecard-2.3.1.2014013$20220613194620.bin
64d60511365351f711d6e7ad5cece4cb04029e634b1d1e29080cf93becff3d3b  notecard-4.1.1.4015681$20221206134917.bin
31c6e561695d07f3d72f4b1fa1a0e3d3e850d2e469d01f1c45ce908e97d78c70  notecard-2.4.1.2014024$20230127210448.bin
f4205d3c6f6b1b2117d53ee374b968b170f414ef29b7c60bb93484dac6b367f2  notecard-4.2.1.4015688$20230227005219.bin

Firmware Release Policies

The Notecard firmware is managed on two parallel product lifecycles:

  • Developer Firmware Releases
  • Long-Term Support (LTS) Releases

This section summarizes how these releases are versioned, as well as our policies around customer deployments and support timelines.

Developer Firmware Releases

Developer Firmware Releases are meant for testing new Notecard features and functionality during the early prototype and pilot phases of a project. It's not uncommon for these releases to expand the feature-set of the Notecard based on feedback and requests from customers building real applications.

These releases happen, on average, once a quarter and are supported by Blues for 90 days from the date of release, or the date of the following developer firmware release whichever is soonest. Once that 90-day period elapses, customers will be required to upgrade to a newer version in order to receive support.

Long-term Support (LTS) Releases

Long-term Support, or LTS, releases are meant for scaling customers deploying an application to production. These applications are often feature complete and ready for the field, and do not need new features, or the risk associated with incorporating updated firmware into an existing application. LTS releases address this problem by supplying stable and consistent behavior that customers can bet on for field deployments.

LTS releases happen at least once per year, with occasional bug-fixes back-ported into the current major LTS line each quarter, if needed. LTS releases are feature-frozen, meaning that they do not generally receive new features, API changes, or any functionality that modifies the documented behavior of the device. They do, however, benefit from an extended support window in which Blues will address critical OTA vulnerabilities for a period of 10 years from the date of initial release. Customers deploying an application to the field must select an LTS version in order to receive support.

Release Versioning

We've chosen to adopt a firmware version numbering scheme inspired by the LTS practices employed for NodeJS. Namely, we're adopting an even and odd major version numbering scheme to delineate between our LTS and Developer releases.

LTS releases will always start with an even number, and we will increase the minor or patch version numbers in the event fixes from a newer release need to be back-ported to an earlier LTS. For example, 2.1.1 was our first LTS version. If, in the support period, we identify a need to back-port a critical vulnerability, we would release a new LTS version on this line with a new minor or patch number, for example 2.2.1.

Likewise, Developer releases will always start with an odd number, and we will increase the minor or patch version numbers as we cut updated Developer firmware releases throughout the year. For example, the next developer firmware release, which is planned for January of 2023, will be version 5.1.1.

To put these version numbers and what they mean into more context, here's the current plan for releases scheduled in 2023:

  • Jan 2023 - Developer Release 5.1.1
    • LTS Update 4.2.1 (If Necessary)
  • April 2023 - Developer Release 5.2.1
  • LTS Update 4.3.1 (If Necessary)
  • July 2023 - Developer Release 5.3.1
    • LTS Update 4.4.1 (If Necessary)
  • October 2023 - Developer Release 5.4.1
    • LTS Release Candidate for 6.1.1
  • November 2023 - LTS Release 6.1.1

Manual DFU

While we recommend the use of Notehub.io to update device firmware, you can manually update by directly connecting to a Notecard over USB.

Prerequisites

  • Serial terminal emulator software (e.g. our In-Browser Terminal, CoolTerm , or TinyTerm ).

  • A fresh Notecard binary file (download from the Firmware Releases list above).

  • STM32CubeProgrammer (download the latest version for your OS).

    warning

    The minimum version of STM32CubeProgrammer we support is 2.11.0.

STM32CubeProgrammer Installation Notes

Installing STM32CubeProgrammer requires OS-specific instructions.

Windows

If you're on a version of Windows older than Windows 10, you'll first need to install the STM32 Virtual COM Port Driver .

Download and extract the zip package and run the installer (ignoring the security issues from Windows).

Mac

Download and extract the zip package (noting that the version number of 2.11.0 used in these instructions will likely change in the future).

Using your terminal app of choice, navigate to the extracted directory and launch the installer in CLI mode. For example:

>
./SetupSTM32CubeProgrammer-2.11.0.app/Contents/MacOs/SetupSTM32CubeProgrammer-2_11_0_macos

You will likely be prompted with a security error from macOS, noting that the installer cannot be opened because the developer cannot be verified.

macos security issue

Click "Cancel", open "System Preferences", navigate to the "General" tab, and click "Open Anyway".

macos security issue resolution

Finally, back in your terminal, launch the installer in CLI mode again, using the same command used previously.

Linux

Prior to installation, make sure you have the following packages installed:

  • libusb-1.0-0-dev
  • unzip

If you are using a USB port to connect to the STM32 device, install the libusb1.0 package by typing the following command:

>
sudo apt-get install libusb-1.0.0-dev
note

Please note libusb1.0.12 version or higher is required to run STM32CubeProgrammer.

Extract the zip package downloaded earlier from ST , and execute it. Note the version number may change.

$
unzip en.stm32cubeprg-lin_v2-11-0_v2.11.0 &&
  cd en.stm32cubeprg-lin_v2-11-0_v2.11.0 &&
  ./SetupSTM32CubeProgrammer-2.11.0.linux

Copy the rules files into /etc/udev/rules.d/. This is needed use ST-LINK probe or USB DFU.

$
sudo cp ~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules/* /etc/udev/rules.d

Firmware Update Process

Connect your Notecard device to your computer via USB. Verify that your terminal emulator (e.g. dev.blues.io, CoolTerm, or TinyTerm) is able to connect to the device by sending the card.version request:

>
{"req": "card.version"}

The response should look similar to this:

{
 "version": "notecard-3.5.1.15545",
 "device": "dev:000000000000000",
 "name": "Blues Wireless Notecard",
 "sku": "NOTE-NBGL-500",
 "board": "1.11",
 "api": 3,
 "body": {
  "org": "Blues Wireless",
  "product": "Notecard",
  "version": "notecard-3.5.1",
  "ver_major": 3,
  "ver_minor": 5,
  "ver_patch": 1,
  "ver_build": 15545,
  "built": "Oct 10 2022 12:37:13"
 }
}

Important: Next, launch the built-in bootloader firmware by sending the bootloader command via your terminal emulator:

>
bootloader
note

In Windows Device Manager, this causes Notecard to disappear as a "Ports (COM LPT)/USB Serial Device (VID 0x30A4, PID 0x0001)" and to reappear as a "Universal Serial Bus devices/STM32 BOOTLOADER (VID 0x0438, PID 0xDF11)".

Using the STM32CubeProgrammer

Open the STM32CubeProgrammer application.

Select "USB" from the dropdown menu provided in the upper-right corner:

connecting to device over usb

Select the port corresponding to your Notecard in the "Port" dropdown menu (likely "USB1"). You may need to click the button next to the port dropdown to refresh the list.

Click the "Connect" button and the log should update and display Data read successfully.

Next, access the "Erasing & Programming" screen by clicking the menu button with the arrow pointing down:

erasing and programming firmware

Follow the other configuration options in the image above:

  • Select the appropriate firmware .bin file.
  • Check the "Verify programming" box.
  • Check the "Run after programming" box.
  • Finally, click the "Start Programming" button.
warning

Never enable the "Full chip erase" option as you will wipe the Notecard in a way that renders it permanently unusable.

After a few seconds of commands displayed in the log, you should see multiple dialog warnings/notifications to click through and confirm.

Results

Once the update process is complete, your Notecard will reset and reconnect. You can verify the firmware process was successful by executing another card.version request and inspecting the version parameter.

>
{"req": "card.version"}

OTA DFU with Notehub

The simplest way to update the firmware on your Notecard device is to perform an over-the-air DFU with Notehub.io. For instructions on how to update your Notecard firmware with Notehub.io, please visit the Manage Notecard Firmware guide.

note

Please be aware that OTA DFU updates use data in your data plan.

Additional Resources

  • Manage Notecard Firmware
  • Host Firmware Update Requests