From 2036e47aa20d4396c67919aaff85c82714deeefd Mon Sep 17 00:00:00 2001 From: whowechina Date: Sun, 26 May 2024 17:24:41 +0800 Subject: [PATCH] More stable PN5180 mifare ops --- Production/Firmware/aic_pico.uf2 | Bin 162816 -> 164352 bytes firmware/src/lib/pn5180.c | 47 ++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/Production/Firmware/aic_pico.uf2 b/Production/Firmware/aic_pico.uf2 index 20c98b5fe59cd34b93cafe06dde3d4da42b72266..d8b5f61936548153adb32a7dbea8e7ff35d92963 100644 GIT binary patch delta 16720 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 delta 15770 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