title: ISO15693 (NfcV) / Tag-it HF-I commands throw tag lost exception
body: <p>When I try to transceive commands for NFC-V Tag-it HF-I Plus Inlay tag I get a TagLostException for most of the commands.</p>
  
  <p>From the links I have gone through this exception may be caused by incorrect commands.</p>
  
  <p>How can I create correct ISO15693 command byte[] for Nfc V Tag-it HF-I Plus Inlay?</p>
  
  <p>The datasheet shows the supported commands but how can I create correct commands to read NFC-V tags?</p>
  
  <p>The commands in the document are:</p>
  
  <p><a href="https://i.stack.imgur.com/HbNOJ.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/HbNOJ.jpg" width="400"></a></p>
  
  <p>The tag that I'm trying to read is:</p>
  
  <p><a href="https://i.stack.imgur.com/Z0PqM.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Z0PqM.jpg" width="150"></a></p>
  
  <p>Code:</p>
  
  <pre><code>Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
  Log.i(TAG, " tag "+tag );
  if (tag != null) {
      NfcV tech = NfcV.get(tag);
      Log.i(TAG, " tech "+tech  );
  
      if (tech != null) {
      try {
          tech.connect();
          Log.i(TAG, " on connect" );
          byte[] data = tech.transceive(Nfcv.InventoryRequest());
          Log.i(TAG, "resp data " + data);
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i &lt; data.length; i++) {
              byte b = data[i];
              System.out.println(b);
              sb.append(String.format("%02X ", b));
          }
          System.out.println("response: " + sb.toString());
      } catch (IOException e) {
          e.printStackTrace();
      } finally {
          try {
              tech.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  
  <p>I have gone through the following:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/16903536/nfcv-transceive-command-throws-tag-lost-exception-with-ti-hf-i-plus-tagiso15693">NfcV Transceive command throws tag lost exception with TI HF-I plus tag(ISO15693) in android</a></li>
  <li><a href="https://stackoverflow.com/questions/18211548/transceive-failed-on-iso15693-tag-it-hf-i">Transceive Failed on ISO15693 / Tag-it HF-I</a></li>
  <li><a href="https://stackoverflow.com/questions/19784929/android-nfcv-stay-quiet-command">Android NfcV Stay Quiet Command</a></li>
  <li><a href="https://stackoverflow.com/questions/12688235/android-nfcv-iso-15693-tag">Android NfcV (ISO 15693) tag</a></li>
  <li><a href="https://stackoverflow.com/questions/23827996/connection-error-when-reading-android-nfcv-tags">Connection error when reading Android NfcV tags</a></li>
  </ul>
  
  <h3>EDIT</h3>
  
  <p>Commands that I have tried:</p>
  
  <pre><code>public class Nfcv {
      // texas get system info -&gt; tag lost exception
      public static byte[] GET_SYSTEM_INFO = ReadNfcActivity.hexStringToByteArray("010A00030418002B0000");
  
      //read multiple blocks -&gt; not working
      byte[] read_multiple_blocks= ReadNfcActivity.hexStringToByteArray("010C00030418002301020000");
  
      byte[] readSingleBlock = ReadNfcActivity.hexStringToByteArray("010B000304180020050000");
  
      // readUID generic command -&gt; not working
      public static byte[] readUID = ReadNfcActivity.hexStringToByteArray("FFCA000000");
  
      public static  byte[] InventoryRequest(){
          //working response: 00 00 3A E5 00 04 00 00 07 E0
          // R/0 UID is E0 07 00 00 04 00 E5 3A 00 00 (reverse)
          return new byte[] { (byte) 0x24, (byte) 0x01, (byte) 0x00};
      }
  
      //-&gt; not working
      private byte[] ReadSingleBlockUnadressed(byte blocknumber) {
          return new byte[] {(byte) 0x00, (byte) 0x20, blocknumber};
      }
  
      //-&gt; response 03
      public static byte[] get_system_info = {0x00,(byte)0x2B};
  }
  </code></pre>