Opgelost: RC522 RFID lezer leest (sommige) kaarten niet. (Deel 1)

Ik heb een probleem (mede-)ontdekt met de RC522 rfid kaartlezer modules die op ebay / aliexpress en dergelijk aangeboden worden: ze lezen sommige kaarten niet. In deze blogpost wil ik uitleggen wat het probleem is, en hoe het opgelost kan worden, in de hoop dat mensen die hetzelfde probleem tegenkomen daar wat aan hebben.

rfidadvertentiefoto
RC522 module (foto uit advertentie van verkoper)

En omdat het anders een erg droog stuk tekst wordt, schrijf ik halverwege een stuk onzin over een zomerjurk. (Want dit is mijn blog, en niet mijn scriptie :P)

Kieskeurige kaartlezers

Laat ik bij het begin beginnen:
Bij MakerSpace Leiden worden deze RFID-RC522 kaartlezers gebruikt om toegangskaarten te lezen in het deursysteem en bij de zwaardere machines waarvoor training nodig is. Deelnemers van de MakerSpace kunnen daarbij hun OV-chipkaart (Of een andere 13,56Mhz RFID kaart die ze al hebben) gebruiken. Ze kunnen dan deze kaart gebruiken om toegang te krijgen tot de MakerSpace, of om b.v.  (na relevante training en goedkeuring) de cirkelzaagtafel in te kunnen schakelen.

Het probleem dat daarbij boven water kwam, is dat sommige RC522 kaartlezers sommige kaarten niet lezen. (Wat voor de (on)nodige frustratie zorgt als het toevallig je eigen kaart is bij de lezer van de deur waar je door wilt… Of het is de kaartlezer van het project waar je mee bezig bent…)

Goed v.s. Slecht

Deze “slechte” kaartlezers lezen dan alleen de bij de kaartlezer meegeleverde blanco kaart en blauwe druppel.  (Zie foto uit advertentie). Andere kaarten, zoals b.v. de OVchipkaart, of een koffiemachine / kopieermachinekaart, wegwerp OV-kaartjes, bankpassen, en andere toegangskaarten worden niet gelezen. Dit terwijl de RC522 kaartlezer deze kaarten wel zou moeten kunnen lezen, zolang het 13,56 MHz RFID kaarten zijn. En “goede” kaartlezers lezen deze kaarten inderdaad.

(Er zijn enkele andere standaarden en frequenties, de RC522 kan alle kaarten lezen die de op deze module toegepaste MFRC522-chip ondersteunt: “The MFRC522 supports all variants of the MIFARE Mini, MIFARE 1K, MIFARE 4K, MIFARE Ultralight, MIFARE DESFire EV1 and MIFARE Plus RF identification protocols.” De koffie/kopieermachine kaart die ikzelf gebruik is een ISO/IEC14443-4 kaart, en ook deze kan worden gelezen door deze chip.)

Ik onderneem Stappen!

De eerste stap was de verschillende varianten van deze module te identificeren en in te delen op hun (on)geschiktheid om de diverse kaarten te kunnen lezen. Er blijken wat subtiele verschillen zichtbaar tussen de “goede” modules (Die alle kaarten lezen) en de “slechte” (Die alleen de meegeleverde kaart lezen). Hiervoor heb ik een aantal foto’s van “goede” en “slechte” kaartlezers gemaakt (Zie verderop).

De volgende stap was om uit te zoeken wáárom de “slechte” modules geen OV-chipkaarten e.d. willen lezen. En stap 2b is dan uiteraard om uit te zoeken of dit te repareren valt zodat deze kaartlezers wél alle soorten MIFARE / ISO/IEC14443-4 kaarten kunnen lezen. (Spoiler alert: Jazeker, dat is te repareren! Vervang C8,9,10 en 11. Zie verderop.)

Verschil moet er wezen:

En dit zijn de visuele verschillen tussen de “goede” en “slechte¨  kaartlezers:

