From 0bb67ca860cb493fc68e1712cb258742d0120ea9 Mon Sep 17 00:00:00 2001 From: GOB Date: Wed, 15 Apr 2026 11:25:54 +0900 Subject: [PATCH 1/4] Add nfcaEmulationTransmit and remove redundant _u.update in emulation --- src/nfc/layer/a/emulation_layer_a_ST25R3916.cpp | 8 ++------ src/unit/unit_ST25R3916.hpp | 2 ++ src/unit/unit_ST25R3916_nfca.cpp | 10 ++++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/nfc/layer/a/emulation_layer_a_ST25R3916.cpp b/src/nfc/layer/a/emulation_layer_a_ST25R3916.cpp index 48287ee..cd14cf0 100644 --- a/src/nfc/layer/a/emulation_layer_a_ST25R3916.cpp +++ b/src/nfc/layer/a/emulation_layer_a_ST25R3916.cpp @@ -186,9 +186,9 @@ bool ListenerST25R3916ForA::stop_emulation() _u.writeModeDefinition(0x00); } -bool ListenerST25R3916ForA::transmit(const uint8_t* tx, const uint16_t tx_len, const uint32_t timeout_ms) +bool ListenerST25R3916ForA::transmit(const uint8_t* tx, const uint16_t tx_len, const uint32_t /*timeout_ms*/) { - return _u.nfcaTransmit(tx, tx_len, timeout_ms); + return _u.nfcaEmulationTransmit(tx, tx_len); } // ------------------------------------------------------------ @@ -273,7 +273,6 @@ EmulationLayerA::State ListenerST25R3916ForA::goto_idle() _wakeup = false; - _u.update(); return update_idle(); // return EmulationLayerA::State::Idle; } @@ -292,7 +291,6 @@ EmulationLayerA::State ListenerST25R3916ForA::goto_ready() _u.clear_bit_register8(REG_OPERATION_CONTROL, wu); // Disable wakeup mode _u.writeModeDefinition(mode_listen_nfc_a); // Disable bitrate detection and collision - _u.update(); return update_ready(); // return EmulationLayerA::State::Ready; } @@ -305,7 +303,6 @@ EmulationLayerA::State ListenerST25R3916ForA::goto_active() _u.enable_interrupts(I_rxe32); - _u.update(); return update_active(); // return EmulationLayerA::State::Active; } @@ -326,7 +323,6 @@ EmulationLayerA::State ListenerST25R3916ForA::goto_halt() return goto_off(); } - _u.update(); return update_halt(); // return EmulationLayerA::State::Halt; } diff --git a/src/unit/unit_ST25R3916.hpp b/src/unit/unit_ST25R3916.hpp index 97ab597..8d8b058 100644 --- a/src/unit/unit_ST25R3916.hpp +++ b/src/unit/unit_ST25R3916.hpp @@ -1749,6 +1749,8 @@ public: uint32_t nfcaTransceive(uint8_t* rx, uint16_t& rx_len, const uint8_t* tx, const uint16_t tx_len, const uint32_t timeout_ms); bool nfcaTransmit(const uint8_t* tx, const uint16_t tx_len, const uint32_t timeout_ms); + //! @brief Transmit in emulation (PICC) mode with minimal I2C overhead + bool nfcaEmulationTransmit(const uint8_t* tx, const uint16_t tx_len); bool nfcaReceive(uint8_t* rx, uint16_t& rx_len, const uint32_t timeout_ms); /*! diff --git a/src/unit/unit_ST25R3916_nfca.cpp b/src/unit/unit_ST25R3916_nfca.cpp index f56788e..221b6e7 100644 --- a/src/unit/unit_ST25R3916_nfca.cpp +++ b/src/unit/unit_ST25R3916_nfca.cpp @@ -205,6 +205,16 @@ bool UnitST25R3916::nfcaTransmit(const uint8_t* tx, const uint16_t tx_len, const return true; } +bool UnitST25R3916::nfcaEmulationTransmit(const uint8_t* tx, const uint16_t tx_len) +{ + if (!tx || !tx_len) { + return false; + } + return writeDirectCommand(CMD_CLEAR_FIFO) && // + writeFIFO(tx, tx_len) && // + writeNumberOfTransmittedBytes(tx_len, 0) && writeDirectCommand(CMD_TRANSMIT_WITH_CRC); +} + bool UnitST25R3916::nfcaReceive(uint8_t* rx, uint16_t& rx_len, const uint32_t timeout_ms) { CHECK_MODE(); From 973976ed8aa986de76bb61a273f0d40b1d658f26 Mon Sep 17 00:00:00 2001 From: GOB Date: Wed, 15 Apr 2026 15:22:00 +0900 Subject: [PATCH 2/4] Add NessoN1 connection note to README --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 3520903..acbdb19 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,11 @@ See examples: [NFCA Emulation](examples/UnitUnified/NFCA/Emulation) and [NFCF Em - I2C version: MIFARE Plus SL3 operation has issues. +### NessoN1 Connection +GROVE port (port_b) on NessoN1 uses SoftwareI2C (M5HAL Bus), which causes I2C register polling latency too high for ST25R3916 RF timing requirements. +Use **QWIIC port (port_a)** with a QWIIC-GROVE conversion cable instead. + +> **Note:** GROVE port support may be added in a future update if SoftwareI2C performance improves. ## Related Link From d9b7f21eae874d86dad23ba3467b03dced5d409f Mon Sep 17 00:00:00 2001 From: GOB Date: Wed, 15 Apr 2026 16:32:39 +0900 Subject: [PATCH 3/4] Add nfcfEmulationTransmit and remove redundant _u.update in emulation --- src/nfc/layer/f/emulation_layer_f_ST25R3916.cpp | 6 ++---- src/unit/unit_ST25R3916.hpp | 2 ++ src/unit/unit_ST25R3916_nfcf.cpp | 10 ++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/nfc/layer/f/emulation_layer_f_ST25R3916.cpp b/src/nfc/layer/f/emulation_layer_f_ST25R3916.cpp index 647b571..1dd6ca3 100644 --- a/src/nfc/layer/f/emulation_layer_f_ST25R3916.cpp +++ b/src/nfc/layer/f/emulation_layer_f_ST25R3916.cpp @@ -211,9 +211,9 @@ bool ListenerST25R3916ForF::stop_emulation() _u.writeModeDefinition(0x00); } -bool ListenerST25R3916ForF::transmit(const uint8_t* tx, const uint16_t tx_len, const uint32_t timeout_ms) +bool ListenerST25R3916ForF::transmit(const uint8_t* tx, const uint16_t tx_len, const uint32_t /*timeout_ms*/) { - return _u.nfcfTransmit(tx, tx_len, timeout_ms); + return _u.nfcfEmulationTransmit(tx, tx_len); } // ------------------------------------------------------------ @@ -284,7 +284,6 @@ EmulationLayerF::State ListenerST25R3916ForF::goto_communicated() _u.writeDirectCommand(CMD_UNMASK_RECEIVE_DATA); // rfalCheckEnableObsModeRx(); - _u.update(); return update_communicated(); return EmulationLayerF::State::Communicated; } @@ -303,7 +302,6 @@ EmulationLayerF::State ListenerST25R3916ForF::goto_selected() (void)get_irq(I_par32 | I_crc32 | I_err232 | I_err132); _u.enable_interrupts(I_rxe32); - _u.update(); return update_selected(); return EmulationLayerF::State::Selected; } diff --git a/src/unit/unit_ST25R3916.hpp b/src/unit/unit_ST25R3916.hpp index 8d8b058..cf5c6aa 100644 --- a/src/unit/unit_ST25R3916.hpp +++ b/src/unit/unit_ST25R3916.hpp @@ -1901,6 +1901,8 @@ public: @return True if successful */ bool nfcfTransmit(const uint8_t* tx, const uint16_t tx_len, const uint32_t timeout_ms); + //! @brief Transmit in emulation (PICC) mode with minimal I2C overhead + bool nfcfEmulationTransmit(const uint8_t* tx, const uint16_t tx_len); /*! @brief Receive from NFC-F PICC @param[out] rx Receive buffer diff --git a/src/unit/unit_ST25R3916_nfcf.cpp b/src/unit/unit_ST25R3916_nfcf.cpp index dac522d..3321cd1 100644 --- a/src/unit/unit_ST25R3916_nfcf.cpp +++ b/src/unit/unit_ST25R3916_nfcf.cpp @@ -101,6 +101,16 @@ bool UnitST25R3916::nfcfTransmit(const uint8_t* tx, const uint16_t tx_len, const return wait_for_interrupt(I_txe32, timeout_ms) & I_txe32; } +bool UnitST25R3916::nfcfEmulationTransmit(const uint8_t* tx, const uint16_t tx_len) +{ + if (!tx || !tx_len) { + return false; + } + return writeDirectCommand(CMD_CLEAR_FIFO) && // + writeFIFO(tx, tx_len) && // + writeNumberOfTransmittedBytes(tx_len, 0) && writeDirectCommand(CMD_TRANSMIT_WITH_CRC); +} + bool UnitST25R3916::nfcfReceive(uint8_t* rx, uint16_t& rx_len, const uint32_t timeout_ms) { CHECK_MODE(); From 941cc79346d58cbe1a12df7dcf112f5b53d5dff1 Mon Sep 17 00:00:00 2001 From: GOB Date: Wed, 15 Apr 2026 16:55:22 +0900 Subject: [PATCH 4/4] Add separator environments to configuration files --- cap_cc1101_env.ini | 178 ++-------------------------------------- unit_nfc_env.ini | 198 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 203 insertions(+), 173 deletions(-) diff --git a/cap_cc1101_env.ini b/cap_cc1101_env.ini index b0be93b..e044cc1 100644 --- a/cap_cc1101_env.ini +++ b/cap_cc1101_env.ini @@ -3,6 +3,9 @@ ; -------------------------------- ; UnitTest ; -------------------------------- +[env:-----------------------------------------------separator0000] + + ; CapCC1101 (SPI) - Cardputer only [env:test_CapCC1101_CardputerADV] extends=Cardputer, option_release, arduino_latest @@ -13,6 +16,7 @@ lib_deps = ${Cardputer.lib_deps} ${test_fw.lib_deps} test_filter= embedded/test_st25r3916 +[env:-----------------------------------------------separator000] ; -------------------------------- ; Examples ; -------------------------------- @@ -60,6 +64,7 @@ build_flags = ${Cardputer.build_flags} ${option_release.build_flags} -D USING_CAP_CC1101 +[env:-----------------------------------------------separator01] ; ---- NFC-B [env:CapCC1101_NFCB_Detect_CardputerADV_Arduino_latest] extends=Cardputer, option_release, arduino_latest @@ -75,6 +80,7 @@ build_flags = ${Cardputer.build_flags} ${option_release.build_flags} -D USING_CAP_CC1101 +[env:-----------------------------------------------separator02] ; ---- NFC-F [env:CapCC1101_NFCF_Detect_CardputerADV_Arduino_latest] extends=Cardputer, option_release, arduino_latest @@ -125,6 +131,7 @@ build_flags = ${Cardputer.build_flags} ${option_release.build_flags} -D USING_CAP_CC1101 +[env:-----------------------------------------------separator03] ; ---- NFC-V [env:CapCC1101_NFCV_Detect_CardputerADV_Arduino_latest] extends=Cardputer, option_release, arduino_latest @@ -147,174 +154,3 @@ build_flags = ${Cardputer.build_flags} ${option_release.build_flags} -D USING_CAP_CC1101 -;------------------------------------ -[env:UnitNFC_NFCA_Dump_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Dump> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_ReadWrite_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ReadWrite> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_ValueBlock_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ValueBlock> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_NDEF_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/NDEF> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_Emulation_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Emulation> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - - -[env:UnitNFC_NFCF_Dump_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Dump> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_NDEF_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/NDEF> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_Subtract_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Subtract> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_ReadWriteMAC_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/ReadWriteMAC> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_JapanTransportationICCard_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/JapanTransportationICCard> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_Emulation_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Emulation> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCV_Dump_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/Dump> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCV_NDEF_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/NDEF> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCB_JapanIDCard_NanoC6_Arduino_latest] -extends=NanoC6, option_release, nanoc6_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCB/JapanIDCard> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -;------------ -[env:UnitNFC_NFCA_Dump_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Dump> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_ReadWrite_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ReadWrite> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_ValueBlock_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ValueBlock> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_NDEF_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/NDEF> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCA_Emulation_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Emulation> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - - -[env:UnitNFC_NFCF_Dump_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Dump> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_NDEF_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/NDEF> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_Subtract_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Subtract> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_ReadWriteMAC_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/ReadWriteMAC> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_JapanTransportationICCard_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/JapanTransportationICCard> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCF_Emulation_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Emulation> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCV_Dump_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/Dump> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCV_NDEF_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/NDEF> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC - -[env:UnitNFC_NFCB_JapanIDCard_NessoN1_Arduino_latest] -extends=NessoN1, option_release, pioarduino_latest -build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCB/JapanIDCard> -build_flags = ${option_release.build_flags} - -D USING_UNIT_NFC diff --git a/unit_nfc_env.ini b/unit_nfc_env.ini index 0c2560b..94a7122 100644 --- a/unit_nfc_env.ini +++ b/unit_nfc_env.ini @@ -1,5 +1,7 @@ ; For UnitNFC (I2C, ST25R3916) +[env:-----------------------------------------------separator00] + ; -------------------------------- ; UnitTest ; -------------------------------- @@ -143,8 +145,9 @@ lib_deps = ${NessoN1.lib_deps} test_filter= embedded/test_st25r3916 +[env:-----------------------------------------------separator0] ; -------------------------------- -; Examples +; Examples ; -------------------------------- ; Unit-NFC ; ---- NFC-A @@ -292,6 +295,8 @@ build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Emulati build_flags = ${option_release.build_flags} -D USING_UNIT_NFC + +[env:-----------------------------------------------separator1] ; ---- NFC-B ;Detect [env:UnitNFC_NFCB_Detect_Core_Arduino_latest] @@ -413,6 +418,7 @@ build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCB/JapanID build_flags = ${option_release.build_flags} -D USING_UNIT_NFC +[env:-----------------------------------------------separator2] ; ---- NFC-F ;Detect [env:UnitNFC_NFCF_Detect_Core_Arduino_latest] @@ -564,6 +570,7 @@ build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Emulati build_flags = ${option_release.build_flags} -D USING_UNIT_NFC +[env:-----------------------------------------------separator3] ; ---- NFC-V ;Detect [env:UnitNFC_NFCV_Detect_Core_Arduino_latest] @@ -865,5 +872,192 @@ build_flags = ${option_release.build_flags} ; build_flags = ${option_release.build_flags} ; -D USING_UNIT_NFC +; [env:-----------------------------------------------separator4] +; ;------------------------------------ +; [env:UnitNFC_NFCA_Dump_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Dump> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_ReadWrite_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ReadWrite> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_ValueBlock_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ValueBlock> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_NDEF_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/NDEF> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_Emulation_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Emulation> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + + +; [env:UnitNFC_NFCF_Dump_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Dump> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_NDEF_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/NDEF> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_Subtract_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Subtract> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_ReadWriteMAC_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/ReadWriteMAC> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_JapanTransportationICCard_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/JapanTransportationICCard> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_Emulation_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Emulation> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCV_Dump_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/Dump> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCV_NDEF_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/NDEF> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCB_JapanIDCard_NanoC6_Arduino_latest] +; extends=NanoC6, option_release, nanoc6_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCB/JapanIDCard> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:-----------------------------------------------separator5] +; ;------------ +; [env:UnitNFC_NFCA_Dump_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Dump> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_ReadWrite_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ReadWrite> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_ValueBlock_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/ValueBlock> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_NDEF_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/NDEF> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCA_Emulation_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Emulation> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + + +; [env:UnitNFC_NFCF_Dump_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Dump> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_NDEF_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/NDEF> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_Subtract_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Subtract> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_ReadWriteMAC_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/ReadWriteMAC> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_JapanTransportationICCard_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/JapanTransportationICCard> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_Emulation_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Emulation> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCV_Dump_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/Dump> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCV_NDEF_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCV/NDEF> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCB_JapanIDCard_NessoN1_Arduino_latest] +; extends=NessoN1, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCB/JapanIDCard> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + + +; [env:----------------------------------------------tab5_unit_nfc_a] + +; [env:UnitNFC_NFCA_Emulation_Tab5_Arduino_latest] +; extends=Tab5, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCA/Emulation> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC + +; [env:UnitNFC_NFCF_Emulation_Tab5_Arduino_latest] +; extends=Tab5, option_release, pioarduino_latest +; build_src_filter = +<*> -<.git/> -<.svn/> +<../examples/UnitUnified/NFCF/Emulation> +; build_flags = ${option_release.build_flags} +; -D USING_UNIT_NFC -; [env:----------------------------------------------]