User Manual

ThingMagic Nano User Guide 27
www.JADAKtech.com
3 Firmware Overview
Boot Loader
The boot loader provides module functionality until the module application firmware can start up as well as
when the module firmware is in the process of being updated. This program provides the low-level
hardware support for configuring communication settings, loading Application Firmware and storing data
that needs to be remembered across reboots.
When a module is powered up or reset, the boot loader code is automatically loaded and executed.
NOTE: ThingMagic Nano bootloader should effectively be invisible to the user. The ThingMagic Nano is
configured to auto-boot into application firmware and return transparently to the bootloader for
any operations that require the module to be in bootloader mode.
NOTE: Unlike the M6e and Micro (and Micro-LTE) modules, there is no reset line that can be used to keep
the module in bootloader mode when it is initializing. Likewise, the absence of this reset line
means that there is no hardware indication that the application software has failed to start, and
the module has remained in bootloader mode. The RESET_N line shown in the carrier board
schematic diagram has an entirely different function and should be left disconnected.
Application Firmware
The application firmware contains the tag protocol code along with all the command interfaces to set and
get system parameters and perform tag operations. The application firmware is, by default, started
automatically upon power up.
Programming the ThingMagic Nano
Applications to control the ThingMagic Nano module are written using the high level MercuryAPI. The
MercuryAPI supports Java, .NET and C programming environments. The MercuryAPI Software
Development Kit (SDK) contains sample applications and source code to help developers get started
demoing and developing functionality. For more information on the MercuryAPI see the MercuryAPI
Programmers Guide and the MercuryAPI SDK, available on www.jadaktech.com.
Upgrading the ThingMagic Nano
New features developed for the ThingMagic Nano are made available through an Application Firmware
upgrade, released with corresponding updates to the MercuryAPI to make use of the new features. The
MercuryAPI SDK contains applications which will upgrade firmware for all ThingMagic readers and
modules, as well as source code that allows developers to build this functionality into their custom
applications.
Verifying Application Firmware Image
The application firmware has an image level Cyclic Redundancy Check (CRC) embedded in it to protect
against corrupted firmware during an upgrade process. If the upgrade is unsuccessful, the CRC will not
match the contents in flash. When the bootloader starts the application firmware, it first verifies that the
image CRC is correct. If this check fails, then the boot loader does not start the application firmware and an
error is returned.