• ZebraLogo

     

    RE40 RFID - RE40 Binary Interface Protocol

    Introduction

    RE40 is Zebra UFH RFID module. Any host system can integrate this RE40 RFID module and perform RFID related operations using directly RE40 binary interface protocol. Zebra RFID SDK is available for x86/x64/ARM32 based CPU architecture. If the target host uses different CPU architecture or does not run OS, RE40 Binary interface protocol is a ideal choice.

    RE40 Binary Interface is communication interface protocol between Host and RE40 RFID Module. This document describes the details of the protocol.

    RE40 is Zebra Next Gen Radio which implements GS1 protocol EPC Global UHF Class 1 Gen2/ ISO 18000-63.

    The binary interface protocol is based on the client/server model. The Host acts as client and Radio acts as the server. Radio waits for the host to issue a command. When the host issues a command, the Radio services the request and responds with one or more responses. The final response to every command is an ACK. The ACK contains the command ID that the host requested and a success or failure of command. In other words, ACK indicates to the host that the processing for the command has completed.

    The communication between host and the RE40 is based on a "Command/Response" paradigm. The format of this document will follow this paradigm.

     

    Communication Interface

    RE40 RFID Module supports both RS-232 Serial and USB CDC communication port.

    UART - RS-232 Serial Port

    ParameterValue
    Baud Rate921600 (Default)
    Data Bits8
    Stop Bit1
    ParityNone
    Flow ControlNone

    USB 2.0 (Full Speed) CDC Serial

    RE40 supports USB CDC serial communication port to interface with host.

     

    Packet Overview

    All the command and response uses the following packet format.

    Packet Format

    SOFHeaderPayloadCRC
    2 bytes4 bytesVariable2 byte

     

    Command Packet

    The structure of command packet is described below.

    SOF

    Each packet begins with a SOF. The value of the field is 0xAAAB

    Header

    Each packet contains the header. The format of the header is as below:

    Command TypePayload Length
    2 bytes2 bytes

    Payload

    This contains parameter as variable

    CRC

    The CRC will be calculated using CRC-16 encoder method as specified in the EPC Gen2 Protocol specification (Annex F2).

    Response Packet

    SOF

    Each packet begins with a SOF. The value of the field is 0xAAAB

    Header

    The response packet contains the header. The format of the header is as below:

    Response TypePayload Length
    2 bytes2 bytes

    Payload

    This contains Command Type acknowledged (ACK) and Error Code.

    Parameter IDResponse Value
    2 bytesData in variable length

    CRC

    The CRC will be calculated using CRC-16 encoder method as specified in the EPC Gen2 Protocol specification (Annex F2)

    ACK Packet

    The final packet that responds to any command is the ACK packet. Therefore, it is the most common response packet.

    SOF

    Each packet begins with a SOF. The value of the field is 0xAAAB

    Header

    The response packet contains the header. The format of the header is as below:

    Response TypePayload Length
    2 bytes2 bytes

    Payload

    This contains Command Type acknowledged (ACK) and Error Code.

    Command Type AcknowledgedError Code
    2 bytes1 byte

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    Negative value of Error Code indicates an error. The meaning of the error depends on the type of command that was used.

    General Error Codes
    Error CodeDescription
    0xff (-1)When the command packet has less than 6 bytes
    0xfe (-2)When the command packet has fewer bytes than the value in the length field + 6 bytes
    0xfd (-3)When the command packet CRC is incorrect
    0xfc (-4)When the expected length of a command packet type does not match the value in the length field
    0xfb (-5)When the command packet type is not supported
    0xf4 (-12)Non-specific error

    CRC

    The CRC will be calculated using CRC-16 encoder method as specified in the EPC Gen2 Protocol specification (Annex F2)

    CRC-16 Sample Code Snippet

    The sample code snippet shows on how to compute CRC-16. Exclude SOF from the packet to compute CRC-16.

     

    Command/Response Model

    Get commands

    The typical command exchange flow for get commands are shown below. This is applicable for get or getnvm commands.

    get_command_response

    start command

    The following diagram shows the typical flow of start command and responses. If there are many response packets are enabled, those packet will be reported as and when the event occur.

    start_command_responses

    other commands

    The diagram below shows the flow of command and ACK packet as a response. This is applicable for all the commands except get, getnvm or start command.

    other_command_response

    Commands

    set

    This command allows to set the host to configure a parameter in Radio.

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x0801xx xxVariablexx xx
    Payload
    Field NameLength (bytes)Notes
    Parameter ID2Parameter section contains more details
    ValueVariableDepends on the data type of the parameter

    Response (ACK Packet)

    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0801xxxx xx

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    Error CodeDescription
    -7When the Parameter ID to set is not supported
    -8When the value to set the parameter ID is not allowed
    -9When the access type to set is not supported

    Parameters

    Response Packet Type

    Sets the Response packet type to enable / disable. The enabled response packets will be reported when "start" command issued

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0004 
    enableuint8_t0x010: Disable
    1: Enable
    response packet typeuint16_t enable or disable the required response packets. Refer the packets table below.
    Response Packets
    Response PacketResponse Packet TypeDescription
    Antenna info timed0x030EAntenna currently being used with timestamp
    LBT info0x0289LBT determination
    Carrier on Timed0x030FCarrier Channel, Frequency, Power Level currently being used
    Antenna Disconnect Alarm0x0381Antenna has been disconnected
    Antenna Connect Alarm0x0391Antenna has been connected
    Channel Power Limit Info0x0313Channel Power was limited from requested power level
    PA Temperature High Alarm0x0385PA Temperature higher than high limit
    PA Temperature Critical Alarm0x0386PA Temperature higher than critical limit
    PA Temperature Low Alarm0x0387PA Temperature lower than low limit
    Over-Temperature Protection0x0390Over temperature protection was turned on/off
    Forward Power High Alarm0x0388Forward Power was higher than requested
    Forward Power Low Alarm0x0389Forward Power was lower than requested
    Reverse Power High Alarm0x038AReverse Power was higher than threshold
    Tag Info custom0x0005Tag information with custom meta-data
    Access Info0x030CAccess operation success/failure and data
    Inventory Round End0x030AStatistics of just complete inventory round
    Carrier Off Timed0x0306Carrier just turned off with timestamp
    Enhanced Start Info0x0291Enhanced Statistics of just completed start command with end code
    Echo Threshold Alarm0x038BWhether echo cancellation passed threshold
    GPI Info0x0308GPI information when GPI start or GPI stop are enabled
    LMAC Error0x038CLMAC error
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Tag Info fields

    This parameter allows to select the tag fields reported as part of Tag info packets.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0009Enable the tag fields
    Tag field bit maskuint32_t  
    Tag field bit mask
    Bit PositionTag Data Field
    0EPC Data
    1RFU
    2RFU
    3RFU
    4Antenna ID
    5RSSI
    6Channel ID
    7RFU
    8Last Seen Uptime
    9Tag Seen Count
    10PC Bits
    11XPC1 Bits
    12XPC2 Bits
    13CRC Bits
    14RFU
    15Phase
    16 - 31RFU
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Radio Stop Conditions

    Sets the Radio Stop conditions. When any of the conditions met, the on going "start" command will stop.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0005Sets radio stop conditions
    time in millisecondsuint32_t  
    Antenna loopsuint16_t  
    Tag countuint16_t  
    GPIO bit maskuint8_t  
    GPIO1 hold time in millisecondsuint16_t minimal amount of time that the GPIO needs to be matching the condition to trigger the stop
    GPIO2 hold time in millisecondsuint16_t minimal amount of time that the GPIO needs to be matching the condition to trigger the stop

    GPIO bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/AEnable Stop Trigger on GPIO2Enable Stop Trigger on GPIO1N/AN/AStop Condition for GPIO 2Stop Condition for GPIO 1
    IgnoredIgnored1: use value in bit 1 to set the stop condition of GPIO2
    0: disable GPIO2 stop trigger
    1: use value in bit 0 to set the stop condition of GPIO1
    0: disable GPIO1 stop trigger
    IgnoredIgnored1: High
    0: Low
    1: High
    0: Low
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Select

    Sets the Select Parameters. Please refer C1G2 Specification for more details on the command.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0101 
    enableuint8_t 0: Disable
    1: Enable
    targetuint8_t 0: Inventoried (S0)
    1: Inventoried (S1)
    2: Inventoried (S2)
    3: Inventoried (S3)
    4: SL
    actionuint8_t Refer Action parameter Table
    memory bankuint8_t 1: EPC
    2: TID
    3: User
    pointeruint16_t starting bit address
    lengthuint8_t Mask length in bits
    maskuint8_t[] Mask value
    truncateuint16_t 0: Disable
    1: Enable

    Action Parameter

    If target is set to 4 (SL), the tag response to action parameter

    ActionMatchingNon-Matching
    000assert SLdeassert SL
    001assert SLdo nothing
    010do nothingdeassert SL
    011negate SLdo nothing
    100deassert SLassert SL
    101deassert SLdo nothing
    110do nothingassert SL
    111do nothingnegate SL

    If target is set to 0 - 3 (Session S0-S3), the tag response to action parameter

    ActionMatchingNon-Matching
    000Inventoried -> AInventoried -> B
    001Inventoried -> Ado nothing
    010do nothingInventoried -> B
    011(A->B, B->A)do nothing
    100Inventoried -> BInventoried -> A
    101Inventoried -> Bdo nothing
    110do nothingInventoried -> A
    111do nothing(A->B, B->A)
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Query

    Sets the Query Parameters. Please refer C1G2 Specification for more details on the command.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x02010x0201 - 0x0204 (4 Query Parameter are allowed)
    enableuint8_t0x010: Disable
    1: Enable
     uint8_t0x011: C1G2
    seluint8_t0x00Chooses which Tags respond to the query
    1: All
    2: ~SL
    3: SL
    sessionuint8_t0x00Session for the inventory round
    0: S0
    1: S1
    2: S2
    3: S3
    targetuint8_t0x00Selects whether Tags whose inventoried flag is A or B participate in the inventory round
    0: A
    1: B
    Quint16_t0x06Sets the number of slots in the round. Tags pick a random value in the range (0, 2Q - 1). The possible values of Q are 0-15.

     

    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Antenna

    Sets the Antenna Parameters

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x04010x0401 - 0x0404 (4 antenna allowed)
    0x0401-Antenna 1
    0x0402-Antenna 2
    0x0403-Antenna 3
    0x0404-Antenna 4
    enableuint8_t0x010: Disable
    1: Enable
    transmit portuint16_t0x0001Antenna port id. Both transmit and receipt port should be same
    receive portuint16_t0x0001Antenna port id. Both transmit and receipt port should be same
    stop condition typeuint8_t0x001: inventory cycle
    2: dwell time (millisecond)
    stop valueuint16_t0x01 
    transmit poweruint16_t0x010Ein 0.1 dBm (270 = 27dBm)
    select bit maskuint32_t0xffffffffRFU. This must be set to 0xffffffff.
    query indexuint8_t0x01Index to the query parameter to be used. For each antenna, there should be separate query parameter respectively.
    access bit maskuint64_t0xffffffffffffffffRFU. This must be set to 0xffffffffffffffff
    link profile indexuint16_t0x0328202: M=4/240, PIE=2, Tari=25us
    808: M=2/320, PIE=2, Tari=18.8us
    908: M=4/320, PIE=2, Tari=18.8us
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Access

    Sets C1G2 access command. The set of access commands includes read, write, kill and lock operation.

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0x0301 - 0x0305 (5 Access Parameter are allowed)
    enableuint8_t0: Disable
    1: Enable
    operation typeuint8_t0x01: Read
    0x02: Write
    0x03: Kill
    0x04: Lock
    0x05: Access Password
    0x0B: Multi-word Write
    access parametervariableRefer the respective table for the operation type
    Read, Write, Lock, Kill & Access Password
    criteriauint8_tNot supported. Set this value to 0
    stop countunt16_tNot supported. Set this value to 0

    For more details on access parameters, please refer https://www.gs1.org/sites/default/files/docs/epc/uhfc1g2_1_2_0-standard-20080511.pdf 6.3.2 Tag Selection, Inventory, and access

    Read
    FieldData TypeNotes
    memory bankuint8_t0: Reserved
    1: EPC
    2: TID
    3: User
    word pointeruint16_tstarting address pointer
    word countuint8_tNo of words to read
    word count expecteduint8_tShould be set to word count until word count is 0.
    if Word count is 0, the number of expected words should be included
    Write
    FieldData TypeNotes
    memory bankuint8_t0: Reserved
    1: EPC
    2: TID
    3: User
    word pointeruint16_tstarting address pointer
    datauint16_tword to be written
    Kill
    FieldData TypeNotes
    passworduint32_t 
    Recommissioning bitsuint8_t 
    Lock
    FieldData TypeNotes
    mask action fieldsuint32_tRefer Mark and Action table below

    Mask

    Kill Password(Bits 19, 18)Kill Password(Bits 17, 16)EPC Memory(Bits 15, 14)TID Memory(Bits 13, 12)User Memory (Bits 11, 10)
    skip/writeskip/writeskip/writeskip/writeskip/write

    Action

    Kill Password(Bits 9, 8)Kill Password(Bits 7, 6)EPC Memory(Bits 5, 4)TID Memory(Bits 3, 2)User Memory (Bits 1, 0)
    Password read/write, permalockPassword read/write, permalockPassword Write, permalockPassword Write, permalockPassword Write, permalock
    Access Password

    This parameter needs to be set if there is non-zero access password set in the tag

    FieldData TypeNotes
    passworduint32_tAccess password set the tag
    Multi-word Write
    FieldData TypeNotes
    memory bankuint8_t0: Reserved
    1: EPC
    2: TID
    3: User
    word pointeruint16_tstarting address pointer
    word countuint8_tword count
    datauint16_t[]word to be written
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Regulatory Channel

    Sets Regulatory Channel. Channel must be set based on the local regulatory guidelines with the respect to the country where the device is operating.

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0x0801 - 0x0832 (50 channels allowed)
    enableuint8_t0: Disable
    1: Enable
    frequency in KHzuint32_tSpecifies the frequency in KHz of this channel
    max power valueuint16_tMaximum allowed transmit power in tenths of dB
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Regulatory Timing

    Sets Regulatory Timing. This timings are reset when stop/start command issued.

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0x0883
    max on timeuint16_tCW On time in milliseconds
    max off timeuint16_tCW Off time in milliseconds
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Regulatory LBT

    Sets Regulatory Listen Before Talk (LBT)

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0x0884
    enableuint8_t0: Disable
    1: Enable
    Thresholdint16_tin tenths of dB (i.e. -90dBm is -900 [0xFC7C])
    bandwidth indexuint8_t 
    measurement timeuint8_tIndicates duration of time in milliseconds to "listen". only the value of 5 will be accepted
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    Hop Per Round

    Sets Hop per round enabled or not. Specifies hop frequency only after regulatory dwell time expires or hop every inventory round

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0x0885
    enableuint8_t0: Disable
    1: Enable
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    GPIO Direction

    Set the GPIO direction of the GPIO pin.

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    gpio direction bit maskuint8_tGPIO direction

    GPIO direction bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/ASet GPIO2Set GPIO1N/AN/ADirection for GPIO 2Direction for GPIO 1
    IgnoredIgnored1: use value in bit 1 to set the direction of GPIO2
    0: maintain gpio direction
    1: use value in bit 0 to set the direction of GPIO1
    0: maintain gpio direction
    IgnoredIgnored1: Input 0: Output1: Input 0: Output
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    GPIO Value

    Sets the GPIO value of the GPIO pin.

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    gpio value bit maskuint8_tGPIO value

    GPIO Value bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    Set GPIO4Set GPIO3Set GPIO2Set GPIO1Value for GPIO 4Value for GPIO 3Value for GPIO 2Value for GPIO 1
    1: use value in bit 1 to set the value of GPIO2
    0: maintain gpio value
    1: use value in bit 1 to set the value of GPIO2
    0: maintain gpio value
    1: use value in bit 1 to set the value of GPIO2
    0: maintain gpio value
    1: use value in bit 0 to set the value of GPIO1
    0: maintain gpio value
    1:High 0: Low1:High 0: Low1:High 0: Low1:High 0: Low
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error
    GPIO Start Trigger

    Set the GPIO start Trigger settings. This parameter configures the start triggering the radio. When GPIOs are enabled, after a "start" command has been issued, the Radio will wait until the start condition is met before starting the operations. Issuing a "stop" command will exit the "start" command as usual.

    The user should be careful to enable GPIOs that are set to be inputs using GPIO direction parameter. Trying to enable a GPIO that is an output will not result an error. When the GPI trigger happens and the GPIO changes to the value, a GPIO Info Packet will be sent if this packet is enabled.

    The hold time is minimal amount of time that the GPIO needs to be matching the condition to trigger the start.

    Command Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    gpio bit maskuint8_tGPIO bit mask
    gpio1 hold timeuint16_tHold time in milliseconds
    gpio2 hold timeuint16_tHold time in milliseconds

    GPIO bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/AEnable Start Trigger on GPIO2Enable Start Trigger on GPIO1N/AN/AStart Condition for GPIO 2Start Condition for GPIO 1
    IgnoredIgnored1: use value in bit 1 to set the start condition of GPIO2
    0: disable GPIO2 start trigger
    1: use value in bit 0 to set the start condition of GPIO1
    0: disable GPIO1 start trigger
    IgnoredIgnored1: High
    0: Low
    1: High
    0: Low
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0801
    error codeuint8_t0x00: Success
    negative value refers to error

    get

    This command allows the host to retrieve the value of parameters in the RE40

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x08020x0002Parameter IDxx xx
    Payload
    Field NameLength (bytes)Notes
    Parameter ID2Parameter section contains more details

    Response

    For the get commands, the Radio will send one response packet and ACK packet.

    Response Packet
    SOFResponse TypePayload LengthPayloadCRC
    0xAAAB0x0811variablevariablexx xx
    ACK Packet
    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0802xxxx xx

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    Error CodeDescription
    0xf6 (-10)When the Parameter ID to get is not supported

    Parameters

    Firmware Version

    Gets the firmware version

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0001Gets firmware version
    Response Payload
    FieldData Type
    parameter iduint16_t
    major versionuint8_v
    minor versionuint8_t
    builduint8_t
    flaguint8_t
    Development Version

    Gets the development build version string

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0002Gets development version
    Response Payload
    FieldData Type
    parameter iduint16_t
    development versionASCII string
    Up Time

    Gets the current uptime in microseconds (uS)

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0003Gets Current uptime
    Response Payload
    FieldData Type
    parameter iduint16_t
    current uptimeuint64_t
    Response Packet Enable Status

    Gets the status of a particular response packet type.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0004Gets enable or disable status of response packet type
    Response Payload
    FieldData Type
    parameter iduint16_t
    Enableuint64_t

     

    Radio Stop Conditions

    Gets the conditions to end "start" command

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0005Gets radio stop conditions
    Response Payload
    FieldData Type
    parameter iduint16_t
    time in millisecondsuint32_t
    Antenna loopsuint16_t
    Tag countuint16_t
    GPIO bit maskuint8_t
    GPIO1 hold time in millisecondsuint16_t
    GPIO2 hold time in millisecondsuint16_t

    GPIO bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/AEnable Start Trigger on GPIO2Enable Trigger on GPIO1N/AN/AStart Condition for GPIO 2Start Condition for GPIO 1
    IgnoredIgnored1: use value in bit 1 to set the start condition of GPIO2
    0: disable GPIO2 start trigger
    1: use value in bit 0 to set the start condition of GPIO1
    0: disable GPIO1 start trigger
    IgnoredIgnored1: High
    0: Low
    1: High
    0: Low

     

     

     

    RF Board Version

    Gets RF Board Version

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0006Gets RF board version
    Response Payload
    FieldData TypeValue
    parameter iduint16_t 
    RF Board Versionuint16_t 
    RF Board Version

    Gets RF Board Version

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0006Gets RF board version
    Response Payload
    FieldData TypeValue
    parameter iduint16_t 
    RF Board Versionuint16_t 

     

    Digital Board Version

    Gets Digital Board Version

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0007Gets Digital board version
    Response Payload
    FieldData TypeValue
    parameter iduint16_t 
    Digital Board Versionuint16_t 

     

    FPGA Version

    Gets FPGA Version

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0008Gets FPGA version
    Response Payload
    FieldData TypeValue
    parameter iduint16_t 
    FPGA Versionuint16_t 
    Model Info

    Gets the Model Info

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x000DGets Model Info String
    Response Payload
    FieldData Type
    parameter iduint16_t
    model info stringASCII string
    Model Name

    Gets the Model Name

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x000EGets Model Name String
    Response Payload
    FieldData Type
    parameter iduint16_t
    model nameASCII string

     

    Product Revision String

    Gets the Product Revision String

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x000FGets Product Revision String
    Response Payload
    FieldData Type
    parameter iduint16_t
    product revision stringASCII string
    Product Bootloader String

    Gets the Bootloader revision String

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0010Gets Bootloader revision
    Response Payload
    FieldData Type
    parameter iduint16_t
    product revision stringASCII string
    Number of Antennas

    Gets the Number of Antennas

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0011Gets Number of Antennas
    Response Payload
    FieldData Type
    parameter iduint16_t
    Number of Antennasuint32_t
    Manufacture Date

    Gets the manufacture date of the device

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0012Gets Manufacture date
    Response Payload
    FieldData Type
    parameter iduint16_t
    manufacture dateuint32_t
    Bits 31-16Bits 15-8Bits 7-0
    YearMonthDay

     

    Serial Number

    Gets device serial number

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0013Gets device serial number
    Response Payload
    FieldData Type
    parameter iduint16_t
    device serial numberASCII string

     

    Select

    Gets C1G2 select command. This parameter selects a particular tag population based on user defined criteria.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0101Gets Select command parameters
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0101
    enableuint8_t0: Disable
    1: Enable
    targetuint8_t0: Inventoried (S0)
    1: Inventoried (S1)
    2: Inventoried (S2)
    3: Inventoried (S3)
    4: SL
    actionuint8_tRefer Action parameter Table
    memory bankuint8_t1: EPC
    2: TID
    3: User
    pointeruint16_tstarting bit address
    lengthuint8_tMask length in bits
    maskuint8_t[]Mask value
    truncateuint16_t0: Disable
    1: Enable

    Action Parameter

    If target is set to 4 (SL), the tag response to action parameter

    ActionMatchingNon-Matching
    000assert SLdeassert SL
    001assert SLdo nothing
    010do nothingdeassert SL
    011negate SLdo nothing
    100deassert SLassert SL
    101deassert SLdo nothing
    110do nothingassert SL
    111do nothingnegate SL

    If target is set to 0 - 3 (Session S0-S3), the tag response to action parameter

    ActionMatchingNon-Matching
    000Inventoried -> AInventoried -> B
    001Inventoried -> Ado nothing
    010do nothingInventoried -> B
    011(A->B, B->A)do nothing
    100Inventoried -> BInventoried -> A
    101Inventoried -> Bdo nothing
    110do nothingInventoried -> A
    111do nothing(A->B, B->A)

     

    Query

    Gets C1G2 query command. Query initiates and specifies an inventory round.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0101-0x0104Gets Query command parameter
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0201 - 0x0204 (4 Query Parameter are allowed)
    enableuint8_t0: Disable
    1: Enable
    protocoluint8_t1: C1G2
    seluint8_tChooses which Tags respond to the query
    1: All
    2: ~SL
    3: SL
    sessionuint8_tSession for the inventory round
    0: S0
    1: S1
    2: S2
    3: S3
    targetuint8_tSelects whether Tags whose inventoried flag is A or B participate in the inventory round
    0: A
    1: B
    Quint16_tSets the number of slots in the round. Tags pick a random value in the range (0, 2Q - 1). The possible values of Q are 0-15.
    Access

    Gets C1G2 access command. The set of access commands includes read, write, kill and lock.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0301-0x0305Gets Access command parameter
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0301 - 0x0305 (5 Access Parameter are allowed)
    enableuint8_t0: Disable
    1: Enable
    Operation Typeuint8_t0x01: Read
    0x02: Write
    0x03: Kill
    0x04: Lock
    0x05: Access Password
    0x0B: Multi-word Write
    Read
    FieldData TypeNotes
    memory bankuint8_t0: Reserved
    1: EPC
    2: TID
    3: User
    word pointeruint16_tstarting address pointer
    word countuint8_tNo of words to read
    word count expecteduint8_tShould be set to word count until word count is 0.
    if Word count is 0, the number of expected words should be included
    Write
    FieldData TypeNotes
    memory bankuint8_t0: Reserved
    1: EPC
    2: TID
    3: User
    word pointeruint16_tstarting address pointer
    datauint16_tword to be written
    Kill
    FieldData TypeNotes
    passworduint32_t 
    Recommissioning bitsuint8_t 
    Lock
    FieldData TypeNotes
    mask action fieldsuint32_tRefer Mark and Action table below

    Mask

    Kill Password(Bits 19, 18)Kill Password(Bits 17, 16)EPC Memory(Bits 15, 14)TID Memory(Bits 13, 12)User Memory (Bits 11, 10)
    skip/writeskip/writeskip/writeskip/writeskip/write

    Action

    Kill Password(Bits 9, 8)Kill Password(Bits 7, 6)EPC Memory(Bits 5, 4)TID Memory(Bits 3, 2)User Memory (Bits 1, 0)
    Password read/write, permalockPassword read/write, permalockPassword Write, permalockPassword Write, permalockPassword Write, permalock
    Access Password

    This parameter needs to be set if there is non-zero access password set in the tag

    FieldData TypeNotes
    passworduint32_tAccess password set the tag
    Antenna

    Gets Antenna parameter

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0401 - 0x0404 (4 antenna allowed)0x0401-Antenna 1
    0x0402-Antenna 2
    0x0403-Antenna 3
    0x0404-Antenna 4
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0401 - 0x0404 (4 antenna allowed)
    enableuint8_t0: Disable
    1: Enable
    transmit portuint16_tAntenna port id. Both transmit and receipt port should be same
    receive portuint16_tAntenna port id. Both transmit and receipt port should be same
    stop condition typeuint8_t1: inventory cycle
    2: dwell time (millisecond)
    stop valueuint16_t 
    transmit poweruint16_tin 0.1 dBm (270 = 27dBm)
    select bit maskuint32_tRFU. This must be set to 0xffffffff.
    query indexuint8_tIndex to the query parameter to be used. For each antenna, there should be separate query parameter respectively.
    access bit maskuint64_tRFU. This must be set to 0xffffffffffffffff
    link profile indexuint16_t202: M=4/240, PIE=2, Tari=25us
    808: M=2/320, PIE=2, Tari=18.8us
    908: M=4/320, PIE=2, Tari=18.8us
    Regulatory Channel

    Gets Regulatory Channel

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0801 - 0x0832 (Max of 50 channels) 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0801 - 0x0832 (50 channels allowed)
    enableuint8_t0: Disable
    1: Enable
    frequency in KHzuint32_tSpecifies the frequency in KHz of this channel
    max power valueuint16_tMaximum allowed transmit power in tenths of dB
    Regulatory Timing

    Gets Regulatory Timing. This timings are reset when stop/start command issued.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0883 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0883
    max on timeuint16_tCW On time in milliseconds
    max off timeuint16_tCW Off time in milliseconds
    Regulatory LBT

    Gets Regulatory Listen Before Talk (LBT)

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0884 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0884
    enableuint8_t0: Disable
    1: Enable
    Thresholdint16_tin tenths of dB (i.e. -90dBm is -900 [0xFC7C])
    bandwidth indexuint8_t 
    measurement timeuint8_tIndicates duration of time in milliseconds to "listen". only the value of 5 will be accepted
    Hop Per Round

    Gets Hop per round enabled or not

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0885Specifies hop frequency only after regulatory dwell time expires or hop every inventory round
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0885
    enableuint8_t0: Disable
    1: Enable

     

    PA Temperature

    Gets PA Temperature sensor measurement in degree Celsius.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x2100 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x2100
    PA Temperatureuint16_tPA temperature measurement in degree Celsius

     

    GPIO Direction

    Get the GPIO direction of the GPIO pin.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0xD001 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    gpio direction bit maskuint8_tGPIO direction

    GPIO direction bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/AN/AN/AN/AN/ADirection for GPIO 2Direction for GPIO 1
    IgnoredIgnoredIgnoredIgnoredIgnoredIgnored1: Input 0: Output1: Input 0: Output

     

    GPIO Value

    Get the GPIO value of the GPIO pin.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0xD002 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    gpio value bit maskuint8_tGPIO value

    GPIO Value bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/AN/AN/AValue for GPIO 4Value for GPIO 3Value for GPIO 2Value for GPIO 1
    IgnoredIgnoredIgnoredIgnored1: High 0: Low1: High 0: Low1: High 0: Low1: High 0: Low
    GPIO Start Trigger

    Get the GPIO start Trigger settings.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0xD003 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    gpio bit maskuint8_tGPIO bit mask
    gpio1 hold timeuint16_tHold time in milliseconds
    gpio2 hold timeuint16_tHold time in milliseconds

    GPIO bit mask

    Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
    N/AN/AEnable Start Trigger on GPIO2Enable Trigger on GPIO1N/AN/AStart Condition for GPIO 2Start Condition for GPIO 1
    IgnoredIgnored1: use value in bit 1 to set the start condition of GPIO2
    0: disable GPIO2 start trigger
    1: use value in bit 0 to set the start condition of GPIO1
    0: disable GPIO1 start trigger
    IgnoredIgnored1: High
    0: Low
    1: High
    0: Low

     

    Tag Read Count

    Get the number of tags read since the last "start" command was issued.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0xE500 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0xD001
    tags read count since "start"uint32_t 

    setNVM

    This command allows to set the host to configure a NVM (non-volatile) parameter in Radio. This command will not be processed while another command is being processed.

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x0803xx xxVariablexx xx
    Payload
    Field NameLength (bytes)Notes
    Parameter ID2Parameter section contains more details
    ValueVariableDepends on the data type of the parameter

    Response (ACK Packet)

    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0803xxxx xx

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    Error CodeDescription
    0xf9 (-7)When the Parameter ID to set is not supported
    0xf8 (-8)When the value to set the parameter ID is not allowed
    0xf7 (-9)When the access type to set is not supported

    Parameters

    User NVM

    Sets the User Configurable NVM.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x02010x040C
    user nvmuint32_t Developer can store for the Host System to use as needed
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0803
    error codeuint8_t0x00: Success
    negative value refers to error
    UART settings

    Sets the User Configurable NVM.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x02010x0412
    user nvmuint32_t Developer can store for the Host System to use as needed
    FieldData TypeValueNotes
    parameter iduint16_t0x0412 
    baud rateuint32_t921600115200
    230400
    460800
    921600 (default)
    parityuint32_t00: None (default)
    1: Odd
    2: Even
    Stop bituint32_t11: 1 stop bit(default)
    2: 2 stop bit
    Data Bitsuint32_t88 ( default)
    Response Payload
    FieldData TypeValue
    command typeuint16_t0x0803
    error codeuint8_t 

    getNVM

    This command allows the host to retrieve the value of NVM (non-volatile) parameters in the Radio. This command will not be processed while another command is being processed.

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x08040x0002Parameter IDxx xx
    Payload
    Field NameLength (bytes)Notes
    Parameter ID2Parameter section contains more details

    Response

    For the getnvm commands, the Radio will send one response packet and ACK packet.

    Response Packet
    SOFResponse TypePayload LengthPayloadCRC
    0xAAAB0x0811variablevariablexx xx
    ACK Packet
    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0804xxxx xx

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    Error CodeDescription
    -10When the Parameter ID to get is not supported

    Parameters

    User NVM

    Get the user configured NVM data.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x040C 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x040C
    user configurable NVMuint32_tStore 32bit data for the host to use as needed
    UART settings

    Get the UART settings.

    Command Payload
    FieldData TypeValueNotes
    parameter iduint16_t0x0412 
    Response Payload
    FieldData TypeNotes
    parameter iduint16_t0x0412
    baud rateuint32_t115200
    230400
    460800
    921600 (default)
    parityuint32_t0: None (default)
    1: Odd
    2: Even
    Stop bituint32_t1: 1 stop bit(default)
    2: 2 stop bit
    Data Bitsuint32_t8 ( default)

    start

    This command starts operation of the radio.

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x08090x0000N/A0x606D
    Payload

    Not Applicable

    Response (s)

    This section contains the details response packets.

    The response packets which are enabled as part of set command using Response Packet Type will be reported when the respective event occurs.

    SOFResponse TypePayload LengthPayloadCRC
    0xAAABuint16_t
    enabled response packet
    variablevariablexx xx
    Antenna Info Timed

    Reports when the radio changes antennas

    Header
    FieldValue
    Response Type0x0B0E
    Payload Length0x000D
    Payload
    FieldData TypeNotes
    antenna parameter iduint16_t 
    transmit portuint16_trefers antenna id
    receive portuint16_trefers antenna id
    timestampuint64_tcurrent up time of the Radio
    LBT Info

    Each time the Radio changes channel when LBT is enabled, it listens on the channel for a duration to determine if the channel is free or not. This packet summarizes the result of listening.

    Header
    FieldValue
    Response Type0x0A89
    Payload Length0x0005
    Payload
    FieldData TypeNotes
    timeuint32_tduration of time for "listening" in microseconds
    frequencyuint32_tfrequency in KHz at which RF measurement was performed
    rssiint8_tsigned 8-bit value representing the RSSI of RF measurement at this frequency (in tenths of dB)
    resultuint8_t0: busy channel
    1: free channel
    Carrier On Timed

    This packet will be transmitted after the radio turns the carrier on.

    Header
    FieldValue
    Response Type0x0B0F
    Payload Length0x0010
    Payload
    FieldData TypeNotes
    forward poweruint16_tIn 0.1 dBm measured by the forward power detector
    reverse poweruint16_tIn -0.1 dBm measured by the reverse power detector. For example, -55.3 dBm reverse power will return 553)
    frequencyuint32_tFrequency in KHz
    timestampuint64_tCurrent uptime of the RE40 (in uS)
    Antenna Disconnect Alarm

    This packet sends notification of an attempt to transmit on a physical antenna that is disconnected.

    Header
    FieldValue
    Response Type0x0B81
    Payload Length0x0002
    Payload
    FieldData TypeNotes
    parameter iduint16_tAntenna parameter id
    Antenna Connect Alarm

    This packet sends notification of an attempt to transmit on a physical antenna that is connected for the first time or after previously been reported as being disconnected.

    Header
    FieldValue
    Response Type0x0B91
    Payload Length0x0002
    Payload
    FieldData TypeNotes
    parameter iduint16_tAntenna parameter id
    Channel Power Limit Information

    This packet will be transmitted when the antenna target power exceeds the allowable power that is particular to the channel.

    The regulatory channel parameters allow power to be limited on per-channel basis. This event indicates that the requested power is higher than this limit.

    Header
    FieldValue
    Response Type0x0B13
    Payload Length0x0001
    Payload
    FieldData TypeNotes
    channel numberuint8_tchannel which exceeds the channel power limit
    PA Temperature High Alarm

    This packet sends notification of Power Amplifier temperature detected exceeding above limit. This event is due to temperature at the power amplifier

    Header
    FieldValue
    Response Type0x0B85
    Payload Length0x0001
    Payload
    FieldData TypeNotes
    temperatureuint8_tPA temperature measured in degree Celsius
    PA Temperature Critical Alarm

    This packet sends notification of Power Amplifier temperature detected exceeding safe limit. This event is due to temperature at the power amplifier

    Header
    FieldValue
    Response Type0x0B86
    Payload Length0x0001
    Payload
    FieldData TypeNotes
    temperatureuint8_tPA temperature measured in degree Celsius
    PA Temperature Low Alarm

    This packet sends notification of Power Amplifier temperature detected below the limit. This event is due to temperature at the power amplifier

    Header
    FieldValue
    Response Type0x0B87
    Payload Length0x0001
    Payload
    FieldData TypeNotes
    temperatureuint8_tPA temperature measured in degree Celsius
    Over Temperature Protection

    This packet sends the notification that Radio has enabled with temperature protection. If enabled, this packet indicates that the RE40 has started the duty cycle process to protect it from going over temperature.

    Header
    FieldValue
    Response Type0x0B90
    Payload Length0x0001
    Payload
    FieldData TypeNotes
    on / offuint8_t0: over temperature protection disabled
    1: over temperature protection enabled
    Forward Power High Alarm

    This packet sends the notification of Forward Power above tolerance threshold. Detection of Forward Power falling too high outside the acceptable tolerance of the target power level at the antenna port. Radio may trigger this event transiently (overshoot) or inability to achieve power level at all.

    Header
    FieldValue
    Response Type0x0B88
    Payload Length0x0005
    Payload
    FieldData TypeNotes
    antenna parameter Iduint16_tAntenna parameter ID which causes this event
    typeuint8_tSpecify transient or final level error
    power leveluint16_tpower level measurement in tenths of dB
    Forward Power Low Alarm

    This packet sends the notification of Forward Power below tolerance threshold. This indicates too low Forward Power.

    Header
    FieldValue
    Response Type0x0B89
    Payload Length0x0003
    Payload
    FieldData TypeNotes
    typeuint8_tSpecify transient or final level error
    power leveluint16_tpower level measurement in tenths of dB
    Reverse Power High Alarm

    This packet sends the notification of Reverse Power above tolerance threshold.

    Header
    FieldValue
    Response Type0x0B8A
    Payload Length0x0002
    Payload
    FieldData TypeNotes
    power leveluint16_tpower level measurement in tenths of dB
    Tag Info (custom)

    This packet sends the tag information. The tag fields are reported based on the bit masks set using Tag Info fields parameter

    Header
    FieldValue
    Response Type0x0805
    Payload LengthVariable
    Payload
    FieldData TypeNotes
    epc datavariableFirst Byte: 0x8D
    Contains EPC
    antenna iduint8_t
    uint16_t
    First Byte: 0x81
    Antenna Parameter id
    rssiuint8_t
    int8_t
    First Byte: 0x86
    Signed representation of the rssi value for this read in dBm
    channel iduint8_t
    uint8_t
    First Byte: 0x87
    Contains Channel Index
    last seen up timeuint8_t
    uint64_t
    First Byte: 0x85
    Uptime of the RE40 in microseconds for most recent time this was read
    tag seen countuint8_t
    uint16_t
    First Byte: 0x88
    The subsequent byte will be set to 1 because the tag will only be read once per inventory round
    pc bitsuint8_t
    uint16_t
    First Byte: 0x8C
    PC bits of this tag read
    xpc1 bitsuint8_t
    uint16_t
    First Byte: 0x93
    XPC-1 bits of this tag read if it was transmitted
    xpc2 bitsuint8_t
    uint16_t
    First Byte: 0x94
    XPC-2 bits of this tag read if it was transmitted
    crc bitsuint8_t
    uint16_t
    First Byte: 0x8B
    CRC bits of this tag read
    phaseuint8_t
    uint16_t
    First Byte: 0xFF
    phase value
    Access Info

    This packet will be sent out after an access operation is completed.

    Header
    FieldData TypeValue
    Response Typeuint16_t0x0B0C
    Payload Lengthuint16_tvariable
    Payload
    FieldData TypeNotes
    access iduint8_tAccess parameter id
    access resultuint8_t0x00: Success
    0x01: Error, access info contains error code
    0x02: No response
    0x03: CRC Error
    0x04: Error, finding the end of a "zero" length read response
    0x06: Other failure
    0x07: Barker Error
    0x08: Length bit parity error
    0x21: Access stopped due to regulatory timeout
    0x22: Access stopped due to antenna timeout
    0x23: Access stopped due to radio dwell timeout
    0x24: Access stopped due to IO stop
    0x25: Access stopped due to stop request
    0x2F: Access stopped due to unknown issue
    "in process" response
    0x40: Still working
    0x48: Successfully stored response without length
    0x49: Successfully stored response with length
    0x4A: Successfully sent response without length
    0x4B: Successfully sent response with length
    0x4C: Error code stored response without length
    0x4D: Error code stored response with length
    0x4E: Error code sent response without length
    0x4F: Error code sent response length

    0x82: reqRN - no response
    0x83: reqRN - CRC failure
    access infovariableThe data if any from the access operation
    read data or the error code
    Inventory Round End

    After the inventory round completes (before next query), this packet will be reported to the host to give the summary of statistics for the round.

    Header
    FieldValue
    Response Type0x0B0A
    Payload Length0x0009
    Payload
    FieldData TypeNotes
    empty slotsuint16_t 
    crc goodsuint16_t 
    crc badsuint16_t 
    collided slotsuint16_t 
    end codeuint8_t0x01: ended normally
    0x02: ended prematurely due to regulatory timeout
    0x04: antenna timeout
    0x08: radio timeout
    0x10: IO stop
    0x20: tag stop count
    0x40: host request
    0x80: access or kill failure
    0x81: too many bad CRCs
    Carrier Off Timed

    After the radio turns carrier off, RE40 will transmit this packet.

    Header
    FieldValue
    Response Type0x0B06
    Payload Length0x0009
    Payload
    FieldData TypeNotes
    end conditionuint8_t0x01: Normal
    0x02: Carrier off due to regulatory timeout
    0x04: Carrier off due to antenna stop condition
    0x08: Carrier off due to radio timeout
    0x10: Carrier off due to I/O activity
    0x20: Carrier off due to tag count stop condition
    0x40: Carrier off due to host request
    0x80: Carrier off due to access or kill operation failure
    time stampuint64_tcurrent uptime of the RE40 (in microseconds)
    Enhanced Start Info

    This packet gives statistics for the activity since the "start" command issued. This packet comes immediately before the ACK packet to the start command.

    Header
    FieldValue
    Response Type0x0A91
    Payload Length0x0010
    Payload
    FieldData TypeNotes
    total timeuint64_tduration from the beginning of start command in microseconds
    total tags readuint32_ttotal number of tags read from the beginning of the start command (included bad crcs)
    total inventory roundsuint16_ttotal number of inventory rounds run from the beginning of the start command (number of queries transmitted)
    end causeuint16_t0x0001: Stopped due to host request
    0x0002: Stopped due to reaching antenna loop count stop condition
    0x0004: Stopped due to reaching dwell time stop condition
    0x0008: Stopped due to reaching tag count stop condition
    0x0010: Stopped due to GPIO stop condition
    0x0020: Stopped due to error
    0x0040: Stopped due to no enabled antennas
    0x0080: Stopped due to reaching critical temperature
    0x0100: Stopped due to antenna disconnect
    0x0200: Stopped because transmission failed
    0x0400: Stopped due to radio misconfiguration
    Echo Threshold Alarm

    This packet sends the notification that the echo canceller was not able to cover the acceptable power levels into the receiver.

    Header
    FieldValue
    Response Type0x0B8B
    Payload Length0x0000
    Payload
    FieldData TypeNotes
    Not Applicable  
    GPI Info

    This packet will be sent when GPIO triggering is enabled and the GPIO trigger condition was met.

    Header
    FieldValue
    Response Type0x0B08
    Payload Length0x000A
    Payload
    FieldData TypeNotes
    gpio numberuint8_tThe GPIO that changed values
    valueuint8_tCurrent value of GPIO
    0: Low
    1: High
    timestampuint64_tThe current uptime of RE40 in microseconds
    LMAC Alarm

    This packet will report when there is an issue in LMAC layer

    Header
    FieldValue
    Response Type0x0B8C
    Payload Length0x0004
    Payload
    FieldData TypeNotes
    LMAC error lineuint32_tThe line of the code in the LMAC Layer that produced the issue

    Response (ACK Packet)

    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0809xxxx xx

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    stop

    This command stops the currently ongoing radio operation (if ongoing)

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x08080x0000N/A0x575D
    Payload

    Not Applicable

    ####

    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0808xxxx xx

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

    Error Codes

    Generic error codes are applicable

    sleep

    This command puts the Radio into a low power mode. It can only wake up when the H_WAKE goes high. This command will not be honored while another command is ongoing.

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x08150x0000N/A0x566F
    Payload

    Not Applicable

    Response

    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x0815xxxx xx

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

     

    reboot

    This command reboots RE40.

    Command

    SOFCommand TypePayload lengthPayloadCRC
    0xAAAB0x08D50x0000N/A0x7098
    Payload

    Not Applicable

    Response

    SOFResponse TypePayload LengthCommand TypeError CodeCRC
    0xAAAB0x08010x00030x08D5xxxx xx

     

    Error Codes

    Non-negative value (>=0) of Error Code indicates successful completion of the command.

     

    Firmware Update

    This section covers how to upgrade the RE40 firmware. The following flow chart shows the sequence for firmware update.

    dat_fw_update

    1. Firmware Load Program

    2. Flash Program Command

    3. Baud Rate Negotiation

    9600 is minimum baud rate RE40 module supports, is not optimal for downloading larger files. Baud Rate Negotiation step will allow Host and RE40 module to agree on highest possible baud rate for faster downloads over serial

    4. SSI Packet Encapsulation

    packet_encapsulation

    Sample Transaction

    ssi_sample_transaction


    All contents copyright © 2021 Zebra Technologies Corp.