RFID_RC522_COMPARE_GOODvsBAD_2
Goede lezer links, slechte rechts. Let op het kleurverschil van de condensatoren.

Let op de verschillende kleur condensators C4,5,6,7,8,9,10 en 11, en op de silkscreen van C2, R3,R4 en C3.

Bij de “slechte” lezer is een ander type condensators toegepast, die wit zijn ipv bruin. Dat kleurverschil is niet de oorzaak van slechter functioneren, maar het kan een hulpmiddel zijn om “goede” lezers (Met bruine condensatoren) te herkennen. De capaciteit is overigens hetzelfde, het verschil zit in de antennespoel, maar dat is niet goed zichtbaar. (Hopelijk wel meetbaar, en in elk geval merkbaar, want de “slechte” lezer leest geen OV-chipkaart e.d.)

De silkscreen van C2,3 en R3,4 staat bij de “goede” lezer links naast de componenten, en bij de “slechte” lezer symmetrisch rond het IC. Ook dit is uiteraard niet de óórzaak van het slechter functioneren van de “slechte” lezer, maar slechts een visueel hulpmiddel.

Een ander opvallend punt zijn de “fiducials”  in de linker en rechter bovenhoek van de print bij de “slechte” lezer. Deze 2 ronde puntjes zijn visuele hulpmiddelen voor een bestukkingsmachine en hebben niks te maken met de functie van de printplaat, maar ze zijn bruikbaar zijn om onderscheid te kunnen maken tussen beide varianten van de RFID-RC522. (Ten overvloede: ook deze fiducials zijn niet de reden van het slecht functioneren van de “slechte” lezer)

RFID_RC522_COMPARE_GOODvsBAD
Dezelfde foto, beter belicht. Het kleurverschil van de condensatoren valt nu minder op, maar de silkscreen en fiducials zijn nu duidelijker.

Op bovenstaande 2e foto is ook verschil in de antennespoel te zien, de banen zijn iets dunner en liggen verder uit elkaar bij de “slechte” lezer. Dit verschil is echter slecht te zien in het echt. (Maar waarschijnlijk de reden dat de spoel andere eigenschappen heeft)

 

RFID_RC522_COMPARE_GOOD
Close-up silkscreen rond IC en IC, goede lezer.
RFID_RC522_COMPARE_BAD
Idem, “slechte” lezer.

 

Er bleek nog een variant te zijn van een “slechte” lezer, die óók geen andere dan de meegeleverde kaarten kan lezen:

IMG_0349_Lineup
Van links naar rechts: Goede lezer, slechte lezer van het later ontdekte soort, slechte lezer zoals eerder getoond en besproken.
IMG_0351_OPTION3_BAD
close-up slechte lezer van het later ontdekte soort.

Opvallend aan deze printplaat is dat de montagegaten niet zijn doorgemetaliseerd. De referenties van C2,3, en R3,4 staan net als bij de goede lezer links naast de componenten en dus niet symmetrisch langs de chip zoals bij de andere “slechte” lezers. De soldermask is bij deze print ook een nét iets andere kleur, glanzender, en mogelijk dunner (Of de koperlaag is dikker). Ook op deze print staan fiducials (Op de foto in de linkerbovenhoek van de spoel en helemaal rechtsonder naast het kristal)

Ook bij deze “derde optie” is het onjuist functioneren niet te wijten aan eender welk van deze opvallende visuele verschillen. (Sterker nog, dikker koper en fiducials zijn eerder een reden om deze pcb als “beter” te beschouwen. Enig probleem: hij leest geen OV-chipkaarten e.d.)

Op basis van deze foto’s zou je kunnen proberen “goede” lezers te kunnen kopen, en geen “slechte”, echter, je krijgt niet altijd opgestuurd wat op de foto staat en de verschillen zijn dusdanig subtiel dat op basis hiervan claimen dat je niet gekregen hebt wat je gekocht hebt mogelijk erg lastig is. (Laat een reactie achter als je dit geprobeerd hebt. Hoogstwaarschijnlijk zijn er meer varianten op de markt dan die ik gefotografeerd heb.)

