Uso de NFC no Seeed Studio XIAO nRF52840 (Sense)
Ambas as séries Seeed Studio XIAO nRF52840 são equipadas com um módulo NFC (Near Field Communication) baseado no periférico NFCT (Near Field Communication Tag) integrado do nRF52840. Ele oferece suporte à funcionalidade de Tag NFC Tipo 2. Ao conectar uma antena NFC externa, o XIAO nRF52840 pode atuar como uma tag NFC e ser lido por smartphones e outros leitores NFC.
Este wiki orienta você por todo o fluxo de trabalho de uso de NFC — desde a instalação da biblioteca, conexão de hardware, sintonia da antena, até a verificação da configuração e criação da sua própria tag NFC.
Este tutorial é baseado na biblioteca XIAO_nRF52840_NFC. A versão 1.1.13 de Seeed nRF52 Boards foi testada e aprovada.
Trabalho preparatório
Para a instalação das bibliotecas da placa, consulte este tutorial para concluir a instalação de Seeed nRF52 Boards. Se você já instalou, podemos prosseguir.

Certifique-se de selecionar a placa Seeed XIAO nRF52840 no Boards Manager. A biblioteca antiga "Seeed nRF52 mbed-enabled Boards" não é mais mantida e não deve ser usada.
Hardware necessário
| Seeed Studio XIAO nRF52840 | Seeed Studio XIAO nRF52840 Plus |
|---|---|
![]() | ![]() |
| Seeed Studio XIAO nRF52840 Sense | Seeed Studio XIAO nRF52840 Sense Plus |
![]() | ![]() |
A funcionalidade NFC básica funciona apenas com a antena soldada em NFC1/NFC2. Após testes da comunidade (agradecimentos especiais a andriandreo do fórum da Seeed), ambas as antenas a seguir funcionaram imediatamente após a soldagem, sem necessidade de sintonia adicional do circuito:
- MOLEX 1462360051
- TAOGLAS FXR.07.A.DG
Posteriormente, adicionamos dois capacitores de sintonia de 43 pF de cada pad NFC (D14, D15) para GND para a TAOGLAS FXR.07.A.DG, a fim de aumentar ainda mais a distância de leitura. O valor de capacitor de ~40 pF foi calculado a partir da subseção "6.14.10 NFCT antenna recommendations" na folha de dados de especificação do produto do MCU nRF52840.
Se você tiver um comportamento instável (pop-ups incompletos, detecção intermitente), adicionar capacitores de casamento melhorará significativamente a confiabilidade. Consulte Antenna Tuning para mais detalhes.
Para mais percepções de testes em cenários reais, confira a discussão original no fórum.
Software necessário
| Item | Versão / Observações |
|---|---|
| Arduino IDE | 1.8.x ou posterior |
| Seeed nRF52 Boards | 1.1.13 (instalar via Arduino IDE Boards Manager) |
| XIAO_nRF52840_NFC Library | Baixe em GitHub, instale via Sketch > Include Library > Add .ZIP Library (veja abaixo) |
| App NFC Tools | Android / Apple |
Instalando a biblioteca XIAO_nRF52840_NFC
Esta biblioteca não está incluída no Arduino Library Manager — você precisa instalá-la manualmente a partir do GitHub.
- Passo 1. Acesse o repositório GitHub XIAO_nRF52840_NFC, clique no botão verde Code e selecione Download ZIP.

- Passo 2. Abra o Arduino IDE, vá em Sketch > Include Library > Add .ZIP Library....

-
Passo 3. Selecione o arquivo ZIP baixado (
XIAO_nRF52840_NFC-main.zip). Você deverá ver "Library added to your libraries" na barra de status. -
Passo 4. Reinicie o Arduino IDE. Após reiniciar, você deverá ver os exemplos em File > Examples > XIAO_nRF52840_NFC.

Conexão de hardware
Os pinos NFC do XIAO nRF52840 estão localizados na parte de trás da placa, identificados como P0.09 e P0.10:
D14 (P0.09) — NFC1 — Antenna end A
D15 (P0.10) — NFC2 — Antenna end B
Solde a antena NFC em P0.09 e P0.10 como mostrado abaixo:
Neste tutorial, estamos usando o Seeed Studio XIAO nRF52840 com uma antena NFC recomendada pela Nordic para demonstração.
Vista frontal:

