User's Guide

ThingMagic M3e User Guide
27
www.JADAKtech.com
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 M3e bootloader should effectively be invisible to the user. The ThingMagic M3e 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: M3e supports a ForceBootN pin. When this input is pulled LOW the M3e Will remain
bootloader mode. This is helpful for the case in which the application FW becomes corrupt
and a new image of the application FW needs to be loaded.
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 for ThingMagic M3e
Applications to control the ThingMagic M3e module are written using the high level MercuryAPI. The
MercuryAPI supports Java, C# 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 M3e
New features developed for the ThingMagic M3e 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.
3 Firmware Overview