From 519a0284773b8090ae97bb1b2504878470f2c6aa Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 1 Dec 2020 14:37:05 +0100 Subject: [PATCH] Prep RC522 rfid reader pt3 --- lib/lib_div/rfid-1.4.7/README.rst | 376 ++++ lib/lib_div/rfid-1.4.7/UNLICENSE | 24 + lib/lib_div/rfid-1.4.7/changes.txt | 185 ++ .../rfid-1.4.7/doc/PICCMemoryLayout.md | 67 + .../Arduino-Uno-r3-with-RFID-RC522.fzz | Bin 0 -> 23140 bytes .../Arduino-Uno-r3-with-RFID-RC522.png | Bin 0 -> 289125 bytes .../doc/fritzing/RFID-RC522 - Pin Layout.png | Bin 0 -> 165594 bytes .../doc/fritzing/RFID-RC522-v2.fzpz | Bin 0 -> 17796 bytes .../rfid-1.4.7/doc/fritzing/RFID-RC522-v2.png | Bin 0 -> 30070 bytes .../doc/fritzing/RFID-RC522-v3.fzpz | Bin 0 -> 28878 bytes .../rfid-1.4.7/doc/fritzing/RFID-RC522-v3.png | Bin 0 -> 17789 bytes lib/lib_div/rfid-1.4.7/doc/rfidmifare.pdf | Bin 0 -> 317469 bytes .../examples/AccessControl/AccessControl.ino | 537 +++++ .../examples/ChangeUID/ChangeUID.ino | 110 + .../rfid-1.4.7/examples/DumpInfo/DumpInfo.ino | 67 + .../examples/FixBrickedUID/FixBrickedUID.ino | 53 + .../MifareClassicValueBlock.ino | 319 +++ .../MinimalInterrupt/MinimalInterrupt.ino | 137 ++ .../examples/Ntag216_AUTH/Ntag216_AUTH.ino | 62 + .../examples/RFID-Cloner/RFID-Cloner.ino | 312 +++ .../examples/ReadAndWrite/ReadAndWrite.ino | 200 ++ .../rfid-1.4.7/examples/ReadNUID/ReadNUID.ino | 127 ++ .../ReadUidMultiReader/ReadUidMultiReader.ino | 97 + .../firmware_check/firmware_check.ino | 61 + .../rfid_default_keys/rfid_default_keys.ino | 158 ++ .../rfid_read_personal_data.ino | 138 ++ .../rfid_write_personal_data.ino | 156 ++ lib/lib_div/rfid-1.4.7/keywords.txt | 223 ++ lib/lib_div/rfid-1.4.7/library.json | 15 + lib/lib_div/rfid-1.4.7/library.properties | 9 + lib/lib_div/rfid-1.4.7/src/MFRC522.cpp | 1929 +++++++++++++++++ lib/lib_div/rfid-1.4.7/src/MFRC522.h | 371 ++++ .../rfid-1.4.7/src/MFRC522Extended.cpp | 1160 ++++++++++ lib/lib_div/rfid-1.4.7/src/MFRC522Extended.h | 120 + lib/lib_div/rfid-1.4.7/src/deprecated.h | 20 + lib/lib_div/rfid-1.4.7/src/require_cpp11.h | 12 + tasmota/xsns_40_pn532.ino | 3 + tasmota/xsns_80_mfrc522.ino | 37 +- 38 files changed, 7079 insertions(+), 6 deletions(-) create mode 100644 lib/lib_div/rfid-1.4.7/README.rst create mode 100644 lib/lib_div/rfid-1.4.7/UNLICENSE create mode 100644 lib/lib_div/rfid-1.4.7/changes.txt create mode 100644 lib/lib_div/rfid-1.4.7/doc/PICCMemoryLayout.md create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/Arduino-Uno-r3-with-RFID-RC522.fzz create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/Arduino-Uno-r3-with-RFID-RC522.png create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522 - Pin Layout.png create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v2.fzpz create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v2.png create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v3.fzpz create mode 100644 lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v3.png create mode 100644 lib/lib_div/rfid-1.4.7/doc/rfidmifare.pdf create mode 100644 lib/lib_div/rfid-1.4.7/examples/AccessControl/AccessControl.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/ChangeUID/ChangeUID.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/DumpInfo/DumpInfo.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/FixBrickedUID/FixBrickedUID.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/MifareClassicValueBlock/MifareClassicValueBlock.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/MinimalInterrupt/MinimalInterrupt.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/Ntag216_AUTH/Ntag216_AUTH.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/RFID-Cloner/RFID-Cloner.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/ReadAndWrite/ReadAndWrite.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/ReadNUID/ReadNUID.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/ReadUidMultiReader/ReadUidMultiReader.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/firmware_check/firmware_check.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/rfid_default_keys/rfid_default_keys.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/rfid_read_personal_data/rfid_read_personal_data.ino create mode 100644 lib/lib_div/rfid-1.4.7/examples/rfid_write_personal_data/rfid_write_personal_data.ino create mode 100644 lib/lib_div/rfid-1.4.7/keywords.txt create mode 100644 lib/lib_div/rfid-1.4.7/library.json create mode 100644 lib/lib_div/rfid-1.4.7/library.properties create mode 100644 lib/lib_div/rfid-1.4.7/src/MFRC522.cpp create mode 100644 lib/lib_div/rfid-1.4.7/src/MFRC522.h create mode 100644 lib/lib_div/rfid-1.4.7/src/MFRC522Extended.cpp create mode 100644 lib/lib_div/rfid-1.4.7/src/MFRC522Extended.h create mode 100644 lib/lib_div/rfid-1.4.7/src/deprecated.h create mode 100644 lib/lib_div/rfid-1.4.7/src/require_cpp11.h diff --git a/lib/lib_div/rfid-1.4.7/README.rst b/lib/lib_div/rfid-1.4.7/README.rst new file mode 100644 index 000000000..98ac9a953 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/README.rst @@ -0,0 +1,376 @@ +MFRC522 +======= + +.. image:: https://img.shields.io/maintenance/no/2019.svg + :target: `development`_ +.. image:: https://travis-ci.org/miguelbalboa/rfid.svg?branch=master + :target: https://travis-ci.org/miguelbalboa/rfid +.. image:: https://img.shields.io/badge/C%2B%2B-11-brightgreen.svg + :target: `compatible ide`_ +.. image:: https://img.shields.io/github/release/miguelbalboa/rfid.svg?colorB=green + :target: https://github.com/miguelbalboa/rfid/releases +.. image:: https://img.shields.io/badge/ArduinoIDE-%3E%3D1.6.10-lightgrey.svg + :target: `compatible ide`_ + +Arduino library for MFRC522 and other RFID RC522 based modules. + +Read and write different types of Radio-Frequency IDentification (RFID) cards +on your Arduino using a RC522 based reader connected via the Serial Peripheral +Interface (SPI) interface. + + +.. _development: +Development +---------- + +**The development by owner miguelbalboa has ended**. + +**Feature status: complete freeze**; no function or API change. + +**Code status: partial freeze**; just fixes/typos or documentation updates; *no* extensions for other boards; *no* new examples. + +**Maintenance status: sporadically**. + +**Why no further development?** +This library has a long history and is used in many projects. These projects often do not document what version they use. Committing changes might break those old projects and lead to bad experiences (for beginners) and support requests. For these reasons the library is in freeze mode. You can still commit typo, documentation or bug fixes. + + +.. _before buy: +Before buy +---------- +Please notice that there are many sellers (ebay, aliexpress, ..) who sell mfrc522 boards. **The quality of these boards are extremely different.** Some are soldered with wrong/low quality capacitors or fake/defect mfrc522. + +**Please consider buying several devices from different suppliers.** So the chance of getting a working device is higher. + +If you got a bad board and you can tell us how to detect those boards (silk, chip description, ..), please share your knowledge. + + +.. _what works and not: +What works and not? +---------- + +* **Works** + + #. Communication (Crypto1) with MIFARE Classic (1k, 4k, Mini). + #. Communication (Crypto1) with MIFARE Classic compatible PICCs. + #. Firmware self check of MFRC522. + #. Set the UID, write to sector 0, and unbrick Chinese UID changeable MIFARE cards. + #. Manage the SPI chip select pin (aka SS, SDA) + +* **Works partially** + + #. Communication with MIFARE Ultralight. + #. Other PICCs (Ntag216). + #. More than 2 modules, require a multiplexer `#191 `_. + +* **Doesn't work** + + #. MIFARE DESFire, MIFARE DESFire EV1/EV2, not supported by software. + #. Communication with 3DES or AES, not supported by software. + #. Peer-to-peer (ISO/IEC 18092), not `supported by hardware`_. + #. Communication with smart phone, not `supported by hardware`_. + #. Card emulation, not `supported by hardware`_. + #. Use of IRQ pin. But there is a proof-of-concept example. + #. With Intel Galileo (Gen2) see `#310 `__, not supported by software. + #. Power reduction modes `#269 `_, not supported by software. + #. I2C instead of SPI `#240 `_, not supported by software. + #. UART instead of SPI `#281 `_, not supported by software. + +* **Need more?** + + #. If software: code it and make a pull request. + #. If hardware: buy a more expensive like PN532 (supports NFC and many more, but costs about $15 and not usable with this library). + + +.. _compatible ide: +Compatible IDE +---------- +This library works with Arduino IDE 1.6, older versions are **not supported** and will cause compiler errors. The built-in library manager is supported. + +If you use your own compiler, you have to enable ``c++11``-support. + + +.. _compatible boards: +Compatible boards +---------- + +**!!!Only for advanced users!!!** + +This library is compatible with the Teensy and ESP8266 if you use the board plugin of the Arduino IDE. Not all examples are available for every board. You also have to change pins. See `pin layout`_. + +Some user made some patches/suggestions/ports for other boards: + +* Linux: https://github.com/miguelbalboa/rfid/pull/216 +* chipKIT: https://github.com/miguelbalboa/rfid/pull/230 +* ESP8266 (native): https://github.com/miguelbalboa/rfid/pull/235 +* LPCOPen (in C): https://github.com/miguelbalboa/rfid/pull/258 + +Note that the main target/support of library is still Arduino. + +.. _support issue: +Support/issue +---------- +1. First checkout `what works and not`_ and `troubleshooting`_ . + +2. It seems to be a hardware issue or you need support to program your project? + Please ask in the official `Arduino forum`_, where you would get a much faster answer than on Github. + +3. It seems to be a software issue? + Open an issue on Github. + + +.. _code style: +Code style +---------- + +Please use ``fixed integers``, see `stdint.h`_. Why? This library is compatible with different boards which use different architectures (16bit and 32bit.) Unfixed ``int`` variables have different sizes in different environments and may cause unpredictable behaviour. + + +.. _pin layout: +Pin Layout +---------- + +The following table shows the typical pin layout used: + ++-----------+----------+---------------------------------------------------------------+--------------------------+ +| | PCD | Arduino | Teensy | +| +----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ +| | MFRC522 | Uno / 101 | Mega | Nano v3 |Leonardo / Micro | Pro Micro | 2.0 | ++ 2.0 | 3.1 | ++-----------+----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ +| Signal | Pin | Pin | Pin | Pin | Pin | Pin | Pin | Pin | Pin | ++===========+==========+=============+=========+=========+=================+===========+========+========+========+ +| RST/Reset | RST | 9 [1]_ | 5 [1]_ | D9 | RESET / ICSP-5 | RST | 7 | 4 | 9 | ++-----------+----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ +| SPI SS | SDA [3]_ | 10 [2]_ | 53 [2]_ | D10 | 10 | 10 | 0 | 20 | 10 | ++-----------+----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ +| SPI MOSI | MOSI | 11 / ICSP-4 | 51 | D11 | ICSP-4 | 16 | 2 | 22 | 11 | ++-----------+----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ +| SPI MISO | MISO | 12 / ICSP-1 | 50 | D12 | ICSP-1 | 14 | 3 | 23 | 12 | ++-----------+----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ +| SPI SCK | SCK | 13 / ICSP-3 | 52 | D13 | ICSP-3 | 15 | 1 | 21 | 13 | ++-----------+----------+-------------+---------+---------+-----------------+-----------+--------+--------+--------+ + ++-----------+---------------+---------+ +| | ESP8266 | Arduino | +| +---------------+---------+ +| | Wemos D1 mini | Yun [4]_| ++-----------+---------------+---------+ +| Signal | Pin | Pin | ++===========+===============+=========+ +| RST/Reset | D3 | Pin9 | ++-----------+---------------+---------+ +| SPI SS | D8 | Pin10 | ++-----------+---------------+---------+ +| SPI MOSI | D7 | ICSP4 | ++-----------+---------------+---------+ +| SPI MISO | D6 | ICSP1 | ++-----------+---------------+---------+ +| SPI SCK | D5 | ICSP3 | ++-----------+---------------+---------+ + +.. [1] Configurable, typically defined as RST_PIN in sketch/program. +.. [2] Configurable, typically defined as SS_PIN in sketch/program. +.. [3] The SDA pin might be labeled SS on some/older MFRC522 boards. +.. [4] Source: https://github.com/miguelbalboa/rfid/issues/111#issuecomment-420433658 . + +Important: If your micro controller supports multiple SPI interfaces, the library only uses the **default (first) SPI** of the Arduino framework. + +.. _hardware: +Hardware +-------- + +There are three hardware components involved: + +1. **Micro Controller**: + +* An `Arduino`_ or compatible executing the Sketch using this library. + +* Prices vary from USD 7 for clones, to USD 75 for "starter kits" (which + might be a good choice if this is your first exposure to Arduino; + check if such kit already includes the Arduino, Reader, and some Tags). + +2. **Proximity Coupling Device (PCD)**: + +* The PCD is the actual RFID **Reader** based on the `NXP MFRC522`_ Contactless + Reader Integrated Circuit. + +* Readers can be found on `eBay`_ for around USD 5: search for *"rc522"*. + +* You can also find them on several web stores. They are often included in + *"starter kits"*, so check your favourite electronics provider as well. + +3. **Proximity Integrated Circuit Card (PICC)**: + +* The PICC is the RFID **Card** or **Tag** using the `ISO/IEC 14443A`_ + interface, for example Mifare or NTAG203. + +* One or two might be included with the Reader or *"starter kit"* already. + + +.. _protocol: +Protocols +--------- + +1. The micro controller and the reader use SPI for communication. + +* The protocol is described in the `NXP MFRC522`_ datasheet. + +* See the `Pin Layout`_ section for details on connecting the pins. + +2. The reader and the tags communicate using a 13.56 MHz electromagnetic field. + +* The protocol is defined in ISO/IEC 14443-3:2011 Part 3 Type A. + + * Details are found in chapter 6 *"Type A – Initialization and anticollision"*. + + * See http://wg8.de/wg8n1496_17n3613_Ballot_FCD14443-3.pdf for a free version + of the final draft (which might be outdated in some areas). + + * The reader does not support ISO/IEC 14443-3 Type B. + + +.. _security: +Security +------- +* The **UID** of a card **can not be used** as an unique identification for security related projects. Some Chinese cards allow to change the UID which means you can easily clone a card. For projects like *access control*, *door opener* or *payment systems* you **must implement** an **additional security mechanism** like a password or normal key. + +* This library only supports crypto1-encrypted communication. Crypto1 has been known as `broken`_ for a few years, so it does NOT offer ANY security, it is virtually unencrypted communication. **Do not use it for any security related applications!** + +* This library does not offer 3DES or AES authentication used by cards like the Mifare DESFire, it may be possible to be implemented because the datasheet says there is support. We hope for pull requests :). + + +.. _troubleshooting: +Troubleshooting +------- + +* **I don't get input from reader** or **WARNING: Communication failure, is the MFRC522 properly connected?** + + #. Check your physical connection, see `Pin Layout`_ . + #. Check your pin settings/variables in the code, see `Pin Layout`_ . + #. Check your pin header soldering. Maybe you have cold solder joints. + #. Check voltage. Most breakouts work with 3.3V. + #. SPI only works with 3.3V, most breakouts seem 5V tolerant, but try a level shifter. + #. SPI does not like long connections. Try shorter connections. + #. SPI does not like prototyping boards. Try soldered connections. + #. According to reports #101, #126 and #131, there may be a problem with the soldering on the MFRC522 breakout. You could fix this on your own. + + +* **Firmware Version: 0x12 = (unknown) or other random values** + + #. The exact reason of this behaviour is unknown. + #. Some boards need more time after `PCD_Init()` to be ready. As workaround add a `delay(4)` directly after `PCD_Init()` to give the PCD more time. + #. If this sometimes appears, a bad connection or power source is the reason. + #. If the firmware version is reported permanent, it is very likely that the hardware is a fake or has a defect. Contact your supplier. + + +* **Sometimes I get timeouts** or **sometimes tag/card does not work.** + + #. Try the other side of the antenna. + #. Try to decrease the distance between the MFRC522 and your tag. + #. Increase the antenna gain per firmware: ``mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);`` + #. Use better power supply. + #. Hardware may be corrupted, most products are from china and sometimes the quality is really poor. Contact your seller. + + +* **My tag/card doesn't work.** + + #. Distance between antenna and token too large (>1cm). + #. You got the wrong type PICC. Is it really 13.56 MHz? Is it really a Mifare Type A? + #. NFC tokens are not supported. Some may work. + #. Animal RFID tags are not supported. They use a different frequency (125 kHz). + #. Hardware may be corrupted, most products are from china and sometimes the quality is really poor. Contact your seller. + #. Newer versions of Mifare cards like DESFire/Ultralight maybe not work according to missing authentication, see `security`_ or different `protocol`_. + #. Some boards bought from Chinese manufactures do not use the best components and this can affect the detection of different types of tag/card. In some of these boards, the L1 and L2 inductors do not have a high enough current so the signal generated is not enough to get Ultralight C and NTAG203 tags to work, replacing those with same inductance (2.2uH) but higher operating current inductors should make things work smoothly. Also, in some of those boards the harmonic and matching circuit needs to be tuned, for this replace C4 and C5 with 33pf capacitors and you are all set. (Source: `Mikro Elektronika`_) + +* **My mobile phone doesn't recognize the MFRC522** or **my MFRC522 can't read data from other MFRC522** + + #. Card simulation is not supported. + #. Communication with mobile phones is not supported. + #. Peer to peer communication is not supported. + +* **I can only read the card UID.** + + #. Maybe the `AccessBits` have been accidentally set and now an unknown password is set. This can not be reverted. + #. Probably the card is encrypted. Especially official cards like public transport, university or library cards. There is *no* way to get access with this library. + +* **I need more features.** + + #. If software: code it and make a pull request. + #. If hardware: buy a more expensive chip like the PN532 (supports NFC and many more, but costs about $15) + + +.. _license: +License +------- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to https://unlicense.org/ + + +.. _dependency: +Dependency +---------- + +* **Arduino.h** + + * From: Arduino IDE / target specific + * License: (target: Arduino) GNU Lesser General Public License 2.1 + +* **SPI.h** + + * From: Arduino IDE / target specific + * License: (target: Arduino) GNU Lesser General Public License 2.1 + +* **stdint.h** + + * From: Arduino IDE / Compiler and target specific + * License: different + + +History +------- + +The MFRC522 library was first created in Jan 2012 by Miguel Balboa (from +http://circuitito.com) based on code by Dr. Leong (from http://B2CQSHOP.com) +for *"Arduino RFID module Kit 13.56 Mhz with Tags SPI W and R By COOQRobot"*. + +It was translated into English and rewritten/refactored in the fall of 2013 +by Søren Thing Andersen (from http://access.thing.dk). + +It has been extended with functionality to alter sector 0 on Chinese UID changeable MIFARE card in Oct 2014 by Tom Clement (from http://tomclement.nl). + +Maintained by miguelbalboa until 2016. +Maintained by Rotzbua from 2016 until 2020. + + +.. _arduino: https://arduino.cc/ +.. _ebay: https://www.ebay.com/ +.. _iso/iec 14443a: https://en.wikipedia.org/wiki/ISO/IEC_14443 +.. _iso/iec 14443-3\:2011 part 3: +.. _nxp mfrc522: https://www.nxp.com/documents/data_sheet/MFRC522.pdf +.. _broken: https://eprint.iacr.org/2008/166 +.. _supported by hardware: https://web.archive.org/web/20151210045625/http://www.nxp.com/documents/leaflet/939775017564.pdf +.. _Arduino forum: https://forum.arduino.cc +.. _stdint.h: https://en.wikibooks.org/wiki/C_Programming/C_Reference/stdint.h +.. _Mikro Elektronika: https://forum.mikroe.com/viewtopic.php?f=147&t=64203 diff --git a/lib/lib_div/rfid-1.4.7/UNLICENSE b/lib/lib_div/rfid-1.4.7/UNLICENSE new file mode 100644 index 000000000..efb980881 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/UNLICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/lib/lib_div/rfid-1.4.7/changes.txt b/lib/lib_div/rfid-1.4.7/changes.txt new file mode 100644 index 000000000..6ece7c8a1 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/changes.txt @@ -0,0 +1,185 @@ +-- Add changes to unreleased tag until we make a release. + +xx 2020, v1.4.8 + +25 Jun 2020, v1.4.7 +- Fixed typos +- Moved PICC memory layout to /doc + +21 Jan 2020, v1.4.6 +- Library in freeze mode, no new features, no new examples, just bugfixes to keep compatibility for old projects +- Updated documentation +- Removed deprecation warnings due code freeze + +12 Jun 2019, v1.4.5 +- Library in freeze mode, no new features, no new examples, just bugfixes to keep compatibility for old projects +- Updated README + +31 Mar 2019, v1.4.4 +- Fixed example +- Fixed UnbrickUidSector +- Updated comments +- Removed teensy from CI and PlatformIO config + +27 Oct 2018, v1.4.3 +- Added counterfeit detection and hint about bad boards +- Improved hardware based reset + +04 Oct 2018, v1.4.2 +- Fixed keywords +- Changed development status of library + +04 Oct 2018, v1.4.1 +- Replaced UINT8_MAX by UNUSED_PIN +- Replaced default value NULL for pointer with correct nullptr +- Added pin layout for wemos d1 mini @mmone +- Added alternative fritzing layout for mfrc522 reader @jose1711 +- Added soft power control functions @Bill2462 +- Fixed typo in example ReadAndWrite.ino @Drachenfrucht1 +- Fixed grammar @KiddieD +- Fixed infinite loop in example AccessControl.ino @mads256c +- Fixed 0-index key ID equals to 0 fails in AccessControl.ino @thoaitrieu +- Changed type boolean to bool for a more common use @Rotzbua +- Fixed wrong var names in PICC_Select MFRC522.cpp @tuyethoa08041997 +- Fixed hang PCD_Init() on non-arduino boards @heziegl +- Fixed possible infinite loop PCD_Reset() @psgreco +- And many thanks to all other contributors + +13 Apr 2018, v1.4.0 +- Replaced UINT8_MAX by UNUSED_PIN @Rotzbua +- Fixed hang PCD_Init() on non-arduino boards @heziegl +- deprecate MIFARE_SetAccessBits @Rotzbua +- IMPORTANT: v1.4.X will be last version under license "unlicense" + +22 Mar 2017, v1.3.6 +- Added deprecate and compiler warnings @Rotzbua + +8 Apr 2017, v1.3.5 +- Updated "AccessControl.ino", bugs fixed and alternate wipe button polling method without using other library @beyondszine reviewed by @omersiar +- Updated README notice about port for esp8266 @mmmmar + +7 Apr 2017, v1.3.4 +- Added new example "rfid_read_personal_data.ino" @ryand1011 +- Updated example "rfid_write_personal_data.ino" code style to Arduino IDE @Rotzbua +- Removed (temp.) Teensy from travis build script because fails @Rotzbua + +26 Mar 2017, v1.3.3 +- Fixed bugs in MFRC522Extended, now should work with Desfire.h from JPG-Consulting @Rotzbua +- Fixed UINT8_MAX error @Rotzbua + +15 Mar 2017, v1.3.2 +- Added ESP8266 to library.properties + +15 Mar 2017, v1.3.1 +- Fixed compiler warning in MFRC522Extended @Rotzbua +- Removed unused function @Rotzbua + +13 Mar 2017, v1.3.0 +- Warning: Source has moved to folder src! +- Added addtional class to support ISO/IEC 14443-4 PICCs @JPG-Consulting +- Added RATS (Request for Answer To Select) @JPG-Consulting +- More information see https://github.com/miguelbalboa/rfid/pull/271 @JPG-Consulting + +13 Mar 2017, v1.2.1 +- Removed need for reset pin #275 @tkoester +- Added SPI speed option + Various minor changes #276 @tuyethoa08041997 +- Updated documentation, travis build script and small code change @Rotzbua + +3 Jan 2017, v1.2.0 +- Warning: This version introduce usage of stdint.h, usage of not well defined int types are abandoned. + Interface has changed: e.g. long -> int32_t + @Rotzbua +- Removed problematic example examples/servo_motor/servo_motor.ino @omersiar +- Added examples/AccessControl/AccessControl.ino @omersiar +- Fixed minor issues reported in #211 @omersiar +- Added bad components hint to README @danielcbit +- Fixed selftest @surr +- Fixed auth problem with long UIDs @surr + +26 Aug 2016, v1.1.9 +- Warning: Only Arduino IDE version 1.6 is supported, please update your IDE to 1.6 to use this Library. +- Added ESP8266 platform support @Rotzbua +- Changed README.rst content to show more info @Rotzbua +- Minor Changes to examples/ReadUidMultiReader/ReadUidMultiReader.ino example @Rotzbua + +11 Feb 2016, v1.1.8 +- Added examples/MinimalInterrupt/MinimalInterrupt.ino example, Interrupt example @lmmeng +- Added .gitignore file allows the project to be more easily used as a subproject. @BenWiederhake +- Added Added Teensy 2.0 & Tensy++ 2.0 pinouts to README.rst @jkutianski + +16 Jan 2016, v1.1.7 +- README.rst Spelling and Grammar Tweak @cuthbertnibbles +- Added examples/servo_motor/servo_motor.ino example, Arduino RFID Access Control with a Servo Motor @techied +- Added examples/RFID-Cloner/RFID-Cloner.ino Copy from rfid cards with standard authentication @stefanblommaert +- Fix compile error at examples/RFID-Cloner/RFID-Cloner.ino, using MFRC522:::PICC_Type, @Rotzbua + +06 Jan 2016, v1.1.6 +- Fixed compilation error for examples/ReadNUID/ReadNUID.ino example. @Rotzbua + +04 Jan 2016, v1.1.5 +- Use settings functions on SPI libraries, setSPIConfig was deleted, now the library use SPI.beginTransaction() and SPI.endTransaction() @sophiekovalevsky +- Added examples/ReadNUID/ReadNUID.ino example, showing how to read new NUID from a PICC to serial. @sophiekovalevsky + +03 Jan 2016, v1.1.4 +- Added Authentication with Ntag 213,215,216 returns the pACK MFRC522::PCD_NTAG216_AUTH @Gargantuanman +- Starting to use versions http://semver.org/ +- Continuous Integration @ivankravets +- functions return MFRC522::StatusCode and MFRC522::PICC_Type instead of generic byte @rotzbua +- removed int-values of MFRC522::StatusCode and MFRC522::PICC_Type @rotzbua + +05 Dec 2015 +- recognize infineon cards correctly @mayatforest +- added multi reader support, see example @lmmeng + +10 Nov 2014 +- Updated the changelog. +- Added makefile. + +24 Oct 2014 +- Added PlatformIO-based manifest file. + +17 Jul 2014 +- Written documentation for the library. +- Added rfid_default_keys example. + +11 Jun 2014 +- Updated example: ReadAndWrite. + +14 Apr 2014 +- Updated examples: DumpInfo, MifareClassicValueBlock, and ReadAndWrite. + +12 Feb 2014 +- Fixed resetPowerDownPin initial state. + +29 Jan 2014 +- Fixed chipSelectPin initial state. + +30 Nov 2013 +- Examples put in their own folders. +- Updated the keywords.txt file. + +12 Nov 2013 +- Updated examples: DumpInfo, MifareClassicValueBlock, and ReadAndWrite. + +20 Oct 2013 +- All constants, functions and parameters are now commented in English. +- Code refactored, most function names have changed. +- Support ISO-14443-3 anti collision and 4/7/10 byte UIDs (cascade levels). +- Added functions for MIFARE Classic Decrement/Increment/Restore/Transfer + and MIFARE Ultralight Write. +- New examples written. + +19 Oct 2013 +- Renamed library from RFID to MFRC522 (RFID seemed to generic). +- Register names changed to comply with datasheet. +- Global defines moved into class. + +24 Sep 2013 +- Turn off encryption when tag is halted. + +27 Jan 2013 +- Added README and small TODO list. +- Added example to show Serial on LCD display. + +09 Sep 2012 +- Initial commit to GitHub. diff --git a/lib/lib_div/rfid-1.4.7/doc/PICCMemoryLayout.md b/lib/lib_div/rfid-1.4.7/doc/PICCMemoryLayout.md new file mode 100644 index 000000000..944d90545 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/doc/PICCMemoryLayout.md @@ -0,0 +1,67 @@ +# Memory Layout of common PICCs + +To read and write from MIFARE PICCs, the MIFARE protocol is used after the PICC has been selected. + +## Datasheet References + +The **MIFARE Classic** chips and protocol is described in the datasheets: + * 1K: https://www.mouser.com/ds/2/302/MF1S503x-89574.pdf + * 4K: https://datasheet.octopart.com/MF1S7035DA4,118-NXP-Semiconductors-datasheet-11046188.pdf + * Mini: http://www.idcardmarket.com/download/mifare_S20_datasheet.pdf + +The **MIFARE Ultralight** chip and protocol is described in the datasheets: + * Ultralight: https://www.nxp.com/documents/data_sheet/MF0ICU1.pdf + * Ultralight C: https://www.nxp.com/documents/short_data_sheet/MF0ICU2_SDS.pdf + +## MIFARE Classic 1K (MF1S503x) + +Has 16 sectors4 blocks/sector16 bytes/block = 1024 bytes. + + The blocks are numbered 0-63. + Block 3 in each sector is the Sector Trailer. See https://www.mouser.com/ds/2/302/MF1S503x-89574.pdf sections 8.6 and 8.7: + Bytes 0-5: Key A + Bytes 6-8: Access Bits + Bytes 9: User data + Bytes 10-15: Key B (or user data) + Block 0 is read-only manufacturer data. + To access a block, an authentication using a key from the block's sector must be performed first. + Example: To read from block 10, first authenticate using a key from sector 3 (blocks 8-11). + All keys are set to FFFFFFFFFFFFh at chip delivery. + Warning: Please read section 8.7 "Memory Access". It includes this text: if the PICC detects a format violation the whole sector is irreversibly blocked. + To use a block in "value block" mode (for Increment/Decrement operations) you need to change the sector trailer. Use PICC_SetAccessBits() to calculate the bit patterns. + +## MIFARE Classic 4K (MF1S703x): + +Has (32 sectors4 blocks/sector + 8 sectors16 blocks/sector)16 bytes/block = 4096 bytes. + + The blocks are numbered 0-255. + The last block in each sector is the Sector Trailer like above. + +## MIFARE Classic Mini (MF1 IC S20): + +Has 5 sectors4 blocks/sector16 bytes/block = 320 bytes. + + The blocks are numbered 0-19. + The last block in each sector is the Sector Trailer like above. + +## MIFARE Ultralight (MF0ICU1): + +Has 16 pages of 4 bytes = 64 bytes. + + Pages 0 + 1 is used for the 7-byte UID. + Page 2 contains the last check digit for the UID, one byte manufacturer internal data, and the lock bytes (see https://www.nxp.com/documents/data_sheet/MF0ICU1.pdf section 8.5.2) + Page 3 is OTP, One Time Programmable bits. Once set to 1 they cannot revert to 0. + Pages 4-15 are read/write unless blocked by the lock bytes in page 2. + +## MIFARE Ultralight C (MF0ICU2): + +Has 48 pages of 4 bytes = 192 bytes. + + Pages 0 + 1 is used for the 7-byte UID. + Page 2 contains the last check digit for the UID, one byte manufacturer internal data, and the lock bytes (see https://www.nxp.com/documents/data_sheet/MF0ICU1.pdf section 8.5.2) + Page 3 is OTP, One Time Programmable bits. Once set to 1 they cannot revert to 0. + Pages 4-39 are read/write unless blocked by the lock bytes in page 2. + Page 40 Lock bytes + Page 41 16 bit one way counter + Pages 42-43 Authentication configuration + Pages 44-47 Authentication key \ No newline at end of file diff --git a/lib/lib_div/rfid-1.4.7/doc/fritzing/Arduino-Uno-r3-with-RFID-RC522.fzz b/lib/lib_div/rfid-1.4.7/doc/fritzing/Arduino-Uno-r3-with-RFID-RC522.fzz new file mode 100644 index 0000000000000000000000000000000000000000..7c98c49de0616fabec5be6a9cf75ddb4f23c187f GIT binary patch literal 23140 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%0DH4pBH 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 N{JIGj)c*eaKLF^J1kC^d literal 0 HcmV?d00001 diff --git a/lib/lib_div/rfid-1.4.7/doc/fritzing/Arduino-Uno-r3-with-RFID-RC522.png b/lib/lib_div/rfid-1.4.7/doc/fritzing/Arduino-Uno-r3-with-RFID-RC522.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5f59d9249ad73417121c035ef90600dac7ea7d GIT binary patch literal 289125 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�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'X89C<@H$@fp5tz&X!48o&N*+{6>? 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 z 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 z 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

uR`)25m4Fp>N<7-N$ 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

`FxiHb!UO%TX+cOg*(@&FUwTUzTtuNa#I>5N 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�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 CsryF& literal 0 HcmV?d00001 diff --git a/lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v2.fzpz b/lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v2.fzpz new file mode 100644 index 0000000000000000000000000000000000000000..1866b0430f792906adbf0512ccd42205679de524 GIT binary patch literal 17796 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 BpS%D7 literal 0 HcmV?d00001 diff --git a/lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v2.png b/lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..4444909be37f567a01042e6a63ac963b51e6c05c GIT binary patch literal 30070 zcmYhj1yohv*EM|Ul#rGV=|;MwySqyS>F(|h>F)0Cyo9tgNH@~m;CuM}zh{ikF#z$_ zIeV|Y)?9PWWw@fe#0SJrh#(N?gOsGGG6)1w4t#~f!vg=Z(&B0Z{D5{8mQsZW{&>NE z3j=;fu#?ns1c7LR-@hPY)!w#1AQF(2sF14LpOY+CH_Z9P;hqNXh77s-zg=*W@X(4L zaPj#8VY!=;5do?~duHb!I+USdu*B#|Gxz8$~V0xzc%%GMot zL16o&zz2}P2h@J%J`M$exSZ&KU&AJm5wL{Npr>id{=)8lnLm|4gBC*jri2cB7gZ6S z{|$bB3CXW~viB!{FU3nI%X|MT4|`_}pL=ZwuF~5_=(cdulnat=$6Uo@CDpRN3Ej_( zCF+~%-9NKG0`CI1bxbe%4@4upI%t=KK(fvD`%n{8!y;ZgcVNCzdf=O?@Rau3D!F)6 zZ#V{3Z$s0fL1`$iV@R9H5y;Gq2Qht3ut74I9|!UBx=eRhtj9cr=t=5; z`!KJN^nU$@`)1qPp*9+Om12DEh<@Slv9W@nqVdX$D3BQYPP7M9re=GUi-y;owE?y2 zl3E7ratmFKz{e;WC5MV^@P=5B^;rMPw<<06g^lC;XA|?(aY{}Ps~~c9`OCadKx|AS z5)tqDYX$0AJ5(#8vMlg@nsKKuH!?y=6&z}wL>Z%c(p>W(hYvVpgl>(v7;^H>$aXX) zcFzc&&e!)PfYoHD`@PSZ1qKm2^|~VjkhGK83T$qWPMX)Oouh`=-s<^bcg=V{@sf|L ztdeqe*YsfSca)(4T&^zT&&;d-Wef(5E^37d_1zJAK#AWu`Bg+Iu*Z|Y_d^5A0epz-A-mgHa4TD@ z>7)zx{S*G$SRI%cG6ifXiV9aA4J-{ME-po2SJ=wdB1?7BwI#!MrM2b0g~UrC=&@3c zkI+J?7A1j&S-U*iB{N{XRS2D7%5#%*G2y3G{g?_C8J~u0Vaz-A?FDrM?x@oXl zyX2TaP`|>Y?Em}7+pH4rxt2|B`mN%GPVuRw}%GSWmGYkDtJE)~@^uWd{Pd11g zq%Ti=nT&V7R~IO%paLEi^H4f4FPTMBGt@C!)fzu$Vyq}vS@mljr~TjEhK-b-{9H6* ziKOMpYXlxR9AN$516)bJx&I6&H_x(*sPM^TJ&1bI(5kg_hz&Ji4kl@5N&zV$Y$ZN4 zq}52Wv~r}znIGw-Lo+N>**U>f?u2~U8!FTOa}%W8ts-HkdQ>812!3|f2^1$D@re8W zy^`ha!>KF;?L^da7z}~eg(8}R^c;2N?^Fh=7S-r39HfjB<&Lz9-U(fp0A9Owx-m$& z8tj%M+(?8Z;i_R`9Hh(NXe}rm5FJxkUq$qNq3w09{$`R8@OnVIB2FMB_4EjmdB4_r z$tWk7R{8Qlr!Zwg7-*Wi5Tl}^Mxme%o;cf6wmkm|*5qEs_kDY$%FIYzU-tZJ8wPW> zbfJ(ua{4c0J966JBa`0~T}UpG?fU{Q#U5?OsroZF4=NC}8%9%qRfTC-wYk(ej0fN| zx$GhNWWGP>{ZqjH{=o%m79wq{$phQqHABpnPH45bw2^+HQY$bj3c2BVmD>WbzSE3D zM?G9P^1SCC5e}37mktHDo;<^6CXNohg4sY*t5fJbu zk`pTLgpK8|^`~?c_KgN9a!?{4Tiz6pSAIlJzDfU5-)w1kB)r=3<%^GO6vpbRg0}BK zOcLKX5s)yJ(f-1xSZ%)U{3I;RjiSf45j?M4)0|Uqoqi%vsn|Ro{k$VMo43H>izw*AXhiANRXm=RHB>z@P;1SCnHQb{ZIzTBV=E+v5|UYM3b~_8yvfv z$zj5|Bh(2^l8}4Y31Vpa@Of3Nu6A<%ea8D2UqTF2k&4!MwP3N0&tEMAYo#{`Muw6x z+N=fEEzl7;i6)15J5;Lfz_;`lS9dxOe^rU*xqxcLVYg|)g6*9GAHCpVeEWJy(AivI z9TGWc@|w0iCZeVJpqIb=2w`2Mnm5>4vvavNO;G*=S_lLJidQ4`?;m5MZujh1C^$MWIHu32ofp>;8b=I3>yo1HWLzD=t?Qp@Oy7df#$ zPAK=WZKGQ~E|AGl>5(G2?X}A3Ws2r&2f37uf?f#OhgsnM4zNdwmCUYFfI723)MCUqLp8K>d>UB zZm>y#8l^qew(Bsij{_%YMtX+788F>N@SEwY1uI{+`0%#4I+pxU%683|*lDvczVW4| zZxyLP2O{xlMZd)JOdqpfN&=b#0;&rnO8J}zrn-5YUVd|0BrgC!lyZPTT_7AEXb(&? z#1;AE$q5G`>V?wCgB^_Z=^J*L)yL+T#c9q!Q~z-?EY>pKSQ7YrmHzs#F5#b+KU-vE zw@@zRsCB&o7YLuR?Xs_Yo$|9v_GS(Bw0G;r;zpZFOIRlgSf&=M9W3Ki-B(G-#~HVYEQ zq*)rvMPO;ELJK(|5e)EMv_^@I)??TK2ee4q*IQ+E7Sb+fYX0EdmOH+7jWWG%e)DKr46fr1Qm8t@ZIAjp>9tqc2yb?v9?raIU2Z)8_ zA^G1guJ<>*dWs(p1N06M(^sdoMs1rbmG}v_zVt(F5KXYOWsUtvvm9HB=!j};7M*6!{jLt%xs7Y zOFw4(&$q4>tqaPg(+ku~aUUtE!9^~j<(qG}<`}1l4n55PJS)fR3SrLTTFX2uGt-VF z{)c+$gDz}M=M^F?9o@v4iLGsHMexT4;UY5#l+Zv1o#rp@j6lUIB&27dQxz5nEG;el zK8ApZ7&5lSRe`9cB5T)W)mRwO$SUh={#m#y>(eQxy&V^9P|d(%hCnc{AS$w^tV@rd z+z*W2`rE-SN)nhs;2h-ZFa!DJkeEcwBhOt%d>DI2R@uG5RPN>C)6ktuf0gdFXjX3+x;(3Xa;%e|FOs%*C|dCt}*NTg1cUE`BX7h&a@tiM1_y9 z!8EuP@XLctZR#ptM;1sijiKLyJ1%YUY9M`cy4O!wQZO1w%q;jR6X@3PPetnfOGlB4 zg~?=XqXp_gZ!5v8Kg&Iy=bDOX)wEx_&#COn37N0vP$X5_(;0H;Y2TCA+R0ROK(_}` zA{`U)hSxJqjDZx#4=L~ZH%B-7*&~9L9-vIMD~1@nKUZuniuY1hbPYIFm#+H0vi3b7 zkloG!>D$sl7_d4qOITBaO=uO}Zp03haQds-$48<@Tp#K9@sl(->*3xL5SnP@;f|%G z`4ZDt#J0vdrgh&z{tJyWP^~j-Ah+YyW?=*bsMW4Mdd-`i%(*nz-a)F)FR%_hCUNV( zj7SJ1NZ}GQQY`yA6ZasgIv%}MD14PO;r9MEe|B{`eRm5uD=Ff@z(=L%_Ll)j6d%o{ z2K|0X2L%9+l4uX)Sq{GEPb*&@0wAHi=QTF<;oQ=EAFn>-A|#F?Ils_cT+$hWop0-4 zn0U!*CyDf#`Q232Xvyf4zo6*k!6g=Q`|SaQtN)U^_T=6i;_wR$lx&GG0s!*keuEO8HJA7+(#g$k>$SOS_jQ>IO0~0BQm~pV+|B=~|hg(XXhNanW;Z z;%8s*>gF*$G|0=Dt0Mlh8q|AOPUpGtA~3rK!5OpB<+0`9paF$F{%1`g{=x_@CK-5z z4YC*Xi&1F@EI6a%b>cegaPb?BGsq*X&aD%tx>#*HHZpkV^nJm@p_b#m8aPhmt) zy3j(=^485kML5A&?EM%VDgv;6;w(X}a!BG?n~L&{QTWAnPkLZzD1FWBVzcki{XXAC zuO}3WSb@I@golUs{l4w_tYZuR&9Gt&<+>3ZO6=vgGaQ?-MnypZ&6d(R`&q152pfs0=6=W@)m!;Ye6O)qI zwOsQ4pm;8B96FH=`ia$2!1etk`1OeO@RD?JIgnu)4-~5)X{JL>`3B=b@1LwMAEBqC zf8>{pO9o48teGyxTsIo#CRW8bNd z*(1rh6)Sor1o=VAqkVb$6Vu5{n7};v>Q&${r_CQTH1FZBya+@$p|l0WMD!8u+>(F? zhWAgOZOEt!a^+A8id+9K*y+FBGv!HG3C23NyVTeH4st2pG7M)UY+glGq7e%I) zLc&DV+37@6zl65a-m%8$|HHU3b_f7rhl)4!ibeHaCja`GMkMJJwO*faY~_W0(uQbF zd)nw=Sn!gv-tgMt$2OU&Z)FL-TtRS21>IKF@u;Wz4G)h0K*i_(mkF~6Uu*eNC;VTe zE$GUYeU&f!b9BI+q!>}}GEQm{5o87P(}CA_(L9c8@xirhfyi}jx?$PGz6iA|ycu985YE%JVjLB7DE8Q+kxU1*1 z2}s%h@`q@LWVr(zQlJ{e7VYJ6-s}XC^tF`t6(R|9QOd*G(N4>; z=N7afX56SeCs0~UmmXsn9>nPRl%i6;8dqV#*R00&#k8qfP#{I9HMVeCEImR`ts#c} zGEfuy7o%E1p|VVqKTt9f9H<2m`3tqs9KOU|(%QM5AGBh!A~aAU2WI^yVYjFv>WIyh z7;O^V>}M0r{#{4#lIALrV5%cmdNQa>;6^$_X3F1jOX(9cS&;q}Xyg1Z+Ct9w>vHYQ zbi>61PPM?y!w0xrhDK9WL3ax%R&PhHs`c`2K7*DI9;er6_G)p9O4(g)Q1Jy;R&vV- zTnked71Q-gzD@A5&ON40DsUFtyRhvMXxpUX9(jnsVNEc-xoQp!4Fu88qXH{|QWBek z3HmMAOT^E2ik73NX6q>&jMH2k+aI`ILb8ubDTIXk0XnMhH=4aAm7%2;qt6sk(3mMi z^yJQ8>fRs$hsx$=F}3Qst-6}+2^#~xb)*`F`{8pO#EUbcS$FM)@eh6Debo$z&I<2| zKjjvV&EB;T1Ay%=)$qeNOvZ6>dK=t5x0#4mfx7It7Dg!o@Co^@NHp=UO)uk%zt6v3t zhq`DgW`#o)yr%=Kv9Ay2%iyD3wfy6yiByWVUw^4Vnz|%`k|Z9>K;>BXrifiHa}>I|*w8z+Vr%rA=C$fuf+V~u zy6J$on`D8Or5Uopg!wgZVKze+U^Cn;Dyakn`bFB4rmk<+1X}OdaKzN9pD&e&mU3u& zo8)b@tOc?ITZrKO{DwE*c=dGXRb6jg0z}O(&YoY5{iWg|D-Ul=<{LD9sgdyCCM-D0 zmH_YrG@`kjktFbu(?KHkDcrGDJ|do}04r@Pj|u{1$}kS&_Y^fgES<-gnwXa&Clu_u zc@@H4jeU7IsfiMQ*0PQ&FBOgiwn&@d`t!Rea7otm^iQ~#xpy5YxbIoOck9koIOW)gA|_V8FX+8AALEy-z+n|dCnAhy!MMuB57eIxxt zsT|2kC0t?qnyHZtv%a2Xp7;I6cbEw7A7>q_ce9p2d~4Sg zWe+^Oi~8Ui#B=aTI>rZTv640;i&LFu@T6t^tAQ^<%m#JSUt5=iOZ3@sf$SK_@$|#! z`DeDWpHAfQ7S!sXTJuhv?4Ds9P$ltktP!X!(QJJ6*PPadwk*t7im)?jBO_Af?HXZo zu;Y*}3?`yj=!-tUO0s<)@BN)8GSLEI%+e{crt?`9QvW(SI#w4xF9D=Ac*J2Km@@m~ z9uHd-4vlDoU z8f0|hsZse>i5-34k3ahgk%~hDOCK`2!?LhP3!VA2NJudv7Ds_&qFcT5O^JzsCM+ms zFBPle6A%4@fyh|7zI-{Xw?F1l%~Qp=UQ~w%?{t@xtn3Yg$Fnq-+c37~}@w*pEf`w>JH#VeIO!4%LwR9z8eok?e5V z8`h69PDI}ovcic(&H~#JsDg=O4wiPc9=Y&OURITxq~f<(J@^it5z+7D6c9IAJ)#_9 z{Cl{Fb=bs3iVoO6R>boYS_GFD&{9Daf974g6CPyl{jCT`pSBrXw*`BA_00>f+RSOP zR{0<2Dk0L4hw)!%TY$9-x(%(jV{9XUHnL2%t&^+uYs0tEtU7VMFHD(B5trZ%7F0N#z%JFt8!jr=DMBML3t!^AMQ zL8I?uXUt46#e1;x)+t;pt1Bog$-(a|O@U;Rs>S890UqwfsF)Rh(n?v6Fu+W}7eNevgXBBm))vC9Y3S(*LtN|~-I|36O#BE9>BsT5Th6q0V*3#Z1mOFXmTZ` zVC-X*@7vEi+@(ikTZOC(kT+(j17-wNhT?BQv-x$?TUOI-!Q^_3{ zJ~8Z2YuAZ`9eW?3+1s~@eg>p8w)Lg707A3t5v^hrr8ni)AFC{04|WMF&K}qjCNh1^ zc{xI4yT+2G<1a4Z&_XsA8B+yh?E(P0-q{%Rpb`ysWA}_IX}~lkux%xo*9_6ht506c zDJcMT2{Tg76d*8ltE=)t}2ZDVo;l1LD?)(abIGt5lrq{ zg)35vW|(vw*?W-7m?^HOgCU6W{Q|8oA8lsdHuA7(kN4ue_lX}me_qnPDQ^ca+dDEA zBaFcBNTkT?`ntFByV7MVGNi6p>pzr~?^OBok)ldwudVPBH#hZxl^G$<;eg_}lVEgF z;qo}nsARG?HS%!pVc+u7#a(1U|0;kWC~>g0v)l*of??!kOGV(>#H9Y>hVfjZd=pPz z_xZ5xDpPG#z4X0hglsAg8hpI03cgLY-0$Z&IkRkiYlFGQue#Ut`qSDo(fPKI><9*O z>h$Zdbw0)@^H~?2+nc@t{U6A_Hoa&VUi-6GW#RpAvZ992V%b#o722h#s z+!kIv_rU2kS56qV;&sE0>8!Vqi4gJ%b}jI(Bs#7MVfr`H{|Cw%iGsVn1Pb7j*R6?) zMSl$zQ-Pz5@_;~hJ2`e+tu?xso*XI*QjYRGr(F;viU3X$GxZV?oPO9q<}Ihq@v|_R z9zs%ftm9`=+-*!-&3JG4=X@x;so(lT-bdOh(=2~~MJ&T;HI-qioP~aj9 z#EH8^w$4$e>fLaEO{dRLVapqxNmT!Fd6wPiGUz#LuGQJb2D3Or*Kq^olzdg^Cn~#i~hd&b7aO1~h3iDg~6EWSF_C_4ayZG4&(lGget}x4&3!5PmS0s*y$0hLqy+XDbTv2Eq8SbKL*$D99MUH(epR4iH$>D}4PfHC4wAd^H3`T@8f zKz;%~A5BiC+jpr6>sW3XcPj{vst#D94+4@cK0h#e6Z`~NL+i+!q|Itcs$e{7=?UnlDbYHDlUpD$l(5Vn-_l+-|omI$!#l@M4CN4ENJDUpfnM zz8N!i`;cK?_ZZnm?xq1+%Sn)K25$o3rBGDN^B0#%N?@MS;ZdE+LOiiC5aydffbOP(dmXi4s+%ed5n-cC3wO+hdd2ymFx zeRIs8zF$=x+6YCf;{bb0k2&sVB>~dSu`cnm0`KL=@Izo5TWowz-8nd z`Txinbb4eNE52~VHaY`4_I~@;J1c%L-VNRPlOH-(uqA?)aGE}emT=$8y+ErD64~b9 z^Ctx9FCSZ(BE*F-Ak05S%mJO(rnz-wxwu#2Cw`RSW`>vPO491J{jHypP0@gG$8vt` zW~DcS@sSiqknt>Bidg@cW2-34MKfpWR=ltV+TGM5vfCgoT$Lu9w0SWR#q4ak95YBNI#qn9)k#k_jTzBPxfTh5Ik|c$`1N zo-x)aM4>+tA0iJk38Lxx9Cd7sZ*{=~n-dDRy>nB>xifJh(q;i;ETTlUgO*rZSc?tk^`V_aBp0GL3n#RSK(lw0xMQ-K_O?(m$k<8JEri1uQFqeIHenhzdTZd(R2z!n1zS%akMwb_PZrH|GhBpF}HfyoAj z3_(w`IDQ{rMo5AXp`Qrx_3euWN!qa$Kd=sunFd8fR%^RGSj{5E2KA!sYeS`+qb)R>)75cm2hkA48At{s`S3j&?{{zucB0 zdqI}R+Sj@+|6pWNORan=$p*FjtSm8 z^bE>L+M#r1Nw@@LP+(9V(Ka^mF~B01{NW}gmGC!agN;@*dG+=s!^wG;xqRX8ZjIB8 zVdEUramwrpi)@Mw0fF8+Rll*W30ZDB;#sBQXe$&Ru>$s^5-PWy*&f!?y}tv1`o8Z? z80%^V+pjj%GQ!=J1#Rbw=9E^L)Eopv*Ckl!Rg0GgByxB-Ka z5I}_hVsB>~UD4ViOMXcpOHv3o5#E`+@H~tplk(Pdjm^@Dm#ysmaQ>yf;!j2P{FD^J z&dhPRXq0PA@RZh4_2HL&#f3WY?fP;%nn8!PC>&e0C5p!7rW@(b2TRtc2dNb&uiT1X zsqhJ7MzszROxU)~Yc~O(;!Yt{`rUuP9E66d0uxQ?dKaDs%dza+Lth6 zE4S}FU12)dZ6iE*5J|A@a&uwB55Ge56@w>F%@^DEd*zqB4DrL`EN_nmKIsIsxD>gJ z9K60>>Vn#=o6Tdp|12)eyZj?$)N~}7r6jYYi7($uIphPGQ>cr-<41!Jh)qP1-7*9B zfNF3ki5hi&3hfH#&$8#CcT-6k__ulXamj^p%GgBQl;PK9;lfc~F$--z2K;;k7M-G+ zX?xw{u>U*7?(t?KL zWo#vY1unF$$bw>*S}|`<>t%J=Hc`03Ozy4-zh`t?I*;7dIX_UVdyg_CIGDUScXVJF zGcqvvvDD$m3U57|3aBW9?Nc`_aCC{q17da3URz}Iz%B0}J@aqb2>#nh{SR3gBlnNE zYp0*1LSsQ@5sWz%g2po!fR*QW!P@A zgXRi0Vw>xs$weys6obx19Mqb~hS4_t9>H9#_>Xptt;4T;Puvuoe<-(T&}n4E3hA*p zX}xNxJke;K0U_n~k-TrnnFFUB4VC3Ps;l&|>H-PUph_fAh%2 z3YuUWTI8@NDUF1YO5RLEuV+t*(e))k)X^Ti1TPWL`PqG`PE@u*6XmUQWz(}FTu&d!deCukmFXF6l8+2lEh!+5w!O>t1ITJSJpR?- zBHUAgK#@o9iDc_0&H9EiBy>Gr${+#CLom8d))WoAG7$Y0UCR zI#k!hsX^ry5{Lp4k<8EI;=^;ua?84sQggf$Iy2y3hcZ06|@a#v9BP>+n38MGS@&|r3H`q5^)X0eX*8ZLQ7jgqMTRV@Gv zk2=_QUssFFDRf(n;!EinNJk9v)ohgmH>%^P8W?lV^obTb+++OZJ3* zJPOm~R?-yIm6XaEzl)eW1CWf}58Fu8Y^;WK9kdL14@y#aKH)B2hFwji>ke|1_aSTE z9~NtLnR})^Vh2mC&6M1^5iW*qKsx}fS2tujx2*o^d%N(*6bk>}#L#V&bomEBQ^|@$ z|F;s{)-3@7Y4hWx!I)k+G}}@rI|s{@Ef|ASYQBzE^$*R<)X{m?zLTD~#|o7DMu0Oo zGVykJuwR~36)=bzS@@a}05+yqjRN*?oSdKzc>-hHy;1Sb(4WLX#YNo3_&z#YsBJLZ?-P_}-$iXEwtH+hvurS~z6 zvd?K>m}B~<3!-|?oz6P9lA=Xb2eOltK^lvkw{M0#jPy32HaLo%OF&Fp={aGn0wDOq2H_^$_!iRxD2T zXGMqlnV5@2&MCiSY?O@D^L`^rQXOF55BqpEVGz*jk)ghLnZHSn(?2^Mm%jTDtz4c2 zEwt*=x{S|i>B);Ar>&;LCQA z{?Z#pu|mKc4WWN2 z79C+JPbsipro1kF(G%7DvW|p`Y9Aao<*z=qy*TTBh(j`{7cZa6{R^unYl73``LYdJ zKVu&ij+dxjW=?Ya@58VC*K(MqM(N01U6^^ze%d7j9!5=Bl^=TukRbgvA0(eivZ!dg zfoC=-2+#&$6>+Cf9>(@TR6KnBSRYA=D6~vH>8^PnGxCCOH$e-g4VS^kfL27}TB{vg z8GtW;cp9no*h;BP-{J(IZxKePy{)fEJqO@KK&5i113KdwBsIWKGk9i3R=YoqR@pg> z6TYlw$c6m$Aib$}9K-FYTZ>kjfg97>jPz3ATufHGO7Lz~qv`}HKyjkjW zm#3UvgTW$eviF7;kJLrTi=qv;7;fLZ2?WwGqLxM0F5bq!*3#E5ix%eX(xOsmxcfl> zgcpJ#;kr~R0{=KwZ5F}j;UOw;?+!B;fr_zrB<;9Lln4_Z>@UER)|@#$_#~n=#C!>| zV=0216^QNYK!r8@n#=!^Y5C0G5HYXW#5rLhwfl!w)jln;C8Czdwc7=O^o$HsgTsYl z#{5=tQp105?2qbQIaJY-j}{EdY-^rf)4`4~qVo@o383yJ39dmyZEoe+XtIwPYFTq& zV8_A)0)ccEnLn*6TqNav967gxzY}j^T?6QqfwWCT8L@kt0GAMF@STVCtSAvt_VIy- zj}Qjl3B!NbC{8V3+@U&uR+AAxST?MI!6|VfYd%4@znE0Wd&YT8>VZB#$ZGcX9(K(m zKgsxZRe{r=$9S;5_kMT<8|)0AOOA;e>@v+j$+9mV$2zKigQbz(_5wzjL{z?|lpbs8 zWFZi{R~4nGe@&AC)OCx22qQm0dD;pLg*2ktHGIum_&kv1Q-TDz-IeK-4HhF3=S^Od zXvRZR&2Ycc?gD}qB#2gxCy~xMi$fx*rPC#jyDKax0ubWFE3?-;FbG24RYkW~A749e zqzqvo*CHC*BE{G(Z6CH^4>iCYQ(Sl!qu6gaWNYA1Uk0Igvr8PX)1nCq?Ue?73uS z`2h+*mW*1bMnwTPzy>~GS$Yt~rMycLnSul)9DuTIV-R@L)TQ}e851mACD8-&d}*)5 z0oaulZPmUr&4~5JL9%CQg8b|}RE-O3mw>=bJwU_;+iomei17|# zfU%HbZz2`jjhNix$ok6iYZnE;SML-gDOXOe3@|y3?U@OeMX3z}D1r=U!4Uqibspx{ z1fxkj$7Tw@ts7k(QDF&-*u#YR(gKhe8U?Ukz1%^`878` zz4EB*k$@1;>g{g(odjs2diy&ixv%J0HvXX%duDL}QUHLP-mz;k>4pEAue+w5L5+HOkc*yqen`=&?rv^IM81Rf{2x_chngB zS;y}MzbTIc?CphZmZq<|r8`Cid6dLcv$bLBm=QC;cY;U+I!tzs=ec};4e&94Q$>fi z&rnv*8edSAS5{+VH(VY$pL|$qP$@TT>^8b@mI-%2tMq) z5m%sS>*N69(Jk9cwhW_$PZ}&lbv_5TNK~X&h*wizzCH zPV+oHZFI8OZsfsM-GfsG0V#?e)6i~gwb5g8M(N?ERI{@Qng`cKnK%&mfH4r40hW6Z zKLzV*I#o}i@DuCSB=Zv7hNbQqT?Y(aO`W`xWXQ%sZ+*xY62N-r^3e2cA^iMckD^dp zN)raH=VXDiFYt(t>sC_Cwbk57`YlV1m>c`I# zOtuJbGPK|kx7jtdmJ#DgWvR<)oF1#sY!Q(M9sQ%^{XZ^-I8+&%atNL>%EPN<%7XCQ7 zG9Zv!Sj5D+WfgJ{D+`V#F;Z~c@aE*A?6A+zh*qu}WnvRVtEz0VA4%As)!L8#HBnd1 zY&Z0|eSktCl<*6R?-VlJLl^f@=$cQ()pyNX$|y?0>kgnUSNc?1!rH2@SUasD3e?193<-5%6urf)64N2h6*9 zv@Ab6T67c`FSLD%S>tTZ(_`bqP(mExCoQ*l!T|_xA4{*BW79EfBnBre2(mB;D z7j9iVj61h5rBo=@DI4r~VwxSg+GK>$qvu%1>N;T!Z1Q^hI`IsfqlmH}?^szmNL#=FoyJshmU+9rwr4BJ_o+ZUgmlw1337XgA z7*XPPgJ3$Q4L4njB)a@a4-T#7`OdddOddc#z#^VP=?C1AcJ$SlB^WYF<-hynhK6^k zxjo$e2u(qrpGsNQ(=R|~`2rJT3J1_8`?*iAxi#|F!wovN&F0+;m-wG?KT(29^-(q* za3jj)(FUx8eQ#?efC)x|p-pr>OBR-;cz$R{u20Z14j_>Hs&Vci*Ht7aiV#xht;ep) zgvhjF_kr6{w1D~u^t(g;fxlw1;OX)kBd|K10&Bzo+i0lD6zZ{ZJ^ID%?ciI(^-qC+ zycn#!j5d2sf)bPETK>_Zh|I0izPF;(#oon3kGoftV_Z&M&`j$GaAq{buTX_ti{o!V z@T`Sj9g%(_ZbLhtLhP4W`FZ?d!u*EsC6(n9py`{m@?q-^IeoQHHnpp!06c2>vM!Gd z9V__2>lf~yDvTD}AWym!!ytt24);EX1QMbGhXi36F;kY>k`-?&rr{C0E##{P`aZHV zr>#1$nQk>q06ws;&s-XpF2pL|JfI%{RuuuuNXcU6m$_4O)0~(WifIj{_5hV{aUd8p zC4bjvLjJ+pLZog6Fr6iAzya0CE>z^Ba3QzdeoCMbZs+5cWvkj=%ykhdwPG64v4Kkq zCqO}J*k;LHsRM`w=<~M#Y@*pEhyjdSMT6@;bBv|(evw_Un!E1HW4%ZpAsDXj?T!p# z?0-IYf=FSVK*z=`!>ExUeVXt=yRb@;|87joZR5=XFGJ-vD+0Kafr*vN{YgwvFQDz! zS*XX2+%>71g!&>qZ5}5gxCvfDfOId)+GoZGbXW+R$oyrPeZ|uRK!a;-tkMQu-^G@^E zV%VW?()P!Zifk57|FM!5ALoW8PL`F})w}*nipH=HfMlRMSx-GPu-2+``>|3*$=|q! zBgUz#dj;@!hVIbsEsm9*{WZ^sJp@bvTRVau97_Q5<#GWEf7gyg7C8E+JkfqFON?j!;vf2kXu zJZsecmE-{CxTwp2Z|gd6XD@qTT=z(QwJa7@E4zKzYVCvc^h$*LW-J~16-{)w{#!uG zv?C^Sp+gHy%ts^LyYo~IiW_gVH786IY&puN3tuRf1B1BrC87)=g8_M1r2 zG+2LN5EwbWNe0YcMs8g27Xzh#)(HXTdm|;%icGnOpD+gKBmn%qdjA6%MUT$r^0F>X z4fplT6lkQj$Z?GC+0buaKJrk2YqTqd-;HqVLvE#CJiKn~&;YYzFQL#~H1rrS(F8QH zAkboZSns;hZpx3^y+Wf(i!C=M0L^>o07M>|y6ja*?PT0&yNH&ern`-o1!MoGuUW=qDzg*);~@g~6V$qOQi%uiF5tJ!{ME7o zLSwPHB)1`Cj*fZ}=pE@RGq(fX3;1epzY%RWR2)u_YP&8?@&BI};6qKjr{~De&)*X! zPdik@=&VolfDi+pY1Q1L0tcujtskqck&THT%~V;4W*oOFI>s7Ue#nAPRnG10|B8;X|L`yw57 z^QT29iAkGEzccUrgw2Y^d=cGnR>=4;0$NfbRpi_I1(&m)Zi`_DNAa zrmY{Yt%iRH8N;#~5fR0nlgf3=zLo7-tiBKF`c#ufL&Q#dnpdxT=qjEM?e zzPJ-6pab#UtFU&b5r^;woLu&Ib-SJ4f3Z-a7k#I?@0^cnuW{5Y4oRKJyt43leS<^j2a~SpFDoj zIvcOLFMdQmJ~cSl34j1hrCvw4tCEoe=RMvK+&!3l;-MopIJKWm8kg&<_WxgJUl|o; z_r(iH2uPO>NJ@t^NOuYdQZjTmNQrbam#S|E|1aNQf3pP!K$LTHSZ+fFBb-cB%ze$mt^>UHiD)BjRpVOi}lc z1Xq*Z{8T#qsR$RUvc4K?bf67<5pY$uj=`CIl-n2)*jFsXP@}9rTgOLD{JA7EL`k}FQo~vz(hv~7{b6Z%+E4mHL$khcCv}vo4b~BHab@&N zPoMwPn4;xKk+Y6(Ed@XALonz&HtZGCirn3YfdXw)H|FWiIpOJ995ryVC!7PpRU~d1 zDE(|N$O2M-_t@!7YgWU{u!I(*xm-_fxx8A}`2>+umLKTC5oZ650*=Pxlg{X7s;vcrM1e~r(2 zFWdrJ3vHAx7ku*yr59}MzJdN`UlX0lBg`wZmW!R_nkI9st1yxJjN{`|QuoW!Rw zILEvV^%_ks%HWw^SmX}uSWqjdt4rK(f1s0N|0LObGam2k1+FDrWdj)zp*noR-9u5W zJ|l;2)w%K^SWdUm3*EV0Aw;6A=GSL>;BEX7*5^-O4I=T~7jQ26?qT?ME@^biz?hd= z0xHk=u2x&@`bu$yfnzCB=2~HyX)Ud#7Zjjn+C5Qx>;@a@mpPW5-ta@_j$=K2K6{FL zOXle`lIo~pO^LQU%IBPsN2riqRJ=%C{UFGMGFM0{9SmAtmQ&;EHFtnVX!FZJmAf-OukecyP>X!L(u~#y+s2Pe z7JLFaifliOKLKO~83MSscMfz(kP7~UDl-t=!W1u_lC&=IfS}oGD9Ls&sJJ$IChF%_ zZ)@i@;zXYB#pz|sxP>(hOf3~v-1>RWgSLxs*J$&c5^mjg>$6ZtBhJc?XKG~3k^gJS zOAQY%AFaByG!VFN(GB9GIO+p%{TwpMpAZUEc1-lux5{iA9cqv#Fs6%RV{QAd1NOK^`yUIrXoME$+<;b`#f_W|ZH%9_HP zk)pR{PCWPf-K-tIN`5_Gq%Vx+(a8(62h~6RTD69^7HhWp_6x3pHX=SJy3!LAoqkKk z?|FINH?Bt#-&!J(8GdsrD9TgCh(DzY#53lkI#x*MkCtuu+gfH6b#k|&T~$i+p^kR0 zs$$9Dd~|g5jqIOB*UZh&2b-@v!C0R0X`^n@j6v-C&I5(W(3SXFJ%V>-?cBY`C9g#S zCYLX+b|`aNINKg_Yfbubj+tR?Iz zi-h0Vax_y>VBBS65vw=Z;n1X=b)7{RC(+{AP>5CGtv^H{ku#fFukR;8*OP(SRYvr- z=`FF)h1GiU!L3OeT&}Xh2i1rFSP?-is1#|W?H+@-v=K9m#OCd}>HFHD4EMX%As9YJ z>BvKi4`eXlj#UjlbzNe$--#x>d&Stcwcubq`i*ZbPcRO5wctmz?AUS15G^??<>yB0 zskEw%JS4cLADt6Pob->i!=&ZB)`XvLj{;{{mVaLHa=S(@@M=^EX7ps>UFI_qVFnB% zAY{|_T-pv0Y`uHc=_`RuuG+k^W$zjG9#|xnkx}z2=-;l$y!X+WX@Z(i}TF zv7BQ`&Q1qU7hJTw_Yb@jQXAdNFL}uvQdm;u?dD@(JkAn!iEwZ?e=VbKARu&+vC}_*Sg4haT!iU`PcsYg zfJMmi@r5E;qTaWvUjYXkp@%Ie(Os@z=T)OiJ152M9x8TMIcSu?0DIr6*Lki_H znM;wL_o}e^!{$y%>4C>xsa_s#4P{SJ9e=v@Zqd~Rn(f4(bHhTLc=3hl*DolT#7~Ej zCZZ1^jt_IvUY~>**t#(vF7A+76woW*9IANhMq>=y@YoM3pGw+RVz^ST?FnEJr?c2l zxHRke=|pc=iDakfN+k2u`ONw8vZCe0?UrXkVD$&hNEj)|Xd`vusLWbtSZeL}Aj_Je z5s|93$?-0V4jZk91zG|>B;*WkfOmN>Geq{qErOqBTH1Of_IhFZVJ7oRfP=IBL zL7b->4);y52Pfl zw!y^b({}DudtqwY58~*2pJMp>e-9v=wIWy{bHewoTbrc-z~-M!CBOS$|&2h)7~0D z^n?fx4@=J2{ZkBvGnE_)qX0Yek&ykw;AygEygzr6T|$WB)x-#X$Vh-VA;?J8 zkg+|^lDjLV!9tkjDMQ(mc#c&M=IfSamsaO%IWMgpkKjalO_fd@5@gAe2>}Du?Z6N1 zBW_kQP8=0Wagn=YURhJS8RZ2@g|Szn^l0&Ti>(Y~Dy6BgVdc$*HjPCQ?Nie>+1u*xu z5>%ewv`cwO`7L-vaD8ECJ?6OGAKJvDni8YNtK{B8)^B$VT=-5g8JS>!M-3_Ihn%vN zeY)ein%sFEsH$7wO!XY$u$Kb=ff3or~nD+wW ze>01rU6mZQ?zTH%y;ap$f~n0U?W}=INK$`^!*&$S;%0}eOSRKS51q?Xfn(8`NBrv* zMPFW0vML_lXbdtFo6@OuJc{_vYWxJ}VT|I3#Li>Ws=YH=DJjW+iv$;Qx33$Y7Y2#! zfAmfgJ&(KDPm~pM?-qG?Oh_;)C-^>3S`uxfYkg;9=^m|KZ|``@{yezHxC%9MQM}k; z+2gvW0GGO?LzMT9(181GJ*HYIcyNx4Ssdc0R?V&R{W`1A0=9g53$6w-YtKZ>t}@@7 zUjmgUX)QjPC;KxB$OCLjU$p06960KsGEqZn76sKq`P#+F>F&S|d0MMa6r&av2ggIcFM5b1mLoU`~79MlN{BDjWPz ztPq7ioyj}c%bd{Lc6>(kgO`b#+DTQ#K_qxyq;UK>(y^5tU7|D@8bS~gh<6-mXaRY3vs1}#B)YM6X4ceo({qk*3ao)`e z-`gqTyG;&C~&v#x(Nh~GD|CL91rqQKNW|?kW|I*;~i^R9+Erf;cJ7EBQ zD99^9f3b*_#T(7hSgm#xzd`qX-Hex~GsjZ&>9trC)l-KggNWCp`LhfEPR_m1aLDVC;j3K7CMDUxFY zBTBP17u8dwHY)|mTDHO^N;7ty%9V+l|AZ_MN3(>FsDZH51E!JgNSNz$wDZA~NI%s% z^2HrtHyqe2S@70qXKd z$tnT@Q55R!`kGTx=FOxQ55ITSPVW=N>`FJ~!Yz+y>foDOlxK%G?}4}Xv8CbVlu$y% zHR2#=Dc=XjHG`8X=4L#6^h#j3OSg$ir+48nnS@_>i$ds0vC@on;yX9Kf`Qm~KT3X* z4k3}dH~)l`>hBN$vxPTW$j-HhL(2E+pOmhQ_|5`a2zhQgO36gcYZT_;BSk41wx3$q zKY*ePD;#x&Uww3U&9S(6m}T_;`8J~4^RU5pF3d>Z-P8){{<>iFSf90}Q$$X0MFVDK zRA=`dAHg~Wagp;0AwCzm&*__%qfUn`F6L1yO%S|hEv*ha3LWwKdHO*)1CIab$v0e= zMfivR2Sppo=dv-&R|E3_roIfX-8Wo0>8_}#4PD;)wphD8)o--ne1$)4s@CE2QtsW< zavx5+EotfXTj7TYgIf)k&u|zTeA&M~qO{}D9KkHbHt5mBs1bpqF*@gsABOxeefoa) zLD;wb_|M4ETBt!U>Fc{e`_J$jpL>i>3Vz#GEdDdN2n_QW>Hq4N*1vSjmu$82ACMWp zf1!NdN{58-{SR(33NRa7sVJrycD3i%aW&qL64*%%drgAekxHwPMsKvgBN!{dF`jCN z9^m({iTC#8?tv1+V(;r*Gr8g6l%b3?pzpNS${!Dhd;S-y{t90!Rm*z`gJpgHRr1K4 z5tDAfmxNtJiyeap=1eL?sUaUxb5OK&KccuD%x?>2p@dSh@3H_tUw5`#hZg1ZuHw^X zr{nFe<3QHM(ug9er0DL?T>R2Bl8_7dIF{ucQ?SidcLrwXaYY<{^2)@x5ttOx=SRW^6=FIR5 z*>+SzLxT_8Xun_G3kr?C4Iei0eL(uFv%4e{K^DP9cj2qc(J_rl;ok8PE^~fOldZZA zf~9(gldye~%8!!xNCg#Q5tDx%TOY0pjem<{Alxs>nz>smao!g6W-W-*Kf&}1eQ@;= z1E28j7j=K9Fz`Q0VOE_29T^7K#S^nLMh!)#3pcc}a!2(_@WxxAB3+bZ!O{^d-{s0J zkN^4X_ILZ2<%k#Udfg7dI`MxRS$%qIW+&9fWZChuLU-qx>dB6fO(h<3#|l5AR^o+A zq5F9>a?5e^#LxbIW56P6NUFj8`itC4P0%XZ(ssPb?vj$F{&O!tbqV3DKff>Q%hoYm zNwfz};WM+s^5cJI?$4ifn>#37?Q*N|(&MNoZGr1>aC4GG*XFh;VeUpSJ-H4SyP|4c(O z{#3ro59C@hiaQ}J0I19A6;;qXSJ}f9RH@Q550#4cWJ;ns;Z$sc3dIj;Qd`aIBK*-n zVLXDam@D^VU0zAM=j4qAO{8J`Uepe^Jfv%OHN(e5BFcC-a5{Z@v$WhsuP+7cD_z80 zS(itks7tZCtta=(st%^{Iya*;)+sl5j&YeNbyGTRh-Xe+t&QCKZ#eM^RMK9BB*U6E zFUtwuh@;m?JL)KPF681<^30-Hl+==!Txm_2clSpXlywvf)*xYPg}m|BzkCvUT-AHL zCY+*fTe-7pL#REM{|KpU(6KeIs*_mLJrT{w%vNWgY5fb|#NHLOrL@S<#j+n3jpr#r znMuz+_$EjH!6a(9dQk4*d>d>$HH_6oG1B?)UT^1oZj)i{SuElx(x3xR7k=nII2vFazyt#&Enewh^MT^fLt8=J32vK~ z0HP90^+%>qH?gq4!y7dlQ2jW*f?r7Nu#u!7bKVkk&D`64GXU(M%M9l6drA=z@)6;S z^e$JQD}9bsfwxZ<>m=wpY%bo042qA-D=JDVeRHos4A#YH)ID%%*I$GN$C?T0pB#OrKN_*BK}82;k#IdDh_H zIzr8#5*MISa?F3M4ZG&0!OpOG49oY190ErF-eaCsqA&%&4LH*ZUir40&B39){>PaP zwWRXCn7y=}=~>>HM@vgR1_c?o4}Il9oqc?e7-=Zv^#1z**Ja2x^W($q2cC(8P|f#2 zEs(GMkJyyii+^pW+)7vj-CBgxtPM!wZx5$6eAZ zx2AY_jU7W=0Y^QD`Hi%4h+-}=7$EKr7cGT34Lww^zxYz940taJC3L<+STpFj-JbV#SJBEAt1g*$zlkEQwbQda;1+*w ztoRdTD3-V9)~JquP_Cm@L`c}eFmPJ*kaIpC3GP(!7K8OpA)9lkGLEhOB! z;YUg0qsQRq_3~H|urn{>Y;%af&^4pn&0s5kjM#JJawLa?mB~b=!k<_`f0uJL-`={O zbRG>hxx)|ESYLFoFVZe|_!49B7kYf3TAFSA=6=*vX!JRUyxEKzgGXSm-~MlXq9s`h z-e$xSE4(K=9$}ZWMp|q**e$*2&o>PV36Nol+Lz&uOo(KXh+?Zj(WApO4s4BiaTppY z-}W>4Z$xtiwrs>?5a88vg7?I4(u_~$$qCD$4>vxYm3tTAgSdp6HdP;0CboVS8V72) zU!PwZd7peW$nBh?QwWL%I~NX`Qz`Ph{Ihzie~Sv<2v z@M@Bx2?7GaxYO;=ErFo~t&XVU#JfcNg4B z@(T+hXMblejb0PJ$Vyy;Gp}9l(?aOml87w{azPKq>hXn%2Ckpo(k#wQBlRCrBgE*w zLJ^O+-L9Z{X}W~v89{v13F3`OeP1AUj(6if@IH5Gnubua>I^xskMjREs&ok5cIj%! z7~s(ktKyd{0BM}dQJz?u>WVRAZ^x6!Wq-8dubevvjt{l5H0S2>uYRbMN3HTD!+wS} z6U+Qi*eTFCZKgU`|G4h z*PCbUQ@JXB5+c>!5)%rH0 zQyX*sUi0()s=eE?N_B!(v~!bSKKIaJ5>&^<3sZoTznt3kck^-}wuY+vd5z4aT>C@Cr9sXkSwj6`|bqv(?EaRday)5muN zoH=>7l+AH6{bDF8NfN<)0PjJ@CxxQ}(>PaF0rCV!CrVMqqs#gXva+Wi~ zlyyA{lhVl+gPz)g?egQod)L#P0_9__c6#iM?C+cBJnx9CzvrwX6Kd{WTD_vi|5)b{ zuUo+Lq*=L{HRrl6*IPZ^&!orhmKz^0Os^n9w$JtY5}{(ue)sHReLInAg!_#;2!ks| z>i&(%NxfP%{eYG#s6^97k(p`zA|+B`>`$=drVOu~*XJe_)|_P}N@_^dATi=xyWR6q zZ-(-*W+D0num{8+qy| z+3qLPUpvw4V@fg8<>K~wTivgiVckB;Ocq1zJ+2!mQ#jkYGj>cT1sNL^! zu@*Y;33x5W3HFZ`lir(uS#n^MOtM-g&~0k{Dl;66Z9D%y*nlnSMO~op_1ZtxvHdSF zp~JaVH{CNSZ1Pq{NQrr9CzMLs(hupOf$xRJ5Go*X)-Gq43TtS7Bj%Z%iAnhN>2rf* zRwNfab1Af<81kGD1)uF+?Qb%n?T;go`*t(THEPTBF3&dbZ|@fW8qHlike7FTZOIoG z)@pNHk!av5LGs%aE&CDwoMN7R=w$4V!$Ub@g^&J_1KTM7`w7z@6^qOrT!PH(e7`81 zzud-|wgT*jz8SD9tV2QA9`EBj+dgS^VK~yp^G%B?G99)u*~`L;*POFV8WT;#letGZ`Xsshy%+g|KxA`?(#hu0Cz1e zMsW(bf9Yl4#$W`nyD5|e-!Q8#{0R=JV{>^vC`pcg`ZpT$=2nj78y(qQv=%Qt*9 z-+AP9>V`4_h@hXs+YLG?rKSF&jvSVEzpO|XuT8VAgG3SwRox+h6haCWO3_z+Uwm=L zuR;g^izvANzQj4xTGrxI>Au(u7N<&jw)11@E}s}YfQ;xrG=S8qg@=~Id%c$;f->YMY4&W+a8gEZUU(yJwpR zViQnMcCaF7_S_D-WXy_J95t)XYFmJT4Eeu)!FjiV7!cbILm7L%hl$8NyO44B!`H`P zj5J4#dMTq@I7QQ5O>k!SRi4@dX#zH^IA6>|RZ^KiL<@t-FzO|t^o7rTv_)pB@XUS8 z_rx}HyaT~i;osQD42aZ!i4rdqrcXm4-yqffn8)eG0^uKZ_JBnDT4B5sBa-)Dq4yvI zQtFWpE+)U*nbVwzbNcuu$@#w@__$M&^&K7_Uev2PkW$2ZOq>7r>v0vl|M%f&Ppa3iag>yl-Z3S>qM~{RQ@B?4_k}m$3#Ob@e0(IEBblMf1%a8F6l(9^ z$EK!Ygh_Gc!}Y)mG=9KE@uJ+&u*n|ZL$a4xGGSe+Q;T6_WMpzaU8}z_E)APp6`4)^<#m7<; z{;<&zh}L&{GXnLMdR5%i1o`~=b74`DKiJBQZJo%*`g(9s5HgEy11?5z=h}_a?d8Ya zrInSHWF8x09UUFV%OfLg7UJ*q^=sfj$-H){WBV?yu0{iitc7J|CDMNq4lgGT z17&i=rKN+<9$s*nQ}Xf>qoAPh``!y7P=d3cY>tE`C6NFkM|lTOF7H;fyCruZ_;nbH zxw-M?sxcD3*54bw8{KxXw6dzY_not=@0gmJN>$1b`uqo?eS@ifb#*mKiGr{>oFQpu zMr&+rEOUkvLe9a#(QrO%gNP6o7UsSd#rJ!36fvSFAT<^8HkI4ztqf|8N+aCs>i+ zbtisc_vY&Avsb2?~YvSVK+SR7NlJ9Lffg&Ir*Fk)JeOdIHT)NTX0U=7YtB~kbzDnuqlc%Po zeS61%OG+AXb+QTH=1@n##m5i8BIR8Mv+4jHLi8&_D=J>Asj0C$EDA9sC_L`)rn|Zb z27{@-KNDk0pyuKtNJ&Wn!;J^EOtuC_MsWBR-D&&|q6yTtFSm_<3=>Kri?!tVE95~E zZUhzs;mIW2IL&5s%yh*Ae5cKn1v-Jfj!3JCMG!x0z^baZYD8=7$|hg>096TOTK+WTwh<` z+S!4OH)=5u%DsKt9fVGhUaqB~ff6NSG8Uyz9V?cnMkONBwxrAo)(^#@kkQZ}8n@;F z+=j=*;5Iw!0w!x|0`gKZG4*f1aSNt=`rDGbu%aSVzoNbku2w_{*aC})sBxPFy1?(Y z_Z(;-E(8)jQ)5xXz&h$)`{{5IF)C$eWp_6MZ~%r%6!$BLZ^?@wBO_zdOfiW~+S;1Q z@8F}@&BdWC6q>f+oS;BESq8P>A}`F&MuOJc6ScC=to1Wjbn{H<(p*m`vO;b9aj?e0 z;W<3dZJXDD>}D@?qbV>Y7|&Fjfm0HC-=2(!%G%qPcWn-sa+ZFmK?VIA*i&zu{=$YT z13@F-yyszSjNB{s=g;_Ews4)CoinhXW8>iT{mE0rBP8TrHWB)CK!!~&1e=`H4BZ6+ z0)Paq#(by~Z0zGoC(5n~n7aJPX7cT`YjG6Dtmd(vM(0f_iZM%WUh(2h2^0i?S<`iP zX_hfaO}j@KBHpv+AHasjC?^QGyQ@>1nwqFk7!k0UT~6ceAWQ%OD%!3UPB{Q=T3T9s zYVz)jVPHn{-0jlrYl1caW^-&b`4f*8yj#Bb^}r4m_2Q1y55089q}WXefb=(?WYp%zH75& zcQ_RGZSCXRAwscPkXZFi#YU03JLjQo&s;iG@ePvD>h>eM%yiT4DuC1$^T(@HQ^5u)| zeWuXo>VXt_17IeOE-onkd{$6acC!)BTo2w;UGB1p%pE-Wf}AZcl7s%mPh zE-%G#kB<8&aNeZVUJV{ID{_mJ>9@`bM1}q`l>j;fblq<9_~N48jR9~J0E!rZBfnWD zGBXN{U?jlzm|vzxU}HKusd`XF9UTaeZUA1TGdl9}VTvRcDQ`p0cBjBFY#b~sEI>|R zXsQON0|El}qGgNJsp;r?jXvb}M3B(1usj0_21MrWKv7RGqYL`=eSxy;Wy|_N(%N{@ zd!QBUkf^P_y&##K<7o?OHa6`0`+HnuL{?VT!qU?3(1NC>S*t7&*B!$CfdOfX_e=>- zad1Kv@&YKI0(JW2t`AaNPr;VCEQY_|XC@?=aUBx;7WUk8ozmMppTfq#=R3u);f1{G0Du6~ZQjjW zCct+{=5zQucELbH^8|?RB;~#(RFcD}6Pe{hbvIk!T$M?v9;wz6@6Wd3^fxq3UbEk= zv|HS(lo;8>aUH?ncvCa8H+RP!V$xDwph}0ttW{1{Q+wr6Qe4~_{ZdeBt_cvW(zpj> zbk3(s8Ym-pc~7$7r}8cJ^Vrx}H~->x3Up&GJe3RqjZ-wZ6t%dyIUV?qqhIuy{I&$9 zq(pdFY4UM&M*Fk1Yt(WRNb#{QHZg3Q2WW%9Uo@~9_P(^ihLSEZxKhTc?LoNCm z`Mu&kUm6e7blBbjNlZcl$-a4?H&i?gn8T1qT+uAm=3se01^*84*XwjtHhW>??(VM2 zZC_`XrH97oV7^hi-acdD$5LDOV#z&Hf_5lGOW|WrPmj@Pwsbc97rl0`V{4@P#P3yI(e-s|^he zVQ)qOL#JJ1uGCH&CqqyL4LBf^G$)B6Bb+nKqNavJUMI9cq0lO`0pd~dk;TPD@YSI# z1>C6ImEl4%pO8zQ#~l3mxtr}wwe*Je$kua^!^_UP3%$?dj zUJ0ehE-I2gMSApPsOac6szrJ`Ox2BB(R+HooM}LzyOm#rnhOYG=U{r>GTFxqW6w~Z zh+J>cj89EP=+7syLN{EhJ8CROsOjm^TwPsb2G(I=VIApjoMjeRC90y?0k8;U46kI_ z<*A{!>O0iz%{MwL!^^6x@de%X9JS8^Ky|WF`oo8mEz^LrvonA-B)$D)Wxy(d&&BNQ z%C>^<5~23uUS2I-n}Zs` z$4OE91NU!rZSAEw0e zmCT{JTsX~xy-!vcI9zBuIaOOi$G%C1I_``!c6WCJYujO5C6+S^L-hhahg0)dfeO^& z0vH(GPYbR9yncX7IjWkPs9BzM^Rd|KK0ZEf13NoAd*%j?pnY_CtZ`Ms~dZ`qAbPEPt*+z@pEzx!_tvzeO*8@O@F$r%G& zwx2)c=3T~=c-uRBP`j`2`04C{c7RSmr@gt9%4HEf^oB6aPn9jH*?ayuaIFy$fVI=rnOq94_;j(}rk8@| zth%pQ`lG1i<^?I~?!Uoa;}e>q3F~^I30Ie|=@~RtCWjUHt(hVq?Y80t!R~e%av+5w{scj3Hd{Kx^ zNeMF>NDOC5-JwqAOW^yg4@)`OzXie>Q2WK^I5G!0=RFUjFFhL{d=^bJ1g$70B+od)=7wmjSP&^GGwO^J;Iy##&SZh9PBN&>rZ#~m|_3Bk*_}$(MX1YmiqUX_>6?j|4SiX{^lM|hB3A@NvL`pMNnFDgpG!^5MDNkIAxb$omr=GKYm zH$JWoPDt(4o+0>2XTSnW)7F;d&)C=usBudjjO2$vav%2ujK3sxEPD<$HTA_8g}fMr zylk^VT@LSS7hUHep2;xM6jhKPfc`S&98Bgg`7weCR2;}#rRgvHw3*;Hj|D>^iJZ|a z5aiOu$-DfK3X?Ksg%Sb(83ub=Psm0G9!yQ0P5wa9G4mAT*|tL>cyTI%ytJ}ZxrAZB F{{ch{0?ctXU;$F+#Bc4yqSou6|u5b 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 b|C}BQ8{pKfnGPr=Xl~ literal 0 HcmV?d00001 diff --git a/lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v3.png b/lib/lib_div/rfid-1.4.7/doc/fritzing/RFID-RC522-v3.png new file mode 100644 index 0000000000000000000000000000000000000000..d56c6d5572f6eb32d057f071bf1bf5cf1f37e5a6 GIT binary patch literal 17789 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 FCII}U6chje literal 0 HcmV?d00001 diff --git a/lib/lib_div/rfid-1.4.7/doc/rfidmifare.pdf b/lib/lib_div/rfid-1.4.7/doc/rfidmifare.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2b85aa683bebd56a7bc88e292e8646fcb75f458f GIT binary patch literal 317469 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

i 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

9ZkgmtR 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≪ygKpd|3A9LXCA%W)%CK4 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

|nx!ZV;eqE<< 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%0Abt4w3YudRkChY@th$&n$m)pW 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 M;xI5sDM{n}Up{f5O#lD@ literal 0 HcmV?d00001 diff --git a/lib/lib_div/rfid-1.4.7/examples/AccessControl/AccessControl.ino b/lib/lib_div/rfid-1.4.7/examples/AccessControl/AccessControl.ino new file mode 100644 index 000000000..d0a53875c --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/AccessControl/AccessControl.ino @@ -0,0 +1,537 @@ +/* + -------------------------------------------------------------------------------------------------------------------- + Example sketch/program showing An Arduino Door Access Control featuring RFID, EEPROM, Relay + -------------------------------------------------------------------------------------------------------------------- + This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + + This example showing a complete Door Access Control System + + Simple Work Flow (not limited to) : + +---------+ + +----------------------------------->READ TAGS+^------------------------------------------+ + | +--------------------+ | + | | | | + | | | | + | +----v-----+ +-----v----+ | + | |MASTER TAG| |OTHER TAGS| | + | +--+-------+ ++-------------+ | + | | | | | + | | | | | + | +-----v---+ +----v----+ +----v------+ | + | +------------+READ TAGS+---+ |KNOWN TAG| |UNKNOWN TAG| | + | | +-+-------+ | +-----------+ +------------------+ | + | | | | | | | + | +----v-----+ +----v----+ +--v--------+ +-v----------+ +------v----+ | + | |MASTER TAG| |KNOWN TAG| |UNKNOWN TAG| |GRANT ACCESS| |DENY ACCESS| | + | +----------+ +---+-----+ +-----+-----+ +-----+------+ +-----+-----+ | + | | | | | | + | +----+ +----v------+ +--v---+ | +---------------> + +-------+EXIT| |DELETE FROM| |ADD TO| | | + +----+ | EEPROM | |EEPROM| | | + +-----------+ +------+ +-------------------------------+ + + + Use a Master Card which is act as Programmer then you can able to choose card holders who will granted access or not + + * **Easy User Interface** + + Just one RFID tag needed whether Delete or Add Tags. You can choose to use Leds for output or Serial LCD module to inform users. + + * **Stores Information on EEPROM** + + Information stored on non volatile Arduino's EEPROM memory to preserve Users' tag and Master Card. No Information lost + if power lost. EEPROM has unlimited Read cycle but roughly 100,000 limited Write cycle. + + * **Security** + To keep it simple we are going to use Tag's Unique IDs. It's simple and not hacker proof. + + @license Released into the public domain. + + Typical pin layout used: + ----------------------------------------------------------------------------------------- + MFRC522 Arduino Arduino Arduino Arduino Arduino + Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + Signal Pin Pin Pin Pin Pin Pin + ----------------------------------------------------------------------------------------- + RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + SPI SS SDA(SS) 10 53 D10 10 10 + SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 +*/ + +#include // We are going to read and write PICC's UIDs from/to EEPROM +#include // RC522 Module uses SPI protocol +#include // Library for Mifare RC522 Devices + +/* + Instead of a Relay you may want to use a servo. Servos can lock and unlock door locks too + Relay will be used by default +*/ + +// #include + +/* + For visualizing whats going on hardware we need some leds and to control door lock a relay and a wipe button + (or some other hardware) Used common anode led,digitalWriting HIGH turns OFF led Mind that if you are going + to use common cathode led or just seperate leds, simply comment out #define COMMON_ANODE, +*/ + +#define COMMON_ANODE + +#ifdef COMMON_ANODE +#define LED_ON LOW +#define LED_OFF HIGH +#else +#define LED_ON HIGH +#define LED_OFF LOW +#endif + +#define redLed 7 // Set Led Pins +#define greenLed 6 +#define blueLed 5 + +#define relay 4 // Set Relay Pin +#define wipeB 3 // Button pin for WipeMode + +bool programMode = false; // initialize programming mode to false + +uint8_t successRead; // Variable integer to keep if we have Successful Read from Reader + +byte storedCard[4]; // Stores an ID read from EEPROM +byte readCard[4]; // Stores scanned ID read from RFID Module +byte masterCard[4]; // Stores master card's ID read from EEPROM + +// Create MFRC522 instance. +#define SS_PIN 10 +#define RST_PIN 9 +MFRC522 mfrc522(SS_PIN, RST_PIN); + +///////////////////////////////////////// Setup /////////////////////////////////// +void setup() { + //Arduino Pin Configuration + pinMode(redLed, OUTPUT); + pinMode(greenLed, OUTPUT); + pinMode(blueLed, OUTPUT); + pinMode(wipeB, INPUT_PULLUP); // Enable pin's pull up resistor + pinMode(relay, OUTPUT); + //Be careful how relay circuit behave on while resetting or power-cycling your Arduino + digitalWrite(relay, HIGH); // Make sure door is locked + digitalWrite(redLed, LED_OFF); // Make sure led is off + digitalWrite(greenLed, LED_OFF); // Make sure led is off + digitalWrite(blueLed, LED_OFF); // Make sure led is off + + //Protocol Configuration + Serial.begin(9600); // Initialize serial communications with PC + SPI.begin(); // MFRC522 Hardware uses SPI protocol + mfrc522.PCD_Init(); // Initialize MFRC522 Hardware + + //If you set Antenna Gain to Max it will increase reading distance + //mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max); + + Serial.println(F("Access Control Example v0.1")); // For debugging purposes + ShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details + + //Wipe Code - If the Button (wipeB) Pressed while setup run (powered on) it wipes EEPROM + if (digitalRead(wipeB) == LOW) { // when button pressed pin should get low, button connected to ground + digitalWrite(redLed, LED_ON); // Red Led stays on to inform user we are going to wipe + Serial.println(F("Wipe Button Pressed")); + Serial.println(F("You have 10 seconds to Cancel")); + Serial.println(F("This will be remove all records and cannot be undone")); + bool buttonState = monitorWipeButton(10000); // Give user enough time to cancel operation + if (buttonState == true && digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROM + Serial.println(F("Starting Wiping EEPROM")); + for (uint16_t x = 0; x < EEPROM.length(); x = x + 1) { //Loop end of EEPROM address + if (EEPROM.read(x) == 0) { //If EEPROM address 0 + // do nothing, already clear, go to the next address in order to save time and reduce writes to EEPROM + } + else { + EEPROM.write(x, 0); // if not write 0 to clear, it takes 3.3mS + } + } + Serial.println(F("EEPROM Successfully Wiped")); + digitalWrite(redLed, LED_OFF); // visualize a successful wipe + delay(200); + digitalWrite(redLed, LED_ON); + delay(200); + digitalWrite(redLed, LED_OFF); + delay(200); + digitalWrite(redLed, LED_ON); + delay(200); + digitalWrite(redLed, LED_OFF); + } + else { + Serial.println(F("Wiping Cancelled")); // Show some feedback that the wipe button did not pressed for 15 seconds + digitalWrite(redLed, LED_OFF); + } + } + // Check if master card defined, if not let user choose a master card + // This also useful to just redefine the Master Card + // You can keep other EEPROM records just write other than 143 to EEPROM address 1 + // EEPROM address 1 should hold magical number which is '143' + if (EEPROM.read(1) != 143) { + Serial.println(F("No Master Card Defined")); + Serial.println(F("Scan A PICC to Define as Master Card")); + do { + successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0 + digitalWrite(blueLed, LED_ON); // Visualize Master Card need to be defined + delay(200); + digitalWrite(blueLed, LED_OFF); + delay(200); + } + while (!successRead); // Program will not go further while you not get a successful read + for ( uint8_t j = 0; j < 4; j++ ) { // Loop 4 times + EEPROM.write( 2 + j, readCard[j] ); // Write scanned PICC's UID to EEPROM, start from address 3 + } + EEPROM.write(1, 143); // Write to EEPROM we defined Master Card. + Serial.println(F("Master Card Defined")); + } + Serial.println(F("-------------------")); + Serial.println(F("Master Card's UID")); + for ( uint8_t i = 0; i < 4; i++ ) { // Read Master Card's UID from EEPROM + masterCard[i] = EEPROM.read(2 + i); // Write it to masterCard + Serial.print(masterCard[i], HEX); + } + Serial.println(""); + Serial.println(F("-------------------")); + Serial.println(F("Everything is ready")); + Serial.println(F("Waiting PICCs to be scanned")); + cycleLeds(); // Everything ready lets give user some feedback by cycling leds +} + + +///////////////////////////////////////// Main Loop /////////////////////////////////// +void loop () { + do { + successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0 + // When device is in use if wipe button pressed for 10 seconds initialize Master Card wiping + if (digitalRead(wipeB) == LOW) { // Check if button is pressed + // Visualize normal operation is iterrupted by pressing wipe button Red is like more Warning to user + digitalWrite(redLed, LED_ON); // Make sure led is off + digitalWrite(greenLed, LED_OFF); // Make sure led is off + digitalWrite(blueLed, LED_OFF); // Make sure led is off + // Give some feedback + Serial.println(F("Wipe Button Pressed")); + Serial.println(F("Master Card will be Erased! in 10 seconds")); + bool buttonState = monitorWipeButton(10000); // Give user enough time to cancel operation + if (buttonState == true && digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROM + EEPROM.write(1, 0); // Reset Magic Number. + Serial.println(F("Master Card Erased from device")); + Serial.println(F("Please reset to re-program Master Card")); + while (1); + } + Serial.println(F("Master Card Erase Cancelled")); + } + if (programMode) { + cycleLeds(); // Program Mode cycles through Red Green Blue waiting to read a new card + } + else { + normalModeOn(); // Normal mode, blue Power LED is on, all others are off + } + } + while (!successRead); //the program will not go further while you are not getting a successful read + if (programMode) { + if ( isMaster(readCard) ) { //When in program mode check First If master card scanned again to exit program mode + Serial.println(F("Master Card Scanned")); + Serial.println(F("Exiting Program Mode")); + Serial.println(F("-----------------------------")); + programMode = false; + return; + } + else { + if ( findID(readCard) ) { // If scanned card is known delete it + Serial.println(F("I know this PICC, removing...")); + deleteID(readCard); + Serial.println("-----------------------------"); + Serial.println(F("Scan a PICC to ADD or REMOVE to EEPROM")); + } + else { // If scanned card is not known add it + Serial.println(F("I do not know this PICC, adding...")); + writeID(readCard); + Serial.println(F("-----------------------------")); + Serial.println(F("Scan a PICC to ADD or REMOVE to EEPROM")); + } + } + } + else { + if ( isMaster(readCard)) { // If scanned card's ID matches Master Card's ID - enter program mode + programMode = true; + Serial.println(F("Hello Master - Entered Program Mode")); + uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM that + Serial.print(F("I have ")); // stores the number of ID's in EEPROM + Serial.print(count); + Serial.print(F(" record(s) on EEPROM")); + Serial.println(""); + Serial.println(F("Scan a PICC to ADD or REMOVE to EEPROM")); + Serial.println(F("Scan Master Card again to Exit Program Mode")); + Serial.println(F("-----------------------------")); + } + else { + if ( findID(readCard) ) { // If not, see if the card is in the EEPROM + Serial.println(F("Welcome, You shall pass")); + granted(300); // Open the door lock for 300 ms + } + else { // If not, show that the ID was not valid + Serial.println(F("You shall not pass")); + denied(); + } + } + } +} + +///////////////////////////////////////// Access Granted /////////////////////////////////// +void granted ( uint16_t setDelay) { + digitalWrite(blueLed, LED_OFF); // Turn off blue LED + digitalWrite(redLed, LED_OFF); // Turn off red LED + digitalWrite(greenLed, LED_ON); // Turn on green LED + digitalWrite(relay, LOW); // Unlock door! + delay(setDelay); // Hold door lock open for given seconds + digitalWrite(relay, HIGH); // Relock door + delay(1000); // Hold green LED on for a second +} + +///////////////////////////////////////// Access Denied /////////////////////////////////// +void denied() { + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + digitalWrite(redLed, LED_ON); // Turn on red LED + delay(1000); +} + + +///////////////////////////////////////// Get PICC's UID /////////////////////////////////// +uint8_t getID() { + // Getting ready for Reading PICCs + if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue + return 0; + } + if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue + return 0; + } + // There are Mifare PICCs which have 4 byte or 7 byte UID care if you use 7 byte PICC + // I think we should assume every PICC as they have 4 byte UID + // Until we support 7 byte PICCs + Serial.println(F("Scanned PICC's UID:")); + for ( uint8_t i = 0; i < 4; i++) { // + readCard[i] = mfrc522.uid.uidByte[i]; + Serial.print(readCard[i], HEX); + } + Serial.println(""); + mfrc522.PICC_HaltA(); // Stop reading + return 1; +} + +void ShowReaderDetails() { + // Get the MFRC522 software version + byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg); + Serial.print(F("MFRC522 Software Version: 0x")); + Serial.print(v, HEX); + if (v == 0x91) + Serial.print(F(" = v1.0")); + else if (v == 0x92) + Serial.print(F(" = v2.0")); + else + Serial.print(F(" (unknown),probably a chinese clone?")); + Serial.println(""); + // When 0x00 or 0xFF is returned, communication probably failed + if ((v == 0x00) || (v == 0xFF)) { + Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?")); + Serial.println(F("SYSTEM HALTED: Check connections.")); + // Visualize system is halted + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + digitalWrite(redLed, LED_ON); // Turn on red LED + while (true); // do not go further + } +} + +///////////////////////////////////////// Cycle Leds (Program Mode) /////////////////////////////////// +void cycleLeds() { + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + digitalWrite(greenLed, LED_ON); // Make sure green LED is on + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + delay(200); + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + digitalWrite(blueLed, LED_ON); // Make sure blue LED is on + delay(200); + digitalWrite(redLed, LED_ON); // Make sure red LED is on + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + delay(200); +} + +//////////////////////////////////////// Normal Mode Led /////////////////////////////////// +void normalModeOn () { + digitalWrite(blueLed, LED_ON); // Blue LED ON and ready to read card + digitalWrite(redLed, LED_OFF); // Make sure Red LED is off + digitalWrite(greenLed, LED_OFF); // Make sure Green LED is off + digitalWrite(relay, HIGH); // Make sure Door is Locked +} + +//////////////////////////////////////// Read an ID from EEPROM ////////////////////////////// +void readID( uint8_t number ) { + uint8_t start = (number * 4 ) + 2; // Figure out starting position + for ( uint8_t i = 0; i < 4; i++ ) { // Loop 4 times to get the 4 Bytes + storedCard[i] = EEPROM.read(start + i); // Assign values read from EEPROM to array + } +} + +///////////////////////////////////////// Add ID to EEPROM /////////////////////////////////// +void writeID( byte a[] ) { + if ( !findID( a ) ) { // Before we write to the EEPROM, check to see if we have seen this card before! + uint8_t num = EEPROM.read(0); // Get the numer of used spaces, position 0 stores the number of ID cards + uint8_t start = ( num * 4 ) + 6; // Figure out where the next slot starts + num++; // Increment the counter by one + EEPROM.write( 0, num ); // Write the new count to the counter + for ( uint8_t j = 0; j < 4; j++ ) { // Loop 4 times + EEPROM.write( start + j, a[j] ); // Write the array values to EEPROM in the right position + } + successWrite(); + Serial.println(F("Succesfully added ID record to EEPROM")); + } + else { + failedWrite(); + Serial.println(F("Failed! There is something wrong with ID or bad EEPROM")); + } +} + +///////////////////////////////////////// Remove ID from EEPROM /////////////////////////////////// +void deleteID( byte a[] ) { + if ( !findID( a ) ) { // Before we delete from the EEPROM, check to see if we have this card! + failedWrite(); // If not + Serial.println(F("Failed! There is something wrong with ID or bad EEPROM")); + } + else { + uint8_t num = EEPROM.read(0); // Get the numer of used spaces, position 0 stores the number of ID cards + uint8_t slot; // Figure out the slot number of the card + uint8_t start; // = ( num * 4 ) + 6; // Figure out where the next slot starts + uint8_t looping; // The number of times the loop repeats + uint8_t j; + uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM that stores number of cards + slot = findIDSLOT( a ); // Figure out the slot number of the card to delete + start = (slot * 4) + 2; + looping = ((num - slot) * 4); + num--; // Decrement the counter by one + EEPROM.write( 0, num ); // Write the new count to the counter + for ( j = 0; j < looping; j++ ) { // Loop the card shift times + EEPROM.write( start + j, EEPROM.read(start + 4 + j)); // Shift the array values to 4 places earlier in the EEPROM + } + for ( uint8_t k = 0; k < 4; k++ ) { // Shifting loop + EEPROM.write( start + j + k, 0); + } + successDelete(); + Serial.println(F("Succesfully removed ID record from EEPROM")); + } +} + +///////////////////////////////////////// Check Bytes /////////////////////////////////// +bool checkTwo ( byte a[], byte b[] ) { + for ( uint8_t k = 0; k < 4; k++ ) { // Loop 4 times + if ( a[k] != b[k] ) { // IF a != b then false, because: one fails, all fail + return false; + } + } + return true; +} + +///////////////////////////////////////// Find Slot /////////////////////////////////// +uint8_t findIDSLOT( byte find[] ) { + uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM that + for ( uint8_t i = 1; i <= count; i++ ) { // Loop once for each EEPROM entry + readID(i); // Read an ID from EEPROM, it is stored in storedCard[4] + if ( checkTwo( find, storedCard ) ) { // Check to see if the storedCard read from EEPROM + // is the same as the find[] ID card passed + return i; // The slot number of the card + } + } +} + +///////////////////////////////////////// Find ID From EEPROM /////////////////////////////////// +bool findID( byte find[] ) { + uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM that + for ( uint8_t i = 1; i < count; i++ ) { // Loop once for each EEPROM entry + readID(i); // Read an ID from EEPROM, it is stored in storedCard[4] + if ( checkTwo( find, storedCard ) ) { // Check to see if the storedCard read from EEPROM + return true; + } + else { // If not, return false + } + } + return false; +} + +///////////////////////////////////////// Write Success to EEPROM /////////////////////////////////// +// Flashes the green LED 3 times to indicate a successful write to EEPROM +void successWrite() { + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + digitalWrite(greenLed, LED_OFF); // Make sure green LED is on + delay(200); + digitalWrite(greenLed, LED_ON); // Make sure green LED is on + delay(200); + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + delay(200); + digitalWrite(greenLed, LED_ON); // Make sure green LED is on + delay(200); + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + delay(200); + digitalWrite(greenLed, LED_ON); // Make sure green LED is on + delay(200); +} + +///////////////////////////////////////// Write Failed to EEPROM /////////////////////////////////// +// Flashes the red LED 3 times to indicate a failed write to EEPROM +void failedWrite() { + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + delay(200); + digitalWrite(redLed, LED_ON); // Make sure red LED is on + delay(200); + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + delay(200); + digitalWrite(redLed, LED_ON); // Make sure red LED is on + delay(200); + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + delay(200); + digitalWrite(redLed, LED_ON); // Make sure red LED is on + delay(200); +} + +///////////////////////////////////////// Success Remove UID From EEPROM /////////////////////////////////// +// Flashes the blue LED 3 times to indicate a success delete to EEPROM +void successDelete() { + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + digitalWrite(redLed, LED_OFF); // Make sure red LED is off + digitalWrite(greenLed, LED_OFF); // Make sure green LED is off + delay(200); + digitalWrite(blueLed, LED_ON); // Make sure blue LED is on + delay(200); + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + delay(200); + digitalWrite(blueLed, LED_ON); // Make sure blue LED is on + delay(200); + digitalWrite(blueLed, LED_OFF); // Make sure blue LED is off + delay(200); + digitalWrite(blueLed, LED_ON); // Make sure blue LED is on + delay(200); +} + +////////////////////// Check readCard IF is masterCard /////////////////////////////////// +// Check to see if the ID passed is the master programing card +bool isMaster( byte test[] ) { + return checkTwo(test, masterCard); +} + +bool monitorWipeButton(uint32_t interval) { + uint32_t now = (uint32_t)millis(); + while ((uint32_t)millis() - now < interval) { + // check on every half a second + if (((uint32_t)millis() % 500) == 0) { + if (digitalRead(wipeB) != LOW) + return false; + } + } + return true; +} diff --git a/lib/lib_div/rfid-1.4.7/examples/ChangeUID/ChangeUID.ino b/lib/lib_div/rfid-1.4.7/examples/ChangeUID/ChangeUID.ino new file mode 100644 index 000000000..0a3ed9880 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/ChangeUID/ChangeUID.ino @@ -0,0 +1,110 @@ +/* + * -------------------------------------------------------------------------------------------------------------------- + * Example to change UID of changeable MIFARE card. + * -------------------------------------------------------------------------------------------------------------------- + * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + * + * This sample shows how to set the UID on a UID changeable MIFARE card. + * + * @author Tom Clement + * @license Released into the public domain. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +/* Set your new UID here! */ +#define NEW_UID {0xDE, 0xAD, 0xBE, 0xEF} + +MFRC522::MIFARE_Key key; + +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + Serial.println(F("Warning: this example overwrites the UID of your UID changeable card, use with care!")); + + // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } +} + +// Setting the UID can be as simple as this: +//void loop() { +// byte newUid[] = NEW_UID; +// if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) { +// Serial.println("Wrote new UID to card."); +// } +// delay(1000); +//} + +// But of course this is a more proper approach +void loop() { + + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. And if present, select one. + if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { + delay(50); + return; + } + + // Now a card is selected. The UID and SAK is in mfrc522.uid. + + // Dump UID + Serial.print(F("Card UID:")); + for (byte i = 0; i < mfrc522.uid.size; i++) { + Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); + Serial.print(mfrc522.uid.uidByte[i], HEX); + } + Serial.println(); + + // Dump PICC type +// MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); +// Serial.print(F("PICC type: ")); +// Serial.print(mfrc522.PICC_GetTypeName(piccType)); +// Serial.print(F(" (SAK ")); +// Serial.print(mfrc522.uid.sak); +// Serial.print(")\r\n"); +// if ( piccType != MFRC522::PICC_TYPE_MIFARE_MINI +// && piccType != MFRC522::PICC_TYPE_MIFARE_1K +// && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { +// Serial.println(F("This sample only works with MIFARE Classic cards.")); +// return; +// } + + // Set new UID + byte newUid[] = NEW_UID; + if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) { + Serial.println(F("Wrote new UID to card.")); + } + + // Halt PICC and re-select it so DumpToSerial doesn't get confused + mfrc522.PICC_HaltA(); + if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { + return; + } + + // Dump the new memory contents + Serial.println(F("New UID and contents:")); + mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); + + delay(2000); +} diff --git a/lib/lib_div/rfid-1.4.7/examples/DumpInfo/DumpInfo.ino b/lib/lib_div/rfid-1.4.7/examples/DumpInfo/DumpInfo.ino new file mode 100644 index 000000000..5dbb3fe2b --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/DumpInfo/DumpInfo.ino @@ -0,0 +1,67 @@ +/* + * -------------------------------------------------------------------------------------------------------------------- + * Example sketch/program showing how to read data from a PICC to serial. + * -------------------------------------------------------------------------------------------------------------------- + * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + * + * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID + * Reader on the Arduino SPI interface. + * + * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE + * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When + * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output + * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages + * when removing the PICC from reading distance too early. + * + * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading). + * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all + * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so + * keep the PICCs at reading distance until complete. + * + * @license Released into the public domain. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 + delay(4); // Optional delay. Some board do need more time after init to be ready, see Readme + mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details + Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); +} + +void loop() { + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) { + return; + } + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) { + return; + } + + // Dump debug info about the card; PICC_HaltA() is automatically called + mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); +} diff --git a/lib/lib_div/rfid-1.4.7/examples/FixBrickedUID/FixBrickedUID.ino b/lib/lib_div/rfid-1.4.7/examples/FixBrickedUID/FixBrickedUID.ino new file mode 100644 index 000000000..391a2521e --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/FixBrickedUID/FixBrickedUID.ino @@ -0,0 +1,53 @@ +/* + * -------------------------------------------------------------------------------------------------------------------- + * Example sketch/program to fix a broken UID changeable MIFARE cards. + * -------------------------------------------------------------------------------------------------------------------- + * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + * + * This sample shows how to fix a broken UID changeable MIFARE cards that have a corrupted sector 0. + * + * @author Tom Clement + * @license Released into the public domain. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +MFRC522::MIFARE_Key key; + +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + Serial.println(F("Warning: this example clears your mifare UID, use with care!")); + + // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } +} + +void loop() { + if ( mfrc522.MIFARE_UnbrickUidSector(false) ) { + Serial.println(F("Cleared sector 0, set UID to 1234. Card should be responsive again now.")); + } + delay(1000); +} diff --git a/lib/lib_div/rfid-1.4.7/examples/MifareClassicValueBlock/MifareClassicValueBlock.ino b/lib/lib_div/rfid-1.4.7/examples/MifareClassicValueBlock/MifareClassicValueBlock.ino new file mode 100644 index 000000000..3bf572ad0 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/MifareClassicValueBlock/MifareClassicValueBlock.ino @@ -0,0 +1,319 @@ +/** + * ---------------------------------------------------------------------------- + * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid + * for further details and other examples. + * + * NOTE: The library file MFRC522.h has a lot of useful info. Please read it. + * + * Released into the public domain. + * ---------------------------------------------------------------------------- + * This sample shows how to setup blocks on a MIFARE Classic PICC (= card/tag) + * to be in "Value Block" mode: in this mode the operations Increment/Decrement, + * Restore and Transfer can be used. + * + * BEWARE: Data will be written to the PICC, in sector #1 (blocks #4 to #7). + * + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. + +MFRC522::MIFARE_Key key; + +/** + * Initialize. + */ +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + + // Prepare the key (used both as key A and as key B) + // using FFFFFFFFFFFFh which is the default at chip delivery from the factory + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + + Serial.println(F("Scan a MIFARE Classic PICC to demonstrate Value Block mode.")); + Serial.print(F("Using key (for A and B):")); + dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE); + Serial.println(); + + Serial.println(F("BEWARE: Data will be written to the PICC, in sector #1")); +} + +/** + * Main loop. + */ +void loop() { + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) + return; + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) + return; + + // Show some details of the PICC (that is: the tag/card) + Serial.print(F("Card UID:")); + dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); + Serial.println(); + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); + Serial.println(mfrc522.PICC_GetTypeName(piccType)); + + // Check for compatibility + if ( piccType != MFRC522::PICC_TYPE_MIFARE_MINI + && piccType != MFRC522::PICC_TYPE_MIFARE_1K + && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { + Serial.println(F("This sample only works with MIFARE Classic cards.")); + return; + } + + // In this sample we use the second sector, + // that is: sector #1, covering block #4 up to and including block #7 + byte sector = 1; + byte valueBlockA = 5; + byte valueBlockB = 6; + byte trailerBlock = 7; + MFRC522::StatusCode status; + byte buffer[18]; + byte size = sizeof(buffer); + int32_t value; + + // Authenticate using key A + Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Show the whole sector as it currently is + Serial.println(F("Current data in sector:")); + mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector); + Serial.println(); + + // We need a sector trailer that defines blocks 5 and 6 as Value Blocks and enables key B + // The last block in a sector (block #3 for Mifare Classic 1K) is the Sector Trailer. + // See http://www.nxp.com/documents/data_sheet/MF1S503x.pdf sections 8.6 and 8.7: + // Bytes 0-5: Key A + // Bytes 6-8: Access Bits + // Bytes 9: User data + // Bytes 10-15: Key B (or user data) + byte trailerBuffer[] = { + 255, 255, 255, 255, 255, 255, // Keep default key A + 0, 0, 0, + 0, + 255, 255, 255, 255, 255, 255}; // Keep default key B + // The access bits are stored in a peculiar fashion. + // There are four groups: + // g[0] Access bits for block 0 (for sectors 0-31) + // or blocks 0-4 (for sectors 32-39) + // g[1] Access bits for block 1 (for sectors 0-31) + // or blocks 5-9 (for sectors 32-39) + // g[2] Access bits for block 2 (for sectors 0-31) + // or blocks 10-14 (for sectors 32-39) + // g[3] Access bits for the Sector Trailer: block 3 (for sectors 0-31) + // or block 15 (for sectors 32-39) + // Each group has access bits [C1 C2 C3], in this code C1 is MSB and C3 is LSB. + // Determine the bit pattern needed using MIFARE_SetAccessBits: + // g0=0 access bits for block 0 (of this sector) using [0 0 0] = 000b = 0 + // which means key A|B have r/w for block 0 of this sector + // which (in this example) translates to block #4 within sector #1; + // this is the transport configuration (at factory delivery). + // g1=6 access bits for block 1 (of this sector) using [1 1 0] = 110b = 6 + // which means block 1 (of this sector) is used as a value block, + // which (in this example) translates to block #5 within sector #1; + // where key A|B have r, key B has w, key B can increment, + // and key A|B can decrement, transfer, and restore. + // g2=6 same thing for block 2 (of this sector): set it to a value block; + // which (in this example) translates to block #6 within sector #1; + // g3=3 access bits for block 3 (of this sector): the Sector Trailer here; + // using [0 1 1] = 011b = 3 which means only key B has r/w access + // to the Sector Trailer (block 3 of this sector) from now on + // which (in this example) translates to block #7 within sector #1; + mfrc522.MIFARE_SetAccessBits(&trailerBuffer[6], 0, 6, 6, 3); + + // Read the sector trailer as it is currently stored on the PICC + Serial.println(F("Reading sector trailer...")); + status = mfrc522.MIFARE_Read(trailerBlock, buffer, &size); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + // Check if it matches the desired access pattern already; + // because if it does, we don't need to write it again... + if ( buffer[6] != trailerBuffer[6] + || buffer[7] != trailerBuffer[7] + || buffer[8] != trailerBuffer[8]) { + // They don't match (yet), so write it to the PICC + Serial.println(F("Writing new sector trailer...")); + status = mfrc522.MIFARE_Write(trailerBlock, trailerBuffer, 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + } + + // Authenticate using key B + Serial.println(F("Authenticating again using key B...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_B, trailerBlock, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // A value block has a 32 bit signed value stored three times + // and an 8 bit address stored 4 times. Make sure that valueBlockA + // and valueBlockB have that format (note that it will only format + // the block when it doesn't comply to the expected format already). + formatValueBlock(valueBlockA); + formatValueBlock(valueBlockB); + + // Add 1 to the value of valueBlockA and store the result in valueBlockA. + Serial.print("Adding 1 to value of block "); Serial.println(valueBlockA); + status = mfrc522.MIFARE_Increment(valueBlockA, 1); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Increment() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + status = mfrc522.MIFARE_Transfer(valueBlockA); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Transfer() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + // Show the new value of valueBlockA + status = mfrc522.MIFARE_GetValue(valueBlockA, &value); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("mifare_GetValue() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + Serial.print("New value of value block "); Serial.print(valueBlockA); + Serial.print(" = "); Serial.println(value); + + // Decrement 10 from the value of valueBlockB and store the result in valueBlockB. + Serial.print("Subtracting 10 from value of block "); Serial.println(valueBlockB); + status = mfrc522.MIFARE_Decrement(valueBlockB, 10); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Decrement() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + status = mfrc522.MIFARE_Transfer(valueBlockB); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Transfer() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + // Show the new value of valueBlockB + status = mfrc522.MIFARE_GetValue(valueBlockB, &value); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("mifare_GetValue() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + Serial.print(F("New value of value block ")); Serial.print(valueBlockB); + Serial.print(F(" = ")); Serial.println(value); + // Check some boundary... + if (value <= -100) { + Serial.println(F("Below -100, so resetting it to 255 = 0xFF just for fun...")); + status = mfrc522.MIFARE_SetValue(valueBlockB, 255); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("mifare_SetValue() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + } + + // Dump the sector data + mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector); + Serial.println(); + + // Halt PICC + mfrc522.PICC_HaltA(); + // Stop encryption on PCD + mfrc522.PCD_StopCrypto1(); +} + +/** + * Helper routine to dump a byte array as hex values to Serial. + */ +void dump_byte_array(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} + +/** + * Ensure that a given block is formatted as a Value Block. + */ +void formatValueBlock(byte blockAddr) { + byte buffer[18]; + byte size = sizeof(buffer); + MFRC522::StatusCode status; + + Serial.print(F("Reading block ")); Serial.println(blockAddr); + status = mfrc522.MIFARE_Read(blockAddr, buffer, &size); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + if ( (buffer[0] == (byte)~buffer[4]) + && (buffer[1] == (byte)~buffer[5]) + && (buffer[2] == (byte)~buffer[6]) + && (buffer[3] == (byte)~buffer[7]) + + && (buffer[0] == buffer[8]) + && (buffer[1] == buffer[9]) + && (buffer[2] == buffer[10]) + && (buffer[3] == buffer[11]) + + && (buffer[12] == (byte)~buffer[13]) + && (buffer[12] == buffer[14]) + && (buffer[12] == (byte)~buffer[15])) { + Serial.println(F("Block has correct Value Block format.")); + } + else { + Serial.println(F("Formatting as Value Block...")); + byte valueBlock[] = { + 0, 0, 0, 0, + 255, 255, 255, 255, + 0, 0, 0, 0, + blockAddr, ~blockAddr, blockAddr, ~blockAddr }; + status = mfrc522.MIFARE_Write(blockAddr, valueBlock, 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + } + } +} diff --git a/lib/lib_div/rfid-1.4.7/examples/MinimalInterrupt/MinimalInterrupt.ino b/lib/lib_div/rfid-1.4.7/examples/MinimalInterrupt/MinimalInterrupt.ino new file mode 100644 index 000000000..281569c89 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/MinimalInterrupt/MinimalInterrupt.ino @@ -0,0 +1,137 @@ +/** + * ---------------------------------------------------------------------------- + * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid + * for further details and other examples. + * + * NOTE: The library file MFRC522.h has a lot of useful info. Please read it. + * + * Released into the public domain. + * ---------------------------------------------------------------------------- + * Minimal example how to use the interrupts to read the UID of a MIFARE Classic PICC + * (= card/tag). + * + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 3 10 + * IRQ ? ? ? ? 2 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 3 // Configurable, see typical pin layout above +#define IRQ_PIN 2 // Configurable, depends on hardware + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. + +MFRC522::MIFARE_Key key; + +volatile bool bNewInt = false; +byte regVal = 0x7F; +void activateRec(MFRC522 mfrc522); +void clearInt(MFRC522 mfrc522); + +/** + * Initialize. + */ +void setup() { + Serial.begin(115200); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + + mfrc522.PCD_Init(); // Init MFRC522 card + + /* read and printout the MFRC522 version (valid values 0x91 & 0x92)*/ + Serial.print(F("Ver: 0x")); + byte readReg = mfrc522.PCD_ReadRegister(mfrc522.VersionReg); + Serial.println(readReg, HEX); + + /* setup the IRQ pin*/ + pinMode(IRQ_PIN, INPUT_PULLUP); + + /* + * Allow the ... irq to be propagated to the IRQ pin + * For test purposes propagate the IdleIrq and loAlert + */ + regVal = 0xA0; //rx irq + mfrc522.PCD_WriteRegister(mfrc522.ComIEnReg, regVal); + + bNewInt = false; //interrupt flag + + /*Activate the interrupt*/ + attachInterrupt(digitalPinToInterrupt(IRQ_PIN), readCard, FALLING); + + do { //clear a spourious interrupt at start + ; + } while (!bNewInt); + bNewInt = false; + + Serial.println(F("End setup")); +} + +/** + * Main loop. + */ +void loop() { + if (bNewInt) { //new read interrupt + Serial.print(F("Interrupt. ")); + mfrc522.PICC_ReadCardSerial(); //read the tag data + // Show some details of the PICC (that is: the tag/card) + Serial.print(F("Card UID:")); + dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); + Serial.println(); + + clearInt(mfrc522); + mfrc522.PICC_HaltA(); + bNewInt = false; + } + + // The receiving block needs regular retriggering (tell the tag it should transmit??) + // (mfrc522.PCD_WriteRegister(mfrc522.FIFODataReg,mfrc522.PICC_CMD_REQA);) + activateRec(mfrc522); + delay(100); +} //loop() + +/** + * Helper routine to dump a byte array as hex values to Serial. + */ +void dump_byte_array(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} +/** + * MFRC522 interrupt serving routine + */ +void readCard() { + bNewInt = true; +} + +/* + * The function sending to the MFRC522 the needed commands to activate the reception + */ +void activateRec(MFRC522 mfrc522) { + mfrc522.PCD_WriteRegister(mfrc522.FIFODataReg, mfrc522.PICC_CMD_REQA); + mfrc522.PCD_WriteRegister(mfrc522.CommandReg, mfrc522.PCD_Transceive); + mfrc522.PCD_WriteRegister(mfrc522.BitFramingReg, 0x87); +} + +/* + * The function to clear the pending interrupt bits after interrupt serving routine + */ +void clearInt(MFRC522 mfrc522) { + mfrc522.PCD_WriteRegister(mfrc522.ComIrqReg, 0x7F); +} + diff --git a/lib/lib_div/rfid-1.4.7/examples/Ntag216_AUTH/Ntag216_AUTH.ino b/lib/lib_div/rfid-1.4.7/examples/Ntag216_AUTH/Ntag216_AUTH.ino new file mode 100644 index 000000000..b2f3905a2 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/Ntag216_AUTH/Ntag216_AUTH.ino @@ -0,0 +1,62 @@ +/* + * This example show how you can get Authenticated by the NTAG213,215,216. By default the tags are unprotected in order to protect them we need to write 4 different values: + * Using mfrc522.MIFARE_Ultralight_Write(PageNum, Data, #Databytes)) + * 1.- We need to write the 32bit passWord to page 0xE5 !for ntag 213 and 215 page is different refer to nxp documentation! + * 2.- Now Write the 16 bits pACK to the page 0xE6 use the 2 high bytes like this: pACKH + pACKL + 00 + 00 after an authentication the tag will return this secret bytes + * 3.- Now we need to write the first page we want to protect this is a 1 byte data in page 0xE3 we need to write 00 + 00 + 00 + firstPage all pages after this one are write protected + * Now WRITE protection is ACTIVATED so we need to get authenticated in order to write the last data + * 4.- Finally we need to write an access record in order to READ protect the card this step is optional only if you want to read protect also write 80 + 00 + 00 + 00 to 0xE4 + * After completing all these steps you will nee to authenticate first in order to read or write ant page after the first page you selected to protect. + * To disengage protection just write the page (0xE3) to 00 + 00 + 00 + FF that going to remove all protection. + * + * @author GARGANTUA from RoboCreators.com & paradoxalabs.com + * @license Released into the public domain. + */ + +#include +#include + +#define RST_PIN 9 // +#define SS_PIN 10 // + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 + Serial.println(F("Scan PICC to see UID, type, and data blocks...")); +} + +void loop() { + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) { + return; + } + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) { + return; + } + + byte PSWBuff[] = {0xFF, 0xFF, 0xFF, 0xFF}; // 32 bit password default FFFFFFFF. + byte pACK[] = {0, 0}; // 16 bit password ACK returned by the NFCtag. + + Serial.print("Auth: "); + Serial.println(mfrc522.PCD_NTAG216_AUTH(&PSWBuff[0], pACK)); // Request authentification if return STATUS_OK we are good. + + //Print PassWordACK + Serial.print(pACK[0], HEX); + Serial.println(pACK[1], HEX); + + byte WBuff[] = {0x00, 0x00, 0x00, 0x04}; + byte RBuff[18]; + + //Serial.print("CHG BLK: "); + //Serial.println(mfrc522.MIFARE_Ultralight_Write(0xE3, WBuff, 4)); // How to write to a page. + + mfrc522.PICC_DumpMifareUltralightToSerial(); // This is a modifier dump just change the for circle to < 232 instead of < 16 in order to see all the pages on NTAG216. + + delay(3000); +} diff --git a/lib/lib_div/rfid-1.4.7/examples/RFID-Cloner/RFID-Cloner.ino b/lib/lib_div/rfid-1.4.7/examples/RFID-Cloner/RFID-Cloner.ino new file mode 100644 index 000000000..472ab691a --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/RFID-Cloner/RFID-Cloner.ino @@ -0,0 +1,312 @@ +/* + * Copy the RFID card data into variables and then + * scan the second empty card to copy all the data + * ---------------------------------------------------------------------------- + * Example sketch/program which will try the most used default keys listed in + * https://code.google.com/p/mfcuk/wiki/MifareClassicDefaultKeys to dump the + * block 0 of a MIFARE RFID card using a RFID-RC522 reader. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. + +byte buffer[18]; +byte block; +byte waarde[64][16]; +MFRC522::StatusCode status; + +MFRC522::MIFARE_Key key; + +// Number of known default keys (hard-coded) +// NOTE: Synchronize the NR_KNOWN_KEYS define with the defaultKeys[] array +#define NR_KNOWN_KEYS 8 +// Known keys, see: https://code.google.com/p/mfcuk/wiki/MifareClassicDefaultKeys +byte knownKeys[NR_KNOWN_KEYS][MFRC522::MF_KEY_SIZE] = { + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // FF FF FF FF FF FF = factory default + {0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5}, // A0 A1 A2 A3 A4 A5 + {0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5}, // B0 B1 B2 B3 B4 B5 + {0x4d, 0x3a, 0x99, 0xc3, 0x51, 0xdd}, // 4D 3A 99 C3 51 DD + {0x1a, 0x98, 0x2c, 0x7e, 0x45, 0x9a}, // 1A 98 2C 7E 45 9A + {0xd3, 0xf7, 0xd3, 0xf7, 0xd3, 0xf7}, // D3 F7 D3 F7 D3 F7 + {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, // AA BB CC DD EE FF + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // 00 00 00 00 00 00 +}; + +char choice; +/* + * Initialize. + */ +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + Serial.println(F("Try the most used default keys to print block 0 to 63 of a MIFARE PICC.")); + Serial.println("1.Read card \n2.Write to card \n3.Copy the data."); + + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } +} + + + + //Via seriele monitor de bytes uitlezen in hexadecimaal + +void dump_byte_array(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} +//Via seriele monitor de bytes uitlezen in ASCI + +void dump_byte_array1(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.write(buffer[i]); + } +} + +/* + * Try using the PICC (the tag/card) with the given key to access block 0 to 63. + * On success, it will show the key details, and dump the block data on Serial. + * + * @return true when the given key worked, false otherwise. + */ + +bool try_key(MFRC522::MIFARE_Key *key) +{ + bool result = false; + + for(byte block = 0; block < 64; block++){ + + // Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return false; + } + + // Read block + byte byteCount = sizeof(buffer); + status = mfrc522.MIFARE_Read(block, buffer, &byteCount); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + } + else { + // Successful read + result = true; + Serial.print(F("Success with key:")); + dump_byte_array((*key).keyByte, MFRC522::MF_KEY_SIZE); + Serial.println(); + + // Dump block data + Serial.print(F("Block ")); Serial.print(block); Serial.print(F(":")); + dump_byte_array1(buffer, 16); //omzetten van hex naar ASCI + Serial.println(); + + for (int p = 0; p < 16; p++) //De 16 bits uit de block uitlezen + { + waarde [block][p] = buffer[p]; + Serial.print(waarde[block][p]); + Serial.print(" "); + } + + } + } + Serial.println(); + + Serial.println("1.Read card \n2.Write to card \n3.Copy the data."); + + mfrc522.PICC_HaltA(); // Halt PICC + mfrc522.PCD_StopCrypto1(); // Stop encryption on PCD + return result; + + start(); +} + +/* + * Main loop. + */ +void loop() { + start(); + +} + +void start(){ + choice = Serial.read(); + + if(choice == '1') + { + Serial.println("Read the card"); + keuze1(); + + } + else if(choice == '2') + { + Serial.println("See what is in the variables"); + keuze2(); + } + else if(choice == '3') + { + Serial.println("Copying the data on to the new card"); + keuze3(); + } +} + +void keuze2(){ //Test waardes in blokken + + for(block = 4; block <= 62; block++){ + if(block == 7 || block == 11 || block == 15 || block == 19 || block == 23 || block == 27 || block == 31 || block == 35 || block == 39 || block == 43 || block == 47 || block == 51 || block == 55 || block == 59){ + block ++; + } + + Serial.print(F("Writing data into block ")); + Serial.print(block); + Serial.println("\n"); + + for(int j = 0; j < 16; j++){ + Serial.print(waarde[block][j]); + Serial.print(" "); + } + Serial.println("\n"); + + } + + Serial.println("1.Read card \n2.Write to card \n3.Copy the data."); + start(); +} + +void keuze3(){ //Copy the data in the new card +Serial.println("Insert new card..."); + // Look for new cards + if ( ! mfrc522.PICC_IsNewCardPresent()) + return; + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) + return; + + // Show some details of the PICC (that is: the tag/card) + Serial.print(F("Card UID:")); + dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); + Serial.println(); + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); + Serial.println(mfrc522.PICC_GetTypeName(piccType)); + + // Try the known default keys + /*MFRC522::MIFARE_Key key; + for (byte k = 0; k < NR_KNOWN_KEYS; k++) { + // Copy the known key into the MIFARE_Key structure + for (byte i = 0; i < MFRC522::MF_KEY_SIZE; i++) { + key.keyByte[i] = knownKeys[k][i]; + } + }*/ + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + + for(int i = 4; i <= 62; i++){ //De blocken 4 tot 62 kopieren, behalve al deze onderstaande blocken (omdat deze de authenticatie blokken zijn) + if(i == 7 || i == 11 || i == 15 || i == 19 || i == 23 || i == 27 || i == 31 || i == 35 || i == 39 || i == 43 || i == 47 || i == 51 || i == 55 || i == 59){ + i++; + } + block = i; + + // Authenticate using key A + Serial.println(F("Authenticating using key A...")); + status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Authenticate using key B + Serial.println(F("Authenticating again using key B...")); + status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_B, block, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Write data to the block + Serial.print(F("Writing data into block ")); + Serial.print(block); + Serial.println("\n"); + + dump_byte_array(waarde[block], 16); + + + status = (MFRC522::StatusCode) mfrc522.MIFARE_Write(block, waarde[block], 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + } + + + Serial.println("\n"); + + } + mfrc522.PICC_HaltA(); // Halt PICC + mfrc522.PCD_StopCrypto1(); // Stop encryption on PCD + + Serial.println("1.Read card \n2.Write to card \n3.Copy the data."); + start(); +} + +void keuze1(){ //Read card + Serial.println("Insert card..."); + // Look for new cards + if ( ! mfrc522.PICC_IsNewCardPresent()) + return; + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) + return; + + // Show some details of the PICC (that is: the tag/card) + Serial.print(F("Card UID:")); + dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); + Serial.println(); + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); + Serial.println(mfrc522.PICC_GetTypeName(piccType)); + + // Try the known default keys + MFRC522::MIFARE_Key key; + for (byte k = 0; k < NR_KNOWN_KEYS; k++) { + // Copy the known key into the MIFARE_Key structure + for (byte i = 0; i < MFRC522::MF_KEY_SIZE; i++) { + key.keyByte[i] = knownKeys[k][i]; + } + // Try the key + if (try_key(&key)) { + // Found and reported on the key and block, + // no need to try other keys for this PICC + break; + } + } +} diff --git a/lib/lib_div/rfid-1.4.7/examples/ReadAndWrite/ReadAndWrite.ino b/lib/lib_div/rfid-1.4.7/examples/ReadAndWrite/ReadAndWrite.ino new file mode 100644 index 000000000..1e3304b35 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/ReadAndWrite/ReadAndWrite.ino @@ -0,0 +1,200 @@ +/** + * ---------------------------------------------------------------------------- + * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid + * for further details and other examples. + * + * NOTE: The library file MFRC522.h has a lot of useful info. Please read it. + * + * Released into the public domain. + * ---------------------------------------------------------------------------- + * This sample shows how to read and write data blocks on a MIFARE Classic PICC + * (= card/tag). + * + * BEWARE: Data will be written to the PICC, in sector #1 (blocks #4 to #7). + * + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. + +MFRC522::MIFARE_Key key; + +/** + * Initialize. + */ +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + + // Prepare the key (used both as key A and as key B) + // using FFFFFFFFFFFFh which is the default at chip delivery from the factory + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + + Serial.println(F("Scan a MIFARE Classic PICC to demonstrate read and write.")); + Serial.print(F("Using key (for A and B):")); + dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE); + Serial.println(); + + Serial.println(F("BEWARE: Data will be written to the PICC, in sector #1")); +} + +/** + * Main loop. + */ +void loop() { + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) + return; + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) + return; + + // Show some details of the PICC (that is: the tag/card) + Serial.print(F("Card UID:")); + dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); + Serial.println(); + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); + Serial.println(mfrc522.PICC_GetTypeName(piccType)); + + // Check for compatibility + if ( piccType != MFRC522::PICC_TYPE_MIFARE_MINI + && piccType != MFRC522::PICC_TYPE_MIFARE_1K + && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { + Serial.println(F("This sample only works with MIFARE Classic cards.")); + return; + } + + // In this sample we use the second sector, + // that is: sector #1, covering block #4 up to and including block #7 + byte sector = 1; + byte blockAddr = 4; + byte dataBlock[] = { + 0x01, 0x02, 0x03, 0x04, // 1, 2, 3, 4, + 0x05, 0x06, 0x07, 0x08, // 5, 6, 7, 8, + 0x09, 0x0a, 0xff, 0x0b, // 9, 10, 255, 11, + 0x0c, 0x0d, 0x0e, 0x0f // 12, 13, 14, 15 + }; + byte trailerBlock = 7; + MFRC522::StatusCode status; + byte buffer[18]; + byte size = sizeof(buffer); + + // Authenticate using key A + Serial.println(F("Authenticating using key A...")); + status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Show the whole sector as it currently is + Serial.println(F("Current data in sector:")); + mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector); + Serial.println(); + + // Read data from the block + Serial.print(F("Reading data from block ")); Serial.print(blockAddr); + Serial.println(F(" ...")); + status = (MFRC522::StatusCode) mfrc522.MIFARE_Read(blockAddr, buffer, &size); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + } + Serial.print(F("Data in block ")); Serial.print(blockAddr); Serial.println(F(":")); + dump_byte_array(buffer, 16); Serial.println(); + Serial.println(); + + // Authenticate using key B + Serial.println(F("Authenticating again using key B...")); + status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_B, trailerBlock, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Write data to the block + Serial.print(F("Writing data into block ")); Serial.print(blockAddr); + Serial.println(F(" ...")); + dump_byte_array(dataBlock, 16); Serial.println(); + status = (MFRC522::StatusCode) mfrc522.MIFARE_Write(blockAddr, dataBlock, 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + } + Serial.println(); + + // Read data from the block (again, should now be what we have written) + Serial.print(F("Reading data from block ")); Serial.print(blockAddr); + Serial.println(F(" ...")); + status = (MFRC522::StatusCode) mfrc522.MIFARE_Read(blockAddr, buffer, &size); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + } + Serial.print(F("Data in block ")); Serial.print(blockAddr); Serial.println(F(":")); + dump_byte_array(buffer, 16); Serial.println(); + + // Check that data in block is what we have written + // by counting the number of bytes that are equal + Serial.println(F("Checking result...")); + byte count = 0; + for (byte i = 0; i < 16; i++) { + // Compare buffer (= what we've read) with dataBlock (= what we've written) + if (buffer[i] == dataBlock[i]) + count++; + } + Serial.print(F("Number of bytes that match = ")); Serial.println(count); + if (count == 16) { + Serial.println(F("Success :-)")); + } else { + Serial.println(F("Failure, no match :-(")); + Serial.println(F(" perhaps the write didn't work properly...")); + } + Serial.println(); + + // Dump the sector data + Serial.println(F("Current data in sector:")); + mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector); + Serial.println(); + + // Halt PICC + mfrc522.PICC_HaltA(); + // Stop encryption on PCD + mfrc522.PCD_StopCrypto1(); +} + +/** + * Helper routine to dump a byte array as hex values to Serial. + */ +void dump_byte_array(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} diff --git a/lib/lib_div/rfid-1.4.7/examples/ReadNUID/ReadNUID.ino b/lib/lib_div/rfid-1.4.7/examples/ReadNUID/ReadNUID.ino new file mode 100644 index 000000000..040b5d33b --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/ReadNUID/ReadNUID.ino @@ -0,0 +1,127 @@ +/* + * -------------------------------------------------------------------------------------------------------------------- + * Example sketch/program showing how to read new NUID from a PICC to serial. + * -------------------------------------------------------------------------------------------------------------------- + * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + * + * Example sketch/program showing how to the read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID + * Reader on the Arduino SPI interface. + * + * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE + * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When + * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output + * will show the type, and the NUID if a new card has been detected. Note: you may see "Timeout in communication" messages + * when removing the PICC from reading distance too early. + * + * @license Released into the public domain. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + */ + +#include +#include + +#define SS_PIN 10 +#define RST_PIN 9 + +MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class + +MFRC522::MIFARE_Key key; + +// Init array that will store new NUID +byte nuidPICC[4]; + +void setup() { + Serial.begin(9600); + SPI.begin(); // Init SPI bus + rfid.PCD_Init(); // Init MFRC522 + + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + + Serial.println(F("This code scan the MIFARE Classsic NUID.")); + Serial.print(F("Using the following key:")); + printHex(key.keyByte, MFRC522::MF_KEY_SIZE); +} + +void loop() { + + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! rfid.PICC_IsNewCardPresent()) + return; + + // Verify if the NUID has been readed + if ( ! rfid.PICC_ReadCardSerial()) + return; + + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); + Serial.println(rfid.PICC_GetTypeName(piccType)); + + // Check is the PICC of Classic MIFARE type + if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && + piccType != MFRC522::PICC_TYPE_MIFARE_1K && + piccType != MFRC522::PICC_TYPE_MIFARE_4K) { + Serial.println(F("Your tag is not of type MIFARE Classic.")); + return; + } + + if (rfid.uid.uidByte[0] != nuidPICC[0] || + rfid.uid.uidByte[1] != nuidPICC[1] || + rfid.uid.uidByte[2] != nuidPICC[2] || + rfid.uid.uidByte[3] != nuidPICC[3] ) { + Serial.println(F("A new card has been detected.")); + + // Store NUID into nuidPICC array + for (byte i = 0; i < 4; i++) { + nuidPICC[i] = rfid.uid.uidByte[i]; + } + + Serial.println(F("The NUID tag is:")); + Serial.print(F("In hex: ")); + printHex(rfid.uid.uidByte, rfid.uid.size); + Serial.println(); + Serial.print(F("In dec: ")); + printDec(rfid.uid.uidByte, rfid.uid.size); + Serial.println(); + } + else Serial.println(F("Card read previously.")); + + // Halt PICC + rfid.PICC_HaltA(); + + // Stop encryption on PCD + rfid.PCD_StopCrypto1(); +} + + +/** + * Helper routine to dump a byte array as hex values to Serial. + */ +void printHex(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} + +/** + * Helper routine to dump a byte array as dec values to Serial. + */ +void printDec(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], DEC); + } +} diff --git a/lib/lib_div/rfid-1.4.7/examples/ReadUidMultiReader/ReadUidMultiReader.ino b/lib/lib_div/rfid-1.4.7/examples/ReadUidMultiReader/ReadUidMultiReader.ino new file mode 100644 index 000000000..dc382822f --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/ReadUidMultiReader/ReadUidMultiReader.ino @@ -0,0 +1,97 @@ +/** + * -------------------------------------------------------------------------------------------------------------------- + * Example sketch/program showing how to read data from more than one PICC to serial. + * -------------------------------------------------------------------------------------------------------------------- + * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + * + * Example sketch/program showing how to read data from more than one PICC (that is: a RFID Tag or Card) using a + * MFRC522 based RFID Reader on the Arduino SPI interface. + * + * Warning: This may not work! Multiple devices at one SPI are difficult and cause many trouble!! Engineering skill + * and knowledge are required! + * + * @license Released into the public domain. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS 1 SDA(SS) ** custom, take a unused pin, only HIGH/LOW required ** + * SPI SS 2 SDA(SS) ** custom, take a unused pin, only HIGH/LOW required ** + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 2 +#define SS_2_PIN 8 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 1 + +#define NR_OF_READERS 2 + +byte ssPins[] = {SS_1_PIN, SS_2_PIN}; + +MFRC522 mfrc522[NR_OF_READERS]; // Create MFRC522 instance. + +/** + * Initialize. + */ +void setup() { + + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + + SPI.begin(); // Init SPI bus + + for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) { + mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card + Serial.print(F("Reader ")); + Serial.print(reader); + Serial.print(F(": ")); + mfrc522[reader].PCD_DumpVersionToSerial(); + } +} + +/** + * Main loop. + */ +void loop() { + + for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) { + // Look for new cards + + if (mfrc522[reader].PICC_IsNewCardPresent() && mfrc522[reader].PICC_ReadCardSerial()) { + Serial.print(F("Reader ")); + Serial.print(reader); + // Show some details of the PICC (that is: the tag/card) + Serial.print(F(": Card UID:")); + dump_byte_array(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size); + Serial.println(); + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak); + Serial.println(mfrc522[reader].PICC_GetTypeName(piccType)); + + // Halt PICC + mfrc522[reader].PICC_HaltA(); + // Stop encryption on PCD + mfrc522[reader].PCD_StopCrypto1(); + } //if (mfrc522[reader].PICC_IsNewC + } //for(uint8_t reader +} + +/** + * Helper routine to dump a byte array as hex values to Serial. + */ +void dump_byte_array(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} diff --git a/lib/lib_div/rfid-1.4.7/examples/firmware_check/firmware_check.ino b/lib/lib_div/rfid-1.4.7/examples/firmware_check/firmware_check.ino new file mode 100644 index 000000000..ed3bc1c63 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/firmware_check/firmware_check.ino @@ -0,0 +1,61 @@ +/* + * -------------------------------------------------------------------------------------------------------------------- + * Example sketch/program to test your firmware. + * -------------------------------------------------------------------------------------------------------------------- + * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid + * + * This example test the firmware of your MFRC522 reader module, only known version can be checked. If the test passed + * it do not mean that your module is faultless! Some modules have bad or broken antennas or the PICC is broken. + * + * @author Rotzbua + * @license Released into the public domain. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +/** + * Check firmware only once at startup + */ +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 module + + Serial.println(F("*****************************")); + Serial.println(F("MFRC522 Digital self test")); + Serial.println(F("*****************************")); + mfrc522.PCD_DumpVersionToSerial(); // Show version of PCD - MFRC522 Card Reader + Serial.println(F("-----------------------------")); + Serial.println(F("Only known versions supported")); + Serial.println(F("-----------------------------")); + Serial.println(F("Performing test...")); + bool result = mfrc522.PCD_PerformSelfTest(); // perform the test + Serial.println(F("-----------------------------")); + Serial.print(F("Result: ")); + if (result) + Serial.println(F("OK")); + else + Serial.println(F("DEFECT or UNKNOWN")); + Serial.println(); +} + +void loop() {} // nothing to do diff --git a/lib/lib_div/rfid-1.4.7/examples/rfid_default_keys/rfid_default_keys.ino b/lib/lib_div/rfid-1.4.7/examples/rfid_default_keys/rfid_default_keys.ino new file mode 100644 index 000000000..c7704460f --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/rfid_default_keys/rfid_default_keys.ino @@ -0,0 +1,158 @@ +/* + * ---------------------------------------------------------------------------- + * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid + * for further details and other examples. + * + * NOTE: The library file MFRC522.h has a lot of useful info. Please read it. + * + * Released into the public domain. + * ---------------------------------------------------------------------------- + * Example sketch/program which will try the most used default keys listed in + * https://code.google.com/p/mfcuk/wiki/MifareClassicDefaultKeys to dump the + * block 0 of a MIFARE RFID card using a RFID-RC522 reader. + * + * Typical pin layout used: + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. + +// Number of known default keys (hard-coded) +// NOTE: Synchronize the NR_KNOWN_KEYS define with the defaultKeys[] array +#define NR_KNOWN_KEYS 8 +// Known keys, see: https://code.google.com/p/mfcuk/wiki/MifareClassicDefaultKeys +byte knownKeys[NR_KNOWN_KEYS][MFRC522::MF_KEY_SIZE] = { + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // FF FF FF FF FF FF = factory default + {0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5}, // A0 A1 A2 A3 A4 A5 + {0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5}, // B0 B1 B2 B3 B4 B5 + {0x4d, 0x3a, 0x99, 0xc3, 0x51, 0xdd}, // 4D 3A 99 C3 51 DD + {0x1a, 0x98, 0x2c, 0x7e, 0x45, 0x9a}, // 1A 98 2C 7E 45 9A + {0xd3, 0xf7, 0xd3, 0xf7, 0xd3, 0xf7}, // D3 F7 D3 F7 D3 F7 + {0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, // AA BB CC DD EE FF + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // 00 00 00 00 00 00 +}; + +/* + * Initialize. + */ +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + Serial.println(F("Try the most used default keys to print block 0 of a MIFARE PICC.")); +} + +/* + * Helper routine to dump a byte array as hex values to Serial. + */ +void dump_byte_array(byte *buffer, byte bufferSize) { + for (byte i = 0; i < bufferSize; i++) { + Serial.print(buffer[i] < 0x10 ? " 0" : " "); + Serial.print(buffer[i], HEX); + } +} + +/* + * Try using the PICC (the tag/card) with the given key to access block 0. + * On success, it will show the key details, and dump the block data on Serial. + * + * @return true when the given key worked, false otherwise. + */ +bool try_key(MFRC522::MIFARE_Key *key) +{ + bool result = false; + byte buffer[18]; + byte block = 0; + MFRC522::StatusCode status; + + // Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + // Serial.print(F("PCD_Authenticate() failed: ")); + // Serial.println(mfrc522.GetStatusCodeName(status)); + return false; + } + + // Read block + byte byteCount = sizeof(buffer); + status = mfrc522.MIFARE_Read(block, buffer, &byteCount); + if (status != MFRC522::STATUS_OK) { + // Serial.print(F("MIFARE_Read() failed: ")); + // Serial.println(mfrc522.GetStatusCodeName(status)); + } + else { + // Successful read + result = true; + Serial.print(F("Success with key:")); + dump_byte_array((*key).keyByte, MFRC522::MF_KEY_SIZE); + Serial.println(); + // Dump block data + Serial.print(F("Block ")); Serial.print(block); Serial.print(F(":")); + dump_byte_array(buffer, 16); + Serial.println(); + } + Serial.println(); + + mfrc522.PICC_HaltA(); // Halt PICC + mfrc522.PCD_StopCrypto1(); // Stop encryption on PCD + return result; +} + +/* + * Main loop. + */ +void loop() { + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) + return; + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) + return; + + // Show some details of the PICC (that is: the tag/card) + Serial.print(F("Card UID:")); + dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); + Serial.println(); + Serial.print(F("PICC type: ")); + MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); + Serial.println(mfrc522.PICC_GetTypeName(piccType)); + + // Try the known default keys + MFRC522::MIFARE_Key key; + for (byte k = 0; k < NR_KNOWN_KEYS; k++) { + // Copy the known key into the MIFARE_Key structure + for (byte i = 0; i < MFRC522::MF_KEY_SIZE; i++) { + key.keyByte[i] = knownKeys[k][i]; + } + // Try the key + if (try_key(&key)) { + // Found and reported on the key and block, + // no need to try other keys for this PICC + break; + } + + // http://arduino.stackexchange.com/a/14316 + if ( ! mfrc522.PICC_IsNewCardPresent()) + break; + if ( ! mfrc522.PICC_ReadCardSerial()) + break; + } +} diff --git a/lib/lib_div/rfid-1.4.7/examples/rfid_read_personal_data/rfid_read_personal_data.ino b/lib/lib_div/rfid-1.4.7/examples/rfid_read_personal_data/rfid_read_personal_data.ino new file mode 100644 index 000000000..5b50393e8 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/rfid_read_personal_data/rfid_read_personal_data.ino @@ -0,0 +1,138 @@ +/* + * Initial Author: ryand1011 (https://github.com/ryand1011) + * + * Reads data written by a program such as "rfid_write_personal_data.ino" + * + * See: https://github.com/miguelbalboa/rfid/tree/master/examples/rfid_write_personal_data + * + * Uses MIFARE RFID card using RFID-RC522 reader + * Uses MFRC522 - Library + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 +*/ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +//*****************************************************************************************// +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + Serial.println(F("Read personal data on a MIFARE PICC:")); //shows in serial that it is ready to read +} + +//*****************************************************************************************// +void loop() { + + // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + MFRC522::MIFARE_Key key; + for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF; + + //some variables we need + byte block; + byte len; + MFRC522::StatusCode status; + + //------------------------------------------- + + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) { + return; + } + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) { + return; + } + + Serial.println(F("**Card Detected:**")); + + //------------------------------------------- + + mfrc522.PICC_DumpDetailsToSerial(&(mfrc522.uid)); //dump some details about the card + + //mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); //uncomment this to see all blocks in hex + + //------------------------------------------- + + Serial.print(F("Name: ")); + + byte buffer1[18]; + + block = 4; + len = 18; + + //------------------------------------------- GET FIRST NAME + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 4, &key, &(mfrc522.uid)); //line 834 of MFRC522.cpp file + if (status != MFRC522::STATUS_OK) { + Serial.print(F("Authentication failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + status = mfrc522.MIFARE_Read(block, buffer1, &len); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("Reading failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + //PRINT FIRST NAME + for (uint8_t i = 0; i < 16; i++) + { + if (buffer1[i] != 32) + { + Serial.write(buffer1[i]); + } + } + Serial.print(" "); + + //---------------------------------------- GET LAST NAME + + byte buffer2[18]; + block = 1; + + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 1, &key, &(mfrc522.uid)); //line 834 + if (status != MFRC522::STATUS_OK) { + Serial.print(F("Authentication failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + status = mfrc522.MIFARE_Read(block, buffer2, &len); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("Reading failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + //PRINT LAST NAME + for (uint8_t i = 0; i < 16; i++) { + Serial.write(buffer2[i] ); + } + + + //---------------------------------------- + + Serial.println(F("\n**End Reading**\n")); + + delay(1000); //change value if you want to read cards faster + + mfrc522.PICC_HaltA(); + mfrc522.PCD_StopCrypto1(); +} +//*****************************************************************************************// diff --git a/lib/lib_div/rfid-1.4.7/examples/rfid_write_personal_data/rfid_write_personal_data.ino b/lib/lib_div/rfid-1.4.7/examples/rfid_write_personal_data/rfid_write_personal_data.ino new file mode 100644 index 000000000..fa0daddd9 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/examples/rfid_write_personal_data/rfid_write_personal_data.ino @@ -0,0 +1,156 @@ +/* + * Write personal data of a MIFARE RFID card using a RFID-RC522 reader + * Uses MFRC522 - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND R BY COOQROBOT. + * ----------------------------------------------------------------------------------------- + * MFRC522 Arduino Arduino Arduino Arduino Arduino + * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro + * Signal Pin Pin Pin Pin Pin Pin + * ----------------------------------------------------------------------------------------- + * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST + * SPI SS SDA(SS) 10 53 D10 10 10 + * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 + * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 + * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 + * + * Hardware required: + * Arduino + * PCD (Proximity Coupling Device): NXP MFRC522 Contactless Reader IC + * PICC (Proximity Integrated Circuit Card): A card or tag using the ISO 14443A interface, eg Mifare or NTAG203. + * The reader can be found on eBay for around 5 dollars. Search for "mf-rc522" on ebay.com. + */ + +#include +#include + +#define RST_PIN 9 // Configurable, see typical pin layout above +#define SS_PIN 10 // Configurable, see typical pin layout above + +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance + +void setup() { + Serial.begin(9600); // Initialize serial communications with the PC + SPI.begin(); // Init SPI bus + mfrc522.PCD_Init(); // Init MFRC522 card + Serial.println(F("Write personal data on a MIFARE PICC ")); +} + +void loop() { + + // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + MFRC522::MIFARE_Key key; + for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF; + + // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. + if ( ! mfrc522.PICC_IsNewCardPresent()) { + return; + } + + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) { + return; + } + + Serial.print(F("Card UID:")); //Dump UID + for (byte i = 0; i < mfrc522.uid.size; i++) { + Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); + Serial.print(mfrc522.uid.uidByte[i], HEX); + } + Serial.print(F(" PICC type: ")); // Dump PICC type + MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); + Serial.println(mfrc522.PICC_GetTypeName(piccType)); + + byte buffer[34]; + byte block; + MFRC522::StatusCode status; + byte len; + + Serial.setTimeout(20000L) ; // wait until 20 seconds for input from serial + // Ask personal data: Family name + Serial.println(F("Type Family name, ending with #")); + len = Serial.readBytesUntil('#', (char *) buffer, 30) ; // read family name from serial + for (byte i = len; i < 30; i++) buffer[i] = ' '; // pad with spaces + + block = 1; + //Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + else Serial.println(F("PCD_Authenticate() success: ")); + + // Write block + status = mfrc522.MIFARE_Write(block, buffer, 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + else Serial.println(F("MIFARE_Write() success: ")); + + block = 2; + //Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Write block + status = mfrc522.MIFARE_Write(block, &buffer[16], 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + else Serial.println(F("MIFARE_Write() success: ")); + + // Ask personal data: First name + Serial.println(F("Type First name, ending with #")); + len = Serial.readBytesUntil('#', (char *) buffer, 20) ; // read first name from serial + for (byte i = len; i < 20; i++) buffer[i] = ' '; // pad with spaces + + block = 4; + //Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Write block + status = mfrc522.MIFARE_Write(block, buffer, 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + else Serial.println(F("MIFARE_Write() success: ")); + + block = 5; + //Serial.println(F("Authenticating using key A...")); + status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid)); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + + // Write block + status = mfrc522.MIFARE_Write(block, &buffer[16], 16); + if (status != MFRC522::STATUS_OK) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(mfrc522.GetStatusCodeName(status)); + return; + } + else Serial.println(F("MIFARE_Write() success: ")); + + + Serial.println(" "); + mfrc522.PICC_HaltA(); // Halt PICC + mfrc522.PCD_StopCrypto1(); // Stop encryption on PCD + +} diff --git a/lib/lib_div/rfid-1.4.7/keywords.txt b/lib/lib_div/rfid-1.4.7/keywords.txt new file mode 100644 index 000000000..df8392004 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/keywords.txt @@ -0,0 +1,223 @@ +####################################### +# Syntax Coloring Map for library MFRC522 +####################################### + +####################################### +# KEYWORD1 Classes, datatypes, and C++ keywords +####################################### +MFRC522 KEYWORD1 +MFRC522Extended KEYWORD1 +PCD_Register KEYWORD1 +PCD_Command KEYWORD1 +PCD_RxGain KEYWORD1 +PICC_Command KEYWORD1 +MIFARE_Misc KEYWORD1 +PICC_Type KEYWORD1 +StatusCode KEYWORD1 +TagBitRates KEYWORD1 +Uid KEYWORD1 +CardInfo KEYWORD1 +MIFARE_Key KEYWORD1 +PcbBlock KEYWORD1 + +####################################### +# KEYWORD2 Methods and functions +####################################### + +# Basic interface functions for communicating with the MFRC522 +PCD_WriteRegister KEYWORD2 +PCD_WriteRegister KEYWORD2 +PCD_ReadRegister KEYWORD2 +PCD_ReadRegister KEYWORD2 +setBitMask KEYWORD2 +PCD_SetRegisterBitMask KEYWORD2 +PCD_ClearRegisterBitMask KEYWORD2 +PCD_CalculateCRC KEYWORD2 + +# Functions for manipulating the MFRC522 +PCD_Init KEYWORD2 +PCD_Reset KEYWORD2 +PCD_AntennaOn KEYWORD2 +PCD_AntennaOff KEYWORD2 +PCD_GetAntennaGain KEYWORD2 +PCD_SetAntennaGain KEYWORD2 +PCD_PerformSelfTest KEYWORD2 + +# Power control functions MFRC522 +PCD_SoftPowerDown KEYWORD2 +PCD_SoftPowerUp KEYWORD2 + +# Functions for communicating with PICCs +PCD_TransceiveData KEYWORD2 +PCD_CommunicateWithPICC KEYWORD2 +PICC_RequestA KEYWORD2 +PICC_WakeupA KEYWORD2 +PICC_REQA_or_WUPA KEYWORD2 +PICC_Select KEYWORD2 +PICC_HaltA KEYWORD2 +PICC_RATS KEYWORD2 +PICC_PPS KEYWORD2 + +# Functions for communicating with ISO/IEC 14433-4 cards +TCL_Transceive KEYWORD2 +TCL_TransceiveRBlock KEYWORD2 +TCL_Deselect KEYWORD2 + +# Functions for communicating with MIFARE PICCs +PCD_Authenticate KEYWORD2 +PCD_StopCrypto1 KEYWORD2 +MIFARE_Read KEYWORD2 +MIFARE_Write KEYWORD2 +MIFARE_Increment KEYWORD2 +MIFARE_Ultralight_Write KEYWORD2 +MIFARE_GetValue KEYWORD2 +MIFARE_SetValue KEYWORD2 +PCD_NTAG216_AUTH KEYWORD2 + +# Support functions +PCD_MIFARE_Transceive KEYWORD2 +GetStatusCodeName KEYWORD2 +PICC_GetType KEYWORD2 +PICC_GetTypeName KEYWORD2 + +# Support functions for debuging +PCD_DumpVersionToSerial KEYWORD2 +PICC_DumpToSerial KEYWORD2 +PICC_DumpDetailsToSerial KEYWORD2 +PICC_DumpMifareClassicToSerial KEYWORD2 +PICC_DumpMifareClassicSectorToSerial KEYWORD2 +PICC_DumpMifareUltralightToSerial KEYWORD2 +PICC_DumpISO14443_4 KEYWORD2 + +# Advanced functions for MIFARE +MIFARE_SetAccessBits KEYWORD2 +MIFARE_OpenUidBackdoor KEYWORD2 +MIFARE_SetUid KEYWORD2 +MIFARE_UnbrickUidSector KEYWORD2 + +# Convenience functions - does not add extra functionality +PICC_IsNewCardPresent KEYWORD2 +PICC_ReadCardSerial KEYWORD2 + +####################################### +# KEYWORD3 setup and loop functions, as well as the Serial keywords +####################################### + +####################################### +# LITERAL1 Constants +####################################### +CommandReg LITERAL1 +ComIEnReg LITERAL1 +DivIEnReg LITERAL1 +ComIrqReg LITERAL1 +DivIrqReg LITERAL1 +ErrorReg LITERAL1 +Status1Reg LITERAL1 +Status2Reg LITERAL1 +FIFODataReg LITERAL1 +FIFOLevelReg LITERAL1 +WaterLevelReg LITERAL1 +ControlReg LITERAL1 +BitFramingReg LITERAL1 +CollReg LITERAL1 +ModeReg LITERAL1 +TxModeReg LITERAL1 +RxModeReg LITERAL1 +TxControlReg LITERAL1 +TxASKReg LITERAL1 +TxSelReg LITERAL1 +RxSelReg LITERAL1 +RxThresholdReg LITERAL1 +DemodReg LITERAL1 +MfTxReg LITERAL1 +MfRxReg LITERAL1 +SerialSpeedReg LITERAL1 +CRCResultRegH LITERAL1 +CRCResultRegL LITERAL1 +ModWidthReg LITERAL1 +RFCfgReg LITERAL1 +GsNReg LITERAL1 +CWGsPReg LITERAL1 +ModGsPReg LITERAL1 +TModeReg LITERAL1 +TPrescalerReg LITERAL1 +TReloadRegH LITERAL1 +TReloadRegL LITERAL1 +TCounterValueRegH LITERAL1 +TCounterValueRegL LITERAL1 +TestSel1Reg LITERAL1 +TestSel2Reg LITERAL1 +TestPinEnReg LITERAL1 +TestPinValueReg LITERAL1 +TestBusReg LITERAL1 +AutoTestReg LITERAL1 +VersionReg LITERAL1 +AnalogTestReg LITERAL1 +TestDAC1Reg LITERAL1 +TestDAC2Reg LITERAL1 +TestADCReg LITERAL1 +PCD_Idle LITERAL1 +PCD_Mem LITERAL1 +PCD_GenerateRandomID LITERAL1 +PCD_CalcCRC LITERAL1 +PCD_Transmit LITERAL1 +PCD_NoCmdChange LITERAL1 +PCD_Receive LITERAL1 +PCD_Transceive LITERAL1 +PCD_MFAuthent LITERAL1 +PCD_SoftReset LITERAL1 +RxGain_18dB LITERAL1 +RxGain_23dB LITERAL1 +RxGain_18dB_2 LITERAL1 +RxGain_23dB_2 LITERAL1 +RxGain_33dB LITERAL1 +RxGain_38dB LITERAL1 +RxGain_43dB LITERAL1 +RxGain_48dB LITERAL1 +RxGain_min LITERAL1 +RxGain_avg LITERAL1 +RxGain_max LITERAL1 +PICC_CMD_REQA LITERAL1 +PICC_CMD_WUPA LITERAL1 +PICC_CMD_CT LITERAL1 +PICC_CMD_SEL_CL1 LITERAL1 +PICC_CMD_SEL_CL2 LITERAL1 +PICC_CMD_SEL_CL3 LITERAL1 +PICC_CMD_HLTA LITERAL1 +PICC_CMD_RATS LITERAL1 +PICC_CMD_MF_AUTH_KEY_A LITERAL1 +PICC_CMD_MF_AUTH_KEY_B LITERAL1 +PICC_CMD_MF_READ LITERAL1 +PICC_CMD_MF_WRITE LITERAL1 +PICC_CMD_MF_DECREMENT LITERAL1 +PICC_CMD_MF_INCREMENT LITERAL1 +PICC_CMD_MF_RESTORE LITERAL1 +PICC_CMD_MF_TRANSFER LITERAL1 +PICC_CMD_UL_WRITE LITERAL1 +MF_ACK LITERAL1 +MF_KEY_SIZE LITERAL1 +PICC_TYPE_UNKNOWN LITERAL1 +PICC_TYPE_ISO_14443_4 LITERAL1 +PICC_TYPE_ISO_18092 LITERAL1 +PICC_TYPE_MIFARE_MINI LITERAL1 +PICC_TYPE_MIFARE_1K LITERAL1 +PICC_TYPE_MIFARE_4K LITERAL1 +PICC_TYPE_MIFARE_UL LITERAL1 +PICC_TYPE_MIFARE_PLUS LITERAL1 +PICC_TYPE_MIFARE_DESFIRE LITERAL1 +PICC_TYPE_TNP3XXX LITERAL1 +PICC_TYPE_NOT_COMPLETE LITERAL1 +STATUS_OK LITERAL1 +STATUS_ERROR LITERAL1 +STATUS_COLLISION LITERAL1 +STATUS_TIMEOUT LITERAL1 +STATUS_NO_ROOM LITERAL1 +STATUS_INTERNAL_ERROR LITERAL1 +STATUS_INVALID LITERAL1 +STATUS_CRC_WRONG LITERAL1 +STATUS_MIFARE_NACK LITERAL1 +FIFO_SIZE LITERAL1 +BITRATE_106KBITS LITERAL1 +BITRATE_212KBITS LITERAL1 +BITRATE_424KBITS LITERAL1 +BITRATE_848KBITS LITERAL1 diff --git a/lib/lib_div/rfid-1.4.7/library.json b/lib/lib_div/rfid-1.4.7/library.json new file mode 100644 index 000000000..1f457c08c --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/library.json @@ -0,0 +1,15 @@ +{ + "name": "MFRC522", + "version": "1.4.7", + "license": "Unlicense", + "keywords": "rfid, spi", + "description": "Read a card using a MFRC522 reader on your SPI interface.", + "repository": + { + "type": "git", + "url": "https://github.com/miguelbalboa/rfid.git" + }, + "exclude": "doc", + "frameworks": "arduino", + "platforms": ["atmelavr", "ststm32", "espressif8266", "espressif32", "samd"] +} diff --git a/lib/lib_div/rfid-1.4.7/library.properties b/lib/lib_div/rfid-1.4.7/library.properties new file mode 100644 index 000000000..b22ba1d79 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/library.properties @@ -0,0 +1,9 @@ +name=MFRC522 +version=1.4.7 +author=GithubCommunity +maintainer=GithubCommunity +sentence=Arduino RFID Library for MFRC522 (SPI) +paragraph=Read/Write a RFID Card or Tag using the ISO/IEC 14443A/MIFARE interface. +category=Communication +url=https://github.com/miguelbalboa/rfid +architectures=avr,megaavr,STM32F1,teensy,esp8266,esp32,samd diff --git a/lib/lib_div/rfid-1.4.7/src/MFRC522.cpp b/lib/lib_div/rfid-1.4.7/src/MFRC522.cpp new file mode 100644 index 000000000..a4f70e6dd --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/src/MFRC522.cpp @@ -0,0 +1,1929 @@ +/* +* MFRC522.cpp - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND R BY COOQROBOT. +* NOTE: Please also check the comments in MFRC522.h - they provide useful hints and background information. +* Released into the public domain. +*/ + +#include +#include "MFRC522.h" + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for setting up the Arduino +///////////////////////////////////////////////////////////////////////////////////// +/** + * Constructor. + */ +MFRC522::MFRC522(): MFRC522(SS, UINT8_MAX) { // SS is defined in pins_arduino.h, UINT8_MAX means there is no connection from Arduino to MFRC522's reset and power down input +} // End constructor + +/** + * Constructor. + * Prepares the output pins. + */ +MFRC522::MFRC522( byte resetPowerDownPin ///< Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low). If there is no connection from the CPU to NRSTPD, set this to UINT8_MAX. In this case, only soft reset will be used in PCD_Init(). + ): MFRC522(SS, resetPowerDownPin) { // SS is defined in pins_arduino.h +} // End constructor + +/** + * Constructor. + * Prepares the output pins. + */ +MFRC522::MFRC522( byte chipSelectPin, ///< Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low) + byte resetPowerDownPin ///< Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low). If there is no connection from the CPU to NRSTPD, set this to UINT8_MAX. In this case, only soft reset will be used in PCD_Init(). + ) { + _chipSelectPin = chipSelectPin; + _resetPowerDownPin = resetPowerDownPin; +} // End constructor + +///////////////////////////////////////////////////////////////////////////////////// +// Basic interface functions for communicating with the MFRC522 +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Writes a byte to the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +void MFRC522::PCD_WriteRegister( PCD_Register reg, ///< The register to write to. One of the PCD_Register enums. + byte value ///< The value to write. + ) { + SPI.beginTransaction(SPISettings(MFRC522_SPICLOCK, MSBFIRST, SPI_MODE0)); // Set the settings to work with SPI bus + digitalWrite(_chipSelectPin, LOW); // Select slave + SPI.transfer(reg); // MSB == 0 is for writing. LSB is not used in address. Datasheet section 8.1.2.3. + SPI.transfer(value); + digitalWrite(_chipSelectPin, HIGH); // Release slave again + SPI.endTransaction(); // Stop using the SPI bus +} // End PCD_WriteRegister() + +/** + * Writes a number of bytes to the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +void MFRC522::PCD_WriteRegister( PCD_Register reg, ///< The register to write to. One of the PCD_Register enums. + byte count, ///< The number of bytes to write to the register + byte *values ///< The values to write. Byte array. + ) { + SPI.beginTransaction(SPISettings(MFRC522_SPICLOCK, MSBFIRST, SPI_MODE0)); // Set the settings to work with SPI bus + digitalWrite(_chipSelectPin, LOW); // Select slave + SPI.transfer(reg); // MSB == 0 is for writing. LSB is not used in address. Datasheet section 8.1.2.3. + for (byte index = 0; index < count; index++) { + SPI.transfer(values[index]); + } + digitalWrite(_chipSelectPin, HIGH); // Release slave again + SPI.endTransaction(); // Stop using the SPI bus +} // End PCD_WriteRegister() + +/** + * Reads a byte from the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +byte MFRC522::PCD_ReadRegister( PCD_Register reg ///< The register to read from. One of the PCD_Register enums. + ) { + byte value; + SPI.beginTransaction(SPISettings(MFRC522_SPICLOCK, MSBFIRST, SPI_MODE0)); // Set the settings to work with SPI bus + digitalWrite(_chipSelectPin, LOW); // Select slave + SPI.transfer(0x80 | reg); // MSB == 1 is for reading. LSB is not used in address. Datasheet section 8.1.2.3. + value = SPI.transfer(0); // Read the value back. Send 0 to stop reading. + digitalWrite(_chipSelectPin, HIGH); // Release slave again + SPI.endTransaction(); // Stop using the SPI bus + return value; +} // End PCD_ReadRegister() + +/** + * Reads a number of bytes from the specified register in the MFRC522 chip. + * The interface is described in the datasheet section 8.1.2. + */ +void MFRC522::PCD_ReadRegister( PCD_Register reg, ///< The register to read from. One of the PCD_Register enums. + byte count, ///< The number of bytes to read + byte *values, ///< Byte array to store the values in. + byte rxAlign ///< Only bit positions rxAlign..7 in values[0] are updated. + ) { + if (count == 0) { + return; + } + //Serial.print(F("Reading ")); Serial.print(count); Serial.println(F(" bytes from register.")); + byte address = 0x80 | reg; // MSB == 1 is for reading. LSB is not used in address. Datasheet section 8.1.2.3. + byte index = 0; // Index in values array. + SPI.beginTransaction(SPISettings(MFRC522_SPICLOCK, MSBFIRST, SPI_MODE0)); // Set the settings to work with SPI bus + digitalWrite(_chipSelectPin, LOW); // Select slave + count--; // One read is performed outside of the loop + SPI.transfer(address); // Tell MFRC522 which address we want to read + if (rxAlign) { // Only update bit positions rxAlign..7 in values[0] + // Create bit mask for bit positions rxAlign..7 + byte mask = (0xFF << rxAlign) & 0xFF; + // Read value and tell that we want to read the same address again. + byte value = SPI.transfer(address); + // Apply mask to both current value of values[0] and the new data in value. + values[0] = (values[0] & ~mask) | (value & mask); + index++; + } + while (index < count) { + values[index] = SPI.transfer(address); // Read value and tell that we want to read the same address again. + index++; + } + values[index] = SPI.transfer(0); // Read the final byte. Send 0 to stop reading. + digitalWrite(_chipSelectPin, HIGH); // Release slave again + SPI.endTransaction(); // Stop using the SPI bus +} // End PCD_ReadRegister() + +/** + * Sets the bits given in mask in register reg. + */ +void MFRC522::PCD_SetRegisterBitMask( PCD_Register reg, ///< The register to update. One of the PCD_Register enums. + byte mask ///< The bits to set. + ) { + byte tmp; + tmp = PCD_ReadRegister(reg); + PCD_WriteRegister(reg, tmp | mask); // set bit mask +} // End PCD_SetRegisterBitMask() + +/** + * Clears the bits given in mask from register reg. + */ +void MFRC522::PCD_ClearRegisterBitMask( PCD_Register reg, ///< The register to update. One of the PCD_Register enums. + byte mask ///< The bits to clear. + ) { + byte tmp; + tmp = PCD_ReadRegister(reg); + PCD_WriteRegister(reg, tmp & (~mask)); // clear bit mask +} // End PCD_ClearRegisterBitMask() + + +/** + * Use the CRC coprocessor in the MFRC522 to calculate a CRC_A. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PCD_CalculateCRC( byte *data, ///< In: Pointer to the data to transfer to the FIFO for CRC calculation. + byte length, ///< In: The number of bytes to transfer. + byte *result ///< Out: Pointer to result buffer. Result is written to result[0..1], low byte first. + ) { + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop any active command. + PCD_WriteRegister(DivIrqReg, 0x04); // Clear the CRCIRq interrupt request bit + PCD_WriteRegister(FIFOLevelReg, 0x80); // FlushBuffer = 1, FIFO initialization + PCD_WriteRegister(FIFODataReg, length, data); // Write data to the FIFO + PCD_WriteRegister(CommandReg, PCD_CalcCRC); // Start the calculation + + // Wait for the CRC calculation to complete. Each iteration of the while-loop takes 17.73μs. + // TODO check/modify for other architectures than Arduino Uno 16bit + + // Wait for the CRC calculation to complete. Each iteration of the while-loop takes 17.73us. + for (uint16_t i = 5000; i > 0; i--) { + // DivIrqReg[7..0] bits are: Set2 reserved reserved MfinActIRq reserved CRCIRq reserved reserved + byte n = PCD_ReadRegister(DivIrqReg); + if (n & 0x04) { // CRCIRq bit set - calculation done + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop calculating CRC for new content in the FIFO. + // Transfer the result from the registers to the result buffer + result[0] = PCD_ReadRegister(CRCResultRegL); + result[1] = PCD_ReadRegister(CRCResultRegH); + return STATUS_OK; + } + } + // 89ms passed and nothing happend. Communication with the MFRC522 might be down. + return STATUS_TIMEOUT; +} // End PCD_CalculateCRC() + + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for manipulating the MFRC522 +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Initializes the MFRC522 chip. + */ +void MFRC522::PCD_Init() { + bool hardReset = false; + + // Set the chipSelectPin as digital output, do not select the slave yet + pinMode(_chipSelectPin, OUTPUT); + digitalWrite(_chipSelectPin, HIGH); + + // If a valid pin number has been set, pull device out of power down / reset state. + if (_resetPowerDownPin != UNUSED_PIN) { + // First set the resetPowerDownPin as digital input, to check the MFRC522 power down mode. + pinMode(_resetPowerDownPin, INPUT); + + if (digitalRead(_resetPowerDownPin) == LOW) { // The MFRC522 chip is in power down mode. + pinMode(_resetPowerDownPin, OUTPUT); // Now set the resetPowerDownPin as digital output. + digitalWrite(_resetPowerDownPin, LOW); // Make sure we have a clean LOW state. + delayMicroseconds(2); // 8.8.1 Reset timing requirements says about 100ns. Let us be generous: 2μsl + digitalWrite(_resetPowerDownPin, HIGH); // Exit power down mode. This triggers a hard reset. + // Section 8.8.2 in the datasheet says the oscillator start-up time is the start up time of the crystal + 37,74μs. Let us be generous: 50ms. + delay(50); + hardReset = true; + } + } + + if (!hardReset) { // Perform a soft reset if we haven't triggered a hard reset above. + PCD_Reset(); + } + + // Reset baud rates + PCD_WriteRegister(TxModeReg, 0x00); + PCD_WriteRegister(RxModeReg, 0x00); + // Reset ModWidthReg + PCD_WriteRegister(ModWidthReg, 0x26); + + // When communicating with a PICC we need a timeout if something goes wrong. + // f_timer = 13.56 MHz / (2*TPreScaler+1) where TPreScaler = [TPrescaler_Hi:TPrescaler_Lo]. + // TPrescaler_Hi are the four low bits in TModeReg. TPrescaler_Lo is TPrescalerReg. + PCD_WriteRegister(TModeReg, 0x80); // TAuto=1; timer starts automatically at the end of the transmission in all communication modes at all speeds + PCD_WriteRegister(TPrescalerReg, 0xA9); // TPreScaler = TModeReg[3..0]:TPrescalerReg, ie 0x0A9 = 169 => f_timer=40kHz, ie a timer period of 25μs. + PCD_WriteRegister(TReloadRegH, 0x03); // Reload timer with 0x3E8 = 1000, ie 25ms before timeout. + PCD_WriteRegister(TReloadRegL, 0xE8); + + PCD_WriteRegister(TxASKReg, 0x40); // Default 0x00. Force a 100 % ASK modulation independent of the ModGsPReg register setting + PCD_WriteRegister(ModeReg, 0x3D); // Default 0x3F. Set the preset value for the CRC coprocessor for the CalcCRC command to 0x6363 (ISO 14443-3 part 6.2.4) + PCD_AntennaOn(); // Enable the antenna driver pins TX1 and TX2 (they were disabled by the reset) +} // End PCD_Init() + +/** + * Initializes the MFRC522 chip. + */ +void MFRC522::PCD_Init( byte resetPowerDownPin ///< Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low) + ) { + PCD_Init(SS, resetPowerDownPin); // SS is defined in pins_arduino.h +} // End PCD_Init() + +/** + * Initializes the MFRC522 chip. + */ +void MFRC522::PCD_Init( byte chipSelectPin, ///< Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low) + byte resetPowerDownPin ///< Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low) + ) { + _chipSelectPin = chipSelectPin; + _resetPowerDownPin = resetPowerDownPin; + // Set the chipSelectPin as digital output, do not select the slave yet + PCD_Init(); +} // End PCD_Init() + +/** + * Performs a soft reset on the MFRC522 chip and waits for it to be ready again. + */ +void MFRC522::PCD_Reset() { + PCD_WriteRegister(CommandReg, PCD_SoftReset); // Issue the SoftReset command. + // The datasheet does not mention how long the SoftRest command takes to complete. + // But the MFRC522 might have been in soft power-down mode (triggered by bit 4 of CommandReg) + // Section 8.8.2 in the datasheet says the oscillator start-up time is the start up time of the crystal + 37,74μs. Let us be generous: 50ms. + uint8_t count = 0; + do { + // Wait for the PowerDown bit in CommandReg to be cleared (max 3x50ms) + delay(50); + } while ((PCD_ReadRegister(CommandReg) & (1 << 4)) && (++count) < 3); +} // End PCD_Reset() + +/** + * Turns the antenna on by enabling pins TX1 and TX2. + * After a reset these pins are disabled. + */ +void MFRC522::PCD_AntennaOn() { + byte value = PCD_ReadRegister(TxControlReg); + if ((value & 0x03) != 0x03) { + PCD_WriteRegister(TxControlReg, value | 0x03); + } +} // End PCD_AntennaOn() + +/** + * Turns the antenna off by disabling pins TX1 and TX2. + */ +void MFRC522::PCD_AntennaOff() { + PCD_ClearRegisterBitMask(TxControlReg, 0x03); +} // End PCD_AntennaOff() + +/** + * Get the current MFRC522 Receiver Gain (RxGain[2:0]) value. + * See 9.3.3.6 / table 98 in http://www.nxp.com/documents/data_sheet/MFRC522.pdf + * NOTE: Return value scrubbed with (0x07<<4)=01110000b as RCFfgReg may use reserved bits. + * + * @return Value of the RxGain, scrubbed to the 3 bits used. + */ +byte MFRC522::PCD_GetAntennaGain() { + return PCD_ReadRegister(RFCfgReg) & (0x07<<4); +} // End PCD_GetAntennaGain() + +/** + * Set the MFRC522 Receiver Gain (RxGain) to value specified by given mask. + * See 9.3.3.6 / table 98 in http://www.nxp.com/documents/data_sheet/MFRC522.pdf + * NOTE: Given mask is scrubbed with (0x07<<4)=01110000b as RCFfgReg may use reserved bits. + */ +void MFRC522::PCD_SetAntennaGain(byte mask) { + if (PCD_GetAntennaGain() != mask) { // only bother if there is a change + PCD_ClearRegisterBitMask(RFCfgReg, (0x07<<4)); // clear needed to allow 000 pattern + PCD_SetRegisterBitMask(RFCfgReg, mask & (0x07<<4)); // only set RxGain[2:0] bits + } +} // End PCD_SetAntennaGain() + +/** + * Performs a self-test of the MFRC522 + * See 16.1.1 in http://www.nxp.com/documents/data_sheet/MFRC522.pdf + * + * @return Whether or not the test passed. Or false if no firmware reference is available. + */ +bool MFRC522::PCD_PerformSelfTest() { + // This follows directly the steps outlined in 16.1.1 + // 1. Perform a soft reset. + PCD_Reset(); + + // 2. Clear the internal buffer by writing 25 bytes of 00h + byte ZEROES[25] = {0x00}; + PCD_WriteRegister(FIFOLevelReg, 0x80); // flush the FIFO buffer + PCD_WriteRegister(FIFODataReg, 25, ZEROES); // write 25 bytes of 00h to FIFO + PCD_WriteRegister(CommandReg, PCD_Mem); // transfer to internal buffer + + // 3. Enable self-test + PCD_WriteRegister(AutoTestReg, 0x09); + + // 4. Write 00h to FIFO buffer + PCD_WriteRegister(FIFODataReg, 0x00); + + // 5. Start self-test by issuing the CalcCRC command + PCD_WriteRegister(CommandReg, PCD_CalcCRC); + + // 6. Wait for self-test to complete + byte n; + for (uint8_t i = 0; i < 0xFF; i++) { + // The datasheet does not specify exact completion condition except + // that FIFO buffer should contain 64 bytes. + // While selftest is initiated by CalcCRC command + // it behaves differently from normal CRC computation, + // so one can't reliably use DivIrqReg to check for completion. + // It is reported that some devices does not trigger CRCIRq flag + // during selftest. + n = PCD_ReadRegister(FIFOLevelReg); + if (n >= 64) { + break; + } + } + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop calculating CRC for new content in the FIFO. + + // 7. Read out resulting 64 bytes from the FIFO buffer. + byte result[64]; + PCD_ReadRegister(FIFODataReg, 64, result, 0); + + // Auto self-test done + // Reset AutoTestReg register to be 0 again. Required for normal operation. + PCD_WriteRegister(AutoTestReg, 0x00); + + // Determine firmware version (see section 9.3.4.8 in spec) + byte version = PCD_ReadRegister(VersionReg); + + // Pick the appropriate reference values + const byte *reference; + switch (version) { + case 0x88: // Fudan Semiconductor FM17522 clone + reference = FM17522_firmware_reference; + break; + case 0x90: // Version 0.0 + reference = MFRC522_firmware_referenceV0_0; + break; + case 0x91: // Version 1.0 + reference = MFRC522_firmware_referenceV1_0; + break; + case 0x92: // Version 2.0 + reference = MFRC522_firmware_referenceV2_0; + break; + default: // Unknown version + return false; // abort test + } + + // Verify that the results match up to our expectations + for (uint8_t i = 0; i < 64; i++) { + if (result[i] != pgm_read_byte(&(reference[i]))) { + return false; + } + } + + // Test passed; all is good. + return true; +} // End PCD_PerformSelfTest() + +///////////////////////////////////////////////////////////////////////////////////// +// Power control +///////////////////////////////////////////////////////////////////////////////////// + +//IMPORTANT NOTE!!!! +//Calling any other function that uses CommandReg will disable soft power down mode !!! +//For more details about power control, refer to the datasheet - page 33 (8.6) + +void MFRC522::PCD_SoftPowerDown(){//Note : Only soft power down mode is available throught software + byte val = PCD_ReadRegister(CommandReg); // Read state of the command register + val |= (1<<4);// set PowerDown bit ( bit 4 ) to 1 + PCD_WriteRegister(CommandReg, val);//write new value to the command register +} + +void MFRC522::PCD_SoftPowerUp(){ + byte val = PCD_ReadRegister(CommandReg); // Read state of the command register + val &= ~(1<<4);// set PowerDown bit ( bit 4 ) to 0 + PCD_WriteRegister(CommandReg, val);//write new value to the command register + // wait until PowerDown bit is cleared (this indicates end of wake up procedure) + const uint32_t timeout = (uint32_t)millis() + 500;// create timer for timeout (just in case) + + while(millis()<=timeout){ // set timeout to 500 ms + val = PCD_ReadRegister(CommandReg);// Read state of the command register + if(!(val & (1<<4))){ // if powerdown bit is 0 + break;// wake up procedure is finished + } + } +} + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for communicating with PICCs +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Executes the Transceive command. + * CRC validation can only be done if backData and backLen are specified. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PCD_TransceiveData( byte *sendData, ///< Pointer to the data to transfer to the FIFO. + byte sendLen, ///< Number of bytes to transfer to the FIFO. + byte *backData, ///< nullptr or pointer to buffer if data should be read back after executing the command. + byte *backLen, ///< In: Max number of bytes to write to *backData. Out: The number of bytes returned. + byte *validBits, ///< In/Out: The number of valid bits in the last byte. 0 for 8 valid bits. Default nullptr. + byte rxAlign, ///< In: Defines the bit position in backData[0] for the first bit received. Default 0. + bool checkCRC ///< In: True => The last two bytes of the response is assumed to be a CRC_A that must be validated. + ) { + byte waitIRq = 0x30; // RxIRq and IdleIRq + return PCD_CommunicateWithPICC(PCD_Transceive, waitIRq, sendData, sendLen, backData, backLen, validBits, rxAlign, checkCRC); +} // End PCD_TransceiveData() + +/** + * Transfers data to the MFRC522 FIFO, executes a command, waits for completion and transfers data back from the FIFO. + * CRC validation can only be done if backData and backLen are specified. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PCD_CommunicateWithPICC( byte command, ///< The command to execute. One of the PCD_Command enums. + byte waitIRq, ///< The bits in the ComIrqReg register that signals successful completion of the command. + byte *sendData, ///< Pointer to the data to transfer to the FIFO. + byte sendLen, ///< Number of bytes to transfer to the FIFO. + byte *backData, ///< nullptr or pointer to buffer if data should be read back after executing the command. + byte *backLen, ///< In: Max number of bytes to write to *backData. Out: The number of bytes returned. + byte *validBits, ///< In/Out: The number of valid bits in the last byte. 0 for 8 valid bits. + byte rxAlign, ///< In: Defines the bit position in backData[0] for the first bit received. Default 0. + bool checkCRC ///< In: True => The last two bytes of the response is assumed to be a CRC_A that must be validated. + ) { + // Prepare values for BitFramingReg + byte txLastBits = validBits ? *validBits : 0; + byte bitFraming = (rxAlign << 4) + txLastBits; // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] + + PCD_WriteRegister(CommandReg, PCD_Idle); // Stop any active command. + PCD_WriteRegister(ComIrqReg, 0x7F); // Clear all seven interrupt request bits + PCD_WriteRegister(FIFOLevelReg, 0x80); // FlushBuffer = 1, FIFO initialization + PCD_WriteRegister(FIFODataReg, sendLen, sendData); // Write sendData to the FIFO + PCD_WriteRegister(BitFramingReg, bitFraming); // Bit adjustments + PCD_WriteRegister(CommandReg, command); // Execute the command + if (command == PCD_Transceive) { + PCD_SetRegisterBitMask(BitFramingReg, 0x80); // StartSend=1, transmission of data starts + } + + // Wait for the command to complete. + // In PCD_Init() we set the TAuto flag in TModeReg. This means the timer automatically starts when the PCD stops transmitting. + // Each iteration of the do-while-loop takes 17.86μs. + // TODO check/modify for other architectures than Arduino Uno 16bit + uint16_t i; + for (i = 2000; i > 0; i--) { + byte n = PCD_ReadRegister(ComIrqReg); // ComIrqReg[7..0] bits are: Set1 TxIRq RxIRq IdleIRq HiAlertIRq LoAlertIRq ErrIRq TimerIRq + if (n & waitIRq) { // One of the interrupts that signal success has been set. + break; + } + if (n & 0x01) { // Timer interrupt - nothing received in 25ms + return STATUS_TIMEOUT; + } + } + // 35.7ms and nothing happend. Communication with the MFRC522 might be down. + if (i == 0) { + return STATUS_TIMEOUT; + } + + // Stop now if any errors except collisions were detected. + byte errorRegValue = PCD_ReadRegister(ErrorReg); // ErrorReg[7..0] bits are: WrErr TempErr reserved BufferOvfl CollErr CRCErr ParityErr ProtocolErr + if (errorRegValue & 0x13) { // BufferOvfl ParityErr ProtocolErr + return STATUS_ERROR; + } + + byte _validBits = 0; + + // If the caller wants data back, get it from the MFRC522. + if (backData && backLen) { + byte n = PCD_ReadRegister(FIFOLevelReg); // Number of bytes in the FIFO + if (n > *backLen) { + return STATUS_NO_ROOM; + } + *backLen = n; // Number of bytes returned + PCD_ReadRegister(FIFODataReg, n, backData, rxAlign); // Get received data from FIFO + _validBits = PCD_ReadRegister(ControlReg) & 0x07; // RxLastBits[2:0] indicates the number of valid bits in the last received byte. If this value is 000b, the whole byte is valid. + if (validBits) { + *validBits = _validBits; + } + } + + // Tell about collisions + if (errorRegValue & 0x08) { // CollErr + return STATUS_COLLISION; + } + + // Perform CRC_A validation if requested. + if (backData && backLen && checkCRC) { + // In this case a MIFARE Classic NAK is not OK. + if (*backLen == 1 && _validBits == 4) { + return STATUS_MIFARE_NACK; + } + // We need at least the CRC_A value and all 8 bits of the last byte must be received. + if (*backLen < 2 || _validBits != 0) { + return STATUS_CRC_WRONG; + } + // Verify CRC_A - do our own calculation and store the control in controlBuffer. + byte controlBuffer[2]; + MFRC522::StatusCode status = PCD_CalculateCRC(&backData[0], *backLen - 2, &controlBuffer[0]); + if (status != STATUS_OK) { + return status; + } + if ((backData[*backLen - 2] != controlBuffer[0]) || (backData[*backLen - 1] != controlBuffer[1])) { + return STATUS_CRC_WRONG; + } + } + + return STATUS_OK; +} // End PCD_CommunicateWithPICC() + +/** + * Transmits a REQuest command, Type A. Invites PICCs in state IDLE to go to READY and prepare for anticollision or selection. 7 bit frame. + * Beware: When two PICCs are in the field at the same time I often get STATUS_TIMEOUT - probably due do bad antenna design. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PICC_RequestA( byte *bufferATQA, ///< The buffer to store the ATQA (Answer to request) in + byte *bufferSize ///< Buffer size, at least two bytes. Also number of bytes returned if STATUS_OK. + ) { + return PICC_REQA_or_WUPA(PICC_CMD_REQA, bufferATQA, bufferSize); +} // End PICC_RequestA() + +/** + * Transmits a Wake-UP command, Type A. Invites PICCs in state IDLE and HALT to go to READY(*) and prepare for anticollision or selection. 7 bit frame. + * Beware: When two PICCs are in the field at the same time I often get STATUS_TIMEOUT - probably due do bad antenna design. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PICC_WakeupA( byte *bufferATQA, ///< The buffer to store the ATQA (Answer to request) in + byte *bufferSize ///< Buffer size, at least two bytes. Also number of bytes returned if STATUS_OK. + ) { + return PICC_REQA_or_WUPA(PICC_CMD_WUPA, bufferATQA, bufferSize); +} // End PICC_WakeupA() + +/** + * Transmits REQA or WUPA commands. + * Beware: When two PICCs are in the field at the same time I often get STATUS_TIMEOUT - probably due do bad antenna design. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PICC_REQA_or_WUPA( byte command, ///< The command to send - PICC_CMD_REQA or PICC_CMD_WUPA + byte *bufferATQA, ///< The buffer to store the ATQA (Answer to request) in + byte *bufferSize ///< Buffer size, at least two bytes. Also number of bytes returned if STATUS_OK. + ) { + byte validBits; + MFRC522::StatusCode status; + + if (bufferATQA == nullptr || *bufferSize < 2) { // The ATQA response is 2 bytes long. + return STATUS_NO_ROOM; + } + PCD_ClearRegisterBitMask(CollReg, 0x80); // ValuesAfterColl=1 => Bits received after collision are cleared. + validBits = 7; // For REQA and WUPA we need the short frame format - transmit only 7 bits of the last (and only) byte. TxLastBits = BitFramingReg[2..0] + status = PCD_TransceiveData(&command, 1, bufferATQA, bufferSize, &validBits); + if (status != STATUS_OK) { + return status; + } + if (*bufferSize != 2 || validBits != 0) { // ATQA must be exactly 16 bits. + return STATUS_ERROR; + } + return STATUS_OK; +} // End PICC_REQA_or_WUPA() + +/** + * Transmits SELECT/ANTICOLLISION commands to select a single PICC. + * Before calling this function the PICCs must be placed in the READY(*) state by calling PICC_RequestA() or PICC_WakeupA(). + * On success: + * - The chosen PICC is in state ACTIVE(*) and all other PICCs have returned to state IDLE/HALT. (Figure 7 of the ISO/IEC 14443-3 draft.) + * - The UID size and value of the chosen PICC is returned in *uid along with the SAK. + * + * A PICC UID consists of 4, 7 or 10 bytes. + * Only 4 bytes can be specified in a SELECT command, so for the longer UIDs two or three iterations are used: + * UID size Number of UID bytes Cascade levels Example of PICC + * ======== =================== ============== =============== + * single 4 1 MIFARE Classic + * double 7 2 MIFARE Ultralight + * triple 10 3 Not currently in use? + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally output, but can also be used to supply a known UID. + byte validBits ///< The number of known UID bits supplied in *uid. Normally 0. If set you must also supply uid->size. + ) { + bool uidComplete; + bool selectDone; + bool useCascadeTag; + byte cascadeLevel = 1; + MFRC522::StatusCode result; + byte count; + byte checkBit; + byte index; + byte uidIndex; // The first index in uid->uidByte[] that is used in the current Cascade Level. + int8_t currentLevelKnownBits; // The number of known UID bits in the current Cascade Level. + byte buffer[9]; // The SELECT/ANTICOLLISION commands uses a 7 byte standard frame + 2 bytes CRC_A + byte bufferUsed; // The number of bytes used in the buffer, ie the number of bytes to transfer to the FIFO. + byte rxAlign; // Used in BitFramingReg. Defines the bit position for the first bit received. + byte txLastBits; // Used in BitFramingReg. The number of valid bits in the last transmitted byte. + byte *responseBuffer; + byte responseLength; + + // Description of buffer structure: + // Byte 0: SEL Indicates the Cascade Level: PICC_CMD_SEL_CL1, PICC_CMD_SEL_CL2 or PICC_CMD_SEL_CL3 + // Byte 1: NVB Number of Valid Bits (in complete command, not just the UID): High nibble: complete bytes, Low nibble: Extra bits. + // Byte 2: UID-data or CT See explanation below. CT means Cascade Tag. + // Byte 3: UID-data + // Byte 4: UID-data + // Byte 5: UID-data + // Byte 6: BCC Block Check Character - XOR of bytes 2-5 + // Byte 7: CRC_A + // Byte 8: CRC_A + // The BCC and CRC_A are only transmitted if we know all the UID bits of the current Cascade Level. + // + // Description of bytes 2-5: (Section 6.5.4 of the ISO/IEC 14443-3 draft: UID contents and cascade levels) + // UID size Cascade level Byte2 Byte3 Byte4 Byte5 + // ======== ============= ===== ===== ===== ===== + // 4 bytes 1 uid0 uid1 uid2 uid3 + // 7 bytes 1 CT uid0 uid1 uid2 + // 2 uid3 uid4 uid5 uid6 + // 10 bytes 1 CT uid0 uid1 uid2 + // 2 CT uid3 uid4 uid5 + // 3 uid6 uid7 uid8 uid9 + + // Sanity checks + if (validBits > 80) { + return STATUS_INVALID; + } + + // Prepare MFRC522 + PCD_ClearRegisterBitMask(CollReg, 0x80); // ValuesAfterColl=1 => Bits received after collision are cleared. + + // Repeat Cascade Level loop until we have a complete UID. + uidComplete = false; + while (!uidComplete) { + // Set the Cascade Level in the SEL byte, find out if we need to use the Cascade Tag in byte 2. + switch (cascadeLevel) { + case 1: + buffer[0] = PICC_CMD_SEL_CL1; + uidIndex = 0; + useCascadeTag = validBits && uid->size > 4; // When we know that the UID has more than 4 bytes + break; + + case 2: + buffer[0] = PICC_CMD_SEL_CL2; + uidIndex = 3; + useCascadeTag = validBits && uid->size > 7; // When we know that the UID has more than 7 bytes + break; + + case 3: + buffer[0] = PICC_CMD_SEL_CL3; + uidIndex = 6; + useCascadeTag = false; // Never used in CL3. + break; + + default: + return STATUS_INTERNAL_ERROR; + break; + } + + // How many UID bits are known in this Cascade Level? + currentLevelKnownBits = validBits - (8 * uidIndex); + if (currentLevelKnownBits < 0) { + currentLevelKnownBits = 0; + } + // Copy the known bits from uid->uidByte[] to buffer[] + index = 2; // destination index in buffer[] + if (useCascadeTag) { + buffer[index++] = PICC_CMD_CT; + } + byte bytesToCopy = currentLevelKnownBits / 8 + (currentLevelKnownBits % 8 ? 1 : 0); // The number of bytes needed to represent the known bits for this level. + if (bytesToCopy) { + byte maxBytes = useCascadeTag ? 3 : 4; // Max 4 bytes in each Cascade Level. Only 3 left if we use the Cascade Tag + if (bytesToCopy > maxBytes) { + bytesToCopy = maxBytes; + } + for (count = 0; count < bytesToCopy; count++) { + buffer[index++] = uid->uidByte[uidIndex + count]; + } + } + // Now that the data has been copied we need to include the 8 bits in CT in currentLevelKnownBits + if (useCascadeTag) { + currentLevelKnownBits += 8; + } + + // Repeat anti collision loop until we can transmit all UID bits + BCC and receive a SAK - max 32 iterations. + selectDone = false; + while (!selectDone) { + // Find out how many bits and bytes to send and receive. + if (currentLevelKnownBits >= 32) { // All UID bits in this Cascade Level are known. This is a SELECT. + //Serial.print(F("SELECT: currentLevelKnownBits=")); Serial.println(currentLevelKnownBits, DEC); + buffer[1] = 0x70; // NVB - Number of Valid Bits: Seven whole bytes + // Calculate BCC - Block Check Character + buffer[6] = buffer[2] ^ buffer[3] ^ buffer[4] ^ buffer[5]; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 7, &buffer[7]); + if (result != STATUS_OK) { + return result; + } + txLastBits = 0; // 0 => All 8 bits are valid. + bufferUsed = 9; + // Store response in the last 3 bytes of buffer (BCC and CRC_A - not needed after tx) + responseBuffer = &buffer[6]; + responseLength = 3; + } + else { // This is an ANTICOLLISION. + //Serial.print(F("ANTICOLLISION: currentLevelKnownBits=")); Serial.println(currentLevelKnownBits, DEC); + txLastBits = currentLevelKnownBits % 8; + count = currentLevelKnownBits / 8; // Number of whole bytes in the UID part. + index = 2 + count; // Number of whole bytes: SEL + NVB + UIDs + buffer[1] = (index << 4) + txLastBits; // NVB - Number of Valid Bits + bufferUsed = index + (txLastBits ? 1 : 0); + // Store response in the unused part of buffer + responseBuffer = &buffer[index]; + responseLength = sizeof(buffer) - index; + } + + // Set bit adjustments + rxAlign = txLastBits; // Having a separate variable is overkill. But it makes the next line easier to read. + PCD_WriteRegister(BitFramingReg, (rxAlign << 4) + txLastBits); // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] + + // Transmit the buffer and receive the response. + result = PCD_TransceiveData(buffer, bufferUsed, responseBuffer, &responseLength, &txLastBits, rxAlign); + if (result == STATUS_COLLISION) { // More than one PICC in the field => collision. + byte valueOfCollReg = PCD_ReadRegister(CollReg); // CollReg[7..0] bits are: ValuesAfterColl reserved CollPosNotValid CollPos[4:0] + if (valueOfCollReg & 0x20) { // CollPosNotValid + return STATUS_COLLISION; // Without a valid collision position we cannot continue + } + byte collisionPos = valueOfCollReg & 0x1F; // Values 0-31, 0 means bit 32. + if (collisionPos == 0) { + collisionPos = 32; + } + if (collisionPos <= currentLevelKnownBits) { // No progress - should not happen + return STATUS_INTERNAL_ERROR; + } + // Choose the PICC with the bit set. + currentLevelKnownBits = collisionPos; + count = currentLevelKnownBits % 8; // The bit to modify + checkBit = (currentLevelKnownBits - 1) % 8; + index = 1 + (currentLevelKnownBits / 8) + (count ? 1 : 0); // First byte is index 0. + buffer[index] |= (1 << checkBit); + } + else if (result != STATUS_OK) { + return result; + } + else { // STATUS_OK + if (currentLevelKnownBits >= 32) { // This was a SELECT. + selectDone = true; // No more anticollision + // We continue below outside the while. + } + else { // This was an ANTICOLLISION. + // We now have all 32 bits of the UID in this Cascade Level + currentLevelKnownBits = 32; + // Run loop again to do the SELECT. + } + } + } // End of while (!selectDone) + + // We do not check the CBB - it was constructed by us above. + + // Copy the found UID bytes from buffer[] to uid->uidByte[] + index = (buffer[2] == PICC_CMD_CT) ? 3 : 2; // source index in buffer[] + bytesToCopy = (buffer[2] == PICC_CMD_CT) ? 3 : 4; + for (count = 0; count < bytesToCopy; count++) { + uid->uidByte[uidIndex + count] = buffer[index++]; + } + + // Check response SAK (Select Acknowledge) + if (responseLength != 3 || txLastBits != 0) { // SAK must be exactly 24 bits (1 byte + CRC_A). + return STATUS_ERROR; + } + // Verify CRC_A - do our own calculation and store the control in buffer[2..3] - those bytes are not needed anymore. + result = PCD_CalculateCRC(responseBuffer, 1, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + if ((buffer[2] != responseBuffer[1]) || (buffer[3] != responseBuffer[2])) { + return STATUS_CRC_WRONG; + } + if (responseBuffer[0] & 0x04) { // Cascade bit set - UID not complete yes + cascadeLevel++; + } + else { + uidComplete = true; + uid->sak = responseBuffer[0]; + } + } // End of while (!uidComplete) + + // Set correct uid->size + uid->size = 3 * cascadeLevel + 1; + + return STATUS_OK; +} // End PICC_Select() + +/** + * Instructs a PICC in state ACTIVE(*) to go to state HALT. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PICC_HaltA() { + MFRC522::StatusCode result; + byte buffer[4]; + + // Build command buffer + buffer[0] = PICC_CMD_HLTA; + buffer[1] = 0; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 2, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + + // Send the command. + // The standard says: + // If the PICC responds with any modulation during a period of 1 ms after the end of the frame containing the + // HLTA command, this response shall be interpreted as 'not acknowledge'. + // We interpret that this way: Only STATUS_TIMEOUT is a success. + result = PCD_TransceiveData(buffer, sizeof(buffer), nullptr, 0); + if (result == STATUS_TIMEOUT) { + return STATUS_OK; + } + if (result == STATUS_OK) { // That is ironically NOT ok in this case ;-) + return STATUS_ERROR; + } + return result; +} // End PICC_HaltA() + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for communicating with MIFARE PICCs +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Executes the MFRC522 MFAuthent command. + * This command manages MIFARE authentication to enable a secure communication to any MIFARE Mini, MIFARE 1K and MIFARE 4K card. + * The authentication is described in the MFRC522 datasheet section 10.3.1.9 and http://www.nxp.com/documents/data_sheet/MF1S503x.pdf section 10.1. + * For use with MIFARE Classic PICCs. + * The PICC must be selected - ie in state ACTIVE(*) - before calling this function. + * Remember to call PCD_StopCrypto1() after communicating with the authenticated PICC - otherwise no new communications can start. + * + * All keys are set to FFFFFFFFFFFFh at chip delivery. + * + * @return STATUS_OK on success, STATUS_??? otherwise. Probably STATUS_TIMEOUT if you supply the wrong key. + */ +MFRC522::StatusCode MFRC522::PCD_Authenticate(byte command, ///< PICC_CMD_MF_AUTH_KEY_A or PICC_CMD_MF_AUTH_KEY_B + byte blockAddr, ///< The block number. See numbering in the comments in the .h file. + MIFARE_Key *key, ///< Pointer to the Crypteo1 key to use (6 bytes) + Uid *uid ///< Pointer to Uid struct. The first 4 bytes of the UID is used. + ) { + byte waitIRq = 0x10; // IdleIRq + + // Build command buffer + byte sendData[12]; + sendData[0] = command; + sendData[1] = blockAddr; + for (byte i = 0; i < MF_KEY_SIZE; i++) { // 6 key bytes + sendData[2+i] = key->keyByte[i]; + } + // Use the last uid bytes as specified in http://cache.nxp.com/documents/application_note/AN10927.pdf + // section 3.2.5 "MIFARE Classic Authentication". + // The only missed case is the MF1Sxxxx shortcut activation, + // but it requires cascade tag (CT) byte, that is not part of uid. + for (byte i = 0; i < 4; i++) { // The last 4 bytes of the UID + sendData[8+i] = uid->uidByte[i+uid->size-4]; + } + + // Start the authentication. + return PCD_CommunicateWithPICC(PCD_MFAuthent, waitIRq, &sendData[0], sizeof(sendData)); +} // End PCD_Authenticate() + +/** + * Used to exit the PCD from its authenticated state. + * Remember to call this function after communicating with an authenticated PICC - otherwise no new communications can start. + */ +void MFRC522::PCD_StopCrypto1() { + // Clear MFCrypto1On bit + PCD_ClearRegisterBitMask(Status2Reg, 0x08); // Status2Reg[7..0] bits are: TempSensClear I2CForceHS reserved reserved MFCrypto1On ModemState[2:0] +} // End PCD_StopCrypto1() + +/** + * Reads 16 bytes (+ 2 bytes CRC_A) from the active PICC. + * + * For MIFARE Classic the sector containing the block must be authenticated before calling this function. + * + * For MIFARE Ultralight only addresses 00h to 0Fh are decoded. + * The MF0ICU1 returns a NAK for higher addresses. + * The MF0ICU1 responds to the READ command by sending 16 bytes starting from the page address defined by the command argument. + * For example; if blockAddr is 03h then pages 03h, 04h, 05h, 06h are returned. + * A roll-back is implemented: If blockAddr is 0Eh, then the contents of pages 0Eh, 0Fh, 00h and 01h are returned. + * + * The buffer must be at least 18 bytes because a CRC_A is also returned. + * Checks the CRC_A before returning STATUS_OK. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Read( byte blockAddr, ///< MIFARE Classic: The block (0-0xff) number. MIFARE Ultralight: The first page to return data from. + byte *buffer, ///< The buffer to store the data in + byte *bufferSize ///< Buffer size, at least 18 bytes. Also number of bytes returned if STATUS_OK. + ) { + MFRC522::StatusCode result; + + // Sanity check + if (buffer == nullptr || *bufferSize < 18) { + return STATUS_NO_ROOM; + } + + // Build command buffer + buffer[0] = PICC_CMD_MF_READ; + buffer[1] = blockAddr; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 2, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + + // Transmit the buffer and receive the response, validate CRC_A. + return PCD_TransceiveData(buffer, 4, buffer, bufferSize, nullptr, 0, true); +} // End MIFARE_Read() + +/** + * Writes 16 bytes to the active PICC. + * + * For MIFARE Classic the sector containing the block must be authenticated before calling this function. + * + * For MIFARE Ultralight the operation is called "COMPATIBILITY WRITE". + * Even though 16 bytes are transferred to the Ultralight PICC, only the least significant 4 bytes (bytes 0 to 3) + * are written to the specified address. It is recommended to set the remaining bytes 04h to 0Fh to all logic 0. + * * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Write( byte blockAddr, ///< MIFARE Classic: The block (0-0xff) number. MIFARE Ultralight: The page (2-15) to write to. + byte *buffer, ///< The 16 bytes to write to the PICC + byte bufferSize ///< Buffer size, must be at least 16 bytes. Exactly 16 bytes are written. + ) { + MFRC522::StatusCode result; + + // Sanity check + if (buffer == nullptr || bufferSize < 16) { + return STATUS_INVALID; + } + + // Mifare Classic protocol requires two communications to perform a write. + // Step 1: Tell the PICC we want to write to block blockAddr. + byte cmdBuffer[2]; + cmdBuffer[0] = PICC_CMD_MF_WRITE; + cmdBuffer[1] = blockAddr; + result = PCD_MIFARE_Transceive(cmdBuffer, 2); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + + // Step 2: Transfer the data + result = PCD_MIFARE_Transceive(buffer, bufferSize); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + + return STATUS_OK; +} // End MIFARE_Write() + +/** + * Writes a 4 byte page to the active MIFARE Ultralight PICC. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Ultralight_Write( byte page, ///< The page (2-15) to write to. + byte *buffer, ///< The 4 bytes to write to the PICC + byte bufferSize ///< Buffer size, must be at least 4 bytes. Exactly 4 bytes are written. + ) { + MFRC522::StatusCode result; + + // Sanity check + if (buffer == nullptr || bufferSize < 4) { + return STATUS_INVALID; + } + + // Build commmand buffer + byte cmdBuffer[6]; + cmdBuffer[0] = PICC_CMD_UL_WRITE; + cmdBuffer[1] = page; + memcpy(&cmdBuffer[2], buffer, 4); + + // Perform the write + result = PCD_MIFARE_Transceive(cmdBuffer, 6); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + return STATUS_OK; +} // End MIFARE_Ultralight_Write() + +/** + * MIFARE Decrement subtracts the delta from the value of the addressed block, and stores the result in a volatile memory. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * Use MIFARE_Transfer() to store the result in a block. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Decrement( byte blockAddr, ///< The block (0-0xff) number. + int32_t delta ///< This number is subtracted from the value of block blockAddr. + ) { + return MIFARE_TwoStepHelper(PICC_CMD_MF_DECREMENT, blockAddr, delta); +} // End MIFARE_Decrement() + +/** + * MIFARE Increment adds the delta to the value of the addressed block, and stores the result in a volatile memory. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * Use MIFARE_Transfer() to store the result in a block. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Increment( byte blockAddr, ///< The block (0-0xff) number. + int32_t delta ///< This number is added to the value of block blockAddr. + ) { + return MIFARE_TwoStepHelper(PICC_CMD_MF_INCREMENT, blockAddr, delta); +} // End MIFARE_Increment() + +/** + * MIFARE Restore copies the value of the addressed block into a volatile memory. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * Use MIFARE_Transfer() to store the result in a block. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Restore( byte blockAddr ///< The block (0-0xff) number. + ) { + // The datasheet describes Restore as a two step operation, but does not explain what data to transfer in step 2. + // Doing only a single step does not work, so I chose to transfer 0L in step two. + return MIFARE_TwoStepHelper(PICC_CMD_MF_RESTORE, blockAddr, 0L); +} // End MIFARE_Restore() + +/** + * Helper function for the two-step MIFARE Classic protocol operations Decrement, Increment and Restore. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_TwoStepHelper( byte command, ///< The command to use + byte blockAddr, ///< The block (0-0xff) number. + int32_t data ///< The data to transfer in step 2 + ) { + MFRC522::StatusCode result; + byte cmdBuffer[2]; // We only need room for 2 bytes. + + // Step 1: Tell the PICC the command and block address + cmdBuffer[0] = command; + cmdBuffer[1] = blockAddr; + result = PCD_MIFARE_Transceive( cmdBuffer, 2); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + + // Step 2: Transfer the data + result = PCD_MIFARE_Transceive( (byte *)&data, 4, true); // Adds CRC_A and accept timeout as success. + if (result != STATUS_OK) { + return result; + } + + return STATUS_OK; +} // End MIFARE_TwoStepHelper() + +/** + * MIFARE Transfer writes the value stored in the volatile memory into one MIFARE Classic block. + * For MIFARE Classic only. The sector containing the block must be authenticated before calling this function. + * Only for blocks in "value block" mode, ie with access bits [C1 C2 C3] = [110] or [001]. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_Transfer( byte blockAddr ///< The block (0-0xff) number. + ) { + MFRC522::StatusCode result; + byte cmdBuffer[2]; // We only need room for 2 bytes. + + // Tell the PICC we want to transfer the result into block blockAddr. + cmdBuffer[0] = PICC_CMD_MF_TRANSFER; + cmdBuffer[1] = blockAddr; + result = PCD_MIFARE_Transceive( cmdBuffer, 2); // Adds CRC_A and checks that the response is MF_ACK. + if (result != STATUS_OK) { + return result; + } + return STATUS_OK; +} // End MIFARE_Transfer() + +/** + * Helper routine to read the current value from a Value Block. + * + * Only for MIFARE Classic and only for blocks in "value block" mode, that + * is: with access bits [C1 C2 C3] = [110] or [001]. The sector containing + * the block must be authenticated before calling this function. + * + * @param[in] blockAddr The block (0x00-0xff) number. + * @param[out] value Current value of the Value Block. + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_GetValue(byte blockAddr, int32_t *value) { + MFRC522::StatusCode status; + byte buffer[18]; + byte size = sizeof(buffer); + + // Read the block + status = MIFARE_Read(blockAddr, buffer, &size); + if (status == STATUS_OK) { + // Extract the value + *value = (int32_t(buffer[3])<<24) | (int32_t(buffer[2])<<16) | (int32_t(buffer[1])<<8) | int32_t(buffer[0]); + } + return status; +} // End MIFARE_GetValue() + +/** + * Helper routine to write a specific value into a Value Block. + * + * Only for MIFARE Classic and only for blocks in "value block" mode, that + * is: with access bits [C1 C2 C3] = [110] or [001]. The sector containing + * the block must be authenticated before calling this function. + * + * @param[in] blockAddr The block (0x00-0xff) number. + * @param[in] value New value of the Value Block. + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::MIFARE_SetValue(byte blockAddr, int32_t value) { + byte buffer[18]; + + // Translate the int32_t into 4 bytes; repeated 2x in value block + buffer[0] = buffer[ 8] = (value & 0xFF); + buffer[1] = buffer[ 9] = (value & 0xFF00) >> 8; + buffer[2] = buffer[10] = (value & 0xFF0000) >> 16; + buffer[3] = buffer[11] = (value & 0xFF000000) >> 24; + // Inverse 4 bytes also found in value block + buffer[4] = ~buffer[0]; + buffer[5] = ~buffer[1]; + buffer[6] = ~buffer[2]; + buffer[7] = ~buffer[3]; + // Address 2x with inverse address 2x + buffer[12] = buffer[14] = blockAddr; + buffer[13] = buffer[15] = ~blockAddr; + + // Write the whole data block + return MIFARE_Write(blockAddr, buffer, 16); +} // End MIFARE_SetValue() + +/** + * Authenticate with a NTAG216. + * + * Only for NTAG216. First implemented by Gargantuanman. + * + * @param[in] passWord password. + * @param[in] pACK result success???. + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PCD_NTAG216_AUTH(byte* passWord, byte pACK[]) //Authenticate with 32bit password +{ + // TODO: Fix cmdBuffer length and rxlength. They really should match. + // (Better still, rxlength should not even be necessary.) + + MFRC522::StatusCode result; + byte cmdBuffer[18]; // We need room for 16 bytes data and 2 bytes CRC_A. + + cmdBuffer[0] = 0x1B; //Comando de autentificacion + + for (byte i = 0; i<4; i++) + cmdBuffer[i+1] = passWord[i]; + + result = PCD_CalculateCRC(cmdBuffer, 5, &cmdBuffer[5]); + + if (result!=STATUS_OK) { + return result; + } + + // Transceive the data, store the reply in cmdBuffer[] + byte waitIRq = 0x30; // RxIRq and IdleIRq +// byte cmdBufferSize = sizeof(cmdBuffer); + byte validBits = 0; + byte rxlength = 5; + result = PCD_CommunicateWithPICC(PCD_Transceive, waitIRq, cmdBuffer, 7, cmdBuffer, &rxlength, &validBits); + + pACK[0] = cmdBuffer[0]; + pACK[1] = cmdBuffer[1]; + + if (result!=STATUS_OK) { + return result; + } + + return STATUS_OK; +} // End PCD_NTAG216_AUTH() + + +///////////////////////////////////////////////////////////////////////////////////// +// Support functions +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Wrapper for MIFARE protocol communication. + * Adds CRC_A, executes the Transceive command and checks that the response is MF_ACK or a timeout. + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522::PCD_MIFARE_Transceive( byte *sendData, ///< Pointer to the data to transfer to the FIFO. Do NOT include the CRC_A. + byte sendLen, ///< Number of bytes in sendData. + bool acceptTimeout ///< True => A timeout is also success + ) { + MFRC522::StatusCode result; + byte cmdBuffer[18]; // We need room for 16 bytes data and 2 bytes CRC_A. + + // Sanity check + if (sendData == nullptr || sendLen > 16) { + return STATUS_INVALID; + } + + // Copy sendData[] to cmdBuffer[] and add CRC_A + memcpy(cmdBuffer, sendData, sendLen); + result = PCD_CalculateCRC(cmdBuffer, sendLen, &cmdBuffer[sendLen]); + if (result != STATUS_OK) { + return result; + } + sendLen += 2; + + // Transceive the data, store the reply in cmdBuffer[] + byte waitIRq = 0x30; // RxIRq and IdleIRq + byte cmdBufferSize = sizeof(cmdBuffer); + byte validBits = 0; + result = PCD_CommunicateWithPICC(PCD_Transceive, waitIRq, cmdBuffer, sendLen, cmdBuffer, &cmdBufferSize, &validBits); + if (acceptTimeout && result == STATUS_TIMEOUT) { + return STATUS_OK; + } + if (result != STATUS_OK) { + return result; + } + // The PICC must reply with a 4 bit ACK + if (cmdBufferSize != 1 || validBits != 4) { + return STATUS_ERROR; + } + if (cmdBuffer[0] != MF_ACK) { + return STATUS_MIFARE_NACK; + } + return STATUS_OK; +} // End PCD_MIFARE_Transceive() + +/** + * Returns a __FlashStringHelper pointer to a status code name. + * + * @return const __FlashStringHelper * + */ +const __FlashStringHelper *MFRC522::GetStatusCodeName(MFRC522::StatusCode code ///< One of the StatusCode enums. + ) { + switch (code) { + case STATUS_OK: return F("Success."); + case STATUS_ERROR: return F("Error in communication."); + case STATUS_COLLISION: return F("Collision detected."); + case STATUS_TIMEOUT: return F("Timeout in communication."); + case STATUS_NO_ROOM: return F("A buffer is not big enough."); + case STATUS_INTERNAL_ERROR: return F("Internal error in the code. Should not happen."); + case STATUS_INVALID: return F("Invalid argument."); + case STATUS_CRC_WRONG: return F("The CRC_A does not match."); + case STATUS_MIFARE_NACK: return F("A MIFARE PICC responded with NAK."); + default: return F("Unknown error"); + } +} // End GetStatusCodeName() + +/** + * Translates the SAK (Select Acknowledge) to a PICC type. + * + * @return PICC_Type + */ +MFRC522::PICC_Type MFRC522::PICC_GetType(byte sak ///< The SAK byte returned from PICC_Select(). + ) { + // http://www.nxp.com/documents/application_note/AN10833.pdf + // 3.2 Coding of Select Acknowledge (SAK) + // ignore 8-bit (iso14443 starts with LSBit = bit 1) + // fixes wrong type for manufacturer Infineon (http://nfc-tools.org/index.php?title=ISO14443A) + sak &= 0x7F; + switch (sak) { + case 0x04: return PICC_TYPE_NOT_COMPLETE; // UID not complete + case 0x09: return PICC_TYPE_MIFARE_MINI; + case 0x08: return PICC_TYPE_MIFARE_1K; + case 0x18: return PICC_TYPE_MIFARE_4K; + case 0x00: return PICC_TYPE_MIFARE_UL; + case 0x10: + case 0x11: return PICC_TYPE_MIFARE_PLUS; + case 0x01: return PICC_TYPE_TNP3XXX; + case 0x20: return PICC_TYPE_ISO_14443_4; + case 0x40: return PICC_TYPE_ISO_18092; + default: return PICC_TYPE_UNKNOWN; + } +} // End PICC_GetType() + +/** + * Returns a __FlashStringHelper pointer to the PICC type name. + * + * @return const __FlashStringHelper * + */ +const __FlashStringHelper *MFRC522::PICC_GetTypeName(PICC_Type piccType ///< One of the PICC_Type enums. + ) { + switch (piccType) { + case PICC_TYPE_ISO_14443_4: return F("PICC compliant with ISO/IEC 14443-4"); + case PICC_TYPE_ISO_18092: return F("PICC compliant with ISO/IEC 18092 (NFC)"); + case PICC_TYPE_MIFARE_MINI: return F("MIFARE Mini, 320 bytes"); + case PICC_TYPE_MIFARE_1K: return F("MIFARE 1KB"); + case PICC_TYPE_MIFARE_4K: return F("MIFARE 4KB"); + case PICC_TYPE_MIFARE_UL: return F("MIFARE Ultralight or Ultralight C"); + case PICC_TYPE_MIFARE_PLUS: return F("MIFARE Plus"); + case PICC_TYPE_MIFARE_DESFIRE: return F("MIFARE DESFire"); + case PICC_TYPE_TNP3XXX: return F("MIFARE TNP3XXX"); + case PICC_TYPE_NOT_COMPLETE: return F("SAK indicates UID is not complete."); + case PICC_TYPE_UNKNOWN: + default: return F("Unknown type"); + } +} // End PICC_GetTypeName() + +/** + * Dumps debug info about the connected PCD to Serial. + * Shows all known firmware versions + */ +void MFRC522::PCD_DumpVersionToSerial() { + // Get the MFRC522 firmware version + byte v = PCD_ReadRegister(VersionReg); + Serial.print(F("Firmware Version: 0x")); + Serial.print(v, HEX); + // Lookup which version + switch(v) { + case 0x88: Serial.println(F(" = (clone)")); break; + case 0x90: Serial.println(F(" = v0.0")); break; + case 0x91: Serial.println(F(" = v1.0")); break; + case 0x92: Serial.println(F(" = v2.0")); break; + case 0x12: Serial.println(F(" = counterfeit chip")); break; + default: Serial.println(F(" = (unknown)")); + } + // When 0x00 or 0xFF is returned, communication probably failed + if ((v == 0x00) || (v == 0xFF)) + Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?")); +} // End PCD_DumpVersionToSerial() + +/** + * Dumps debug info about the selected PICC to Serial. + * On success the PICC is halted after dumping the data. + * For MIFARE Classic the factory default key of 0xFFFFFFFFFFFF is tried. + */ +void MFRC522::PICC_DumpToSerial(Uid *uid ///< Pointer to Uid struct returned from a successful PICC_Select(). + ) { + MIFARE_Key key; + + // Dump UID, SAK and Type + PICC_DumpDetailsToSerial(uid); + + // Dump contents + PICC_Type piccType = PICC_GetType(uid->sak); + switch (piccType) { + case PICC_TYPE_MIFARE_MINI: + case PICC_TYPE_MIFARE_1K: + case PICC_TYPE_MIFARE_4K: + // All keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + PICC_DumpMifareClassicToSerial(uid, piccType, &key); + break; + + case PICC_TYPE_MIFARE_UL: + PICC_DumpMifareUltralightToSerial(); + break; + + case PICC_TYPE_ISO_14443_4: + case PICC_TYPE_MIFARE_DESFIRE: + case PICC_TYPE_ISO_18092: + case PICC_TYPE_MIFARE_PLUS: + case PICC_TYPE_TNP3XXX: + Serial.println(F("Dumping memory contents not implemented for that PICC type.")); + break; + + case PICC_TYPE_UNKNOWN: + case PICC_TYPE_NOT_COMPLETE: + default: + break; // No memory dump here + } + + Serial.println(); + PICC_HaltA(); // Already done if it was a MIFARE Classic PICC. +} // End PICC_DumpToSerial() + +/** + * Dumps card info (UID,SAK,Type) about the selected PICC to Serial. + */ +void MFRC522::PICC_DumpDetailsToSerial(Uid *uid ///< Pointer to Uid struct returned from a successful PICC_Select(). + ) { + // UID + Serial.print(F("Card UID:")); + for (byte i = 0; i < uid->size; i++) { + if(uid->uidByte[i] < 0x10) + Serial.print(F(" 0")); + else + Serial.print(F(" ")); + Serial.print(uid->uidByte[i], HEX); + } + Serial.println(); + + // SAK + Serial.print(F("Card SAK: ")); + if(uid->sak < 0x10) + Serial.print(F("0")); + Serial.println(uid->sak, HEX); + + // (suggested) PICC type + PICC_Type piccType = PICC_GetType(uid->sak); + Serial.print(F("PICC type: ")); + Serial.println(PICC_GetTypeName(piccType)); +} // End PICC_DumpDetailsToSerial() + +/** + * Dumps memory contents of a MIFARE Classic PICC. + * On success the PICC is halted after dumping the data. + */ +void MFRC522::PICC_DumpMifareClassicToSerial( Uid *uid, ///< Pointer to Uid struct returned from a successful PICC_Select(). + PICC_Type piccType, ///< One of the PICC_Type enums. + MIFARE_Key *key ///< Key A used for all sectors. + ) { + byte no_of_sectors = 0; + switch (piccType) { + case PICC_TYPE_MIFARE_MINI: + // Has 5 sectors * 4 blocks/sector * 16 bytes/block = 320 bytes. + no_of_sectors = 5; + break; + + case PICC_TYPE_MIFARE_1K: + // Has 16 sectors * 4 blocks/sector * 16 bytes/block = 1024 bytes. + no_of_sectors = 16; + break; + + case PICC_TYPE_MIFARE_4K: + // Has (32 sectors * 4 blocks/sector + 8 sectors * 16 blocks/sector) * 16 bytes/block = 4096 bytes. + no_of_sectors = 40; + break; + + default: // Should not happen. Ignore. + break; + } + + // Dump sectors, highest address first. + if (no_of_sectors) { + Serial.println(F("Sector Block 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 AccessBits")); + for (int8_t i = no_of_sectors - 1; i >= 0; i--) { + PICC_DumpMifareClassicSectorToSerial(uid, key, i); + } + } + PICC_HaltA(); // Halt the PICC before stopping the encrypted session. + PCD_StopCrypto1(); +} // End PICC_DumpMifareClassicToSerial() + +/** + * Dumps memory contents of a sector of a MIFARE Classic PICC. + * Uses PCD_Authenticate(), MIFARE_Read() and PCD_StopCrypto1. + * Always uses PICC_CMD_MF_AUTH_KEY_A because only Key A can always read the sector trailer access bits. + */ +void MFRC522::PICC_DumpMifareClassicSectorToSerial(Uid *uid, ///< Pointer to Uid struct returned from a successful PICC_Select(). + MIFARE_Key *key, ///< Key A for the sector. + byte sector ///< The sector to dump, 0..39. + ) { + MFRC522::StatusCode status; + byte firstBlock; // Address of lowest address to dump actually last block dumped) + byte no_of_blocks; // Number of blocks in sector + bool isSectorTrailer; // Set to true while handling the "last" (ie highest address) in the sector. + + // The access bits are stored in a peculiar fashion. + // There are four groups: + // g[3] Access bits for the sector trailer, block 3 (for sectors 0-31) or block 15 (for sectors 32-39) + // g[2] Access bits for block 2 (for sectors 0-31) or blocks 10-14 (for sectors 32-39) + // g[1] Access bits for block 1 (for sectors 0-31) or blocks 5-9 (for sectors 32-39) + // g[0] Access bits for block 0 (for sectors 0-31) or blocks 0-4 (for sectors 32-39) + // Each group has access bits [C1 C2 C3]. In this code C1 is MSB and C3 is LSB. + // The four CX bits are stored together in a nible cx and an inverted nible cx_. + byte c1, c2, c3; // Nibbles + byte c1_, c2_, c3_; // Inverted nibbles + bool invertedError; // True if one of the inverted nibbles did not match + byte g[4]; // Access bits for each of the four groups. + byte group; // 0-3 - active group for access bits + bool firstInGroup; // True for the first block dumped in the group + + // Determine position and size of sector. + if (sector < 32) { // Sectors 0..31 has 4 blocks each + no_of_blocks = 4; + firstBlock = sector * no_of_blocks; + } + else if (sector < 40) { // Sectors 32-39 has 16 blocks each + no_of_blocks = 16; + firstBlock = 128 + (sector - 32) * no_of_blocks; + } + else { // Illegal input, no MIFARE Classic PICC has more than 40 sectors. + return; + } + + // Dump blocks, highest address first. + byte byteCount; + byte buffer[18]; + byte blockAddr; + isSectorTrailer = true; + invertedError = false; // Avoid "unused variable" warning. + for (int8_t blockOffset = no_of_blocks - 1; blockOffset >= 0; blockOffset--) { + blockAddr = firstBlock + blockOffset; + // Sector number - only on first line + if (isSectorTrailer) { + if(sector < 10) + Serial.print(F(" ")); // Pad with spaces + else + Serial.print(F(" ")); // Pad with spaces + Serial.print(sector); + Serial.print(F(" ")); + } + else { + Serial.print(F(" ")); + } + // Block number + if(blockAddr < 10) + Serial.print(F(" ")); // Pad with spaces + else { + if(blockAddr < 100) + Serial.print(F(" ")); // Pad with spaces + else + Serial.print(F(" ")); // Pad with spaces + } + Serial.print(blockAddr); + Serial.print(F(" ")); + // Establish encrypted communications before reading the first block + if (isSectorTrailer) { + status = PCD_Authenticate(PICC_CMD_MF_AUTH_KEY_A, firstBlock, key, uid); + if (status != STATUS_OK) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(GetStatusCodeName(status)); + return; + } + } + // Read block + byteCount = sizeof(buffer); + status = MIFARE_Read(blockAddr, buffer, &byteCount); + if (status != STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(GetStatusCodeName(status)); + continue; + } + // Dump data + for (byte index = 0; index < 16; index++) { + if(buffer[index] < 0x10) + Serial.print(F(" 0")); + else + Serial.print(F(" ")); + Serial.print(buffer[index], HEX); + if ((index % 4) == 3) { + Serial.print(F(" ")); + } + } + // Parse sector trailer data + if (isSectorTrailer) { + c1 = buffer[7] >> 4; + c2 = buffer[8] & 0xF; + c3 = buffer[8] >> 4; + c1_ = buffer[6] & 0xF; + c2_ = buffer[6] >> 4; + c3_ = buffer[7] & 0xF; + invertedError = (c1 != (~c1_ & 0xF)) || (c2 != (~c2_ & 0xF)) || (c3 != (~c3_ & 0xF)); + g[0] = ((c1 & 1) << 2) | ((c2 & 1) << 1) | ((c3 & 1) << 0); + g[1] = ((c1 & 2) << 1) | ((c2 & 2) << 0) | ((c3 & 2) >> 1); + g[2] = ((c1 & 4) << 0) | ((c2 & 4) >> 1) | ((c3 & 4) >> 2); + g[3] = ((c1 & 8) >> 1) | ((c2 & 8) >> 2) | ((c3 & 8) >> 3); + isSectorTrailer = false; + } + + // Which access group is this block in? + if (no_of_blocks == 4) { + group = blockOffset; + firstInGroup = true; + } + else { + group = blockOffset / 5; + firstInGroup = (group == 3) || (group != (blockOffset + 1) / 5); + } + + if (firstInGroup) { + // Print access bits + Serial.print(F(" [ ")); + Serial.print((g[group] >> 2) & 1, DEC); Serial.print(F(" ")); + Serial.print((g[group] >> 1) & 1, DEC); Serial.print(F(" ")); + Serial.print((g[group] >> 0) & 1, DEC); + Serial.print(F(" ] ")); + if (invertedError) { + Serial.print(F(" Inverted access bits did not match! ")); + } + } + + if (group != 3 && (g[group] == 1 || g[group] == 6)) { // Not a sector trailer, a value block + int32_t value = (int32_t(buffer[3])<<24) | (int32_t(buffer[2])<<16) | (int32_t(buffer[1])<<8) | int32_t(buffer[0]); + Serial.print(F(" Value=0x")); Serial.print(value, HEX); + Serial.print(F(" Adr=0x")); Serial.print(buffer[12], HEX); + } + Serial.println(); + } + + return; +} // End PICC_DumpMifareClassicSectorToSerial() + +/** + * Dumps memory contents of a MIFARE Ultralight PICC. + */ +void MFRC522::PICC_DumpMifareUltralightToSerial() { + MFRC522::StatusCode status; + byte byteCount; + byte buffer[18]; + byte i; + + Serial.println(F("Page 0 1 2 3")); + // Try the mpages of the original Ultralight. Ultralight C has more pages. + for (byte page = 0; page < 16; page +=4) { // Read returns data for 4 pages at a time. + // Read pages + byteCount = sizeof(buffer); + status = MIFARE_Read(page, buffer, &byteCount); + if (status != STATUS_OK) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(GetStatusCodeName(status)); + break; + } + // Dump data + for (byte offset = 0; offset < 4; offset++) { + i = page + offset; + if(i < 10) + Serial.print(F(" ")); // Pad with spaces + else + Serial.print(F(" ")); // Pad with spaces + Serial.print(i); + Serial.print(F(" ")); + for (byte index = 0; index < 4; index++) { + i = 4 * offset + index; + if(buffer[i] < 0x10) + Serial.print(F(" 0")); + else + Serial.print(F(" ")); + Serial.print(buffer[i], HEX); + } + Serial.println(); + } + } +} // End PICC_DumpMifareUltralightToSerial() + +/** + * Calculates the bit pattern needed for the specified access bits. In the [C1 C2 C3] tuples C1 is MSB (=4) and C3 is LSB (=1). + */ +void MFRC522::MIFARE_SetAccessBits( byte *accessBitBuffer, ///< Pointer to byte 6, 7 and 8 in the sector trailer. Bytes [0..2] will be set. + byte g0, ///< Access bits [C1 C2 C3] for block 0 (for sectors 0-31) or blocks 0-4 (for sectors 32-39) + byte g1, ///< Access bits C1 C2 C3] for block 1 (for sectors 0-31) or blocks 5-9 (for sectors 32-39) + byte g2, ///< Access bits C1 C2 C3] for block 2 (for sectors 0-31) or blocks 10-14 (for sectors 32-39) + byte g3 ///< Access bits C1 C2 C3] for the sector trailer, block 3 (for sectors 0-31) or block 15 (for sectors 32-39) + ) { + byte c1 = ((g3 & 4) << 1) | ((g2 & 4) << 0) | ((g1 & 4) >> 1) | ((g0 & 4) >> 2); + byte c2 = ((g3 & 2) << 2) | ((g2 & 2) << 1) | ((g1 & 2) << 0) | ((g0 & 2) >> 1); + byte c3 = ((g3 & 1) << 3) | ((g2 & 1) << 2) | ((g1 & 1) << 1) | ((g0 & 1) << 0); + + accessBitBuffer[0] = (~c2 & 0xF) << 4 | (~c1 & 0xF); + accessBitBuffer[1] = c1 << 4 | (~c3 & 0xF); + accessBitBuffer[2] = c3 << 4 | c2; +} // End MIFARE_SetAccessBits() + + +/** + * Performs the "magic sequence" needed to get Chinese UID changeable + * Mifare cards to allow writing to sector 0, where the card UID is stored. + * + * Note that you do not need to have selected the card through REQA or WUPA, + * this sequence works immediately when the card is in the reader vicinity. + * This means you can use this method even on "bricked" cards that your reader does + * not recognise anymore (see MFRC522::MIFARE_UnbrickUidSector). + * + * Of course with non-bricked devices, you're free to select them before calling this function. + */ +bool MFRC522::MIFARE_OpenUidBackdoor(bool logErrors) { + // Magic sequence: + // > 50 00 57 CD (HALT + CRC) + // > 40 (7 bits only) + // < A (4 bits only) + // > 43 + // < A (4 bits only) + // Then you can write to sector 0 without authenticating + + PICC_HaltA(); // 50 00 57 CD + + byte cmd = 0x40; + byte validBits = 7; /* Our command is only 7 bits. After receiving card response, + this will contain amount of valid response bits. */ + byte response[32]; // Card's response is written here + byte received; + MFRC522::StatusCode status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 40 + if(status != STATUS_OK) { + if(logErrors) { + Serial.println(F("Card did not respond to 0x40 after HALT command. Are you sure it is a UID changeable one?")); + Serial.print(F("Error name: ")); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + if (received != 1 || response[0] != 0x0A) { + if (logErrors) { + Serial.print(F("Got bad response on backdoor 0x40 command: ")); + Serial.print(response[0], HEX); + Serial.print(F(" (")); + Serial.print(validBits); + Serial.print(F(" valid bits)\r\n")); + } + return false; + } + + cmd = 0x43; + validBits = 8; + status = PCD_TransceiveData(&cmd, (byte)1, response, &received, &validBits, (byte)0, false); // 43 + if(status != STATUS_OK) { + if(logErrors) { + Serial.println(F("Error in communication at command 0x43, after successfully executing 0x40")); + Serial.print(F("Error name: ")); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + if (received != 1 || response[0] != 0x0A) { + if (logErrors) { + Serial.print(F("Got bad response on backdoor 0x43 command: ")); + Serial.print(response[0], HEX); + Serial.print(F(" (")); + Serial.print(validBits); + Serial.print(F(" valid bits)\r\n")); + } + return false; + } + + // You can now write to sector 0 without authenticating! + return true; +} // End MIFARE_OpenUidBackdoor() + +/** + * Reads entire block 0, including all manufacturer data, and overwrites + * that block with the new UID, a freshly calculated BCC, and the original + * manufacturer data. + * + * It assumes a default KEY A of 0xFFFFFFFFFFFF. + * Make sure to have selected the card before this function is called. + */ +bool MFRC522::MIFARE_SetUid(byte *newUid, byte uidSize, bool logErrors) { + + // UID + BCC byte can not be larger than 16 together + if (!newUid || !uidSize || uidSize > 15) { + if (logErrors) { + Serial.println(F("New UID buffer empty, size 0, or size > 15 given")); + } + return false; + } + + // Authenticate for reading + MIFARE_Key key = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; + MFRC522::StatusCode status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid); + if (status != STATUS_OK) { + + if (status == STATUS_TIMEOUT) { + // We get a read timeout if no card is selected yet, so let's select one + + // Wake the card up again if sleeping +// byte atqa_answer[2]; +// byte atqa_size = 2; +// PICC_WakeupA(atqa_answer, &atqa_size); + + if (!PICC_IsNewCardPresent() || !PICC_ReadCardSerial()) { + Serial.println(F("No card was previously selected, and none are available. Failed to set UID.")); + return false; + } + + status = PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, (byte)1, &key, &uid); + if (status != STATUS_OK) { + // We tried, time to give up + if (logErrors) { + Serial.println(F("Failed to authenticate to card for reading, could not set UID: ")); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + } + else { + if (logErrors) { + Serial.print(F("PCD_Authenticate() failed: ")); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + } + + // Read block 0 + byte block0_buffer[18]; + byte byteCount = sizeof(block0_buffer); + status = MIFARE_Read((byte)0, block0_buffer, &byteCount); + if (status != STATUS_OK) { + if (logErrors) { + Serial.print(F("MIFARE_Read() failed: ")); + Serial.println(GetStatusCodeName(status)); + Serial.println(F("Are you sure your KEY A for sector 0 is 0xFFFFFFFFFFFF?")); + } + return false; + } + + // Write new UID to the data we just read, and calculate BCC byte + byte bcc = 0; + for (uint8_t i = 0; i < uidSize; i++) { + block0_buffer[i] = newUid[i]; + bcc ^= newUid[i]; + } + + // Write BCC byte to buffer + block0_buffer[uidSize] = bcc; + + // Stop encrypted traffic so we can send raw bytes + PCD_StopCrypto1(); + + // Activate UID backdoor + if (!MIFARE_OpenUidBackdoor(logErrors)) { + if (logErrors) { + Serial.println(F("Activating the UID backdoor failed.")); + } + return false; + } + + // Write modified block 0 back to card + status = MIFARE_Write((byte)0, block0_buffer, (byte)16); + if (status != STATUS_OK) { + if (logErrors) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + + // Wake the card up again + byte atqa_answer[2]; + byte atqa_size = 2; + PICC_WakeupA(atqa_answer, &atqa_size); + + return true; +} + +/** + * Resets entire sector 0 to zeroes, so the card can be read again by readers. + */ +bool MFRC522::MIFARE_UnbrickUidSector(bool logErrors) { + MIFARE_OpenUidBackdoor(logErrors); + + byte block0_buffer[] = {0x01, 0x02, 0x03, 0x04, 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + // Write modified block 0 back to card + MFRC522::StatusCode status = MIFARE_Write((byte)0, block0_buffer, (byte)16); + if (status != STATUS_OK) { + if (logErrors) { + Serial.print(F("MIFARE_Write() failed: ")); + Serial.println(GetStatusCodeName(status)); + } + return false; + } + return true; +} + +///////////////////////////////////////////////////////////////////////////////////// +// Convenience functions - does not add extra functionality +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Returns true if a PICC responds to PICC_CMD_REQA. + * Only "new" cards in state IDLE are invited. Sleeping cards in state HALT are ignored. + * + * @return bool + */ +bool MFRC522::PICC_IsNewCardPresent() { + byte bufferATQA[2]; + byte bufferSize = sizeof(bufferATQA); + + // Reset baud rates + PCD_WriteRegister(TxModeReg, 0x00); + PCD_WriteRegister(RxModeReg, 0x00); + // Reset ModWidthReg + PCD_WriteRegister(ModWidthReg, 0x26); + + MFRC522::StatusCode result = PICC_RequestA(bufferATQA, &bufferSize); + return (result == STATUS_OK || result == STATUS_COLLISION); +} // End PICC_IsNewCardPresent() + +/** + * Simple wrapper around PICC_Select. + * Returns true if a UID could be read. + * Remember to call PICC_IsNewCardPresent(), PICC_RequestA() or PICC_WakeupA() first. + * The read UID is available in the class variable uid. + * + * @return bool + */ +bool MFRC522::PICC_ReadCardSerial() { + MFRC522::StatusCode result = PICC_Select(&uid); + return (result == STATUS_OK); +} // End diff --git a/lib/lib_div/rfid-1.4.7/src/MFRC522.h b/lib/lib_div/rfid-1.4.7/src/MFRC522.h new file mode 100644 index 000000000..5ebbd27dd --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/src/MFRC522.h @@ -0,0 +1,371 @@ +/** + * Library to use Arduino MFRC522 module. + * + * @authors Dr.Leong, Miguel Balboa, Søren Thing Andersen, Tom Clement, many more! See GitLog. + * + * For more information read the README. + * + * Please read this file for an overview and then MFRC522.cpp for comments on the specific functions. + */ +#ifndef MFRC522_h +#define MFRC522_h + +#include "require_cpp11.h" +#include "deprecated.h" +// Enable integer limits +#define __STDC_LIMIT_MACROS +#include +#include +#include + +#ifndef MFRC522_SPICLOCK +#define MFRC522_SPICLOCK SPI_CLOCK_DIV4 // MFRC522 accept upto 10MHz +#endif + +// Firmware data for self-test +// Reference values based on firmware version +// Hint: if needed, you can remove unused self-test data to save flash memory +// +// Version 0.0 (0x90) +// Philips Semiconductors; Preliminary Specification Revision 2.0 - 01 August 2005; 16.1 self-test +const byte MFRC522_firmware_referenceV0_0[] PROGMEM = { + 0x00, 0x87, 0x98, 0x0f, 0x49, 0xFF, 0x07, 0x19, + 0xBF, 0x22, 0x30, 0x49, 0x59, 0x63, 0xAD, 0xCA, + 0x7F, 0xE3, 0x4E, 0x03, 0x5C, 0x4E, 0x49, 0x50, + 0x47, 0x9A, 0x37, 0x61, 0xE7, 0xE2, 0xC6, 0x2E, + 0x75, 0x5A, 0xED, 0x04, 0x3D, 0x02, 0x4B, 0x78, + 0x32, 0xFF, 0x58, 0x3B, 0x7C, 0xE9, 0x00, 0x94, + 0xB4, 0x4A, 0x59, 0x5B, 0xFD, 0xC9, 0x29, 0xDF, + 0x35, 0x96, 0x98, 0x9E, 0x4F, 0x30, 0x32, 0x8D +}; +// Version 1.0 (0x91) +// NXP Semiconductors; Rev. 3.8 - 17 September 2014; 16.1.1 self-test +const byte MFRC522_firmware_referenceV1_0[] PROGMEM = { + 0x00, 0xC6, 0x37, 0xD5, 0x32, 0xB7, 0x57, 0x5C, + 0xC2, 0xD8, 0x7C, 0x4D, 0xD9, 0x70, 0xC7, 0x73, + 0x10, 0xE6, 0xD2, 0xAA, 0x5E, 0xA1, 0x3E, 0x5A, + 0x14, 0xAF, 0x30, 0x61, 0xC9, 0x70, 0xDB, 0x2E, + 0x64, 0x22, 0x72, 0xB5, 0xBD, 0x65, 0xF4, 0xEC, + 0x22, 0xBC, 0xD3, 0x72, 0x35, 0xCD, 0xAA, 0x41, + 0x1F, 0xA7, 0xF3, 0x53, 0x14, 0xDE, 0x7E, 0x02, + 0xD9, 0x0F, 0xB5, 0x5E, 0x25, 0x1D, 0x29, 0x79 +}; +// Version 2.0 (0x92) +// NXP Semiconductors; Rev. 3.8 - 17 September 2014; 16.1.1 self-test +const byte MFRC522_firmware_referenceV2_0[] PROGMEM = { + 0x00, 0xEB, 0x66, 0xBA, 0x57, 0xBF, 0x23, 0x95, + 0xD0, 0xE3, 0x0D, 0x3D, 0x27, 0x89, 0x5C, 0xDE, + 0x9D, 0x3B, 0xA7, 0x00, 0x21, 0x5B, 0x89, 0x82, + 0x51, 0x3A, 0xEB, 0x02, 0x0C, 0xA5, 0x00, 0x49, + 0x7C, 0x84, 0x4D, 0xB3, 0xCC, 0xD2, 0x1B, 0x81, + 0x5D, 0x48, 0x76, 0xD5, 0x71, 0x61, 0x21, 0xA9, + 0x86, 0x96, 0x83, 0x38, 0xCF, 0x9D, 0x5B, 0x6D, + 0xDC, 0x15, 0xBA, 0x3E, 0x7D, 0x95, 0x3B, 0x2F +}; +// Clone +// Fudan Semiconductor FM17522 (0x88) +const byte FM17522_firmware_reference[] PROGMEM = { + 0x00, 0xD6, 0x78, 0x8C, 0xE2, 0xAA, 0x0C, 0x18, + 0x2A, 0xB8, 0x7A, 0x7F, 0xD3, 0x6A, 0xCF, 0x0B, + 0xB1, 0x37, 0x63, 0x4B, 0x69, 0xAE, 0x91, 0xC7, + 0xC3, 0x97, 0xAE, 0x77, 0xF4, 0x37, 0xD7, 0x9B, + 0x7C, 0xF5, 0x3C, 0x11, 0x8F, 0x15, 0xC3, 0xD7, + 0xC1, 0x5B, 0x00, 0x2A, 0xD0, 0x75, 0xDE, 0x9E, + 0x51, 0x64, 0xAB, 0x3E, 0xE9, 0x15, 0xB5, 0xAB, + 0x56, 0x9A, 0x98, 0x82, 0x26, 0xEA, 0x2A, 0x62 +}; + +class MFRC522 { +public: + // Size of the MFRC522 FIFO + static constexpr byte FIFO_SIZE = 64; // The FIFO is 64 bytes. + // Default value for unused pin + static constexpr uint8_t UNUSED_PIN = UINT8_MAX; + + // MFRC522 registers. Described in chapter 9 of the datasheet. + // When using SPI all addresses are shifted one bit left in the "SPI address byte" (section 8.1.2.3) + enum PCD_Register : byte { + // Page 0: Command and status + // 0x00 // reserved for future use + CommandReg = 0x01 << 1, // starts and stops command execution + ComIEnReg = 0x02 << 1, // enable and disable interrupt request control bits + DivIEnReg = 0x03 << 1, // enable and disable interrupt request control bits + ComIrqReg = 0x04 << 1, // interrupt request bits + DivIrqReg = 0x05 << 1, // interrupt request bits + ErrorReg = 0x06 << 1, // error bits showing the error status of the last command executed + Status1Reg = 0x07 << 1, // communication status bits + Status2Reg = 0x08 << 1, // receiver and transmitter status bits + FIFODataReg = 0x09 << 1, // input and output of 64 byte FIFO buffer + FIFOLevelReg = 0x0A << 1, // number of bytes stored in the FIFO buffer + WaterLevelReg = 0x0B << 1, // level for FIFO underflow and overflow warning + ControlReg = 0x0C << 1, // miscellaneous control registers + BitFramingReg = 0x0D << 1, // adjustments for bit-oriented frames + CollReg = 0x0E << 1, // bit position of the first bit-collision detected on the RF interface + // 0x0F // reserved for future use + + // Page 1: Command + // 0x10 // reserved for future use + ModeReg = 0x11 << 1, // defines general modes for transmitting and receiving + TxModeReg = 0x12 << 1, // defines transmission data rate and framing + RxModeReg = 0x13 << 1, // defines reception data rate and framing + TxControlReg = 0x14 << 1, // controls the logical behavior of the antenna driver pins TX1 and TX2 + TxASKReg = 0x15 << 1, // controls the setting of the transmission modulation + TxSelReg = 0x16 << 1, // selects the internal sources for the antenna driver + RxSelReg = 0x17 << 1, // selects internal receiver settings + RxThresholdReg = 0x18 << 1, // selects thresholds for the bit decoder + DemodReg = 0x19 << 1, // defines demodulator settings + // 0x1A // reserved for future use + // 0x1B // reserved for future use + MfTxReg = 0x1C << 1, // controls some MIFARE communication transmit parameters + MfRxReg = 0x1D << 1, // controls some MIFARE communication receive parameters + // 0x1E // reserved for future use + SerialSpeedReg = 0x1F << 1, // selects the speed of the serial UART interface + + // Page 2: Configuration + // 0x20 // reserved for future use + CRCResultRegH = 0x21 << 1, // shows the MSB and LSB values of the CRC calculation + CRCResultRegL = 0x22 << 1, + // 0x23 // reserved for future use + ModWidthReg = 0x24 << 1, // controls the ModWidth setting? + // 0x25 // reserved for future use + RFCfgReg = 0x26 << 1, // configures the receiver gain + GsNReg = 0x27 << 1, // selects the conductance of the antenna driver pins TX1 and TX2 for modulation + CWGsPReg = 0x28 << 1, // defines the conductance of the p-driver output during periods of no modulation + ModGsPReg = 0x29 << 1, // defines the conductance of the p-driver output during periods of modulation + TModeReg = 0x2A << 1, // defines settings for the internal timer + TPrescalerReg = 0x2B << 1, // the lower 8 bits of the TPrescaler value. The 4 high bits are in TModeReg. + TReloadRegH = 0x2C << 1, // defines the 16-bit timer reload value + TReloadRegL = 0x2D << 1, + TCounterValueRegH = 0x2E << 1, // shows the 16-bit timer value + TCounterValueRegL = 0x2F << 1, + + // Page 3: Test Registers + // 0x30 // reserved for future use + TestSel1Reg = 0x31 << 1, // general test signal configuration + TestSel2Reg = 0x32 << 1, // general test signal configuration + TestPinEnReg = 0x33 << 1, // enables pin output driver on pins D1 to D7 + TestPinValueReg = 0x34 << 1, // defines the values for D1 to D7 when it is used as an I/O bus + TestBusReg = 0x35 << 1, // shows the status of the internal test bus + AutoTestReg = 0x36 << 1, // controls the digital self-test + VersionReg = 0x37 << 1, // shows the software version + AnalogTestReg = 0x38 << 1, // controls the pins AUX1 and AUX2 + TestDAC1Reg = 0x39 << 1, // defines the test value for TestDAC1 + TestDAC2Reg = 0x3A << 1, // defines the test value for TestDAC2 + TestADCReg = 0x3B << 1 // shows the value of ADC I and Q channels + // 0x3C // reserved for production tests + // 0x3D // reserved for production tests + // 0x3E // reserved for production tests + // 0x3F // reserved for production tests + }; + + // MFRC522 commands. Described in chapter 10 of the datasheet. + enum PCD_Command : byte { + PCD_Idle = 0x00, // no action, cancels current command execution + PCD_Mem = 0x01, // stores 25 bytes into the internal buffer + PCD_GenerateRandomID = 0x02, // generates a 10-byte random ID number + PCD_CalcCRC = 0x03, // activates the CRC coprocessor or performs a self-test + PCD_Transmit = 0x04, // transmits data from the FIFO buffer + PCD_NoCmdChange = 0x07, // no command change, can be used to modify the CommandReg register bits without affecting the command, for example, the PowerDown bit + PCD_Receive = 0x08, // activates the receiver circuits + PCD_Transceive = 0x0C, // transmits data from FIFO buffer to antenna and automatically activates the receiver after transmission + PCD_MFAuthent = 0x0E, // performs the MIFARE standard authentication as a reader + PCD_SoftReset = 0x0F // resets the MFRC522 + }; + + // MFRC522 RxGain[2:0] masks, defines the receiver's signal voltage gain factor (on the PCD). + // Described in 9.3.3.6 / table 98 of the datasheet at http://www.nxp.com/documents/data_sheet/MFRC522.pdf + enum PCD_RxGain : byte { + RxGain_18dB = 0x00 << 4, // 000b - 18 dB, minimum + RxGain_23dB = 0x01 << 4, // 001b - 23 dB + RxGain_18dB_2 = 0x02 << 4, // 010b - 18 dB, it seems 010b is a duplicate for 000b + RxGain_23dB_2 = 0x03 << 4, // 011b - 23 dB, it seems 011b is a duplicate for 001b + RxGain_33dB = 0x04 << 4, // 100b - 33 dB, average, and typical default + RxGain_38dB = 0x05 << 4, // 101b - 38 dB + RxGain_43dB = 0x06 << 4, // 110b - 43 dB + RxGain_48dB = 0x07 << 4, // 111b - 48 dB, maximum + RxGain_min = 0x00 << 4, // 000b - 18 dB, minimum, convenience for RxGain_18dB + RxGain_avg = 0x04 << 4, // 100b - 33 dB, average, convenience for RxGain_33dB + RxGain_max = 0x07 << 4 // 111b - 48 dB, maximum, convenience for RxGain_48dB + }; + + // Commands sent to the PICC. + enum PICC_Command : byte { + // The commands used by the PCD to manage communication with several PICCs (ISO 14443-3, Type A, section 6.4) + PICC_CMD_REQA = 0x26, // REQuest command, Type A. Invites PICCs in state IDLE to go to READY and prepare for anticollision or selection. 7 bit frame. + PICC_CMD_WUPA = 0x52, // Wake-UP command, Type A. Invites PICCs in state IDLE and HALT to go to READY(*) and prepare for anticollision or selection. 7 bit frame. + PICC_CMD_CT = 0x88, // Cascade Tag. Not really a command, but used during anti collision. + PICC_CMD_SEL_CL1 = 0x93, // Anti collision/Select, Cascade Level 1 + PICC_CMD_SEL_CL2 = 0x95, // Anti collision/Select, Cascade Level 2 + PICC_CMD_SEL_CL3 = 0x97, // Anti collision/Select, Cascade Level 3 + PICC_CMD_HLTA = 0x50, // HaLT command, Type A. Instructs an ACTIVE PICC to go to state HALT. + PICC_CMD_RATS = 0xE0, // Request command for Answer To Reset. + // The commands used for MIFARE Classic (from http://www.mouser.com/ds/2/302/MF1S503x-89574.pdf, Section 9) + // Use PCD_MFAuthent to authenticate access to a sector, then use these commands to read/write/modify the blocks on the sector. + // The read/write commands can also be used for MIFARE Ultralight. + PICC_CMD_MF_AUTH_KEY_A = 0x60, // Perform authentication with Key A + PICC_CMD_MF_AUTH_KEY_B = 0x61, // Perform authentication with Key B + PICC_CMD_MF_READ = 0x30, // Reads one 16 byte block from the authenticated sector of the PICC. Also used for MIFARE Ultralight. + PICC_CMD_MF_WRITE = 0xA0, // Writes one 16 byte block to the authenticated sector of the PICC. Called "COMPATIBILITY WRITE" for MIFARE Ultralight. + PICC_CMD_MF_DECREMENT = 0xC0, // Decrements the contents of a block and stores the result in the internal data register. + PICC_CMD_MF_INCREMENT = 0xC1, // Increments the contents of a block and stores the result in the internal data register. + PICC_CMD_MF_RESTORE = 0xC2, // Reads the contents of a block into the internal data register. + PICC_CMD_MF_TRANSFER = 0xB0, // Writes the contents of the internal data register to a block. + // The commands used for MIFARE Ultralight (from http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf, Section 8.6) + // The PICC_CMD_MF_READ and PICC_CMD_MF_WRITE can also be used for MIFARE Ultralight. + PICC_CMD_UL_WRITE = 0xA2 // Writes one 4 byte page to the PICC. + }; + + // MIFARE constants that does not fit anywhere else + enum MIFARE_Misc { + MF_ACK = 0xA, // The MIFARE Classic uses a 4 bit ACK/NAK. Any other value than 0xA is NAK. + MF_KEY_SIZE = 6 // A Mifare Crypto1 key is 6 bytes. + }; + + // PICC types we can detect. Remember to update PICC_GetTypeName() if you add more. + // last value set to 0xff, then compiler uses less ram, it seems some optimisations are triggered + enum PICC_Type : byte { + PICC_TYPE_UNKNOWN , + PICC_TYPE_ISO_14443_4 , // PICC compliant with ISO/IEC 14443-4 + PICC_TYPE_ISO_18092 , // PICC compliant with ISO/IEC 18092 (NFC) + PICC_TYPE_MIFARE_MINI , // MIFARE Classic protocol, 320 bytes + PICC_TYPE_MIFARE_1K , // MIFARE Classic protocol, 1KB + PICC_TYPE_MIFARE_4K , // MIFARE Classic protocol, 4KB + PICC_TYPE_MIFARE_UL , // MIFARE Ultralight or Ultralight C + PICC_TYPE_MIFARE_PLUS , // MIFARE Plus + PICC_TYPE_MIFARE_DESFIRE, // MIFARE DESFire + PICC_TYPE_TNP3XXX , // Only mentioned in NXP AN 10833 MIFARE Type Identification Procedure + PICC_TYPE_NOT_COMPLETE = 0xff // SAK indicates UID is not complete. + }; + + // Return codes from the functions in this class. Remember to update GetStatusCodeName() if you add more. + // last value set to 0xff, then compiler uses less ram, it seems some optimisations are triggered + enum StatusCode : byte { + STATUS_OK , // Success + STATUS_ERROR , // Error in communication + STATUS_COLLISION , // Collission detected + STATUS_TIMEOUT , // Timeout in communication. + STATUS_NO_ROOM , // A buffer is not big enough. + STATUS_INTERNAL_ERROR , // Internal error in the code. Should not happen ;-) + STATUS_INVALID , // Invalid argument. + STATUS_CRC_WRONG , // The CRC_A does not match + STATUS_MIFARE_NACK = 0xff // A MIFARE PICC responded with NAK. + }; + + // A struct used for passing the UID of a PICC. + typedef struct { + byte size; // Number of bytes in the UID. 4, 7 or 10. + byte uidByte[10]; + byte sak; // The SAK (Select acknowledge) byte returned from the PICC after successful selection. + } Uid; + + // A struct used for passing a MIFARE Crypto1 key + typedef struct { + byte keyByte[MF_KEY_SIZE]; + } MIFARE_Key; + + // Member variables + Uid uid; // Used by PICC_ReadCardSerial(). + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for setting up the Arduino + ///////////////////////////////////////////////////////////////////////////////////// + MFRC522(); + MFRC522(byte resetPowerDownPin); + MFRC522(byte chipSelectPin, byte resetPowerDownPin); + + ///////////////////////////////////////////////////////////////////////////////////// + // Basic interface functions for communicating with the MFRC522 + ///////////////////////////////////////////////////////////////////////////////////// + void PCD_WriteRegister(PCD_Register reg, byte value); + void PCD_WriteRegister(PCD_Register reg, byte count, byte *values); + byte PCD_ReadRegister(PCD_Register reg); + void PCD_ReadRegister(PCD_Register reg, byte count, byte *values, byte rxAlign = 0); + void PCD_SetRegisterBitMask(PCD_Register reg, byte mask); + void PCD_ClearRegisterBitMask(PCD_Register reg, byte mask); + StatusCode PCD_CalculateCRC(byte *data, byte length, byte *result); + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for manipulating the MFRC522 + ///////////////////////////////////////////////////////////////////////////////////// + void PCD_Init(); + void PCD_Init(byte resetPowerDownPin); + void PCD_Init(byte chipSelectPin, byte resetPowerDownPin); + void PCD_Reset(); + void PCD_AntennaOn(); + void PCD_AntennaOff(); + byte PCD_GetAntennaGain(); + void PCD_SetAntennaGain(byte mask); + bool PCD_PerformSelfTest(); + + ///////////////////////////////////////////////////////////////////////////////////// + // Power control functions + ///////////////////////////////////////////////////////////////////////////////////// + void PCD_SoftPowerDown(); + void PCD_SoftPowerUp(); + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for communicating with PICCs + ///////////////////////////////////////////////////////////////////////////////////// + StatusCode PCD_TransceiveData(byte *sendData, byte sendLen, byte *backData, byte *backLen, byte *validBits = nullptr, byte rxAlign = 0, bool checkCRC = false); + StatusCode PCD_CommunicateWithPICC(byte command, byte waitIRq, byte *sendData, byte sendLen, byte *backData = nullptr, byte *backLen = nullptr, byte *validBits = nullptr, byte rxAlign = 0, bool checkCRC = false); + StatusCode PICC_RequestA(byte *bufferATQA, byte *bufferSize); + StatusCode PICC_WakeupA(byte *bufferATQA, byte *bufferSize); + StatusCode PICC_REQA_or_WUPA(byte command, byte *bufferATQA, byte *bufferSize); + virtual StatusCode PICC_Select(Uid *uid, byte validBits = 0); + StatusCode PICC_HaltA(); + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for communicating with MIFARE PICCs + ///////////////////////////////////////////////////////////////////////////////////// + StatusCode PCD_Authenticate(byte command, byte blockAddr, MIFARE_Key *key, Uid *uid); + void PCD_StopCrypto1(); + StatusCode MIFARE_Read(byte blockAddr, byte *buffer, byte *bufferSize); + StatusCode MIFARE_Write(byte blockAddr, byte *buffer, byte bufferSize); + StatusCode MIFARE_Ultralight_Write(byte page, byte *buffer, byte bufferSize); + StatusCode MIFARE_Decrement(byte blockAddr, int32_t delta); + StatusCode MIFARE_Increment(byte blockAddr, int32_t delta); + StatusCode MIFARE_Restore(byte blockAddr); + StatusCode MIFARE_Transfer(byte blockAddr); + StatusCode MIFARE_GetValue(byte blockAddr, int32_t *value); + StatusCode MIFARE_SetValue(byte blockAddr, int32_t value); + StatusCode PCD_NTAG216_AUTH(byte *passWord, byte pACK[]); + + ///////////////////////////////////////////////////////////////////////////////////// + // Support functions + ///////////////////////////////////////////////////////////////////////////////////// + StatusCode PCD_MIFARE_Transceive(byte *sendData, byte sendLen, bool acceptTimeout = false); + // old function used too much memory, now name moved to flash; if you need char, copy from flash to memory + //const char *GetStatusCodeName(byte code); + static const __FlashStringHelper *GetStatusCodeName(StatusCode code); + static PICC_Type PICC_GetType(byte sak); + // old function used too much memory, now name moved to flash; if you need char, copy from flash to memory + //const char *PICC_GetTypeName(byte type); + static const __FlashStringHelper *PICC_GetTypeName(PICC_Type type); + + // Support functions for debuging + void PCD_DumpVersionToSerial(); + void PICC_DumpToSerial(Uid *uid); + void PICC_DumpDetailsToSerial(Uid *uid); + void PICC_DumpMifareClassicToSerial(Uid *uid, PICC_Type piccType, MIFARE_Key *key); + void PICC_DumpMifareClassicSectorToSerial(Uid *uid, MIFARE_Key *key, byte sector); + void PICC_DumpMifareUltralightToSerial(); + + // Advanced functions for MIFARE + void MIFARE_SetAccessBits(byte *accessBitBuffer, byte g0, byte g1, byte g2, byte g3); + bool MIFARE_OpenUidBackdoor(bool logErrors); + bool MIFARE_SetUid(byte *newUid, byte uidSize, bool logErrors); + bool MIFARE_UnbrickUidSector(bool logErrors); + + ///////////////////////////////////////////////////////////////////////////////////// + // Convenience functions - does not add extra functionality + ///////////////////////////////////////////////////////////////////////////////////// + virtual bool PICC_IsNewCardPresent(); + virtual bool PICC_ReadCardSerial(); + +protected: + byte _chipSelectPin; // Arduino pin connected to MFRC522's SPI slave select input (Pin 24, NSS, active low) + byte _resetPowerDownPin; // Arduino pin connected to MFRC522's reset and power down input (Pin 6, NRSTPD, active low) + StatusCode MIFARE_TwoStepHelper(byte command, byte blockAddr, int32_t data); +}; + +#endif diff --git a/lib/lib_div/rfid-1.4.7/src/MFRC522Extended.cpp b/lib/lib_div/rfid-1.4.7/src/MFRC522Extended.cpp new file mode 100644 index 000000000..da603ab77 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/src/MFRC522Extended.cpp @@ -0,0 +1,1160 @@ +/* + * Library extends MFRC522.h to support RATS for ISO-14443-4 PICC. + * RATS - Request for Answer To Select. + * NOTE: Please also check the comments in MFRC522Extended.h + * @author JPG-Consulting +*/ + +#include "MFRC522Extended.h" + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for communicating with PICCs +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Transmits SELECT/ANTICOLLISION commands to select a single PICC. + * Before calling this function the PICCs must be placed in the READY(*) state by calling PICC_RequestA() or PICC_WakeupA(). + * On success: + * - The chosen PICC is in state ACTIVE(*) and all other PICCs have returned to state IDLE/HALT. (Figure 7 of the ISO/IEC 14443-3 draft.) + * - The UID size and value of the chosen PICC is returned in *uid along with the SAK. + * + * A PICC UID consists of 4, 7 or 10 bytes. + * Only 4 bytes can be specified in a SELECT command, so for the longer UIDs two or three iterations are used: + * UID size Number of UID bytes Cascade levels Example of PICC + * ======== =================== ============== =============== + * single 4 1 MIFARE Classic + * double 7 2 MIFARE Ultralight + * triple 10 3 Not currently in use? + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522Extended::PICC_Select( Uid *uid, ///< Pointer to Uid struct. Normally output, but can also be used to supply a known UID. + byte validBits ///< The number of known UID bits supplied in *uid. Normally 0. If set you must also supply uid->size. + ) { + bool uidComplete; + bool selectDone; + bool useCascadeTag; + byte cascadeLevel = 1; + MFRC522::StatusCode result; + byte count; + byte index; + byte uidIndex; // The first index in uid->uidByte[] that is used in the current Cascade Level. + int8_t currentLevelKnownBits; // The number of known UID bits in the current Cascade Level. + byte buffer[9]; // The SELECT/ANTICOLLISION commands uses a 7 byte standard frame + 2 bytes CRC_A + byte bufferUsed; // The number of bytes used in the buffer, ie the number of bytes to transfer to the FIFO. + byte rxAlign; // Used in BitFramingReg. Defines the bit position for the first bit received. + byte txLastBits; // Used in BitFramingReg. The number of valid bits in the last transmitted byte. + byte *responseBuffer; + byte responseLength; + + // Description of buffer structure: + // Byte 0: SEL Indicates the Cascade Level: PICC_CMD_SEL_CL1, PICC_CMD_SEL_CL2 or PICC_CMD_SEL_CL3 + // Byte 1: NVB Number of Valid Bits (in complete command, not just the UID): High nibble: complete bytes, Low nibble: Extra bits. + // Byte 2: UID-data or CT See explanation below. CT means Cascade Tag. + // Byte 3: UID-data + // Byte 4: UID-data + // Byte 5: UID-data + // Byte 6: BCC Block Check Character - XOR of bytes 2-5 + // Byte 7: CRC_A + // Byte 8: CRC_A + // The BCC and CRC_A are only transmitted if we know all the UID bits of the current Cascade Level. + // + // Description of bytes 2-5: (Section 6.5.4 of the ISO/IEC 14443-3 draft: UID contents and cascade levels) + // UID size Cascade level Byte2 Byte3 Byte4 Byte5 + // ======== ============= ===== ===== ===== ===== + // 4 bytes 1 uid0 uid1 uid2 uid3 + // 7 bytes 1 CT uid0 uid1 uid2 + // 2 uid3 uid4 uid5 uid6 + // 10 bytes 1 CT uid0 uid1 uid2 + // 2 CT uid3 uid4 uid5 + // 3 uid6 uid7 uid8 uid9 + + // Sanity checks + if (validBits > 80) { + return STATUS_INVALID; + } + + // Prepare MFRC522 + PCD_ClearRegisterBitMask(CollReg, 0x80); // ValuesAfterColl=1 => Bits received after collision are cleared. + + // Repeat Cascade Level loop until we have a complete UID. + uidComplete = false; + while (!uidComplete) { + // Set the Cascade Level in the SEL byte, find out if we need to use the Cascade Tag in byte 2. + switch (cascadeLevel) { + case 1: + buffer[0] = PICC_CMD_SEL_CL1; + uidIndex = 0; + useCascadeTag = validBits && uid->size > 4; // When we know that the UID has more than 4 bytes + break; + + case 2: + buffer[0] = PICC_CMD_SEL_CL2; + uidIndex = 3; + useCascadeTag = validBits && uid->size > 7; // When we know that the UID has more than 7 bytes + break; + + case 3: + buffer[0] = PICC_CMD_SEL_CL3; + uidIndex = 6; + useCascadeTag = false; // Never used in CL3. + break; + + default: + return STATUS_INTERNAL_ERROR; + break; + } + + // How many UID bits are known in this Cascade Level? + currentLevelKnownBits = validBits - (8 * uidIndex); + if (currentLevelKnownBits < 0) { + currentLevelKnownBits = 0; + } + // Copy the known bits from uid->uidByte[] to buffer[] + index = 2; // destination index in buffer[] + if (useCascadeTag) { + buffer[index++] = PICC_CMD_CT; + } + byte bytesToCopy = currentLevelKnownBits / 8 + (currentLevelKnownBits % 8 ? 1 : 0); // The number of bytes needed to represent the known bits for this level. + if (bytesToCopy) { + byte maxBytes = useCascadeTag ? 3 : 4; // Max 4 bytes in each Cascade Level. Only 3 left if we use the Cascade Tag + if (bytesToCopy > maxBytes) { + bytesToCopy = maxBytes; + } + for (count = 0; count < bytesToCopy; count++) { + buffer[index++] = uid->uidByte[uidIndex + count]; + } + } + // Now that the data has been copied we need to include the 8 bits in CT in currentLevelKnownBits + if (useCascadeTag) { + currentLevelKnownBits += 8; + } + + // Repeat anti collision loop until we can transmit all UID bits + BCC and receive a SAK - max 32 iterations. + selectDone = false; + while (!selectDone) { + // Find out how many bits and bytes to send and receive. + if (currentLevelKnownBits >= 32) { // All UID bits in this Cascade Level are known. This is a SELECT. + //Serial.print(F("SELECT: currentLevelKnownBits=")); Serial.println(currentLevelKnownBits, DEC); + buffer[1] = 0x70; // NVB - Number of Valid Bits: Seven whole bytes + // Calculate BCC - Block Check Character + buffer[6] = buffer[2] ^ buffer[3] ^ buffer[4] ^ buffer[5]; + // Calculate CRC_A + result = PCD_CalculateCRC(buffer, 7, &buffer[7]); + if (result != STATUS_OK) { + return result; + } + txLastBits = 0; // 0 => All 8 bits are valid. + bufferUsed = 9; + // Store response in the last 3 bytes of buffer (BCC and CRC_A - not needed after tx) + responseBuffer = &buffer[6]; + responseLength = 3; + } + else { // This is an ANTICOLLISION. + //Serial.print(F("ANTICOLLISION: currentLevelKnownBits=")); Serial.println(currentLevelKnownBits, DEC); + txLastBits = currentLevelKnownBits % 8; + count = currentLevelKnownBits / 8; // Number of whole bytes in the UID part. + index = 2 + count; // Number of whole bytes: SEL + NVB + UIDs + buffer[1] = (index << 4) + txLastBits; // NVB - Number of Valid Bits + bufferUsed = index + (txLastBits ? 1 : 0); + // Store response in the unused part of buffer + responseBuffer = &buffer[index]; + responseLength = sizeof(buffer) - index; + } + + // Set bit adjustments + rxAlign = txLastBits; // Having a separate variable is overkill. But it makes the next line easier to read. + PCD_WriteRegister(BitFramingReg, (rxAlign << 4) + txLastBits); // RxAlign = BitFramingReg[6..4]. TxLastBits = BitFramingReg[2..0] + + // Transmit the buffer and receive the response. + result = PCD_TransceiveData(buffer, bufferUsed, responseBuffer, &responseLength, &txLastBits, rxAlign); + if (result == STATUS_COLLISION) { // More than one PICC in the field => collision. + byte valueOfCollReg = PCD_ReadRegister(CollReg); // CollReg[7..0] bits are: ValuesAfterColl reserved CollPosNotValid CollPos[4:0] + if (valueOfCollReg & 0x20) { // CollPosNotValid + return STATUS_COLLISION; // Without a valid collision position we cannot continue + } + byte collisionPos = valueOfCollReg & 0x1F; // Values 0-31, 0 means bit 32. + if (collisionPos == 0) { + collisionPos = 32; + } + if (collisionPos <= currentLevelKnownBits) { // No progress - should not happen + return STATUS_INTERNAL_ERROR; + } + // Choose the PICC with the bit set. + currentLevelKnownBits = collisionPos; + count = (currentLevelKnownBits - 1) % 8; // The bit to modify + index = 1 + (currentLevelKnownBits / 8) + (count ? 1 : 0); // First byte is index 0. + buffer[index] |= (1 << count); + } + else if (result != STATUS_OK) { + return result; + } + else { // STATUS_OK + if (currentLevelKnownBits >= 32) { // This was a SELECT. + selectDone = true; // No more anticollision + // We continue below outside the while. + } + else { // This was an ANTICOLLISION. + // We now have all 32 bits of the UID in this Cascade Level + currentLevelKnownBits = 32; + // Run loop again to do the SELECT. + } + } + } // End of while (!selectDone) + + // We do not check the CBB - it was constructed by us above. + + // Copy the found UID bytes from buffer[] to uid->uidByte[] + index = (buffer[2] == PICC_CMD_CT) ? 3 : 2; // source index in buffer[] + bytesToCopy = (buffer[2] == PICC_CMD_CT) ? 3 : 4; + for (count = 0; count < bytesToCopy; count++) { + uid->uidByte[uidIndex + count] = buffer[index++]; + } + + // Check response SAK (Select Acknowledge) + if (responseLength != 3 || txLastBits != 0) { // SAK must be exactly 24 bits (1 byte + CRC_A). + return STATUS_ERROR; + } + // Verify CRC_A - do our own calculation and store the control in buffer[2..3] - those bytes are not needed anymore. + result = PCD_CalculateCRC(responseBuffer, 1, &buffer[2]); + if (result != STATUS_OK) { + return result; + } + if ((buffer[2] != responseBuffer[1]) || (buffer[3] != responseBuffer[2])) { + return STATUS_CRC_WRONG; + } + if (responseBuffer[0] & 0x04) { // Cascade bit set - UID not complete yes + cascadeLevel++; + } + else { + uidComplete = true; + uid->sak = responseBuffer[0]; + } + } // End of while (!uidComplete) + + // Set correct uid->size + uid->size = 3 * cascadeLevel + 1; + + // IF SAK bit 6 = 1 then it is ISO/IEC 14443-4 (T=CL) + // A Request ATS command should be sent + // We also check SAK bit 3 is cero, as it stands for UID complete (1 would tell us it is incomplete) + if ((uid->sak & 0x24) == 0x20) { + Ats ats; + result = PICC_RequestATS(&ats); + if (result == STATUS_OK) { + // Check the ATS + if (ats.size > 0) + { + // TA1 has been transmitted? + // PPS must be supported... + if (ats.ta1.transmitted) + { + // TA1 + // 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | Description + // ---+---+---+---+---+---+---+---+------------------------------------------ + // 0 | - | - | - | 0 | - | - | - | Different D for each direction supported + // 1 | - | - | - | 0 | - | - | - | Only same D for both direction supported + // - | x | x | x | 0 | - | - | - | DS (Send D) + // - | - | - | - | 0 | x | x | x | DR (Receive D) + // + // D to bitrate table + // 3 | 2 | 1 | Value + // ---+---+---+----------------------------- + // 1 | - | - | 848 kBaud is supported + // - | 1 | - | 424 kBaud is supported + // - | - | 1 | 212 kBaud is supported + // 0 | 0 | 0 | Only 106 kBaud is supported + // + // Note: 106 kBaud is always supported + // + // I have almost constant timeouts when changing speeds :( + // default never used, so only delarate + //TagBitRates ds = BITRATE_106KBITS; + //TagBitRates dr = BITRATE_106KBITS; + TagBitRates ds; + TagBitRates dr; + + //// TODO Not working at 848 or 424 + //if (ats.ta1.ds & 0x04) + //{ + // ds = BITRATE_848KBITS; + //} + //else if (ats.ta1.ds & 0x02) + //{ + // ds = BITRATE_424KBITS; + //} + //else if (ats.ta1.ds & 0x01) + //{ + // ds = BITRATE_212KBITS; + //} + //else + //{ + // ds = BITRATE_106KBITS; + //} + + if (ats.ta1.ds & 0x01) + { + ds = BITRATE_212KBITS; + } + else + { + ds = BITRATE_106KBITS; + } + + //// Not working at 848 or 424 + //if (ats.ta1.dr & 0x04) + //{ + // dr = BITRATE_848KBITS; + //} + //else if (ats.ta1.dr & 0x02) + //{ + // dr = BITRATE_424KBITS; + //} + //else if (ats.ta1.dr & 0x01) + //{ + // dr = BITRATE_212KBITS; + //} + //else + //{ + // dr = BITRATE_106KBITS; + //} + + if (ats.ta1.dr & 0x01) + { + dr = BITRATE_212KBITS; + } + else + { + dr = BITRATE_106KBITS; + } + + PICC_PPS(ds, dr); + } + } + } + } + + return STATUS_OK; +} // End PICC_Select() + +/** + * Transmits a Request command for Answer To Select (ATS). + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522Extended::PICC_RequestATS(Ats *ats) +{ + // TODO unused variable + //byte count; + MFRC522::StatusCode result; + + byte bufferATS[FIFO_SIZE]; + byte bufferSize = FIFO_SIZE; + + memset(bufferATS, 0, FIFO_SIZE); + + // Build command buffer + bufferATS[0] = PICC_CMD_RATS; + + // The CID defines the logical number of the addressed card and has a range of 0 + // through 14; 15 is reserved for future use (RFU). + // + // FSDI codes the maximum frame size (FSD) that the terminal can receive. + // + // FSDI | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9-F + // ------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----------- + // FSD (bytes) | 16 | 24 | 32 | 40 | 48 | 64 | 96 | 128 | 256 | RFU > 256 + // + bufferATS[1] = 0x50; // FSD=64, CID=0 + + // Calculate CRC_A + result = PCD_CalculateCRC(bufferATS, 2, &bufferATS[2]); + if (result != STATUS_OK) { + return result; + } + + // Transmit the buffer and receive the response, validate CRC_A. + result = PCD_TransceiveData(bufferATS, 4, bufferATS, &bufferSize, NULL, 0, true); + if (result != STATUS_OK) { + PICC_HaltA(); + } + + // Set the ats structure data + ats->size = bufferATS[0]; + + // T0 byte: + // + // b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | Meaning + //----+----+----+----+----+----+----+----+--------------------------- + // 0 | ...| ...| ...| ...|... | ...| ...| Set to 0 (RFU) + // 0 | 1 | x | x | ...|... | ...| ...| TC1 transmitted + // 0 | x | 1 | x | ...|... | ...| ...| TB1 transmitted + // 0 | x | x | 1 | ...|... | ...| ...| TA1 transmitted + // 0 | ...| ...| ...| x | x | x | x | Maximum frame size (FSCI) + // + // FSCI | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9-F + // ------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----------- + // FSC (bytes) | 16 | 24 | 32 | 40 | 48 | 64 | 96 | 128 | 256 | RFU > 256 + // + // Default FSCI is 2 (32 bytes) + if (ats->size > 0x01) + { + // TC1, TB1 and TA1 where NOT transmitted + ats->ta1.transmitted = (bool)(bufferATS[1] & 0x40); + ats->tb1.transmitted = (bool)(bufferATS[1] & 0x20); + ats->tc1.transmitted = (bool)(bufferATS[1] & 0x10); + + // Decode FSCI + switch (bufferATS[1] & 0x0F) + { + case 0x00: + ats->fsc = 16; + break; + case 0x01: + ats->fsc = 24; + break; + case 0x02: + ats->fsc = 32; + break; + case 0x03: + ats->fsc = 40; + break; + case 0x04: + ats->fsc = 48; + break; + case 0x05: + ats->fsc = 64; + break; + case 0x06: + ats->fsc = 96; + break; + case 0x07: + ats->fsc = 128; + break; + case 0x08: + // This value cannot be hold by a byte + // The reason I ignore it is that MFRC255 FIFO is 64 bytes so this is not a possible value (or atleast it shouldn't) + //ats->fsc = 256; + break; + // TODO: What to do with RFU (Reserved for future use)? + default: + break; + } + + // TA1 + if (ats->ta1.transmitted) + { + ats->ta1.sameD = (bool)(bufferATS[2] & 0x80); + ats->ta1.ds = (TagBitRates)((bufferATS[2] & 0x70) >> 4); + ats->ta1.dr = (TagBitRates)(bufferATS[2] & 0x07); + } + else + { + // Default TA1 + ats->ta1.ds = BITRATE_106KBITS; + ats->ta1.dr = BITRATE_106KBITS; + } + + // TB1 + if (ats->tb1.transmitted) + { + uint8_t tb1Index = 2; + + if (ats->ta1.transmitted) + tb1Index++; + + ats->tb1.fwi = (bufferATS[tb1Index] & 0xF0) >> 4; + ats->tb1.sfgi = bufferATS[tb1Index] & 0x0F; + } + else + { + // Defaults for TB1 + ats->tb1.fwi = 0; // TODO: Don't know the default for this! + ats->tb1.sfgi = 0; // The default value of SFGI is 0 (meaning that the card does not need any particular SFGT) + } + + // TC1 + if (ats->tc1.transmitted) + { + uint8_t tc1Index = 2; + + if (ats->ta1.transmitted) + tc1Index++; + if (ats->tb1.transmitted) + tc1Index++; + + ats->tc1.supportsCID = (bool)(bufferATS[tc1Index] & 0x02); + ats->tc1.supportsNAD = (bool)(bufferATS[tc1Index] & 0x01); + } + else + { + // Defaults for TC1 + ats->tc1.supportsCID = true; + ats->tc1.supportsNAD = false; + } + } + else + { + // TC1, TB1 and TA1 where NOT transmitted + ats->ta1.transmitted = false; + ats->tb1.transmitted = false; + ats->tc1.transmitted = false; + + // Default FSCI + ats->fsc = 32; // Defaults to FSCI 2 (32 bytes) + + // Default TA1 + ats->ta1.sameD = false; + ats->ta1.ds = BITRATE_106KBITS; + ats->ta1.dr = BITRATE_106KBITS; + + // Defaults for TB1 + ats->tb1.transmitted = false; + ats->tb1.fwi = 0; // TODO: Don't know the default for this! + ats->tb1.sfgi = 0; // The default value of SFGI is 0 (meaning that the card does not need any particular SFGT) + + // Defaults for TC1 + ats->tc1.transmitted = false; + ats->tc1.supportsCID = true; + ats->tc1.supportsNAD = false; + } + + memcpy(ats->data, bufferATS, bufferSize - 2); + + return result; +} // End PICC_RequestATS() + +/** + * Transmits Protocol and Parameter Selection Request (PPS) without parameter 1 + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522Extended::PICC_PPS() +{ + StatusCode result; + + byte ppsBuffer[4]; + byte ppsBufferSize = 4; + // Start byte: The start byte (PPS) consists of two parts: + // –The upper nibble(b8–b5) is set to’D'to identify the PPS. All other values are RFU. + // -The lower nibble(b4–b1), which is called the ‘card identifier’ (CID), defines the logical number of the addressed card. + ppsBuffer[0] = 0xD0; // CID is hardcoded as 0 in RATS + ppsBuffer[1] = 0x00; // PPS0 indicates whether PPS1 is present + + // Calculate CRC_A + result = PCD_CalculateCRC(ppsBuffer, 2, &ppsBuffer[2]); + if (result != STATUS_OK) { + return result; + } + + // Transmit the buffer and receive the response, validate CRC_A. + result = PCD_TransceiveData(ppsBuffer, 4, ppsBuffer, &ppsBufferSize, NULL, 0, true); + if (result == STATUS_OK) + { + // Enable CRC for T=CL + byte txReg = PCD_ReadRegister(TxModeReg) | 0x80; + byte rxReg = PCD_ReadRegister(RxModeReg) | 0x80; + + PCD_WriteRegister(TxModeReg, txReg); + PCD_WriteRegister(RxModeReg, rxReg); + } + + return result; +} // End PICC_PPS() + +/** + * Transmits Protocol and Parameter Selection Request (PPS) + * + * @return STATUS_OK on success, STATUS_??? otherwise. + */ +MFRC522::StatusCode MFRC522Extended::PICC_PPS(TagBitRates sendBitRate, ///< DS + TagBitRates receiveBitRate ///< DR +) { + StatusCode result; + + // TODO not used + //byte txReg = PCD_ReadRegister(TxModeReg) & 0x8F; + //byte rxReg = PCD_ReadRegister(RxModeReg) & 0x8F; + + byte ppsBuffer[5]; + byte ppsBufferSize = 5; + // Start byte: The start byte (PPS) consists of two parts: + // –The upper nibble(b8–b5) is set to’D'to identify the PPS. All other values are RFU. + // -The lower nibble(b4–b1), which is called the ‘card identifier’ (CID), defines the logical number of the addressed card. + ppsBuffer[0] = 0xD0; // CID is hardcoded as 0 in RATS + ppsBuffer[1] = 0x11; // PPS0 indicates whether PPS1 is present + + // Bit 8 - Set to '0' as MFRC522 allows different bit rates for send and receive + // Bit 4 - Set to '0' as it is Reserved for future use. + //ppsBuffer[2] = (((sendBitRate & 0x03) << 4) | (receiveBitRate & 0x03)) & 0xE7; + ppsBuffer[2] = (((sendBitRate & 0x03) << 2) | (receiveBitRate & 0x03)) & 0xE7; + + // Calculate CRC_A + result = PCD_CalculateCRC(ppsBuffer, 3, &ppsBuffer[3]); + if (result != STATUS_OK) { + return result; + } + + // Transmit the buffer and receive the response, validate CRC_A. + result = PCD_TransceiveData(ppsBuffer, 5, ppsBuffer, &ppsBufferSize, NULL, 0, true); + if (result == STATUS_OK) + { + // Make sure it is an answer to our PPS + // We should receive our PPS byte and 2 CRC bytes + if ((ppsBufferSize == 3) && (ppsBuffer[0] == 0xD0)) { + byte txReg = PCD_ReadRegister(TxModeReg) & 0x8F; + byte rxReg = PCD_ReadRegister(RxModeReg) & 0x8F; + + // Set bit rate and enable CRC for T=CL + txReg = (txReg & 0x8F) | ((receiveBitRate & 0x03) << 4) | 0x80; + rxReg = (rxReg & 0x8F) | ((sendBitRate & 0x03) << 4) | 0x80; + rxReg &= 0xF0; //Enforce although this should be set already + + // From ConfigIsoType + //rxReg |= 0x06; + + PCD_WriteRegister(TxModeReg, txReg); + PCD_WriteRegister(RxModeReg, rxReg); + + // At 212kBps + switch (sendBitRate) { + case BITRATE_212KBITS: + { + //PCD_WriteRegister(ModWidthReg, 0x13); + PCD_WriteRegister(ModWidthReg, 0x15); + } + break; + case BITRATE_424KBITS: + { + PCD_WriteRegister(ModWidthReg, 0x0A); + } + break; + case BITRATE_848KBITS: + { + PCD_WriteRegister(ModWidthReg, 0x05); + } + break; + default: + { + PCD_WriteRegister(ModWidthReg, 0x26); // Default value + } + break; + } + + //PCD_WriteRegister(RxThresholdReg, 0x84); // ISO-14443.4 Type A (default) + //PCD_WriteRegister(ControlReg, 0x10); + + delayMicroseconds(10); + } + else + { + return STATUS_ERROR; + } + } + + return result; +} // End PICC_PPS() + + +///////////////////////////////////////////////////////////////////////////////////// +// Functions for communicating with ISO/IEC 14433-4 cards +///////////////////////////////////////////////////////////////////////////////////// + +MFRC522::StatusCode MFRC522Extended::TCL_Transceive(PcbBlock *send, PcbBlock *back) +{ + MFRC522::StatusCode result; + byte inBuffer[FIFO_SIZE]; + byte inBufferSize = FIFO_SIZE; + byte outBuffer[send->inf.size + 5]; // PCB + CID + NAD + INF + EPILOGUE (CRC) + byte outBufferOffset = 1; + byte inBufferOffset = 1; + + // Set the PCB byte + outBuffer[0] = send->prologue.pcb; + + // Set the CID byte if available + if (send->prologue.pcb & 0x08) { + outBuffer[outBufferOffset] = send->prologue.cid; + outBufferOffset++; + } + + // Set the NAD byte if available + if (send->prologue.pcb & 0x04) { + outBuffer[outBufferOffset] = send->prologue.nad; + outBufferOffset++; + } + + // Copy the INF field if available + if (send->inf.size > 0) { + memcpy(&outBuffer[outBufferOffset], send->inf.data, send->inf.size); + outBufferOffset += send->inf.size; + } + + // Is the CRC enabled for transmission? + byte txModeReg = PCD_ReadRegister(TxModeReg); + if ((txModeReg & 0x80) != 0x80) { + // Calculate CRC_A + result = PCD_CalculateCRC(outBuffer, outBufferOffset, &outBuffer[outBufferOffset]); + if (result != STATUS_OK) { + return result; + } + + outBufferOffset += 2; + } + + // Transceive the block + result = PCD_TransceiveData(outBuffer, outBufferOffset, inBuffer, &inBufferSize); + if (result != STATUS_OK) { + return result; + } + + // We want to turn the received array back to a PcbBlock + back->prologue.pcb = inBuffer[0]; + + // CID byte is present? + if (send->prologue.pcb & 0x08) { + back->prologue.cid = inBuffer[inBufferOffset]; + inBufferOffset++; + } + + // NAD byte is present? + if (send->prologue.pcb & 0x04) { + back->prologue.nad = inBuffer[inBufferOffset]; + inBufferOffset++; + } + + // Check if CRC is taken care of by MFRC522 + byte rxModeReg = PCD_ReadRegister(TxModeReg); + if ((rxModeReg & 0x80) != 0x80) { + Serial.print("CRC is not taken care of by MFRC522: "); + Serial.println(rxModeReg, HEX); + + // Check the CRC + // We need at least the CRC_A value. + if ((int)(inBufferSize - inBufferOffset) < 2) { + return STATUS_CRC_WRONG; + } + + // Verify CRC_A - do our own calculation and store the control in controlBuffer. + byte controlBuffer[2]; + MFRC522::StatusCode status = PCD_CalculateCRC(inBuffer, inBufferSize - 2, controlBuffer); + if (status != STATUS_OK) { + return status; + } + + if ((inBuffer[inBufferSize - 2] != controlBuffer[0]) || (inBuffer[inBufferSize - 1] != controlBuffer[1])) { + return STATUS_CRC_WRONG; + } + + // Take away the CRC bytes + inBufferSize -= 2; + } + + // Got more data? + if (inBufferSize > inBufferOffset) { + if ((inBufferSize - inBufferOffset) > back->inf.size) { + return STATUS_NO_ROOM; + } + + memcpy(back->inf.data, &inBuffer[inBufferOffset], inBufferSize - inBufferOffset); + back->inf.size = inBufferSize - inBufferOffset; + } else { + back->inf.size = 0; + } + + // If the response is a R-Block check NACK + if (((inBuffer[0] & 0xC0) == 0x80) && (inBuffer[0] & 0x20)) { + return STATUS_MIFARE_NACK; + } + + return result; +} +/** + * Send an I-Block (Application) + */ +MFRC522::StatusCode MFRC522Extended::TCL_Transceive(TagInfo *tag, byte *sendData, byte sendLen, byte *backData, byte *backLen) +{ + MFRC522::StatusCode result; + + PcbBlock out; + PcbBlock in; + byte outBuffer[FIFO_SIZE]; + byte outBufferSize = FIFO_SIZE; + byte totalBackLen = *backLen; + + // This command sends an I-Block + out.prologue.pcb = 0x02; + + if (tag->ats.tc1.supportsCID) { + out.prologue.pcb |= 0x08; + out.prologue.cid = 0x00; // CID is curentlly hardcoded as 0x00 + } + + // This command doe not support NAD + out.prologue.pcb &= 0xFB; + out.prologue.nad = 0x00; + + // Set the block number + if (tag->blockNumber) { + out.prologue.pcb |= 0x01; + } + + // Do we have data to send? + if (sendData && (sendLen > 0)) { + out.inf.size = sendLen; + out.inf.data = sendData; + } else { + out.inf.size = 0; + out.inf.data = NULL; + } + + // Initialize the receiving data + // TODO Warning: Value escapes the local scope + in.inf.data = outBuffer; + in.inf.size = outBufferSize; + + result = TCL_Transceive(&out, &in); + if (result != STATUS_OK) { + return result; + } + + // Swap block number on success + tag->blockNumber = !tag->blockNumber; + + if (backData && (backLen > 0)) { + if (*backLen < in.inf.size) + return STATUS_NO_ROOM; + + *backLen = in.inf.size; + memcpy(backData, in.inf.data, in.inf.size); + } + + // Check chaining + if ((in.prologue.pcb & 0x10) == 0x00) + return result; + + // Result is chained + // Send an ACK to receive more data + // TODO: Should be checked I've never needed to send an ACK + while (in.prologue.pcb & 0x10) { + byte ackData[FIFO_SIZE]; + byte ackDataSize = FIFO_SIZE; + + result = TCL_TransceiveRBlock(tag, true, ackData, &ackDataSize); + if (result != STATUS_OK) + return result; + + if (backData && (backLen > 0)) { + if ((*backLen + ackDataSize) > totalBackLen) + return STATUS_NO_ROOM; + + memcpy(&(backData[*backLen]), ackData, ackDataSize); + *backLen += ackDataSize; + } + } + + return result; +} // End TCL_Transceive() + +/** + * Send R-Block to the PICC. + */ +MFRC522::StatusCode MFRC522Extended::TCL_TransceiveRBlock(TagInfo *tag, bool ack, byte *backData, byte *backLen) +{ + MFRC522::StatusCode result; + + PcbBlock out; + PcbBlock in; + byte outBuffer[FIFO_SIZE]; + byte outBufferSize = FIFO_SIZE; + + // This command sends an R-Block + if (ack) + out.prologue.pcb = 0xA2; // ACK + else + out.prologue.pcb = 0xB2; // NAK + + + if (tag->ats.tc1.supportsCID) { + out.prologue.pcb |= 0x08; + out.prologue.cid = 0x00; // CID is curentlly hardcoded as 0x00 + } + + // This command doe not support NAD + out.prologue.pcb &= 0xFB; + out.prologue.nad = 0x00; + + // Set the block number + if (tag->blockNumber) { + out.prologue.pcb |= 0x01; + } + + // No INF data for R-Block + out.inf.size = 0; + out.inf.data = NULL; + + // Initialize the receiving data + // TODO Warning: Value escapes the local scope + in.inf.data = outBuffer; + in.inf.size = outBufferSize; + + result = TCL_Transceive(&out, &in); + if (result != STATUS_OK) { + return result; + } + + // Swap block number on success + tag->blockNumber = !tag->blockNumber; + + if (backData && backLen) { + if (*backLen < in.inf.size) + return STATUS_NO_ROOM; + + *backLen = in.inf.size; + memcpy(backData, in.inf.data, in.inf.size); + } + + return result; +} // End TCL_TransceiveRBlock() + +/** + * Send an S-Block to deselect the card. + */ +MFRC522::StatusCode MFRC522Extended::TCL_Deselect(TagInfo *tag) +{ + MFRC522::StatusCode result; + byte outBuffer[4]; + byte outBufferSize = 1; + byte inBuffer[FIFO_SIZE]; + byte inBufferSize = FIFO_SIZE; + + outBuffer[0] = 0xC2; + if (tag->ats.tc1.supportsCID) + { + outBuffer[0] |= 0x08; + outBuffer[1] = 0x00; // CID is hardcoded + outBufferSize = 2; + } + + result = PCD_TransceiveData(outBuffer, outBufferSize, inBuffer, &inBufferSize); + if (result != STATUS_OK) { + return result; + } + + // TODO:Maybe do some checks? In my test it returns: CA 00 (Same data as I sent to my card) + + return result; +} // End TCL_Deselect() + +///////////////////////////////////////////////////////////////////////////////////// +// Support functions +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Get the PICC type. + * + * @return PICC_Type + */ +MFRC522::PICC_Type MFRC522Extended::PICC_GetType(TagInfo *tag ///< The TagInfo returned from PICC_Select(). +) { + // http://www.nxp.com/documents/application_note/AN10833.pdf + // 3.2 Coding of Select Acknowledge (SAK) + // ignore 8-bit (iso14443 starts with LSBit = bit 1) + // fixes wrong type for manufacturer Infineon (http://nfc-tools.org/index.php?title=ISO14443A) + byte sak = tag->uid.sak & 0x7F; + switch (sak) { + case 0x04: return PICC_TYPE_NOT_COMPLETE; // UID not complete + case 0x09: return PICC_TYPE_MIFARE_MINI; + case 0x08: return PICC_TYPE_MIFARE_1K; + case 0x18: return PICC_TYPE_MIFARE_4K; + case 0x00: return PICC_TYPE_MIFARE_UL; + case 0x10: + case 0x11: return PICC_TYPE_MIFARE_PLUS; + case 0x01: return PICC_TYPE_TNP3XXX; + case 0x20: + if (tag->atqa == 0x0344) + return PICC_TYPE_MIFARE_DESFIRE; + return PICC_TYPE_ISO_14443_4; + case 0x40: return PICC_TYPE_ISO_18092; + default: return PICC_TYPE_UNKNOWN; + } +} // End PICC_GetType() + +/** + * Dumps debug info about the selected PICC to Serial. + * On success the PICC is halted after dumping the data. + * For MIFARE Classic the factory default key of 0xFFFFFFFFFFFF is tried. + */ +void MFRC522Extended::PICC_DumpToSerial(TagInfo *tag) +{ + MIFARE_Key key; + + // Dump UID, SAK and Type + PICC_DumpDetailsToSerial(tag); + + // Dump contents + PICC_Type piccType = MFRC522::PICC_GetType(tag->uid.sak); + switch (piccType) { + case PICC_TYPE_MIFARE_MINI: + case PICC_TYPE_MIFARE_1K: + case PICC_TYPE_MIFARE_4K: + // All keys are set to FFFFFFFFFFFFh at chip delivery from the factory. + for (byte i = 0; i < 6; i++) { + key.keyByte[i] = 0xFF; + } + PICC_DumpMifareClassicToSerial(&tag->uid, piccType, &key); + break; + + case PICC_TYPE_MIFARE_UL: + PICC_DumpMifareUltralightToSerial(); + break; + + case PICC_TYPE_ISO_14443_4: + case PICC_TYPE_MIFARE_DESFIRE: + PICC_DumpISO14443_4(tag); + Serial.println(F("Dumping memory contents not implemented for that PICC type.")); + break; + case PICC_TYPE_ISO_18092: + case PICC_TYPE_MIFARE_PLUS: + case PICC_TYPE_TNP3XXX: + Serial.println(F("Dumping memory contents not implemented for that PICC type.")); + break; + + case PICC_TYPE_UNKNOWN: + case PICC_TYPE_NOT_COMPLETE: + default: + break; // No memory dump here + } + + Serial.println(); + PICC_HaltA(); // Already done if it was a MIFARE Classic PICC. +} + +/** + * Dumps card info (UID,SAK,Type) about the selected PICC to Serial. + */ +void MFRC522Extended::PICC_DumpDetailsToSerial(TagInfo *tag ///< Pointer to TagInfo struct returned from a successful PICC_Select(). +) { + // ATQA + Serial.print(F("Card ATQA:")); + if (((tag->atqa & 0xFF00u) >> 8) < 0x10) + Serial.print(F(" 0")); + Serial.print((tag->atqa & 0xFF00u) >> 8, HEX); + if ((tag->atqa & 0x00FFu) < 0x10) + Serial.print(F("0")); + else + Serial.print(F(" ")); + Serial.println(tag->atqa & 0x00FFu, HEX); + + // UID + Serial.print(F("Card UID:")); + for (byte i = 0; i < tag->uid.size; i++) { + if (tag->uid.uidByte[i] < 0x10) + Serial.print(F(" 0")); + else + Serial.print(F(" ")); + Serial.print(tag->uid.uidByte[i], HEX); + } + Serial.println(); + + // SAK + Serial.print(F("Card SAK: ")); + if (tag->uid.sak < 0x10) + Serial.print(F("0")); + Serial.println(tag->uid.sak, HEX); + + // (suggested) PICC type + PICC_Type piccType = PICC_GetType(tag); + Serial.print(F("PICC type: ")); + Serial.println(PICC_GetTypeName(piccType)); +} // End PICC_DumpDetailsToSerial() + +/** + * Dumps memory contents of a ISO-14443-4 PICC. + */ +void MFRC522Extended::PICC_DumpISO14443_4(TagInfo *tag) +{ + // ATS + if (tag->ats.size > 0x00) { // The first byte is the ATS length including the length byte + Serial.print(F("Card ATS:")); + for (byte offset = 0; offset < tag->ats.size; offset++) { + if (tag->ats.data[offset] < 0x10) + Serial.print(F(" 0")); + else + Serial.print(F(" ")); + Serial.print(tag->ats.data[offset], HEX); + } + Serial.println(); + } + +} // End PICC_DumpISO14443_4 + +///////////////////////////////////////////////////////////////////////////////////// +// Convenience functions - does not add extra functionality +///////////////////////////////////////////////////////////////////////////////////// + +/** + * Returns true if a PICC responds to PICC_CMD_REQA. + * Only "new" cards in state IDLE are invited. Sleeping cards in state HALT are ignored. + * + * @return bool + */ +bool MFRC522Extended::PICC_IsNewCardPresent() { + byte bufferATQA[2]; + byte bufferSize = sizeof(bufferATQA); + + // Reset baud rates + PCD_WriteRegister(TxModeReg, 0x00); + PCD_WriteRegister(RxModeReg, 0x00); + // Reset ModWidthReg + PCD_WriteRegister(ModWidthReg, 0x26); + + MFRC522::StatusCode result = PICC_RequestA(bufferATQA, &bufferSize); + + if (result == STATUS_OK || result == STATUS_COLLISION) { + tag.atqa = ((uint16_t)bufferATQA[1] << 8) | bufferATQA[0]; + tag.ats.size = 0; + tag.ats.fsc = 32; // default FSC value + + // Defaults for TA1 + tag.ats.ta1.transmitted = false; + tag.ats.ta1.sameD = false; + tag.ats.ta1.ds = MFRC522Extended::BITRATE_106KBITS; + tag.ats.ta1.dr = MFRC522Extended::BITRATE_106KBITS; + + // Defaults for TB1 + tag.ats.tb1.transmitted = false; + tag.ats.tb1.fwi = 0; // TODO: Don't know the default for this! + tag.ats.tb1.sfgi = 0; // The default value of SFGI is 0 (meaning that the card does not need any particular SFGT) + + // Defaults for TC1 + tag.ats.tc1.transmitted = false; + tag.ats.tc1.supportsCID = true; + tag.ats.tc1.supportsNAD = false; + + memset(tag.ats.data, 0, FIFO_SIZE - 2); + + tag.blockNumber = false; + return true; + } + return false; +} // End PICC_IsNewCardPresent() + +/** + * Simple wrapper around PICC_Select. + * Returns true if a UID could be read. + * Remember to call PICC_IsNewCardPresent(), PICC_RequestA() or PICC_WakeupA() first. + * The read UID is available in the class variable uid. + * + * @return bool + */ +bool MFRC522Extended::PICC_ReadCardSerial() { + MFRC522::StatusCode result = PICC_Select(&tag.uid); + + // Backward compatibility + uid.size = tag.uid.size; + uid.sak = tag.uid.sak; + memcpy(uid.uidByte, tag.uid.uidByte, sizeof(tag.uid.uidByte)); + + return (result == STATUS_OK); +} // End diff --git a/lib/lib_div/rfid-1.4.7/src/MFRC522Extended.h b/lib/lib_div/rfid-1.4.7/src/MFRC522Extended.h new file mode 100644 index 000000000..9fd8ff8c7 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/src/MFRC522Extended.h @@ -0,0 +1,120 @@ +/** + * Library extends MFRC522.h to support RATS for ISO-14443-4 PICC. + * RATS - Request for Answer To Select. + * @author JPG-Consulting + */ +#ifndef MFRC522Extended_h +#define MFRC522Extended_h + +#include +#include "MFRC522.h" + +class MFRC522Extended : public MFRC522 { + +public: + // ISO/IEC 14443-4 bit rates + enum TagBitRates : byte { + BITRATE_106KBITS = 0x00, + BITRATE_212KBITS = 0x01, + BITRATE_424KBITS = 0x02, + BITRATE_848KBITS = 0x03 + }; + + // Structure to store ISO/IEC 14443-4 ATS + typedef struct { + byte size; + byte fsc; // Frame size for proximity card + + struct { + bool transmitted; + bool sameD; // Only the same D for both directions supported + TagBitRates ds; // Send D + TagBitRates dr; // Receive D + } ta1; + + struct { + bool transmitted; + byte fwi; // Frame waiting time integer + byte sfgi; // Start-up frame guard time integer + } tb1; + + struct { + bool transmitted; + bool supportsCID; + bool supportsNAD; + } tc1; + + // Raw data from ATS + byte data[FIFO_SIZE - 2]; // ATS cannot be bigger than FSD - 2 bytes (CRC), according to ISO 14443-4 5.2.2 + } Ats; + + // A struct used for passing the PICC information + typedef struct { + uint16_t atqa; + Uid uid; + Ats ats; + + // For Block PCB + bool blockNumber; + } TagInfo; + + // A struct used for passing PCB Block + typedef struct { + struct { + byte pcb; + byte cid; + byte nad; + } prologue; + struct { + byte size; + byte *data; + } inf; + } PcbBlock; + + // Member variables + TagInfo tag; + + ///////////////////////////////////////////////////////////////////////////////////// + // Contructors + ///////////////////////////////////////////////////////////////////////////////////// + MFRC522Extended() : MFRC522() {}; + MFRC522Extended(uint8_t rst) : MFRC522(rst) {}; + MFRC522Extended(uint8_t ss, uint8_t rst) : MFRC522(ss, rst) {}; + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for communicating with PICCs + ///////////////////////////////////////////////////////////////////////////////////// + StatusCode PICC_Select(Uid *uid, byte validBits = 0) override; // overrride + StatusCode PICC_RequestATS(Ats *ats); + StatusCode PICC_PPS(); // PPS command without bitrate parameter + StatusCode PICC_PPS(TagBitRates sendBitRate, TagBitRates receiveBitRate); // Different D values + + ///////////////////////////////////////////////////////////////////////////////////// + // Functions for communicating with ISO/IEC 14433-4 cards + ///////////////////////////////////////////////////////////////////////////////////// + StatusCode TCL_Transceive(PcbBlock *send, PcbBlock *back); + StatusCode TCL_Transceive(TagInfo * tag, byte *sendData, byte sendLen, byte *backData = NULL, byte *backLen = NULL); + StatusCode TCL_TransceiveRBlock(TagInfo *tag, bool ack, byte *backData = NULL, byte *backLen = NULL); + StatusCode TCL_Deselect(TagInfo *tag); + + ///////////////////////////////////////////////////////////////////////////////////// + // Support functions + ///////////////////////////////////////////////////////////////////////////////////// + static PICC_Type PICC_GetType(TagInfo *tag); + using MFRC522::PICC_GetType;// // make old PICC_GetType(byte sak) available, otherwise would be hidden by PICC_GetType(TagInfo *tag) + + // Support functions for debuging + void PICC_DumpToSerial(TagInfo *tag); + using MFRC522::PICC_DumpToSerial; // make old PICC_DumpToSerial(Uid *uid) available, otherwise would be hidden by PICC_DumpToSerial(TagInfo *tag) + void PICC_DumpDetailsToSerial(TagInfo *tag); + using MFRC522::PICC_DumpDetailsToSerial; // make old PICC_DumpDetailsToSerial(Uid *uid) available, otherwise would be hidden by PICC_DumpDetailsToSerial(TagInfo *tag) + void PICC_DumpISO14443_4(TagInfo *tag); + + ///////////////////////////////////////////////////////////////////////////////////// + // Convenience functions - does not add extra functionality + ///////////////////////////////////////////////////////////////////////////////////// + bool PICC_IsNewCardPresent() override; // overrride + bool PICC_ReadCardSerial() override; // overrride +}; + +#endif diff --git a/lib/lib_div/rfid-1.4.7/src/deprecated.h b/lib/lib_div/rfid-1.4.7/src/deprecated.h new file mode 100644 index 000000000..cba2cf207 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/src/deprecated.h @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de) + * Simple deprecated workaround for Arduino IDE + * IDE 1.6.8 use gcc 4.8 which do not support c++14 [[deprecated]] + * Later versions should support c++14, then use c++14 syntax + */ +#ifndef DEPRECATED_H +#define DEPRECATED_H + +#ifdef __has_cpp_attribute +#if __has_cpp_attribute(deprecated) +#define DEPRECATED [[deprecated]] +#define DEPRECATED_MSG(msg) [[deprecated(msg)]] +#endif // __has_cpp_attribute(deprecated) +#else +#define DEPRECATED __attribute__((deprecated)) +#define DEPRECATED_MSG(msg) __attribute__((deprecated(msg))) +#endif // __has_cpp_attribute + +#endif // DEPRECATED_H diff --git a/lib/lib_div/rfid-1.4.7/src/require_cpp11.h b/lib/lib_div/rfid-1.4.7/src/require_cpp11.h new file mode 100644 index 000000000..6561cd8a7 --- /dev/null +++ b/lib/lib_div/rfid-1.4.7/src/require_cpp11.h @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2016 by Ludwig Grill (www.rotzbua.de) + * Throws error if c++11 is not supported + */ +#ifndef REQUIRE_CPP11_H +#define REQUIRE_CPP11_H + +#if __cplusplus < 201103L +#error "This library needs at least a C++11 compliant compiler, maybe compiler argument for C++11 support is missing or if you use Arduino IDE upgrade to version >=1.6.6" +#endif + +#endif // REQUIRE_CPP11_H diff --git a/tasmota/xsns_40_pn532.ino b/tasmota/xsns_40_pn532.ino index f49d05b82..2a2daee54 100644 --- a/tasmota/xsns_40_pn532.ino +++ b/tasmota/xsns_40_pn532.ino @@ -18,6 +18,9 @@ */ #ifdef USE_PN532_HSU +/*********************************************************************************************\ + * PN532 - 13.56 MHz RFID and NFC reader +\*********************************************************************************************/ #define XSNS_40 40 diff --git a/tasmota/xsns_80_mfrc522.ino b/tasmota/xsns_80_mfrc522.ino index 9754bf963..1356a343a 100644 --- a/tasmota/xsns_80_mfrc522.ino +++ b/tasmota/xsns_80_mfrc522.ino @@ -20,6 +20,18 @@ #ifdef USE_RC522 /*********************************************************************************************\ * MFRC522 - 13.56 MHz RFID reader + * + * Connections: + * MFRC522 ESP8266 Tasmota + * ------- -------------- ---------- + * SDA GPIO0..5,15,16 SPI CS + * SCK GPIO14 SPI CLK + * MOSI GPIO13 SPI MOSI + * MISO GPIO12 SPI MISO + * IRQ not used + * Gnd Gnd + * Rst GPIO0..5,15,16 RC522 Rst + * 3V3 3V3 \*********************************************************************************************/ #define XSNS_80 80 @@ -30,8 +42,9 @@ MFRC522 *Mfrc522; struct RC522 { + char uids[21]; // Number of bytes in the UID. 4, 7 or 10 bool present = false; - uint8_t scantimer = 0; + uint8_t scantimer = 16; } Rc522; void RC522ScanForTag(void) { @@ -41,8 +54,7 @@ void RC522ScanForTag(void) { MFRC522::PICC_Type piccType = Mfrc522->PICC_GetType(Mfrc522->uid.sak); AddLog_P(LOG_LEVEL_DEBUG, PSTR("MFR: Type %s"), Mfrc522->PICC_GetTypeName(piccType)); - char uids[21]; // Number of bytes in the UID. 4, 7 or 10 - ToHex_P((unsigned char*)Mfrc522->uid.uidByte, Mfrc522->uid.size, uids, sizeof(uids)); + ToHex_P((unsigned char*)Mfrc522->uid.uidByte, Mfrc522->uid.size, Rc522.uids, sizeof(Rc522.uids)); #ifdef USE_RC522_DATA_FUNCTION bool didit = false; @@ -70,15 +82,15 @@ void RC522ScanForTag(void) { } } didit = true; - ResponseTime_P(PSTR(",\"MFRC522\":{\"UID\":\"%s\",\"" D_JSON_DATA "\":\"%s\"}}"), uids, card_datas); + ResponseTime_P(PSTR(",\"MFRC522\":{\"UID\":\"%s\",\"" D_JSON_DATA "\":\"%s\"}}"), Rc522.uids, card_datas); } } } if (!didit) { - ResponseTime_P(PSTR(",\"MFRC522\":{\"UID\":\"%s\"}}"), uids); + ResponseTime_P(PSTR(",\"MFRC522\":{\"UID\":\"%s\"}}"), Rc522.uids); } #else - ResponseTime_P(PSTR(",\"MFRC522\":{\"UID\":\"%s\"}}"), uids); + ResponseTime_P(PSTR(",\"MFRC522\":{\"UID\":\"%s\"}}"), Rc522.uids); #endif MqttPublishTeleSensor(); @@ -103,11 +115,19 @@ void RC522Init(void) { case 0x00: case 0xFF: strcpy_P(ver, PSTR("fail")); break; } AddLog_P(LOG_LEVEL_INFO, PSTR("MFR: MFRC522 Rfid reader %s"), ver); + uint8_t empty_uid[4] = { 0 }; + ToHex_P((unsigned char*)empty_uid, sizeof(empty_uid), Rc522.uids, sizeof(Rc522.uids)); Rc522.present = true; } } } +#ifdef USE_WEBSERVER +void RC522Show(void) { + WSContentSend_PD(PSTR("{s}MFRC522 UID{m}%s {e}"), Rc522.uids); +} +#endif // USE_WEBSERVER + /*********************************************************************************************\ * Interface \*********************************************************************************************/ @@ -128,6 +148,11 @@ bool Xsns80(uint8_t function) RC522ScanForTag(); } break; +#ifdef USE_WEBSERVER + case FUNC_WEB_SENSOR: + RC522Show(); + break; +#endif // USE_WEBSERVER } } return result;