A DIVISION OF TRIMBLE 875-0072-02 Rev A Mercury® xPRESS Platform Guide SDK Version 1.7.
A DIVISION OF TRIMBLE Government Limited Rights Notice: All documentation and manuals were developed at private expense and no part of it was developed using Government funds. The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose the technical data contained herein are restricted by paragraph (b)(3) of the Rights in Technical Data — Noncommercial Items clause (DFARS 252.227-7013(b)(3)), as amended from time-to-time.
A DIVISION OF TRIMBLE Revision Table Version Date Description 875-0072-01 Rev A Dec 2013 Initial Release for SDK version 1.5.1 875-0072-02 Rev A Sept 2014 Added SAM-BA Appendix and changes introduced with revision 1.7.
A DIVISION OF TRIMBLE 4
A DIVISION OF TRIMBLE Contents Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Regulatory and Safety Compliance . . . . . . . . . . . . . . . . . . . . . . . . . .
A DIVISION OF TRIMBLE Log and Debug Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Run-time Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Using the Optional Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Bluetooth Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A DIVISION OF TRIMBLE Install Eclipse IDE for C/C++ Developers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Install USB Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Installing Developer Tools on LINUX OS. . . . . . . . . . . . .
A DIVISION OF TRIMBLE Buzzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 “Coin” battery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 xBee Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Communications Interface Bus Connector . . . . . . . . . . .
A DIVISION OF TRIMBLE Introduction The Mercury® xPRESS RFID Solution Development Platform is a microcontroller-based hardware and software platform designed to enable rapid development of custom finished UHF RFID readers using the ThingMagic Mercury6e-Series modules (M6e, Micro, and Micro-LTE). The xPRESS Platform is designed to support multiple interfaces for use across a wide range of applications via support for option modules.
A DIVISION OF TRIMBLE Appendix A: SAM-BA for Windows - This chapter provides instructions for creating an application “bin” file that can be downloaded to the xPRESS platform via the USB port directly from a PC. Ordering Information The available xPRESS platform models and accessories are listed in the following table.
A DIVISION OF TRIMBLE Regulatory and Safety Compliance ! C A U T I O N ! ! The xPRESS platform has been tested for regulatory compliance in order to validate its design, but further testing and certification is required before the xPRESS platform can be deployed as an RFID reader in an application environment.
A DIVISION OF TRIMBLE M6e and Micro modules (including the Micro-LTE) conform to requirements for most countries. Refer to the module User Guides for a list of which regions are supported. FCC certification is required for operation in the US. Many other countries have adopted FCC requirements as their own. Other countries have adopted all requirements but the frequency band of operation.
A DIVISION OF TRIMBLE label of the product (which IC requires for their ID as well). The Industry Canada product ID’s for the xPRESS modules are: Micro and Micro-LTE: 5407A-MERCURY6EM M6e: 5407-QV5MERCURY6E Bluetooth Module: 6514A-RN42 WiFi Module: 6514A-RN171 EU has their own set of regulatory requirements for RFID equipment, created by ETSI. ETSI requirements have been adopted by many countries and several others have adopted their RF requirements with a slightly different band of operation.
A DIVISION OF TRIMBLE applied for, with “CB” test results included in the paperwork that is submitted for approval). Authorized Antennas FCC and IC modular certification requires that the vendor submit a list of antennas which have been tested for compliance with the module. Antennas of the same type as a compliant antenna, but having lower gain, are permitted to be used in place of approved antennas.
A DIVISION OF TRIMBLE M6e Vendor Model Type Polarization Maximum Linear Gain (dBi)* ThingMagic (Laird) ANT-NA-9025 (S9025P) Patch Circular 4.3 ThingMagic (Laird) ANT-NA-A5 (S8658WPL) Patch Circular 6.0 ThingMagic (MTI WIreless) ANT-NB-7-2031 (MT-262031) Patch Circular 6.0 ThingMagic (MTI Wireless) ANT-WB-122043 (MT242043) Patch Circular 6.0 ThingMagic (MTI Wireless) ANT-WB-6-2025 (MT-242025) Patch Circular 6.
A DIVISION OF TRIMBLE Common Installation Best Practices The following are common installation best practices which will ensure the readers isn’t being unnecessarily exposed to ESD in even low risk environments. These should be applied to all installations, full power or partial power, ESD or not: Select an antenna with all radiating elements grounded for DC. The MTI MT262031-T(L,R)H-A is such an antenna. The Laird IF900-SF00 and CAF95956 are not such antennas.
A DIVISION OF TRIMBLE Quick Start Guide This chapter provides a brief introduction to xPRESS with instructions to install, setup and test the basic, default functionality of the xPRESS Platform.
xPRESS Platform Contents A DIVISION OF TRIMBLE xPRESS Platform Contents The xPRESS development platform is shipped as an open system allowing maximum flexibility in changing hardware configuration and peripherals. This chapter explains how to assemble the development platform and operate the RFID Sensor demo program over the USB interface. Once successful, you may want to run this application over one of the optional module interfaces and add GPS location sensing.
xPRESS Platform Contents A DIVISION OF TRIMBLE Bluetooth module shown in the picture is optional. Here are all the optional interface and sensor modules. Additional components available from ThingMagic include: Antennas Reverse-TNC to Reverse-TNC cable The xPRESS platform supports a coin-cell battery (to power a Real Time Clock) and rechargeable Li-ION batteries, but these items are not currently available from ThingMagic.
xPRESS Platform Contents A DIVISION OF TRIMBLE Documentation All documentation is available to download from the ThingMagic support site using this URL: http://www.thingmagic.
Hardware Setup A DIVISION OF TRIMBLE Hardware Setup The main connectors and switches on the xPRESS motherboard are shown in the diagram below. Your board may have a different RFID module than the M6e shown here. The following steps will take you through the hardware set-up, power-up and connecting the xPRESS platform using its pre-installed application which will read UHF RFID tags and report them through the USB interface. 1.
Hardware Setup A DIVISION OF TRIMBLE 22 2. Connect the supplied MMCX antenna cable to port 1 of the RFID module. Connect your antenna to the other end of the cable (though an R-TNC to R-TNC cable if necessary). Make sure all the antenna cable connections are tight. 3. Make sure the Flash Erase jumper is in the “NORM” position. 4. If you are using a Li-ion battery (not supplied with platform), plug it into the two- or three-port jack, as appropriate.
Hardware Setup A DIVISION OF TRIMBLE 5. Make sure the POE jumper is in the correct position for AC operation, as shown in the photo below. Later, if powering the module from a POE module, you can move the jumper into the “POE” position. Always-on jumper. Keep in this position to use on/off switch to start POE jumper. Keep in this position to power via AC adapter 6. Move the Always-on jumper to the position away from the board edge if you want the board to be on whenever the power source is present.
Hardware Setup A DIVISION OF TRIMBLE 10. Tags in the vicinity of the antenna will be read and “typed” on separate lines repeatedly every second. All the tag “metadata” (information relating to tag reading conditions) are included, as well as the tag identity (its “EPC”). The blue LED will be on when the module is actively reading. The yellow LED will flash and the buzzer will chirp whenever a tag is read. 11.
A DIVISION OF TRIMBLE Using the Sample Application Initially, only one sample application will be available for the xPRESS platform, the RFID Sensor (an enhanced version of the original application that we called the “Keyboard Wedge”. The xPRESS platform will ship with this application pre-installed and the source code for it will be included in the SDK. Basic instructions for operating this application were given in the Quick Start Guide.
RFID Sensor Application A DIVISION OF TRIMBLE RFID Sensor Application The RFID Sensor is an application that reads tags in the vicinity of the antenna and forwards their ID’s and environmental information to the active interface. If the active interface is the USB port or Bluetooth port, they act as if they are a keyboard connected to your host device and transfer the tag information just as if you were typing it.
RFID Sensor Application A DIVISION OF TRIMBLE RFID reader task Keyboard output task EPC formatter function Custom drivers: Bluetooth module These functional utilities interact with each other as shown in the diagram below: Demo App Program Flow Execution starts at xpressReader/app_demo/main.c, which launches 2 tasks: RfidReader and KBWedge. Task RfidReader runs task_rfid, which controls the reader. Task KBWedge runs task_wedge, which controls the UI (keyboard output, pushbutton inputs).
RFID Sensor Application A DIVISION OF TRIMBLE Within wedge_ui_process is a call to xQueueReceive from epcQueue. Whenever the current string is depleted, the state machine automatically calls this function to get the next available tag read string. Demo App Program Configuration To modify the workflow, there are many compile-time switches in xpressreader/app/ conf/conf_xpress_reader.h: To change which button is the trigger, modify all strings related to PRODUCT_MAIN_BUTTON.
RFID Sensor Application A DIVISION OF TRIMBLE every power cycle using CLI command. otherwise timestamp will start from default RTC value ie, 2007-01-01 in Sensor output tag data format. tag{epc=0xdeadbeafdeadbeafdeadbeaf protocol=GEN2 ant=1 readcount=5 rssi=-79 frequency=926750 timestamp=2007-01-01T00:00:07.587 phase=2 gpio=1111 lat=17.260672 lon=78.
xPRESS Console A DIVISION OF TRIMBLE xPRESS Console Connecting to the Console The Console provides status information for the xPRESS platform. Some interactive utilities supported by the FreeRTOS operating system and maintenance utilities for the optional modules are supported as well. Follow these steps to view the Console: 1. Install the FTDI Virtual Com Port drivers for your OS: http://www.ftdichip.com/Drivers/VCP.htm 2.
xPRESS Console A DIVISION OF TRIMBLE help Lists all the registered commands debug Expects one parameter 0 or 1 0 - OFF 1 - DEBUG loglevel Expects one parameter 0-8 0 - OFF 1 - EMERG 2 - ALERT 3 - CRIT 4 - ERR 5 - WARNING 6 - NOTICE 7 - INFO 8 - DEBUG peek Expects one parameter poke <32 bit data> Expects two parameters system-status Displays a table showing the status of various parts of the system task-stats Displays a table showing the state of each
xPRESS Console A DIVISION OF TRIMBLE run-time-stats Displays a table showing how much processing time each FreeRTOS task has used echo-3-parameters Expects three parameters, echos each in turn echo-parameters <...> Take variable number of parameters, echos each in turn param-test Parameter-parsing demo.
xPRESS Console A DIVISION OF TRIMBLE Log and Debug Levels As more modules have been added, each with its own complement of debug messages, the output of the console has become more complex and potentially confusing. To reduce the message volume, we have added the ability to suppress less important messages. This suppression can be done at run-time, via log level controls, or by altering the code that produces the messages.
xPRESS Console A DIVISION OF TRIMBLE key and start again. The backspace key does not erase previously typed characters.
A DIVISION OF TRIMBLE Using the Optional Modules This chapter will take you through the hardware installation, software configuration and operation of the optional modules for the xPRESS platform . There is also a common section on GPI management interaction among the modules. Where necessary, separate instructions are provided for setting up the xPRESS modules for use with Windows, Linux, and Android hosts.
Bluetooth Module A DIVISION OF TRIMBLE Bluetooth Module Specifications The optional Bluetooth module is a Roving Networks (now owned by Microchip.com) RN42XV. It can be ordered from ThingMagic as part number XP-BT. The full data sheet may be obtained here: http://ww1.microchip.com/downloads/en/DeviceDoc/RN41XV-RN42XV-ds-v1.0r.pdf Hardware Installation 1. 36 Disconnect power from the xPress motherboard and insert the Bluetooth module into one of the two xBee sockets on the motherboard.
Bluetooth Module A DIVISION OF TRIMBLE 2. Before starting, make sure the the RN-42 Bluetooth module is in its discoverable mode -- its green light must be blinking slowly (once per second.) If this LED is solid green, the module is already connected to a host. You must break the connection (usually by “removing” the device from the host’s list of Bluetooth devices) if you want to pair with a new host. If it is blinking rapidly, the module is in command mode.
Bluetooth Module A DIVISION OF TRIMBLE 5. Click once to open a Bluetooth Devices window. 6. Click Search When the Bluetooth device window appears, right-click on the Bluetooth address.
Bluetooth Module A DIVISION OF TRIMBLE 7. Select Pair If the pairing activity bar does not stop on its own, just keep going.
Bluetooth Module A DIVISION OF TRIMBLE 8. Right-click again and wait for the Connect To: menu to appear. Select Input Service . 9. When the colored bar graph appears, you’re ready! You should also see a solid light on the Bluetooth module instead of blinking. 10. Whenever the connection is broken, the Bluetooth module will automatically attempt to reconnect. If you get a re-connection prompt, click Grant to restore the connection.
Bluetooth Module A DIVISION OF TRIMBLE first. 11. To permanently unpair a Bluetooth module, go back to the Blueman window, rightclick on the device, and select “Remove...“. You should not have to do this unless you wish to pair the Bluetooth module with a different host. Windows Bluetooth Keyboard Setup 1. Right-click the Bluetooth icon in the Windows notification area (at lower right.) 2. If you have no Bluetooth icon, go to Start / [Control Panel] / Devices and Printers 3. Select Add a Device 4.
Bluetooth Module A DIVISION OF TRIMBLE 9. Click Close in This device has been successfully added to this computer. You are now connected! There should be a solid green light on the RN-42 Bluetooth module. In the future, you should not have to confirm anything. Whenever the connection is lost, the RN-42 will automatically try to reconnect. Windows will remember that you allowed the connection and silently reattach. Android (4.2) Bluetooth Keyboard Setup These instructions have been tested on Android 4.2.
Bluetooth Module A DIVISION OF TRIMBLE Note that this does not disable the Bluetooth keyboard, it merely prevents it from suppressing the on-screen keyboard. 4. Click the back button to dismiss the input method panel Now the on-screen keyboard will appear when you enter the text field. You can also activate the xPRESS RFID Sensor, and it will still type in tag data.
Bluetooth Module A DIVISION OF TRIMBLE 4. The EPC and metadata being typed to the host computer will look like the screen capture below, with each informational element preceded by a label and equals (=) sign. 5. Press the User Switch button again to stop reading Bluetooth Module Command Interface The following information is relevant if you change the demonstration application’s initialization process for the Bluetooth module in order to put it in a different mode of operation.
Bluetooth Module A DIVISION OF TRIMBLE Wait for "Reboot!\r\n%REBOOT" RN-42 Flow Control If data is sent faster than the channel can keep up, the RN-42 has hardware flow control to prevent buffer overflow. According to the RN-41/RN-42 datasheet, UART_RTS, goes high to disable host transmitter So the application should monitor the state of the RN-42’s UART_RTS pin and hold off when it goes high. Conversely, the RN-42 listens on UART_CTS.
WiFi Module A DIVISION OF TRIMBLE WiFi Module The optional WiFi module is an XBee-format module with an integrated antenna an “AT Command” style interface. The part number is RN171XVW-I/RM. It may be ordered from Thingmagic as part number XP-WI-FI. WiFi transport will be used as the output interface only if neither USB, Bluetooth or PoE are active (unless you modify the application program to use different logic). To enable the WiFi output interface, the user may need to modify conf_xpress_reader.
WiFi Module A DIVISION OF TRIMBLE If the Bluetooth module is present, check for BLUETOOTH_DEVNAME and comment out “#define ENABLE_OUTPUT_BT” If the GPS module is present, check for GPS_DEVNAME and comment out “#define confINCLUDE_GPS”. Because the GPS module does not interfer with the WiFi module’s use as a data interface, you may want to keep it enabled to augment tag-read information with GPS information.
WiFi Module A DIVISION OF TRIMBLE Features Implemented The WiFi module supports several transport configurations. The configuration can be changed by having the application program send the appropriate commands to the WiFi module over its UART interface. TCP client only TCP server and TCP client UDP client HTTP client Note The sample application does not support the module’s Secure Mode which forces the module to only receive packets only from an IP address that matches the stored host IP.
WiFi Module A DIVISION OF TRIMBLE WIFLY_WLAN_SSID "Tenda" WIFLY_WLAN_AUTH WIFLY_AUTH_MODE_WPA2PSK WIFLY_WLAN_PASSPHRASE "Qss rfid@14" Required for Auth type = WPA WIFLY_WLAN_WEP_KEY_NUMBE R 1 Required for Auth type = WEP WIFLY_WLAN_WEP_KEY "112233445566778899AABBCCDD" Required for Auth type = WEP DHCP Mode WIFLY_DHCP_MODE WIFLY_DHCP_ON if set to WIFLY_DHCP_ON , need to get xPRESS module IP from the debug console logs. Static IP (xPRESS) WIFLY_MODULE_IP_ADDRESS "192.168.0.
WiFi Module A DIVISION OF TRIMBLE HTTP client WIFLY_IP_MODE WIFLY_TCP_SERVER_CLIENT change to WIFLY_TCP_SERVER_CLIENT + WIFLY_HTTP_CLIENT WIFLY_DNS_NAME www.posttestserver.com HTTP web server name WIFLY_HTTP_SERVER_DIR xpr Directory name in HTTP web server. Tags will be available in this directory. ex: http://posttestserver.
WiFi Module A DIVISION OF TRIMBLE After WIFLY_init(), init_output() calls WIFLY_join() to initialize the RN-171 by sending a sequence of ASCII commands. a. WIFLY_setupWlan() sets the wlan settings like SSID, Auth type and Password b. WIFLY_setupIP() sets the DHCP mode and, if DHCP is configured as OFF, it also sets Static IP settings like IP address, Netmask, Gateway and DNS address. c.
WiFi Module A DIVISION OF TRIMBLE Connection Status RN-171 uses GPIO pins to monitor the status of association/connection and to control the connection as below. Signal Name Direction Function GPIO4 Output This pin goes high after the module has associated/authenticated and has an IP address. GPIO5 Input Set this pin high to trigger a TCP connection and low to disconnect. GPIO6 Output This pin goes high when the module is connected over TCP and low when disconnected.
WiFi Module A DIVISION OF TRIMBLE Feature Value(s) xPRESS Support Output Power 1 - 12 dBm Provides configuration parameter to set transmit power between 1 and 12 dBm Sleep mode 4 uA RN-171 will go to sleep mode based on Idle timer and Sleep timer values in seconds. Provided configuration parameters for Idle timer and Sleep timer values.
WiFi Module A DIVISION OF TRIMBLE confINCLUDE_CLI_CMD_WIFLY_FACTORY_RESET This is used to include the Console command for RN-171 factory reset The CLI commands syntax: wifly-factory-reset confINCLUDE_CLI_CMD_WIFLY_FIRMWARE_UPDATE This is used to include the Console command to update firmware in the RN-171 The CLI commands syntax: wifly-firmware-update type is .mif or .
WiFi Module A DIVISION OF TRIMBLE Host Port Number Protocol Mode Protocolmode Note The best practice is to select port numbers for module and host within the range assigned for "Dynamic, private or ephemeral ports". 49152 - 65535 are dynamic or private ports that cannot be registered with IANA. This range is used for custom or temporary purposes and for automatic allocation of ephemeral ports. Reference: http://en.wikipedia.org/wiki/Well-known_ports#Dynamic.
WiFi Module A DIVISION OF TRIMBLE set wlan linkmon WIFLY_JOIN_LINKMON_VALUE set opt signal set wlan tx IP - Setup IP Properties set ip dhcp set ip localport set ip address WIFLY_JOIN_RSSI_VALUE WIFLY_WLAN_TRANSMIT_POWER set ip netmask WIFLY_SUBNET_MASK set ip gateway WIFLY_GATEWAY_ADDRESS set dns address WIFLY_DNS_ADDRESS set ip protocol WIFLY_IP_MODE set ip host set ip remote set ip flags <
WiFi Module A DIVISION OF TRIMBLE UDP - UDP Broadcast set broadcast address
set broadcast port WIFLY_UDP_BROADCAST_ADDRESS set broadcast interval WIFLY_UDP_BRAODCAST_INTERVAL WIFLY_UDP_BROADCAST_PORT_NUMBER Associate with an Access Point set wlan ssid WIFLY_WLAN_SSID set wlan phrase WIFLY_WLAN_PASSPHRASE set wlan key WIFLY_WLAN_WEP_KEY set wlan number WIFLY_WLAN_WEP_KEY_NUMBER set wlan auth WIFLY_WLAN_AUTH Joining Networks seWiFi Module A DIVISION OF TRIMBLE set dns name WIFLY_REMOTE_HOST_NAME lookup WIFLY_REMOTE_HOST_NAME Making Connection - Using Backup Addresses set dns backup WIFLY_DNS_NAME_BACKUP HTML - Retrieve Web Server Data set ip protocol WIFLY_IP_MODE set dns name WIFLY_REMOTE_HOST_NAME set ip address WIFLY_MODULE_IP_ADDRESS set ip remote WIFLY_REMOTE_HOST_PORT_NUMBER HTML - HTML Client / Web Server Modes set opt format WIFLY_HTTP_FORMAT_VAL
WiFi Module A DIVISION OF TRIMBLE set ftp pass WIFLY_FTP_SERVER_PASSWORD set ftp dir WIFLY_FTP_SERVER_DIR FTP - Connect to an FTP Server set ftp dir WIFLY_FTP_SERVER_DIR set ftp user WIFLY_FTP_SERVER_USER set ftp pass WIFLY_FTP_SERVER_PASSWORD Other Commands set sys autosleep WIFLY_TCP_SLEEP_TIMER Known Limitations 1.
Power-Over-Ethernet Module A DIVISION OF TRIMBLE Power-Over-Ethernet Module The POE module is a custom design by ThingMagic. It is based on the WIZnet W5500 Ethernet controller chip with its integrated PHY, MAC and TCP engines (including TX/RX buffers.) It interfaces to the xPRESS motherboard via SPI, via the WIZnet-provided opensource reference drivers. Installation Install the Ethernet module into slot 1 (the right-hand slot as you look at the board edge).
Power-Over-Ethernet Module A DIVISION OF TRIMBLE === PoE: PoE NetInfo === MAC: 20:31:32:50:39:30 SIP: 10.8.80.81 GAR: 10.8.80.1 SUB: 255.255.255.0 DNS: 10.8.82.2 SPORT: 49152 DHCP: ON LEASE: 691200 Sec. In this example, the IP address is 10.8.80.81 and the port number is 49152.
Power-Over-Ethernet Module A DIVISION OF TRIMBLE Power over Ethernet The xPRESS platform can be powered from the Ethernet interface. You will need to connect the Ethernet cable to an hub or router that will supply “POE” power to the platform, or use a power injector, such as the one shown here: To power the xPRESS platform from the Ethernet port, make sure that the POE jumper is in the “POE” position (away from the edge of the board).
Power-Over-Ethernet Module A DIVISION OF TRIMBLE 1. POE_DHCP_MODE: Sets DHCP mode ON or OFF. If DHCP is ON, Check for Console debug log statements to learn the module IP and Port number details. 2. POE_IP_MODE: Sets the PoE module configuration to be UDPclient or TCPclient or TCPserver or HTTPclient.
Power-Over-Ethernet Module A DIVISION OF TRIMBLE – For HTTP client mode, define HTTP web server. ex: "www.posttestserver.com" – For other modes, define as blank. ex: “” POE_REMOTE_HOST_IP_ADDRESS – Applicable only for UDP client or TCP client. Define host system IP address where UDP/TCP server application is running. – POE_REMOTE_HOST_NAME: Should be blank when the IP address is defined.
Power-Over-Ethernet Module A DIVISION OF TRIMBLE task_Wedge task’s method init_output() calls POE_up() to initialize the PoE module’s IP mode configurations POE_setupIP() sets the DHCP mode and runs the DHCP client to assign an IP address to the module. Also sets the Static IP configuration if DHCP is OFF or failed. POE_setupRemoteHost() sets the remote host configurations using DNS client if required.
GPS Module A DIVISION OF TRIMBLE GPS Module The GPS module allows inclusion of GPS coordinates as an attribute along with tag metadata for each tag read record. NMEA-protocol GPS modules are supported. We currently have qualified the LinkSprite GPS Bee module (http://store.linksprite.com/gps-bee/), sold by ThingMagic as part number XP-GPS, and one by Seeed Studio (http://www.seeedstudio.com/depot/GPS-Beekit-with-Mini-Embedded-Antenna-p-560.
GPS Module A DIVISION OF TRIMBLE Configuration To enable GPS operation, define confINCLUDE_GPS in conf_xpress_reader.h and make sure GPS_DEVNAME is set to the appropriate USART (“/USART1” for Slot 0 or “/ USART2” for Slot 1.) and also make sure this USART for GPS is not assigned to any other module in the system. (By default, the GPS module is configured to operate in Slot 1.
GPS Module A DIVISION OF TRIMBLE Note Note that the GPS metadata includes a built-in comma delimiter, so technically, latlon is 2 output fields, not 1. In our demonstration application, if GPS is enabled and the module is available on a configured slot, the GPS latitude and longitude data will be available in tag metadata output format as below tag{epc=0xdeadbeafdeadbeafdeadbeaf protocol=GEN2 ant=1 readcount=5 rssi=-79 frequency=926750 timestamp=2014-07-21T10:03:07.587 phase=2 gpio=1111 lat=17.
Status Indication Through GPI Lines A DIVISION OF TRIMBLE Status Indication Through GPI Lines Most XBee modules provide GPO status outputs, which we can monitor through xPRESS GPI inputs.. Common functionality in the GPI manager includes: Configuring GPI pins; i.e.
Status Indication Through GPI Lines A DIVISION OF TRIMBLE For the WiFi module, it is used to monitor association status and TCP connection status void GPIMGR_unregisterPin(uint32_t gpio_idx) Used to unregister the GPI line that is being monitored bool GPIMGR_getValue(uint32_t gpio_idx) Used to get the GPI line current state uint32_t GPIMGR_getTogglePeriodMs(uint32_t gpio_idx) Used to get the current frequency of a pin’s blinking void GPIMGR_addStateListener(uint32_t gpio_idx, void* gpio_handler
A DIVISION OF TRIMBLE Installing Developer Tools on Windows OS If using a Windows PC as a development platform, the following installation steps are required (details are provided in the sections that follow). Summary of Steps: 1. Download and Install the compiler toolchain (GNU Tools for ARM Embedded Processors) 2. Download and Install Java Runtime 3. Download and Install the Eclipse IDE for C/C++ Developers 4.
A DIVISION OF TRIMBLE At the end of the install process, check Add path to environment variable before pressing Finish. You can un-check the other options, if desired. Install Java The Eclipse IDE, which will be installed in the next step, as Eclipse is a Java program. You need to install a Java runtime before you can run it. Version 1.7 or above is required (Eclipse will inform you if you are not running an appropriate version).
A DIVISION OF TRIMBLE install the 32 bit version if the browser you are using supports 32 bits. Follow the on-line instructions to manually install the version you need. Download and install the latest Java Runtime Environment (JRE) from http://java.com We recommend you decline their bundled adware.
A DIVISION OF TRIMBLE . Note If Eclipse fails to find Java when you run Eclipse, you might need to add the path to the Java “bin” directory to your Windows environmental variables. You can edit this list in the Advanced System Settings screen, accessed from the Control Panel. (See also the Eclipse readme_eclipse file, which gives instructions for pointing Eclipse to a specific version of Java.
A DIVISION OF TRIMBLE If you are using the standard Windows 7 zip handler, Right-click on the downloaded eclipse-cpp-kepler-SR1-win32-x86_64.zip or eclipse-cpp-juno-SR2-win32-x86_64.zip Select Extract All... Enter C:\Program Files Click Extract 3. Start Eclipse Navigate to the directory you just extracted. Go into the eclipse subdirectory and launch the eclipse application executable program. 4. Select a workspace The Eclipse workspace is a set of projects and settings contained within a directory.
A DIVISION OF TRIMBLE Check Prompt for workspace on startup Click OK You can also bypass the dialog by launching Eclipse with a command-line option eclipse -data $HOME/workspace Install USB Driver For Windows, install the CDC driver for the USB serial device. 1. Plug in the xPRESS motherboard. It will report “No driver found” for the xPRESS device. 2. Open Device Manger and navigate to the broken xPRESS device entry. Right-click and select Update Driver Software...
A DIVISION OF TRIMBLE Installing Developer Tools on LINUX OS If using a LINUX PC as a development platform, the following installation steps are required. This installation was tested on Ubuntu 10.04LTS 64-bit. Summary of Steps: 1. Download and Install compiler toolchain (GNU Tools for ARM Embedded Processors) 2. Confirm presence of “make” and “unzip” 3. Download and Install Java Runtime 4.
A DIVISION OF TRIMBLE 3. Open the tar-ball with the Archive Manager and use this application to extract the file, or skip this step and use the terminal shell. For 64 bit system, 32 bit libc and libncurses are required to run the tools. For Ubuntu 10.04/12.04 user, the toolchain can also be installed via Launchpad PPA at https://launchpad.net/~terry.guo/+archive/gcc-arm-embedded. 4. Alternatively, using the terminal shell: • Open a terminal shell. • Pick an installation directory; e.g.
A DIVISION OF TRIMBLE • If this happens, check $HOME/.profile for typos • To make the path change take full effect, log out and back in again. Using source only has an effect in the current shell, so no other sessions or windows will see the profile change yet. 6.
A DIVISION OF TRIMBLE 1. Go to: http://www.eclipse.org/cdt/ Select the appropriate version for your Linux system (32-bit or 64-bit) (currently “luna”)) Download the appropriate version. For example, eclipse-cpp-luna-R-linux-gtkx86_64.tar.gz. 2. Install Eclipse core • Open a terminal shell. • Pick an installation directory; e.g., $HOME/usr and unpack there (or use Archive Manager from the graphical interface). mkdir -p $HOME/usr tar -xvf eclipse-cpp-kepler-SR1-linux-gtk.tar.
A DIVISION OF TRIMBLE To streamline startup, you can check Use this as the default and do not ask again before clicking OK. If you have disabled the dialog and need to change the workspace, use Eclipse’s FIle / Switch Workspace menu.
A DIVISION OF TRIMBLE 82 Installing Developer Tools on LINUX OS
A DIVISION OF TRIMBLE Using the Developer Toolkit This chapter explains how to download and work with the project files from the ThingMagic SDK, once the Eclipse-based development environment is in place. Most screen captures in this chapter are from the Windows version of Eclipse, but the Linux version is very similar and there should be no confusion. If the two version differ significantly, both the Linux and Windows of a screen are shown for clarity.
A DIVISION OF TRIMBLE Select General / Existing Projects into Workspace. ClickNext . In the Select root directory field, enter or browse to your unzipped distribution: xPRESS_SDK_full-/tm/app. Press OK. In this case, you cannot simply double-click the desired directory. This navigates down into that directory instead.
A DIVISION OF TRIMBLE In the Projects field, check the project that matches your target hardware (e.g., xPRESS Demo App). Uncheck the rest.
A DIVISION OF TRIMBLE appropriate for the xPRESS motherboards which have the coin cell battery holder. “xPRESS Prototype Demo App” is appropriate for the previous version, without the coin cell battery holder, which used a slightly different processor.) Leave the other options at their unchecked defaults (Un-check “Copy projects into workspace”, and “Add project to working sets”).
A DIVISION OF TRIMBLE Build Tool Adjustments In order to avoid build errors, change the Preprocessor “Includes” to add the CDT Cross GCC Built-in Compiler Settings and to not include the CDT GCC Built-in Compiler Settings, as shown below. Project Building The project must be built before it can be run.
A DIVISION OF TRIMBLE Select Build Project. You will see a progress bar like the one shown here. The first build will take a while, since it has to unpack a couple of libraries (Atmel Software Framework, Mercury API). Subsequent builds should be faster. The Console tab at the bottom will display all the build output as it comes along. If you want a bigger view, double-click the Console tab title to maximize that window. Double-click again to restore.
A DIVISION OF TRIMBLE Errors occurred during the build. Errors running builder 'Integrated External Tool Builder' on project 'Sam3S-EK xPRESS Demo App'. Variable references empty selection: ${project_loc} This just means that the project wasn’t selected in the Project Explorer when the build started. This can happen if you’re merely focused on another Eclipse window, such as if you had doubleclicked Console, then started a build by pressing Ctrl+B.
A DIVISION OF TRIMBLE product_info.php?products_id=4650. The Schematic can be found here: http://microcontrollershop.com/download/ARM-JTAG_20-10-schematic.pdf and ARM-JTAG_2010-schematic.pdf JTAG Hardware Installation 1. Unplug power from both the SAM-ICE (or other J-Link-based device) and the target board. While not strictly necessary, it is safest to connect the two while powered down. 2. Connect the SAM-ICE to the target board with a JTAG cable.
A DIVISION OF TRIMBLE 1. Download J-Link Software Obtain latest version from: : http://www.segger.com/jlink-software.html Alternatively, you may have been given this software by ThingMagic as a tar file. 2. If tar file obtained (this is how ThingMagic, distributes it.) Open a terminal shell. Pick an installation directory; e.g., $HOME/usr and unpack there mkdir -p $HOME/usr tar xvf JLink_Linux_V462a.tgz -C $HOME/usr 3. If “.DEB” file obtained form SEGGER site Find .DEB file in directory (e.g.
A DIVISION OF TRIMBLE Edit $HOME/.profile and add the following line: PATH="$PATH:$HOME/usr/JLink_Linux_V462a" If you changed your path, test the changes as described above, except use JLinkGDBServer instead of arm-none-eabi-gcc. • If you get “command not found”, your path isn’t correct. • If you get an error like this while loading shared libraries: libjlinkarm.so.4: cannot open shared object file: No such file or directory. Follow the instruction mentioned in README.
A DIVISION OF TRIMBLE $HOME/usr/JLink_Linux_V462a/JLinkGDBServer Windows JLINK Software Installation (JLinkGDBServer) Ignore this section if you are using a LINUX-based development environment. 1. Download J-Link Software Obtain latest version from: : http://www.segger.com/jlink-software.html JLinkSoftware for Windows can currently be found at http://www.segger.com/jlinksoftware.html?step=1&file=JLink_474b. (Must be higher than 4.72; versions 4.74 and 4.78e has been observed to work well.
A DIVISION OF TRIMBLE Select option to Install USB Driver for J-Link and (if desired). Select desired shortcut options. Press “Next” on installation confirmation screen After installation is complete, press “Finish” on final screen 3. Run GDB Server Launch “J-LInk GDB Server” from Program menu (SEGGER / J-Link Arm V...
A DIVISION OF TRIMBLE Accept config defaults We recommend you upgrade the firmware if offered Using the Developer Toolkit 95
A DIVISION OF TRIMBLE When server is running, a dashboard like this one will be displayed. The GDB indicator will be red until the debugger is launched. Preparing the xPRESS motherboard It is always a good idea to erase the memory on the xPRESS motherboard before running a new application (this is required if loading the new application via J-TAG). The steps are as follows. 1. 96 Remove any power source to the xPRESS motherboard, including the AC Adapter and USB cables.
A DIVISION OF TRIMBLE 2. Move the memory jumper to the erase position. 3. Apply power to the xPRESS motherboard (ideally using AC Adapter). Use the “ON/ OFF” switch to turn the board on (this is not necessary if the power jumper is in the always-on position). Apply power to the board for a minimum of 10 seconds. 4. Unplug the power source and move the erase jumper back to its normal position. 5. If using a coin cell battery, leave the coin cell out until the software has been downloaded. 6.
A DIVISION OF TRIMBLE should be used for non-real-time step-by-step code debugging. The “Release” version should be downloaded for real-time use.
A DIVISION OF TRIMBLE Make sure the “C/C++ Application’ matches your target board ( e.g. ${workspace_loc:/xPRESS Reader Demo App}/Debug/ xpress_reader_sam3a8c_flash). (if the application name ends in “...sam3a4c_flash”, it is for the original prototype board without the coin cell holder.) Eclipse may pop up Confirm Perspective Switch and ask if you really want to switch to the Debug perspective. You probably do -- for debugging, the Debug perspective is much more useful than the C/C++ perspective.
A DIVISION OF TRIMBLE Note: Use the upper-right corner to switch between perspectives at will If the Debug tab comes up paused at main, then you’ve succeeded. In Windows, the GDB Server dashboard will also indicate a successful launch.
A DIVISION OF TRIMBLE Note that starting the debugger may take some time. Eclipse has to make sure the binary is up-to-date, initialize the debugger, load the image, pause the program and index into the source. You may need to wait a half minute or more. If you want to see some interim status, check the GDBServer window -- it will usually show some update for each step. If unsuccessful, try the following fixes before attempting to start debug again: Kill and restart J-Link GDB Server.
A DIVISION OF TRIMBLE Pull down the menu next to the Debug button configuration there. and select the Running the Program Once you have successfully started the debugger, press Resume to run the program. Toolbar button or Press F8 or Menu Run / Resume Relaunching the Program If you make changes to your code, 1. First, rebuild (right-click on project, Build Project, or just press Ctrl+B if you left the Project Explorer selection in the correct project.
A DIVISION OF TRIMBLE Right-click on the problem(s) and select Delete. If the problem(s) come back on the next build, investigate further.
A DIVISION OF TRIMBLE 104 Using the Developer Toolkit
A DIVISION OF TRIMBLE Hardware Reference Guide This chapter will introduce you to the hardware architecture, allowing you to better interpret these documents.
A DIVISION OF TRIMBLE Description of Functional Blocks In the diagram above, the white areas represent the xPRESS motherboard, the yellow shaded areas are optional components, and the blue shaded areas represent interface modules that could potentially be added to the system. The primary elements of this block diagram are described below. Processor (MCU) The process is from the Atmel ARM Cortex M3 family, It is a SAM3A in a QFP 100 pin package.
A DIVISION OF TRIMBLE UART host to RFID module UARTx2 to Comm Bus Interface SPI to Comm Bus Interface I2C to Comm Bus Interface ADC/DAC to Comm Bus Interface CAN to Comm Bus Interface UART to external USB converter (debug) JTAG These interfaces allow the MCU to control and access a wide range of functionality: Control of USB OTG functionality, and whether the USB interface will be powered by the xPRESS motherboard Access and control over module data (TTL UART, not USB), GPIO, reset an
A DIVISION OF TRIMBLE available externally through the Comm Bus interfaces. The Reset and Shutdown lines are controlled by the processor. No antenna is provided with the xPRESS platform, but an MMCX-to-Reverse-TNC adapter cable is provided so the platform can be used with off-the shelf antennas. Battery Charging Controller The LTC 4098 Battery Charging Controller, and the switches it controls, form the heart of the power management system.
A DIVISION OF TRIMBLE Interfaces, Indicators and Controls AC Adapter Input The AC adapter (“wall-wart”) input is designed to accept a 5 VDC source. When used with the M6e module, the tolerance on this voltage is +/- 5%. When used with the Micro module, there is a bit more flexibility - the range can be 4.3 to 5.25 VDC.
A DIVISION OF TRIMBLE Controller to monitor the temperature of the battery and not charge it if the battery is too hot or too cold. Two metal loops are provided to supply 5VDC to the xPRESS motherboard via a lab bench-top supply. One of the jumpers on the board, J17, controls whether power is taken from the Comm Bus interface or from other sources (AC adapter, USB, Battery). Make sure it is in the position shown in the picture (closest to the board edge) for normal operation.
A DIVISION OF TRIMBLE control timing.) Pressing it once connects the source power to the system power bus, pressing it again disconnects them. An “Always-on” jumper is available to connect source power to system power at all times, J18. When this jumper is closest to the board edge, the push-button switch controls the system power. When farthest from the board edge, the system is “always on”. The Red power LED normally indicates when system power is present.
A DIVISION OF TRIMBLE operation. If the programmer wishes this function to be disabled under normal operation, they can have the program define this MCU pin as a normal programmable input pin. A green LED on the xPRESS motherboard (D1) indicates the charging status of the battery as follows: On = Charging Off = Charged or no battery present Flashing approximately 1.
A DIVISION OF TRIMBLE the xPRESS motherboard to function as a USB host using the USB OTG (on-the-go) feature. A host USB micro connector has a slightly different shape than a client connector (more square) and can only be inserted in ports that are designed to accommodate it. The port on the xPRESS platform can accommodate either a micro-A (host-side) or micro-B (client-side) connector. The MCU controls the maximum amount of current that can be taken from the OTG USB interface.
A DIVISION OF TRIMBLE Debug USB Port The second USB client port, J2, is used as a console port. This USB connection will NOT power the board or charger. A special USB driver from FTDI is required to interface to it. This driver is available from http://www.ftdichip.com/Drivers/VCP.htm . A section of the Using the Sample Application chapter is devoted to this Console Interface and the information it provides, RFID Sensor Application.
A DIVISION OF TRIMBLE unanticipated results might occur if commands from both interfaces are not carefully coordinated. Programmable LEDs and Switch Three programmable LEDs (green - LED0, yellow - LED1, blue - LED2) are connected to high drive IO pins of the MCU. These can be used as indicators for user applications. A push-button switch, “User Switch”, is provided to control user applications.
A DIVISION OF TRIMBLE A socket is provided for an optional “coin battery” (CR1220, 3 V). The purpose of this battery is to maintain the real-time clocks and timers when all other power sources are removed from the xPRESS motherboard. xBee Interface Two xBee interfaces are offered on the xPRESS motherboard. This will permit the use of off the shelf modules for Bluetooth, WiFi, GPS, Zigbee, and the like without designing custom modules.
A DIVISION OF TRIMBLE Communications Interface Bus Connector The Communications Bus is accessed through a Hirose DF9 series, 51 contact connector (0.5A max). Its stacking height is 4.3mm (.169”).
A DIVISION OF TRIMBLE Test Interface The test interface consists of many useful test points, many of which are not otherwise available on interfaces, such as input and internal voltages.
A DIVISION OF TRIMBLE JTAG Interface The JTAG Interface is compatible with the SAM-ICE or other J-Link-based devices.
A DIVISION OF TRIMBLE 5V from Comm Bus Connector (Most common source will be Power-over-Ethernet, “POE”, adapter). The AC adapter and “POE” power sources cannot be used simultaneously. A jumper on the board (J12) controls which will be used, if present. When “POE” power is enabled, all other incoming power sources are disabled, including AC adapter, USB, and battery (although they remain connected to each other so the battery would be charged by the AC-adapter or USB interface in the background).
A DIVISION OF TRIMBLE system voltage so the the other power sources (from the battery or USB line) will not be drained through this interface. The Modules are powered directly from this voltage, so it must be 5 V+/- 5% for the M6e and between 3.4 to 5.25 V for the Micro. If a Li-ion battery is also plugged in, the AC-adapter power source will be used to charge it. If the AC adapter input voltage drops below 4.3V, the battery will power the system. As much as 1A might be used to charge a battery.
A DIVISION OF TRIMBLE but does not have the capacity to supply enough power to the Micro when it transmits. It cannot be used to power the M6e because, internally, the power from this interface is not kept at 5 V, which is what the M6e requires. If an Li-ion battery is present and the USB port is the only source of external power, the internal system voltage will be the same ideal voltage used to power the battery. This voltage can be as low as 3.6 V for a discharged battery and as high as 4.
A DIVISION OF TRIMBLE Comm Bus, the AC, Battery, and USB power sources are disconnected. They remain connected to each other, so the battery will be charged in the background, but will not be able to power the system. Known HW Limitations The hardware has some known limitations: 1. Peripheral devices connecting to V3R3 are sharing with the processor. There is 330mA current limit on that power bus that is shared with the MCU. Users should be aware of the power consumption when adding peripherals.
A DIVISION OF TRIMBLE 124 Hardware Reference Guide
A DIVISION OF TRIMBLE Software Reference Guide SW Block diagram The diagram below shows the software structure of the xPRESS platform: Software Reference Guide 125
A DIVISION OF TRIMBLE Each of the major software components are described below. This reference information may be sufficient for veteran embedded processor programmers. Others will want to consult the chapters on installing the development tools and using them. Toolchain Most of the tools and all of source files needed to build the sample application are provided in the SDK.
A DIVISION OF TRIMBLE Windows: https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q3-update/+download/gccarm-none-eabi-4_7-2013q3-20130916-win32.zip https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q3-update/+download/gccarm-none-eabi-4_7-2013q3-20130916-win32.exe Linux: https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q1-update/+download/gccarm-none-eabi-4_7-2013q1-20130313-linux.tar.bz2 Mac OSX: https://launchpad.net/gcc-arm-embedded/4.7/4.
A DIVISION OF TRIMBLE ASF The Atmel Software Framework provides a common C function interface to various functions on Atmel AVR and ARM processors. Using ASF should lower the initial learning curve of a processor as well as ease porting to new Atmel ARM processors. We have done our testing using ASF 3.7.3 SDK The SDK provided by ThingMagic packages bundle all of the tools and source into a single tarball. The user can un-tar the SDK into a directory of their choice. At the root of the SDK is a README.
A DIVISION OF TRIMBLE Appendix A: SAM-BA for Windows SAM-BA is a development tool for the xPRESS platform. The standard development tools for Windows and LINUX platforms allow the user to develop, download, and debug software. SAM-BA is useful in that it can download versions of code to the xPRESS platform through a USB interface, without need for a JTAG adapter.
Preparing the xPRESS motherboard A DIVISION OF TRIMBLE Preparing the xPRESS motherboard We recommend that you erase the memory on the xPRESS motherboard before running a new application. This is especially important when running SAM-BA because the default application on the xPRESS motherboard is designed to reconfigure the USB “OTG” port to simulate a keyboard and the SAM-BA will not communicate with this interface when it is in this mode. The steps to follow erase memory are as follows. 1.
Preparing the xPRESS motherboard A DIVISION OF TRIMBLE 5. Unplug the power source and move the memory jumper back to its normal position. 6. If using a coin cell battery, leave the coin cell out until the software has been downloaded. 7. Restore any other power sources that were previously disconnected.
Installing SAM-BA Software A DIVISION OF TRIMBLE Installing SAM-BA Software ! C A U T I O N ! ! DO NOT follow Atmel’s instructions to install the USB driver by having the PC detect the USB device type and then automatically select and download the driver. Download and install SAM-BA, plus any available patches. To do this, go to the URL given below. Download and install SAM-BA, plus any available patches. http://www.atmel.com/tools/ATMELSAM-BAIN-SYSTEMPROGRAMMER.
Installing SAM-BA Software A DIVISION OF TRIMBLE installed into (such as C:\Program Files (x86)\Atmel) as you will need to modify the files in this directory later.
Installing SAM-BA Software A DIVISION OF TRIMBLE 134
Installing the Windows USB Driver A DIVISION OF TRIMBLE Installing the Windows USB Driver Once the SAM-BA software has been downloaded, the appropriate USB driver becomes available and can be installed. After plugging the USB cable into the target board’s USBOTG port, Windows discovers this interface and will typically identify it as as GPS Camera Detect (COMxx). DO NOT use this device driver -- it will not work with SAM-BA. If the Windows Update search starts running, cancel it.
Installing the Windows USB Driver A DIVISION OF TRIMBLE 136 2. Select Browse my computer for driver software 3.
Installing the Windows USB Driver A DIVISION OF TRIMBLE 4. Next click on Have Disk and provide the driver path where you installed SAM-BA (typically C:\Program Files (x86)\Atmel\sam-ba_2.12\drv) and then click OK.
Installing the Windows USB Driver A DIVISION OF TRIMBLE 138 5. Click on AT91 USB to Serial Converter and then click on Next 6. Windows may display a security message. Ignore this warning and install the driver software anyway and then click on Close.
Setting Up SAM-BA to work with xPRESS A DIVISION OF TRIMBLE Setting Up SAM-BA to work with xPRESS SAM-BA must be pre-configured to offer the menu choices necessary to run with the xPRESS Platform. This is done by replacing default SAM-BA files with those included in the xPRESS SDK.To use the xPRESS.PATCH script, follow these instructions: 1. Make a backup of your SAM-BA installation directory. If you have installed SAM-BA in the default directory, it will be in C:\Program Files (x86)\Atmel\sam-ba_2.12\.
Using SAM-BA A DIVISION OF TRIMBLE Using SAM-BA 1. Erase the xPRESS motherboard memory if you haven’t done so already. (Power off. Short ERASE jumper. Power on. Wait 10 seconds. Remove ERASE jumper.) 2. Plug the USB cable into the USBOTG interface (not DEBUG). 3.
Using SAM-BA A DIVISION OF TRIMBLE Note If you see the warning message, “External RAM initialization failed. External RAM access is required to run applets. Continue anyway?”, respond “Yes” and you will see the GUI. 4. In the Scripts pane, select Enable Flash access. Click Execute.
Using SAM-BA A DIVISION OF TRIMBLE 5. In the main SAM-BA GUI, go to the Flash tab. In the “Download/Upload” section, for the Send File Name field, pick an appropriate “.bin” file. (The default xPRESS demo file is xpress_reader_sam3a8c_flash.bin.) Press Send File. You will get a pop-up that will show the progress: At around the 85% complete point you will be asked whether to lock the region. We recommend you reply “Yes”. The “lock” is simply a safety feature.
Using SAM-BA A DIVISION OF TRIMBLE 6. In the Scripts pane, select Boot from Flash (GPNVM1). Click Execute. When you restart the xPress board, it will be running the Demo application (RFID Sensor). At that point, the xPRESS board will identify itself as a keyboard and no further downloads from SAMBA will be possible until flash memory is erased again.
Using SAM-BA A DIVISION OF TRIMBLE 144