Vista traseira:

- A antena NFC é um sinal diferencial e não tem polaridade — qualquer extremidade pode ir para D14 ou D15.
- Os dois pinos saem de fábrica no modo de antena NFC (UICR =
0xFFFFFFFF) em XIAO nRF52840 e XIAO nRF52840 Sense. Em XIAO nRF52840 Plus e XIAO nRF52840 Sense Plus, eles podem estar configurados como GPIO por padrão — verifique primeiro o UICR (consulte Step 1). - Recomenda-se medir a resistência em corrente contínua entre os terminais da antena com um multímetro antes da soldagem (geralmente 1–3 Ω) para confirmar a continuidade e descartar curtos.
Sintonia da antena
O NFC depende de um circuito ressonante tanque LC. A bobina da antena fornece a indutância (L) e os capacitores de casamento fornecem a capacitância (C). Juntos, eles formam um circuito ressonante na frequência alvo:
f = 1 / (2π√(LC))
O alvo é 13,56 MHz. Sem capacitores externos, apenas a capacitância parasita interna de ~4 pF do nRF52840 participa — o ponto de ressonância fica longe de 13,56 MHz. A função NFC ainda vai funcionar, mas a comunicação pode ser instável: pop-ups no celular podem mostrar "NFC tag detected" sem o conteúdo completo, e códigos de erro podem aparecer na saída serial. Adicionar capacitores de casamento leva o tanque LC à ressonância e melhora drasticamente a confiabilidade.
Todas as operações abaixo são baseadas no documento Nordic Official NFC Antenna Design. O chip entrega potência total apenas quando enxerga uma carga diferencial de 100 Ω em ressonância.
Parâmetros Fixos
| Item | Valor Fixo | Fonte |
|---|---|---|
| Frequência de operação f | 13,56 MHz | Padrão NFC global, codificado em hardware no nRF52840 |
| Impedância de carga | 100 Ω (diferencial) | White paper da Nordic nWP_026 |
Medições Necessárias
- Indutância da bobina L — meça com um multímetro, medidor LCR ou VNA a 100 kHz, valor em µH.
- Resistência de perda da bobina R — leia a resistência em série na mesma tela, em Ω.
Etapa 1: Pré-verificação de Impedância
Usando a fórmula de transformação de impedância:

Alvo: 90–120 Ω, quanto mais próximo de 100 Ω melhor.
| Resultado | Significado | Próxima Etapa |
|---|---|---|
| < 60 Ω | Antena muito pequena | Adicione espiras ou aumente a área da bobina |
| 90 – 120 Ω | APROVADO | Vá para a Etapa 2 |
| > 150 Ω | Antena muito grande | Remova espiras ou reduza a área da bobina |
Só depois de passar por este filtro é que você calcula os capacitores; caso contrário, qualquer valor de capacitor é inútil.
Etapa 2: Calcular a Capacitância de Ressonância
Fórmula com 13,56 MHz fixos:

