Blues Wireless regularly provides updated firmware releases for the Notecard that include feature additions and other improvements.
Firmware: notecard-2.3.1.2014013.bin and checksums
- Added additional programatically testable error codes to JSON responses.
- Support for open SSIDs on the Wi-Fi Notecard.
- Enhancements to long term robustness for always-on devices.
- Miscellaneous enhancements for DFU timeouts,
card.motion.mode
sensitivity settings, GPS location updates.
Firmware: notecard-3.3.1.14612.bin and checksums
- Autonomous reporting of GPIO state with card.aux. See Using AUX GPIO Mode for more information.
- Addition of
usb
,gps
,wifi
, andcell
to the response object of card.status which indicates the associated component is powered on. - Adding unsigned types of
uint8
,uint16
,uint24
, anduint32
, to Note templates. - The
card.motion.mode
API'ssensitivity
settings have been updated to use 25Hz sampling, providing improved performance. - 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).
- In tracking applications,
daily charging minutes added to
_track.qo
Note template. - The
card.wireless
API is now supported on Wi-Fi Notecard. - Wi-Fi Notecard error messages improved when there are Wi-Fi connection failures.
- Addition of the
_restart_no_activity_hours
reserved environment variable. - Miscellaneous other minor improvements and fixes.
Firmware: notecard-2.2.1.2013856.bin and checksums
- Send Wi-Fi usage data to Notehub in session data.
- Add Wi-Fi usage data to
card.version
. - Light red LED to register SoftAP button push, and when in SoftAP mode.
Firmware: notecard-3.2.1.13982.bin and checksums
note.template
payloads and strings can now be variable-length.- Added
verify:true
tonote.template
to return the current template on a Notefile. web.post
now supports payload fragmentation and reassembly at Notehub.card.attn
addsverify:true
to show the current attention mode configuration.card.attn
addsmode: disarm,-all
to clear all monitored conditions.- AUX UART baud rate is now configurable via a
card.aux
request. - Added GPS HDOP to
card.location
response instatus
andthreshold
fields. - 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.
- Miscellaneous sync and power management improvements and minor fixes.
Firmware: notecard-2.1.1.bin and checksums
- First Long Term Support (LTS) version. For additional details and our LTS policy see this blog post.
- Added support for local-only Database Notefiles
via a
.dbx
extension. These Notefiles reside on the Notecard and do not sync to Notehub.io. - Miscellaneous fixes for DFU updates, Notehub connection management, and penalty box behavior.
Firmware: notecard-1.5.6.13807.bin and checksums
- Added the web.delete API.
- Added
seconds
as an optional parameter on all web requests as an override to the standard 90 second timeout. - Support for bidirectional Notehub.io certificate verification during TLS authentication.
- A random, unique, Note ID can be created and returned on a note.add if the supplied Note ID is "?".
- file.stats now takes an optional "file" parameter that returns the stats for the specified Notefile only.
- note.add,
note.update, and
note.delete all accept
the
verify:true
parameter to immediately save the Notefile change to flash. - 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.
Firmware: notecard-1.5.5.13080.bin and checksums
- Enhancements to support Notecard-related features in the Airnote product.
- Added support for end-to-end encryption of Notes through Notehub.
- 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. - If
sync:true
is specified in card.location.track, an immediate sync occurs every time a track note is added. - 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. - 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. - Fix to improve the accuracy of
card.voltage
readings. - Corrected behavior of heartbeat reporting in
card.location.track
. - Miscellaneous bug fixes and improvements to MCU/SBC host reliability, continuous mode operation, and external SIM support.
Firmware: notecard-1.5.3.12460.bin and checksums
- Notecard I2C request/response reliability improved when the I2C bus is shared among multiple devices.
- Added rearm and wireless modes to card.attn.
- Implemented minutes as a new response to card.location.mode to return the currently-configured ring-fence debounce period.
- 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.
- Added a warning to
_health.qo
if battery voltage is low or dead, at most once per day. - Implemented a card.random function to obtain a single or buffer full of random numbers from the Notecard hardware RNG.
- Miscellaneous bug fixes and reliability improvements for devices communicating over I2C and those running in continuous communications mode.
b1bebc3c08001bce9f99a02a7b992ba5 notecard-2.3.1.2014013.bin e4a30632d42784c347f09aaf3825737d notecard-3.3.1.14612.bin f1c207f897ac1a44a6f1f784c7353863 notecard-2.2.1.2013856.bin 866098e724c5aef221d19fdf0356f538 notecard-3.2.1.13982.bin 653d3045e3ab369a4641132c71bf9cef notecard-2.1.1.bin 1d71d3c46b2e5259d5adaacd54d56d5b notecard-1.5.6.13807.bin 1294df922c7394d80bc393984f4b4fc5 notecard-1.5.5.13080.bin 70cb6cba92840cfc90dfa1dc19aba917 notecard-1.5.3.12460.bin
3d65ac74b8c30cb18d661339356042d1108ace2b177b532ee02114729dfa8456 notecard-2.3.1.2014013.bin 8a58324e4d2a4b04b69a60fe101687f51354e6dcc1037fda33e15abb8a21129c notecard-3.3.1.14612.bin 1bc71770ac49d61d42ec80f9fc41928e81a7aa40083dcb34c3cd62f99b25641b notecard-2.2.1.2013856.bin 3a1ef9c6ebe45501ca26b425569ed469cc2636807ef1a39c780f3657e803cdf1 notecard-3.2.1.13982.bin bea9ad4e9e47fdc4114c5f20f55e06dbbe20520f69eb0b6b6a71566e2c9fbfc4 notecard-2.1.1.bin 007c2f89c85b032f48e6d5577a40e1c47e8230103418404c98e3b62770eb0957 notecard-1.5.6.13807.bin 2ff6dbdf5fd748aa20133a11d7a79f35cda6024df524e5aa9a10b9eaa748f640 notecard-1.5.5.13080.bin 7b1cae26abe87881518796d31a8afab8f973561aa76a2c8407ca45674e4cdf46 notecard-1.5.3.12460.bin
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.
Please be aware that OTA DFU updates use data in your data plan.
While we recommend the use of Notehub.io to update device firmware, you can manually update by directly connecting to a Notecard over USB.
- Serial terminal emulator software (e.g. our In-Browser Terminal, CoolTerm, or TinyTerm).
- STM32CubeProgrammer (download the appropriate version for your OS).
- A fresh Notecard binary file (download from the Firmware Releases list above).
STM32CubeProgrammer is a bit finicky when it comes to installation:
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).
Download and extract the zip package (noting that the version number of 2.8.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.8.0.app/Contents/MacOs/SetupSTM32CubeProgrammer-2_8_0_macos
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
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-9-0_v2.9.0 && cd en.stm32cubeprg-lin_v2-9-0_v2.9.0 && ./SetupSTM32CubeProgrammer-2.9.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
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 body of the response should look similar to this:
{
"org": "Blues Wireless",
"product": "Notecard",
"version": "notecard-1.5.5",
"ver_major": 1,
"ver_minor": 5,
"ver_patch": 5,
"ver_build": 13080,
"built": "May 28 2021 17:11:58"
}
Important: Next, launch the built-in bootloader firmware by sending the
bootloader
command via your terminal emulator:
>bootloader
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)".
Now, you have two choices as to how to proceed. You may update the Notecard firmware via the STM32CubeProgrammer CLI or GUI (we find the GUI method to be preferable).
Make sure STM32_Programmer_CLI.exe
is in your PATH
(or provide its absolute
path in the command below). The program should have been installed in the same
directory as STM32CubeProgrammer.exe
.
Run the following command, substituting the path to your desired .bin
firmware
file:
$STM32_Programmer_CLI --connect port=USB1 --write [path/to/binary.bin] 0x08000000 --verify --go 0x08000000
On Windows be sure to reference
STM32_Programmer_CLI.exe
as the executable in the above command.On Linux it's probably installed here:
~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI
Open the STM32CubeProgrammer application.
Select "USB" from the dropdown menu provided in the upper-right corner:
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:
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.
After a few seconds of commands displayed in the log, you should see multiple dialog warnings/notifications to click through and confirm.
With either the CLI or GUI method, 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"}