Skip to main content
Any Framework

Iot.Device.Card, Mifare, Ultralight and NDEF assembly for .NET nanoFramework C# projects

Published
May 11, 2026
5mo ago
Total Downloads
40.4K
40,366

Install

dotnet add package nanoFramework.Iot.Device.Card --version 2.0.0-preview.55

No framework information available.

README

RFID shared elements

Common elements of all RFID and NFC readers like the type of cards 14443 Type A, Type B, Innovision Jewel.

This contains as well an abstract class that has to be implemented by readers to have a transparent way of managing Mifare, Ultralight cards and other high level cards.

namespace Iot.Device.Card
{
    /// <summary>
    /// Abstract class implementing a specific Write and Read function
    /// This class allow to transceive information with the card
    /// This class has to be implemented in all RFID/NFC/Card readers
    /// So Mifare cards can be used the same way independent of any reader
    /// </summary>
    public abstract class CardTransceiver
    {
        /// <summary>
        /// This function has to be implemented by all NFC/RFID/Card readers. This function is used in exchange of data with
        /// the reader and the cards.
        /// </summary>
        /// <param name="targetNumber">Some readers have a notion of target number for the cards as they can read multiple ones</param>
        /// <param name="dataToSend">A standardized raw buffer with the command at the position 0 in the array</param>
        /// <param name="dataFromCard">If any data are read from the card, they will be put into this array</param>
        /// <returns>-1 in case of error, otherwise the number of bytes read and copied into the <paramref name="dataFromCard"/> array</returns>
        public abstract int Transceive(byte targetNumber, SpanByte dataToSend, SpanByte dataFromCard);

        /// <summary>
        /// Once you have an authentication operation failing with Mifare cards or a read/write, the card stop.
        /// TYhe only way to have it back is to send the unselect and anti collision.
        /// This function provides this feature
        /// </summary>
        /// <param name="targetNumber">The target number to reselect</param>
        /// <returns>True if success</returns>
        public abstract bool ReselectTarget(byte targetNumber);
    }
}

Changes from Previous Version

No structural changes between v2.0.0-preview.47 and v2.0.0-preview.55.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.