Не работает 1 из 4 модулей RFID RC522 подключенных к Nano

Пробовал физически менять местами 6 и 7. Проблема перенеслась вместе с пином

ну так там прямо в регистры шлётся, а сейчас без патча что?

не очень понятно… Проблема осталась на том же пине или перенеслась вместе с модулем?

Значит дело не в модуле. Исправляйте схему(питание и.т.д)

Как я смог понять - осталась на том же пине. Перенеслась, значит, на другой модуль)

Прошу прощения, некорректно ответил, вместе с модулем перенеслась

Без патча все также 3 работает, один нет, только вместо 0xB2 выдает 0x90

Reader 0: Firmware Version: 0x82 = (unknown)
Reader 1: Firmware Version: 0x90 = v0.0
Reader 2: Firmware Version: 0x82 = (unknown)
Reader 3: Firmware Version: 0x82 = (unknown)

Только почему то стало работать менее стабильно все, иногда все выдают выше указанные значения версии как обычно, но никакой из них не читает метки

Во-первых, нужна схема.
Не словесное описание схемы, а именно схема.
Не “из Интернета”, а именно та, что собрана. С подробной разводкой питания и т.п.
Т.к. как в скетче, так и в схеме пробуются разные варианты, то нужно обязательно в одном посте публиковать как скетч, так и соответствующую ему схему.
Что-то изменилось - в следующем посте снова публиковать пару: скетч и схему. Всегда в одном посте, чтобы избежать неоднозначномсти.

Далее Вам следует локализовать проблему. Т.к. используются несколько однотипных модулей, это не должно вызвать сложностей.
Выясните, с чем именно связана проблема:

  1. С конкретным модулем.
  2. С конкретным местом положения (подключения) модуля.
  3. С конкретным управляющим пином.

это потому что настройки в регистрах неправильные, тут один вариант на хорошо работающем модуле вычитать настройки регистров и добавить в библиотеку, если сделаешь первое попробуем добавить плату с кодом 0x82, а вот плата 0xB2 явно неисправна, раз то один код отдаёт то другой

тут настройки регистров моего не работающего модуля:

0x00, 0x20,  0x80,  0x00,  0x14,  0x00,  0x00,  0x21,  
0x00, 0x26,  0x00,  0x08,  0x10,  0x00,  0xA0,  0x00,
0x00, 0x3F,  0x00,  0x00,  0x80,  0x00,  0x10,  0x84,
0x42, 0x5D,  0x00,  0x00,  0x62,  0x00,  0x00,  0xEB,
0x00, 0xFF,  0xFF,  0x88,  0x26,  0x87,  0x44,  0x88,
0x20, 0x20,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,
0x00, 0x00,  0x00,  0x80,  0x00,  0xC0,  0x40,  0x82,
0x00, 0x10,  0x26,  0x88,  0xFF,  0x00,  0x03,  0x00,

А вот с работающего, можно посмотреть как установлены параметры:

ADDR   00	  01	 02     03     04     05     06     07    08     09     0A     0B     0C     0D     0E     0F
0x000 0x00,  0x20,  0x80,  0x00,  0x14,  0x00,  0x00,  0x21, 0x00,  0x26,  0x00,  0x08,  0x10,  0x00,  0xA0,  0x00, 
0x001 0x00,  0x3F,  0x00,  0x00,  0x80,  0x00,  0x10,  0x84, 0x84,  0x4D,  0x00,  0x00,  0x62,  0x00,  0x00,  0xEB, 
0x002 0x00,  0xFF,  0xFF,  0x88,  0x26,  0x87,  0x48,  0x88, 0x20,  0x20,  0x00,  0x00,  0x00,  0x00,  0x00,  0x7D,
0x003 0x00,  0x00,  0x00,  0x80,  0x00,  0x00,  0x40,  0x92, 0x00,  0x01,  0x01,  0x88,  0xFF,  0x00,  0x03,  0x00
	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

Забыл главное, я в библиотеку свой модуль добавил, но если загрузить из примеров скетч Firmware_Check то: )))

10:22:42.290 -> *****************************
10:22:42.290 -> MFRC522 Digital self test
10:22:42.354 -> *****************************
10:22:42.354 -> Firmware Version: 0x82 = (HW-126)
10:22:42.367 -> -----------------------------
10:22:42.433 -> Only known versions supported
10:22:42.433 -> -----------------------------
10:22:42.467 -> Performing test...
10:22:42.533 -> -----------------------------
10:22:42.533 -> Result: DEFECT or UNKNOWN
10:22:42.576 -> 

Заказал еще один модуль, вот как раз твой, читает:

19:55:11.307 -> *****************************
19:55:11.307 -> MFRC522 Digital self test
19:55:11.380 -> *****************************
19:55:11.380 -> Firmware Version: 0xB2 = (unknown)
19:55:11.407 -> -----------------------------
19:55:11.440 -> Only known versions supported
19:55:11.473 -> -----------------------------
19:55:11.506 -> Performing test...
19:55:11.540 -> -----------------------------
19:55:11.573 -> Result: DEFECT or UNKNOWN
19:55:11.610 -> 
0xB2 Вычитано из нового - Регистры
ADDR   00	  01	 02     03     04     05     06     07    08     09     0A     0B     0C     0D     0E     0F
0x000 0x00,  0x20,  0x80,  0x00,  0x14,  0x00,  0x00,  0x21, 0x00,  0xC7,  0x00,  0x08,  0x10,  0x00,  0xA0,  0x00,
0x001 0x00,  0x3F,  0x00,  0x00,  0x80,  0x00,  0x10,  0x84, 0x42,  0x4D,  0x00,  0x00,  0x62,  0x00,  0x00,  0xEB,  
0x002 0x00,  0xFF,  0xFF,  0x88,  0x26,  0x87,  0x44,  0x88, 0x20,  0x20,  0x00,  0x00,  0x00,  0x00,  0x00,  0x00,  
0x003 0x00,  0x00,  0x00,  0x80,  0x00,  0x80,  0x40,  0xB2, 0x00,  0x18,  0x12,  0x88,  0xFF,  0x00,  0x03,  0x00