Merge branch 'develop'

This commit is contained in:
GOB
2026-04-16 16:31:45 +09:00
8 changed files with 236 additions and 183 deletions
+5
View File
@@ -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
+7 -171
View File
@@ -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
@@ -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;
}
@@ -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;
}
+4
View File
@@ -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);
/*!
@@ -1899,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
+10
View File
@@ -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();
+10
View File
@@ -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();
+196 -2
View File
@@ -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:----------------------------------------------]