RFID ME™ (RU-888) FAQ

Q1. Do you have documentation on how to control DRM?

The default setting already supports the DRM.
Please refer to the Low Level Command Reference Manual for the command RFID_18K6CSetQueryParameter.
The default values of Link Frequency Value, Miller Value and TRext Value are optimized for DRM.
The performance will varied with different settings of these values and we suggest to keep it as the default one."

▪ USB OTG Host Mode and supports HID protocol (some Smartphones are claiming Android 4.0 O/S but are not support OTG Host Mode)
▪ Micro USB Type B Connector
▪ Host supports High Power Mode (bMaxPower > 500 mA)

Q2.How to upgrade the OEM configuration?

MTI provides a software tool for OEMCfg upgdate.

Q3. The transfer.dll's "API_Write" function gives FALSE value back.

Blow are some instructions for using the ""transfer.dll"" library in C#.
▪ When use USB to write or Read, please check Max Input/Output. Programmer can use API_AskRevCount() to get Max Reader Length (Report Count).
The length of the command in protocol is equal or less then Max Length. Example:

Use API_AskRevCount() to get Max Input Length. If Length equals to 10, you can't use more then 10 to get data. It will fail. You can use 1~10 length to read data.

▪ In RU--888, Max Output Length is 64Byte. Max Input Length is 64Byte.
The data array must have enough space to Write/Read Data.
▪ [Function list of this API - transfer.dll]
BOOL WINAPI API_USB_Open(UINT uiPID, UINT uiVID);
BOOL WINAPI API_Serial_Open(TCHAR *tcComPort, DCB &r_Dcb);
char* WINAPI API_AskVersion(); //Dll version
char* WINAPI API_AskDevType(); //return string "USB" or "RS232"
BOOL WINAPI API_ClearBuffer(); //Clear RS232 In/Out register
UINT WINAPI API_AskRevCount(); //Query RS232 Input Data in register
BOOL WINAPI API_Write(UCHAR *cData, UINT iLength);
UINT WINAPI API_Read(UCHAR *cData, UINT iLength);
void WINAPI API_Close();
//In C#, you should use bool(4byte).
//In C++, BOOL(4byte)
▪ [USB Flow chain]
1. API_USB_Open()
2. API_Write()
3. ReadLength = API_AskRevCount() // USB can't detect Input data count,, so always returns Max IutPut Report Count.
4. API_Read( ReadLength ) // USB can't detect Input data count, so you need to polling,
▪ [C# DLL Import Declaration]
[DllImport("Transfer.dll", EntryPoint = "API_USB_Open", CallingConvention = CallingConvention.StdCall)]
private static extern bool dllUsbOpen( uint uiPID, uint uiVID );
[DllImport("Transfer.dll", EntryPoint = "API_Serial_Open", CallingConvention = CallingConvention.StdCall)]
private static extern bool dllSerialOpen(string cData, ref DCB r_dcb);
[DllImport("Transfer.dll", EntryPoint = "API_AskVersion", CallingConvention = CallingConvention.StdCall)]
private static extern string dllAskVersion();
[DllImport("Transfer.dll", EntryPoint = "API_AskRevCount", CallingConvention = CallingConvention.StdCall)]
private static extern uint dllAskRevCount();
[DllImport("Transfer.dll", EntryPoint = "API_Write", CallingConvention = CallingConvention.StdCall)]
private static extern bool dllWrite(byte[] cData, uint iLength);
[DllImport("Transfer.dll", EntryPoint = "API_Read", CallingConvention = CallingConvention.StdCall)]
private static extern uint dllRead(byte[] cData, uint iLength);
[DllImport("Transfer.dll", EntryPoint = "API_Close", CallingConvention = CallingConvention.StdCall)]
private static extern void dllClose();
[DllImport("Transfer.dll", EntryPoint = "API_AskDevType", CallingConvention = CallingConvention.StdCall)]
private static extern string dllAskDevType();
[DllImport("Transfer.dll", EntryPoint = "API_ClearBuffer", CallingConvention = CallingConvention.StdCall)]
private static extern bool dllClearBuffer();

Q4. What is the difference between status code: 0x04, 0x08 & 0x8B?

The difference between 0x04 and 0x08
After the module issued the command of writing access (WRITE, KILL, and LOCK etc.) to a tag and did not receive complete response from the individual tag, the
module will reply status code 0x04 to host for the failure.
After the module issued the command of reading access (READ only) to a tag and did not receive complete response or data from the individual tag, the module
will reply status code 0x08 to host for this failure.

Q5. What is the difference between status 0x80 & 0x8F?

The difference among 0x80, 0x8B, and 0x8F
If a tag encounters an error when the module executes an access command that reads from or writes to memory, then the tag shall backscatter an error code
as 0x8X definition.
Relative description for 0x80, 0x8B, and 0x8F, please see the table 3.4 in RU-888 command reference manual document for detail information.
The module only passes these error codes from tag, does not make any further process.

Q6. What is the technical name of UART connector (+5V,Rx,Tx,GND Port) in RU-888-000?

4 pins, 2.54 mm straight wafer header.

Q7. Can you send the crc sub routine?

We can find it in section 8.2 of Command Reference Manual and it is in language C.

Q8. How to read the TID?

Please refer to section 4.3.2.1 of Command Reference Manual for the command RFID_18K6CTagRead (Command ID: 0x37).
We just need to set the ""Memory Bank""(byte offset = 2) as 0x02 to read the TID data."

Q9. Will the module still work when the firmware update fails?

Yes, it will still work under "update mode" by boot loader.

Q10. Can we upgrade the firmware on the module with 0.4.06 firmware?

No, only the firmware after 1.0.0 can support the firmware update.

Q11. Can we query for the frequency under operation?

No, we can only query for the frequency range that are under operation.

Q12. What is the usage of the RSSI under RFID_AntennaPortSetFrequency command mentioned in the API guide? Is the default value of RSSI -84 dbm?

RSSI is the Receive Signal Strength Index。
We can use RFID_AntennaPortSetFrequency to set the threshold of LBT (listen before talk) and the default value is -84dBm.
Usually we will use LBT under multiple readers circumstance. When the RSSI is bigger than the RSSI threshold we set the reader won't turn on the tansmit (listen)
and it will transimit signal (talk) only when the RSSI is smaller than the threshold."

Q13. Is there sleep mode or idle mode for less power consumption?

No. The module will consume about 0.8A and 0.3A for power above and below 18 dBm.When there's no access or inventory command, it consumes about 0.15A.

RFID MEMTI

Copyright © MTI, Inc. All Rights Reserved