Isso fornece a capacitância total necessária. Para uma rede π, divida igualmente:
C1 = C2 = C / 2
Escolha o valor E12 mais próximo (por exemplo, 39 pF, 47 pF, 56 pF, 68 pF …).
Antena Recomendada
Se você não tiver um medidor LCR e preferir um ponto de partida conhecido, uma antena de bobina NFC padrão de 13,56 MHz funciona bem com o XIAO nRF52840. Abaixo está a antena que usamos durante os testes:
| Parâmetro | Valor |
|---|---|
| Tipo | Bobina NFC de 13,56 MHz |
| Resistência CC | ~2,3 Ω |
| Conexão | Solde diretamente em NFC1 / NFC2 |
A antena mostrada acima não é um produto da Seeed Studio. Você pode usar qualquer antena de bobina NFC de 13,56 MHz com especificações semelhantes. O ponto-chave é medir a indutância e calcular o valor do capacitor de casamento usando as fórmulas acima.
Configuração NFC & Exemplos
O fluxo de trabalho a seguir primeiro verifica a configuração de hardware NFC e depois orienta você na criação da sua própria tag NFC. Usamos a biblioteca XIAO_nRF52840_NFC, que encapsula o periférico NFCT do nRF52840 em uma API Arduino simples.
A biblioteca inclui seis sketches de exemplo:
| Categoria | Sketch de Exemplo | Finalidade |
|---|---|---|
| Verificação | xiao-nrf52840-nfc-probe | Verificar configuração de pinos UICR + verificar link RF |
xiao-nrf52840-nfc-restore-uicr | Restaurar pinos NFC se eles tiverem sido alterados para GPIO | |
| Correção Plus | xiao-nrf52840-plus-bootloader-verify | Verificar o bootloader nas variantes Plus antes de restaurar o UICR |
| Demo | xiao-nrf52840-nfc-tag-readonly | Tag Somente Leitura — o celular lê uma URL fixa |
xiao-nrf52840-nfc-tag-writable | Tag Gravável — o celular pode gravar dados na tag | |
xiao-nrf52840-nfc-tag-persistent | Tag Persistente — os dados sobrevivem a ciclos de energia (armazenados em Flash) |
Etapa 1: Verificar Configuração de Pinos UICR
Finalidade: Confirmar que P0.09/P0.10 estão configurados como pinos de antena NFC.
Abra File > Examples > XIAO_nRF52840_NFC > xiao-nrf52840-nfc-probe e faça o upload para sua placa. (As Etapas 1 e 2 usam o mesmo sketch — um único upload faz as duas.)
Abra o Serial Monitor em 115200 baud. As primeiras linhas mostram o status atual do UICR:

Como interpretar a saída:
| Valor UICR | Significado | Ação |
|---|---|---|
0xFFFFFFFF | Modo de antena NFC ✅ | Prossiga para a Etapa 2 |
0xFFFFFFFE | Modo GPIO ❌ | Faça upload de xiao-nrf52840-plus-bootloader-verify primeiro (variantes Plus), depois faça upload de xiao-nrf52840-nfc-restore-uicr, envie RESTORE_NFC no Serial Monitor, confirme Verify result: PASS e então desligue e ligue a placa |
XIAO nRF52840 e XIAO nRF52840 Sense saem de fábrica com UICR = 0xFFFFFFFF (modo NFC). Na maioria dos casos, esta etapa é aprovada e nenhuma ação é necessária. XIAO nRF52840 Plus e XIAO nRF52840 Sense Plus podem sair em modo GPIO — se a saída mostrar 0xFFFFFFFE, siga a ação de restauração abaixo.
Etapa 2: Probe — Verificar o Link RF
Finalidade: Confirmar que quadros de comando NFC do celular conseguem alcançar a placa.
Após a verificação do UICR, o mesmo sketch entra automaticamente no modo Probe. Nesse modo, a tag não responde a nenhum quadro — ela apenas escuta. Isso isola a direção de recepção, facilitando a confirmação de que o link RF está ativo.
Coloque a área NFC do seu celular próxima à antena por alguns segundos e então verifique a saída do Serial Monitor:

Indicadores principais:
| Contador | Significado | Critério de Aprovação |
|---|---|---|
FIELD_DETECT | Campo RF de 13,56 MHz do celular detectado | > 0 |
FIELD_LOST | Campo RF desapareceu | Próximo de FIELD_DETECT |
READER_FRAMES | Quadros de comando NFC recebidos do celular | > 0 (crítico) |
READER_FRAMES > 0significa que os quadros de comando do celular chegaram com sucesso à placa e o link RF bidirecional está estabelecido. O celular não deve mostrar um pop-up neste estágio (o modo Probe não responde).
Códigos de erro comuns:
| Código de Erro | Nome | Significado |
|---|---|---|
0x01 | FRAMEDELAYTIMEOUT | Tempo limite de atraso de quadro — a tag não recebeu o próximo comando dentro do intervalo esperado |
0x02 | NFCANTENNAERROR | NFCT não consegue acionar a antena — geralmente causado por desajuste de impedância ou ausência de antena |
0x80 | Erro de recepção de quadro RX | Quadro recebido, mas a verificação de CRC/paridade falhou (pode aparecer na etapa Somente Leitura) |
Demo 1: Tag Somente Leitura
Finalidade: Uma tag NFC simples que transmite uma URL fixa. O celular a lê e exibe um pop-up — o caso de uso NFC mais comum.
Abra File > Examples > XIAO_nRF52840_NFC > xiao-nrf52840-nfc-tag-readonly e faça o upload. Coloque seu celular sobre a antena por 2–3 segundos.

