NDEF size of the Vivokey Apex line

@amal
I was going to ask this on the Vivokey forum but thought others on here may also want to know also.

I have been doing some research on the memory size of the P71 Chip used in the Apex line.
I couldn’t find info about it on the Vivokey NDEF applet either.
Therefore, apologies if I have missed it somewhere, But what will be the usable user storage of the Apex P71?
enquiring minds want to know :open_book:

2 Likes

Under the features of the P71D320 and P71D321 it list’s:

  • Full flash memory solution up to 344 KB
  • Up to 500 KB non-volatile memory available

Not sure if there what the apex uses though.

4 Likes

the chip we’re planning to use will have around 340k with some used by the OS and rom mask, some by our vivokey applets, and the rest free for user applet loading via fidesmo… so i would guess around 250k-300k or so. however, this storage space is for applets only, so if you want to store anything, you would need to write an applet that provisions some amount of user data space and shuttles the data for you. this is nothing like even the desfire chips… this is a secure computing environment that runs software (applets).

when most people ask about “space” they are talking about user memory that can read from and write to with standard NFC commands… i.e. NDEF data… your phone will want to send ISO14443A style APDU commands to the chip to read memory blocks and write to memory blocks, but the smartcard chip does not understand those commands… it is operating as an ISO7816 smart card, and that command set has no provisions for memory read/write. What it does have is a set of commands for deploying, selecting, communicating with, and removing smart card applets.

put this together and basically what you’ve got is the need for our NDEF applet (vivokey.com/ndef)… in short, with the applet installed, your phone will talk to the chip, start doing some poking around, realize it’s not dealing with an NFC Type 2 chip, then switch up to NFC Type 4 and look for a very specific AID (applet identifier). The AID for NFC Type 4 NDEF data storage is D2760000850100 which is the same AID that is formatted for use in a DESFire chip (xDF2, flexDF, etc.) for use with NDEF data. at this point, the NDEF applet is “selected” meaning the phone can now talk to application D2760000850100 on the chip, which supports memory read/write commands.

the size of the NDEF container is what matters… so on the DESFire EV2 chip, which has 8k, you can define an NDEF container that is 1k, 2k, 3.878317k, 5.89k or all 8k… if you do that, then you can write up to 8k of NDEF data into the container that is formatted into one or more NDEF messages, each of which can have one or more NDEF records. Typically there is only ever one NDEF message, and inside that there are one or more records… so in NFC Tools when you want to write multiple things to your tag, you are creating multiple records within the single NDEF message on the chip… it just happens that on the DESFire that NDEF data is stored inside of an application ID that is defined as a generic binary data storage “file” (applications are called files on DESFire chips) with a specific AID of D2760000850100… on the Apex, the AID D2760000850100 will be a special javacard applet that also supports generic memory read/write commands for storing NDEF formatted data… and the size of that container on the Apex can, in theory, be up to 300k or more… but because of the limitations of data storage and throughput practicalities, we have limited the maximum size of the NDEF container to 16k for the NDEF applet on Apex. We did have a 32k size at one time, but it caused actual problems because it took so very long to provision NDEF data storage within the applet that phones and readers were basically timing out the NFC command and giving up.

10 Likes

Amazing, and perfect answer thanks.

Sounds like an NDEF consideration for the DT app :wink:

4 Likes

Sorry to revive this thread - and maybe this has been answered elsewhere and I missed it, in which case I apologize.

I have a question regarding the NDEF applet: do you know how recent cellphones have to be to talk NFC type 4, know about this applet and successfully retrieve the NDEF? What OSes support it out of the box? Are there any restrictions on the types of chipset required?

I’m trying to get a feel of how ubiquitous the feature is in existing cellphones, to figure out whether I would have 10% or 90% chances of sharing an NDEF stored in the Apex NDEF applet without requiring people to fuck around with their cellphones in any way.

The Samsung Nexus S was basically the first globally available phone with nfc support… came out in 2010… I believe it supported nfc type 4 with the android 6 update…I had one. I think I’m remembering correctly.

All somewhat recent OSes with nfc stacks support it. It’s very old compared to nfc type 5 the spark 1 is and I don’t think we’ve had any OS support issues with spark 1… Just scanning problems and bullshit with an android 10 update that trashed reliable scanning.

My Spark 1 has never had any issues with any phone or tablet.
All Samsung’s.from S7, S8, S9, and Galaxy Tab Active
My latest work phone S21 works flawlessly.

Not a fan of the NFC antenna location ergonomically but reliable read every time.

1 Like