Als je een blauwe zomerjurk bestelt en je krijgt een rode zomerjurk, kun je claimen dat de kleur onjuist is, dat is een standaard claim. Als je een blauwe kaartlezer besteld en een blauwe kaartlezer ontvangt die weliswaar subtiel anders is waardoor ‘ie geen kaarten leest, kun je niet claimen dat de kleur onjuist is. (Als je een blauwe kaartlezer besteld en je krijgt een rode zomerjurk… Dan is er wat anders misgegaan*, al kun je in theorie claimen dat die rode zomerjurk geen kaarten leest, maar vermoedelijk voldoet dat aan de gegeven specificaties en krijg je dus geen nieuwe. Al draag ik uiteraard** nooit zomerjurken, ongeacht hun kleur, volgens mij kunnen ze geen RFID-kaarten lezen en hoort dat ook zo.)

How To Fix

Dat is natuurlijk het belangrijkste: Hoe zijn “slechte” lezers te repareren zodat ze alle kaarten lezen die ze horen te kunnen lezen?

Ik heb de chip van een “slechte” lezer op een “goede” lezer te gezet, en deze goede lezer blijft dan kaarten lezen. Het ligt dus niet aan de chips, die zijn goed.

Bij de “slechte” lezers van de foto (Niet de derde variant) bleek de resonantiefrequentie van de antenne te laag te liggen***. De antenne is een LC-kring, en de resonantiefrequentie is dus te corrigeren door de spoel of de condensators aan te passen. Omdat de spoel een op de printplaat ge-etste spoel is, is deze niet aan te passen, en dan blijven de condensators over. Er staat (C8+C10 == C9+C11) ongeveer 210pF, dit moet lager worden zodat de resonantiefrequentie omhoog gaat, ongeveer 185pF werkt goed.

Simpele howto voor iedereen met een goede soldeerbout. Slechts 2 eenvoudige stappen:

  1. Verwijder C8,C9,C10 en C11. Dit gaat goed met hete lucht en een pincet, of voor wie niet de luxe van een hete lucht soldeerstation heeft: door dusdanig veel tin toe te voegen dat de soldeerbout beide zijden van de condensator tegelijk kan verwarmen waarna de condensator weg te schuiven valt.
  2.  Plaats nieuwe condensatoren. C8 en C9 worden ieder 150pF, C10 en C11 worden ieder 33pF. (0805 NP0, 50V). (Direct 180pF plaatsen voor C8 en C9, en C10 en 11 open laten kan wellicht ook, maar ik had geen 180pF voorhanden. 47pF stapelen tot 188pF werkt ook, maar dit was bedoeld als een simpele howto…).

(Allright, 3 stappen. Stap 0 is ergens een stel 0805 150pF en 33pF condensatoren te kopen, maar aangezien geen enkele webshop mij daarvoor sponsoring aanbied, staat hier geen directe link.)

 

Voetnoten

* Sommige van die Aliexpres / ebay winkels verhandelen zowel kleding als elektronica. Handelaren handelen in handel… Het is niet eens de mafste combinatie die ik ben tegengekomen in een ebay-shop.

** Als man. Dat is niet per-se een excuus om geen zomerjurken te dragen, zeker tegenwoordig, maar ik ben heel saai 😛

*** meting gemaakt aan een “slechte” kaartlezer met een miniVNA Tiny (Ik kreeg de kans tijdelijk die VNA te lenen en was daar uiteraard erg blij mee. Hij is inmiddels terug naar zijn eigenAart ;)).

Meer info

Op de wiki van de MakerSpace heb ik al eerder over dit project geschreven.

Deel 1 uit de titel impliceert een deel 2. Ik heb dat echter nog niet geschreven 🙂

Vragen of opmerkingen? Laat een reactie achter!

No Comments on "Opgelost: RC522 RFID lezer leest (sommige) kaarten niet. (Deel 1)"



Leave a Reply

Your email address will not be published. Required fields are marked *