O celular deve exibir um pop-up contendo o link https://seeedstudio.com.

Indicadores principais:
| Contador | Significado | Critério de aprovação |
|---|---|---|
FIELD_DETECT | Campo RF de 13,56 MHz do telefone detectado | > 0 |
SELECTED | Telefone concluiu o fluxo de anticolisão + handshake SELECT | > 0 (indicador principal) |
READ | Telefone leu com sucesso as páginas de dados NDEF | > 0 |
FAST_READ | Número de requisições FAST_READ recebidas | 0 ou pequeno (normal) |
UNSUPPORTED | Telefone enviou um comando não suportado | Alguns são normais |
SELECTED > 0é o limite principal: o fluxo de anticolisão foi aprovado e o telefone reconheceu a Tag Tipo 2.READ > 0significa que as páginas NDEF foram realmente lidas. A verificação final é o telefone exibir o pop-up com a URL completa.
A URL é codificada diretamente no sketch. Para alterá-la, abra o sketch e modifique a mensagem NDEF, depois envie novamente. Os dados da tag são armazenados em RAM e serão perdidos após um ciclo de energia.
Demo 2: Tag Gravável
Objetivo: Uma tag NFC que o telefone pode tanto ler quanto gravar. A tag começa com uma URI padrão (https://seeedstudio.com), e o telefone pode sobrescrevê-la com novo conteúdo NDEF usando o app NFC Tools.
Abra File > Examples > XIAO_nRF52840_NFC > xiao-nrf52840-nfc-tag-writable e envie o sketch.
Passos de teste:
- Passo 1. Abra o Serial Monitor em 115200 baud. O log de boot mostra a identidade da tag (NFCID1), o dump inicial da memória e a URI padrão (
https://seeedstudio.com).

O log de boot também imprime a URI padrão que a tag irá transmitir:

-
Passo 2. Leia primeiro a tag com o seu telefone. O telefone deve detectar
https://seeedstudio.com. -
Passo 3. Abra o NFC Tools (ou qualquer app de gravação NFC) e grave o conteúdo desejado na tag. Neste exemplo, gravamos um texto simples:
hello!. Depois de inserir o conteúdo, clique em "Write / XX Bytes" — a contagem de bytes depende do tamanho do seu conteúdo.

- Passo 4. Leia a tag novamente. O telefone agora deve exibir o conteúdo recém-gravado (
hello!).

Depois que o telefone sai do campo NFC, o Serial Monitor mostra os indicadores principais atualizados, refletindo a sessão completa de leitura após gravação:

Indicadores principais:
| Contador | Significado | Critério de aprovação |
|---|---|---|
FIELD_DETECT | Campo RF de 13,56 MHz do telefone detectado | > 0 |
SELECTED | Telefone concluiu o fluxo de anticolisão + handshake SELECT | > 0 (indicador principal) |
READ | Telefone leu com sucesso as páginas de dados NDEF | > 0 |
WRITE | Telefone gravou dados com sucesso na tag | > 0 (indicador principal) |
FAST_READ | Número de requisições FAST_READ recebidas | 0 ou pequeno (normal) |
WRITE_REJECTED | Tentativas de gravação rejeitadas (páginas protegidas) | 0 (nunca deve ocorrer com apps padrão) |
UNSUPPORTED | Telefone enviou um comando não suportado | Alguns são normais |
WRITE > 0é o limite principal para a Tag Gravável: o telefone gravou dados com sucesso na tag.WRITE_REJECTEDdeve sempre ser0— se ele aumentar, algo deu errado durante a sessão de gravação.
Os dados gravados são armazenados apenas em RAM e serão perdidos após um ciclo de energia, restaurando a URI padrão — o que facilita testes repetidos de gravação. Para dados que precisam sobreviver a ciclos de energia, use o demo Persistent Tag abaixo.
Demo 3: Tag Persistente
Objetivo: Uma tag NFC cujos dados sobrevivem a ciclos de energia. O conteúdo NDEF é armazenado na memória Flash interna do nRF52840 (LittleFS), portanto persiste mesmo depois que a placa é desligada e ligada novamente — ideal para implantações de longo prazo.
Abra File > Examples > XIAO_nRF52840_NFC > xiao-nrf52840-nfc-tag-persistent e envie o sketch.
Passos de teste:
- Passo 1. No primeiro boot, abra o Serial Monitor em 115200 baud. O log de boot mostra a URI padrão e
Storage state: no stored content, using default URI.

-
Passo 2. Leia a tag com o seu telefone. No primeiro boot, o telefone detecta
https://seeedstudio.com. -
Passo 3. Abra o NFC Tools (ou qualquer app de gravação NFC) e grave um novo registro de texto ou URL na tag. Neste exemplo, gravamos um texto simples:
hi!. Depois de inserir o conteúdo, clique em "Write / XX Bytes" — a contagem de bytes depende do tamanho do seu conteúdo.

- Passo 4. Depois que o telefone sai do campo NFC, o Serial Monitor imprime
Storage: tag content saved to flash, confirmando que o conteúdo foi gravado na Flash interna.

-
Passo 5. Desligue e ligue a placa — desconecte o cabo USB e conecte novamente.
-
Passo 6. Após o reboot, o Serial Monitor imprime
Storage state: previous content restored from flash, confirmando que o conteúdo gravado sobreviveu ao ciclo de energia.

- Passo 7. Leia a tag novamente com o seu telefone. O telefone deve exibir o conteúdo gravado no Passo 3 — mesmo após o ciclo de energia.


Indicadores principais:
Os indicadores principais são os mesmos da Tag Gravável — consulte a tabela da Tag Gravável para a lista completa.
Storage state: previous content restored from flashno log de boot é a confirmação principal para a Tag Persistente: os dados sobreviveram ao ciclo de energia.Storage: tag content saved to flashconfirma que cada gravação foi salva na Flash.
No Passo 7, o telefone apenas lê o conteúdo restaurado — ele não grava nada. Portanto, WRITE permanecerá 0 nos contadores, o que é esperado. Você só verá WRITE > 0 durante a sessão de gravação anterior (Passos 3–4).
- O conteúdo armazenado fica no filesystem da Flash interna (
/nfc-tag-data.bin), separado da área do sketch — ele sobrevive a novos envios de sketch. - Para restaurar a URI padrão a qualquer momento, envie
RESET_TAGno Serial Monitor. - A gravação na Flash acontece uma vez por sessão de gravação, depois que o telefone sai do campo. Se você remover o telefone cedo demais, o conteúdo pode ficar incompleto — basta gravar novamente para corrigir.
Resumo dos três demos:
| Demo | Armazenamento de dados | Sobrevive a ciclo de energia | Gravável por telefone |
|---|---|---|---|
| Tag somente leitura | RAM | ❌ | ❌ |
| Tag gravável | RAM | ❌ | ✅ |
| Tag persistente | Flash | ✅ | ✅ |
Recursos
- [GitHub] XIAO_nRF52840_NFC Library — A biblioteca NFC de código aberto usada neste tutorial
Agradecimentos especiais
Agradecimentos especiais a andriandreo pelos extensos testes em condições reais das antenas NFC (MOLEX 1462360051 e TAOGLAS FXR.07.A.DG) no XIAO nRF52840, e a PJ_Glasso pela orientação no cálculo de capacitores e solução de problemas de compatibilidade com iPhone.
Se você encontrar problemas de NFC não abordados aqui, talvez encontre dicas úteis no tópico original do fórum:
Suporte técnico e discussão de produtos
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



