BLUSENSE / DEVELOPER WIKI
NINASENSE · Developer platform

Uma placa.
Quatro formas
de programar.

Desenvolva com Arduino, programe em JavaScript com Espruino, execute Python via Bluetooth ou automatize sensores com nRFClaw. Use o mesmo hardware e alterne firmwares pelo navegador com o bootloader BLE.

nRF52832BLE 5 / S132 7.2.0LoRa LLCC68SWD / J-LINK / ST-Link57 × 28 mm
Placa NINASENSE original com rádio LoRa, botão e conector SWD
Preparação

01 Primeiros passos

O NINASENSE não é uma placa com USB integrado. A comunicação local ocorre por Bluetooth Low Energy; a gravação de baixo nível e a depuração podem ser feitas por SWD.

⚡

Alimentação

Alimente a placa com a tensão permitida, configure SW1 e conecte as antenas apropriadas antes de transmitir por LoRa.

◈

Bluetooth

Use Chrome ou Edge em ambiente HTTPS para conectar ao Studio e ao terminal MicroPython via Web Bluetooth.

⌘

Programação

O bootloader BLE pode trocar a aplicação. J-LINK/ST-Link ficam disponíveis para instalar firmware por SWD ou depurar.

Antes de gravar: confirme que sua placa possui o bootloader nRFClaw. Arduino e outras imagens gravadas diretamente por SWD podem sobrescrever a aplicação atual. Faça backup de flash/UICR caso existam chaves ou dados importantes.
Ecossistema

02 Escolha como deseja programar

C / C++

Arduino IDE

Use bibliotecas do ecossistema Arduino, configure GPIO, sensores e BLE, compile um sketch e grave por SWD.

Instalar integração →
JAVASCRIPT

Espruino

Programação interativa, console JavaScript e driver LLCC68 integrado ao fork NINASENSE.

Ver APIs LoRa →
PYTHON

MicroPython

Interpretador com REPL UART e Nordic UART Service (NUS) sobre Bluetooth, validado em hardware.

Abrir REPL Web →
LOW POWER / VM

nRFClaw

Descreva comportamento, compile em bytecode validado e programe automações BLE/LoRa.

Trabalhar com Studio →
Importante: o dispositivo executa um firmware de aplicação por vez. Trocar de Espruino para MicroPython ou nRFClaw substitui a aplicação na flash, sem precisar trocar a placa.
Sem cabo SWD

03 Trocar o firmware pelo navegador

Se o bootloader nRFClaw já estiver instalado na placa, você pode alternar entre nRFClaw, Espruino e MicroPython diretamente pelo navegador, sem J-LINK, ST-Link ou cabo UART.

Foto da placa NINASENSE com seta indicando o botão P0.21

Botão de recuperação: o botão a ser pressionado é o P0.21, indicado na imagem acima.

Desligue a placa em SW1.

Deixe o NINASENSE sem alimentação operacional antes de iniciar o modo de recuperação.

Pressione e mantenha pressionado o botão P0.21.

Mantenha o botão pressionado antes de ligar a placa. Em seguida, ligue em SW1 e solte o botão após a inicialização.

Abra studio.nrfclaw.cloud e clique em Devices.

Conecte ao dispositivo de programação/bootloader exposto pela placa e role até o final da página.

Na seção Programming & firmware, escolha o firmware desejado.

Use os botões nRFClaw, Espruino ou MicroPython, exatamente como mostrado na imagem abaixo. Se quiser usar um arquivo local, clique em Choose other firmware (.bin).

Aguarde a instalação e reinicie.

Após a gravação, reinicie a placa normalmente. O nome BLE e o comportamento do dispositivo passarão a corresponder ao firmware escolhido.

Captura de tela do nRFClaw Studio mostrando a área Programming & firmware com botões nRFClaw, Espruino e MicroPython

No Studio, entre em Devices e, no final da página, selecione o firmware apropriado em Programming & firmware.

Fluxo simplificado: para instalar Espruino, MicroPython ou nRFClaw, basta entrar no modo de recuperação com o botão P0.21, abrir studio.nrfclaw.cloud, clicar em Devices e escolher o firmware no final da página.

Arquivos disponíveis para download

ArquivoUsoLink
nrfclaw_bootloader.binInstalação do bootloader nRFClaw por SWDBaixar
nrfclaw_bootloader.hexInstalação do bootloader nRFClaw por SWDBaixar
nrfclaw_latest.binAplicação nRFClaw mais recenteBaixar
espruino_latest.binAplicação Espruino mais recente para NINASENSEBaixar
micropython_latest.binAplicação MicroPython mais recente para NINASENSEBaixar
Primeira instalação do bootloader: o bootloader nRFClaw deve ser gravado uma única vez por SWD, usando J-LINK ou ST-Link, a partir de nrfclaw_bootloader.bin ou nrfclaw_bootloader.hex. Depois disso, a troca entre firmwares de aplicação pode ser feita pelo navegador.
Atenção: para a troca de firmware pelo navegador, use apenas imagens de aplicação compatíveis com o layout do bootloader nRFClaw. Não envie imagens completas com SoftDevice ou bootloader no fluxo de atualização da aplicação.
Arduino IDE 1.8 / 2.x

04 Instalar a integração Arduino

O pacote NINASENSE Arduino Universal acrescenta a variante própria ao BSP Adafruit nRF52, SoftDevice S132 7.2.0, programador ST-Link/OpenOCD e monitor RTTSerial.

Pré-requisitos

FerramentaUsoObrigatório?
Arduino IDE 1.8 ou 2.xEditar e compilar sketchesSim, para fluxo gráfico
Python 3.9+Instalador e utilitáriosSim
Adafruit nRF52 BSPCore, bibliotecas e compiladorSim; instalar primeiro pelo Gerenciador de Placas da Arduino IDE
SEGGER J-LINKProgramação SWD e RTTPara J-LINK
OpenOCDST-Link SWD e RTTPara ST-Link

Etapa 1 — Instalar o BSP Adafruit nRF52

Antes de instalar o pacote NINASENSE FULL, configure o índice oficial da Adafruit na Arduino IDE e instale o pacote de placas Adafruit nRF52. Essa etapa é necessária porque a integração NINASENSE acrescenta uma variante ao core da Adafruit, não o substitui.

Abra as Preferências da Arduino IDE.

Na Arduino IDE 1.8: Arquivo → Preferências. Na Arduino IDE 2.x: Arquivo → Preferências (ou Settings na interface em inglês).

Adicione a URL oficial de placas da Adafruit.

No campo URLs Adicionais para Gerenciadores de Placas (Additional Boards Manager URLs), cole o endereço abaixo. Se já houver outras URLs, mantenha-as e adicione esta como uma nova entrada.

Adafruit · Boards Manager URL
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
Instale o BSP no Gerenciador de Placas.

Clique em OK, abra Ferramentas → Placa → Gerenciador de Placas (na IDE 2.x também é possível usar o ícone Boards Manager na barra lateral), pesquise por Adafruit nRF52 e instale o pacote de placas da Adafruit. Para o pacote NINASENSE V8.1.1, utilize uma versão compatível com a integração, como o core 1.7.0 empregado no desenvolvimento.

Confirme que o BSP Adafruit nRF52 está instalado.

Após concluir a instalação do core, prossiga para o download e a execução do instalador NINASENSE Arduino Universal FULL, conforme seu sistema operacional.

Ordem de instalação: 1) Arduino IDE; 2) URL e BSP Adafruit nRF52; 3) pacote NINASENSE FULL. Não instale o FULL antes do core.

Etapa 2 — Instalar o pacote NINASENSE FULL

Pacote recomendado: NINASENSE_Arduino_Universal_v8.1.1_FULL.zip. Ele deve incluir o S132 7.2.0 e a licença Nordic. Se o arquivo FULL ainda não estiver publicado no site, utilize o repositório de desenvolvimento e as instruções do mantenedor.

Baixar integração Arduino V8.1.1 FULL ↓

Instalação no seu sistema

Extraia o FULL, feche a IDE e execute no terminal:

Linux · shell
cd NINASENSE_Arduino_Universal_v8.1.1
./install_linux.sh --install-deps

O BSP Adafruit nRF52 deve estar instalado. O instalador pode oferecer Arduino CLI, OpenOCD e python3-tk. Use python3 setup.py --check para conferir sem modificar o sistema.

Configuração na Arduino IDE

Reinicie a IDE depois da instalação.

A variante é instalada no core nRF52 do Arduino. Para manter a versão do BSP compatível com a integração, siga as recomendações do release.

Selecione a placa NINASENSE.

No menu Ferramentas → Placa, escolha NINASENSE nRF52832 (S132 7.2.0 / SWD). Identificador CLI: adafruit:nrf52:ninasense.

Selecione o gravador.

Use J-LINK for Bluefruit (SEGGER) ou NINASENSE ST-Link (OpenOCD) em Ferramentas → Programador.

Verifique/compile um exemplo.

Abra NINASENSE_GPIO ou RTTSerial_Basic do pacote. Use Sketch → Verificar/Compilar antes da gravação.

A Arduino IDE 2.x não suporta os plugins Java da IDE 1.8. Use os aplicativos independentes RTTSerial e Flash SoftDevice instalados pelo pacote. O upload por SWD funciona pela integração do programador, quando devidamente configurado.
Sketches

05 Compile e grave seu programa

Teste o GPIO do botão sem depender de um LED onboard (o NINASENSE não possui LED de usuário permanentemente conectado).

Arduino · button_test.ino
#include <Arduino.h>
#include "RTTSerialSelect.h"

void setup() {
  pinMode(21, INPUT_PULLUP); // P0.21
  Serial.begin(115200);      // RTTSerial
  Serial.println("NINASENSE ready");
}

void loop() {
  Serial.print("Button P0.21: ");
  Serial.println(digitalRead(21)); // 1 = released, 0 = pressed
  delay(1000);
}

Use Sketch → Carregar usando Programador. Ligue o adaptador J-LINK ou ST-Link ao header H1: SWDIO, SWCLK, VDDNRF e GND. A referência VDDNRF não substitui uma alimentação dimensionada para a placa.

Cuidado com a flash: o sketch deve permanecer em 0x26000..0x6BFFF. Não use eraseall, recover ou o bootloader da Feather para instalar um sketch NINASENSE. Gravar via SWD substitui a aplicação existente.

Exemplos adicionais: BLE e temperatura

Os exemplos abaixo ilustram o uso do core Arduino com BLE e sensores. Compile e valide com a versão do BSP e do SoftDevice da sua placa antes de usar em campo.

Bluetooth LE Advertising com Bluefruit52Lib
Arduino · BLE advertising
#include <bluefruit.h>
void setup() {
  Bluefruit.begin();
  Bluefruit.setName("NINASENSE");
  Bluefruit.Advertising.addFlags(
    BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addName();
  Bluefruit.Advertising.setInterval(3200, 3200); // ~2 s
  Bluefruit.Advertising.start(0);
}
void loop() { delay(1000); }

Exemplo de referência; a compatibilidade entre core Adafruit 1.7.0 e S132 7.2.0 precisa ser confirmada no build e no hardware.

Sensor de temperatura DS18B20 no P0.20
Arduino · DS18B20 (bibliotecas OneWire e DallasTemperature)
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(20); // GPIO P0.20 / D20
DallasTemperature sensors(&oneWire);
void setup() { sensors.begin(); }
void loop() {
  sensors.requestTemperatures();
  float tempC = sensors.getTempCByIndex(0);
  // Envie tempC via RTTSerial, UART ou BLE de sua aplicação
  delay(2000);
}

Conecte o sensor conforme o datasheet da placa e utilize o pull-up correto na linha OneWire.

Gravar o SoftDevice separadamente

Abra NINASENSE Flash SoftDevice, selecione J-LINK ou ST-Link e confirme a verificação do arquivo s132_nrf52_7.2.0_softdevice.hex. A opção de gravação existe para preparar uma placa que ainda não tenha o SoftDevice adequado.

Se a placa já possui S132 7.2.0 e executa nRFClaw, Espruino ou MicroPython, não é necessário gravá-lo novamente. A operação de SoftDevice é separada do DFU de aplicação.
Diagnóstico

06 RTTSerial — depuração sem UART física

O RTTSerial permite visualizar logs na RAM por SWD. O caminho mais estável é usando J-LINK, mas o monitor também pode ser aberto com ST-Link + OpenOCD quando o firmware e a versão do OpenOCD suportarem RTT.

Diagrama de ligação do J-LINK-OB ao conector H1 da placa NINASENSE

Ligação recomendada do J-LINK-OB ao conector H1 do NINASENSE. O alvo deve estar alimentado normalmente; o pino VTref do J-LINK é apenas referência da tensão da placa.

Nota: ao usar o J-LINK OB deve-se usar a alimentação (VCC/GND) direto na entrada da placa, como as linhas pontilhadas mostram. Isso se deve porque a placa possui buck-booster que alimenta todo o circuito, inclusive o módulo LoRa. Se alimentar pelos pinos SWD, o LoRa e a saída 3V não irão funcionar. Em caso de usar o Segger J-LINK original, a sequência deve ser direto pelos pinos SWD e a placa deve ser alimentada por uma fonte adicional, já que no Segger o pino VCC é somente VTref.

Mapa de conexão Segger J-LINK original → NINASENSE

J-LINKSinalNINASENSE H1
Pin 1VTrefPin 3 — VDDNRF / VTref
Pin 7SWDIOPin 1 — SWDIO
Pin 9SWCLKPin 2 — SWCLK
Pin 4 (ou qualquer GND)GNDPin 4 — GND
J-LINK

SEGGER RTT

Usa JLinkExe e a conexão RTT TCP. Porta usada pelo monitor: 19021.

ST-LINK

OpenOCD RTT

Funciona quando OpenOCD possui suporte a RTT e o firmware escreve dados via SEGGER_RTT. Porta TCP do monitor: 19022.

Linux · abrir o monitor independentemente da IDE
python3 ~/Arduino/tools/RTTSerial/rttserial_monitor.py

Na Arduino IDE 1.8, use Ferramentas → Open RTTSerial. Na IDE 2.x, inicie o programa independente. Escolha o probe na parte superior da janela e conecte. Feche o RTTSerial antes de gravar firmware, porque o programador precisa do acesso SWD.

A conexão RTT sozinha não gera logs: o firmware precisa ter suporte a SEGGER_RTT e escrever no canal 0. O exemplo RTTSerial_Basic foi criado justamente para validar isso.
OpenOCD: se estiver usando ST-Link, prefira versões recentes do OpenOCD e mantenha a correção V8.1.1 ou superior, que usa a sintaxe rtt setup 0x20004C28 0xB3B8 {SEGGER RTT}.
JavaScript embarcado

07 Espruino no NINASENSE

O fork nearmeter/Espruino (branch nrfclaw) adiciona suporte ao hardware NINASENSE e ao bootloader de aplicação. Não confunda com uma compilação genérica do Espruino para outra placa nRF52832.

Instale a aplicação Espruino.

Pelo Studio/DFU, utilize o arquivo de aplicação espruino_..._ninasense.app.bin produzido pelo fork.

Abra o console.

Use UART em P0.15 (TX) e P0.16 (RX), 115200 baud, ou abra a IDE BLE

Execute JavaScript interativamente.

O interpretador responde sem precisar recompilar o firmware a cada alteração de script.

Espruino · console JavaScript
1 + 2             // =3
NINASENSE.battery();
NINASENSE.batteryRaw();
O console UART de desenvolvimento do fork é documentado e validado. A interface BLE e os detalhes de disponibilização do console podem variar conforme o build. Veja o README da branch nrfclaw para a referência do firmware que estiver usando.
LLCC68 · 915 MHz

08 LoRa no Espruino — APIs disponíveis

A build NINASENSE do fork Espruino expõe funções nativas de LoRa no objeto global NINASENSE. Não é necessário iniciar um driver SPI JavaScript genérico para usar essas funções.

FunçãoDescriçãoExemplo
loraInit()Inicializa o LLCC68.NINASENSE.loraInit()
loraConfig({...})Define frequência, potência e perfil LoRa.NINASENSE.loraConfig({...})
loraSend(texto)Solicita transmissão de um pacote.NINASENSE.loraSend("TEST")
loraReceive(timeout)Aguarda recepção pelo intervalo fornecido em ms.NINASENSE.loraReceive(15000)
loraSleep()Coloca o rádio em modo de baixo consumo.NINASENSE.loraSleep()

Configurar, transmitir e receber

Espruino · LLCC68 full example
// Perfil LoRa privado de exemplo — não é LoRaWAN
NINASENSE.loraInit();

NINASENSE.loraConfig({
  frequency: 915000000,
  power: 14,
  sf: 7,
  bandwidth: 125,
  cr: 1,           // coding rate 4/5
  syncWord: 0x12,
  preamble: 8
});

print("TX:", NINASENSE.loraSend("HELLO NINASENSE"));
var packet = NINASENSE.loraReceive(15000);
print("RX:", packet);
NINASENSE.loraSleep();

Para transmitir a cada dez segundos:

Espruino · transmissões periódicas
NINASENSE.loraInit();
var counter = 0;
setInterval(function () {
  var message = "T" + counter++;
  print("TX", message, NINASENSE.loraSend(message));
}, 10000);
Perfil padrão documentado:915 MHz14 dBmSF7BW 125 kHzCR 4/5Sync 0x128 símbolos de preâmbulo
Status de validação: inicialização LLCC68 está marcada como PASS na documentação do fork. A própria documentação informa que testes finais de TX/RX e consumo low-power ainda podem exigir validação adicional. Portanto, estas são APIs documentadas/implementadas, não uma promessa de testes de campo completos.
O rádio LLCC68 compartilha o periférico SPI com o firmware. Não use SPI1 diretamente em JavaScript simultaneamente a uma operação LoRa ativa. Use uma antena apropriada para sua versão de RF e cumpra as regras locais de frequência/potência.
Python embarcado

09 MicroPython pelo Web Bluetooth REPL

O port NINASENSE do MicroPython V0.3 foi validado com S132 7.2.0, console UART e NUS BLE bidirecional. Quando esse firmware está ativo, a placa aparece como NINA-MPY.

REPL BLE

Sem adaptador serial

Conecte pelo navegador e execute comandos Python diretamente no NINASENSE.

Abrir Terminal Web BLE →
REPL UART

Diagnóstico local

Porta UART a 115200 baud em P0.15/P0.16, usando adaptador USB-UART 3,3 V.

Usar o REPL no navegador

Execute a aplicação MicroPython no NINASENSE.

Não deixe P0.21 pressionado ao ligar para uso normal; com o botão pressionado antes do power-on, o dispositivo entra em recuperação DFU, não no REPL MicroPython.

Abra o Web Bluetooth REPL.

É necessário Chrome/Edge com suporte a Web Bluetooth, computador com Bluetooth ligado e página servida por HTTPS.

Clique em “Conectar” e selecione NINA-MPY.

O terminal acessa o serviço Nordic UART, habilita notificações e transmite código em pacotes limitados a 20 bytes.

Envie comandos Python e observe o resultado.

Use Enter, Ctrl+C para interromper execução e Ctrl+D para soft reboot quando necessário.

MicroPython · exemplo de REPL
import sys, gc
from machine import Pin

print(sys.platform)  # nrf
gc.collect()
print(gc.mem_free())
button = Pin("BUTTON", Pin.IN, Pin.PULL_UP)
print(button.value())  # 1 = released, 0 = pressed
Validação em hardware: o teste BLE NUS recebeu NINASENSE_BLE_V03_OK e BLE_HEAP 33312. A aplicação enviou e recebeu dados pelo Bluetooth sem adaptador UART físico.
Segurança: esta build de laboratório expõe o REPL NUS sem autenticação. Quem conseguir conectar pode executar comandos Python. Não deixe a placa acessível em produção com esse REPL aberto sem implementar um controle de acesso.

Serviço NUS: 6e400001-b5a3-f393-e0a9-e50e24dcca9e. Escrita RX: ...0002...; notificações TX: ...0003.... No modo ATT MTU 23, o máximo usual de payload por escrita é 20 bytes.

Automação nativa

10 nRFClaw + Studio

O nRFClaw é um firmware de máquina virtual orientado a eventos para BLE, LoRa, sensores e baixo consumo. Uma vez que o bootloader nRFClaw esteja instalado, você pode alternar entre nRFClaw, Espruino e MicroPython diretamente no Studio.

Entre no modo de recuperação com o botão P0.21.

Com a placa desligada, mantenha o botão P0.21 pressionado e ligue a placa.

Abra studio.nrfclaw.cloud e clique em Devices.

Conecte ao dispositivo exibido pelo bootloader/aplicação e role até a seção Programming & firmware.

Escolha o firmware desejado.

Selecione nRFClaw, Espruino ou MicroPython. Para arquivos próprios, use Choose other firmware (.bin).

Compile, envie e reinicie.

Se estiver usando o nRFClaw como aplicação principal, você poderá então programar comportamentos e enviar instruções ao dispositivo pelo Studio.

nRFClaw · exemplo de comportamento
Read temperature and battery every 10 minutes,
format both values and transmit them using LoRa.
Repeat continuously after boot.

Também é possível utilizar o nRFClaw CLI, por exemplo:

Linux · firmware update (CLI)
python3 nrfclaw_cli.py --device YOUR_DEVICE_ID \
  firmware-upgrade ../build/ninasense/nrfclaw_ninasense.bin

Os binários mais recentes também podem ser obtidos diretamente em nearmeter.com/downloads: nrfclaw_latest.bin, espruino_latest.bin e micropython_latest.bin.

Referência de hardware

11 Pinagem e mapa de memória

Referência para NINASENSE nRF52832 / Rev. 1.1. Na variante Arduino, Dx corresponde a P0.x; respeite os pinos reservados para o rádio.

FunçãonRF52832Observação
Botão de recuperaçãoP0.21Ativo em nível baixo
UART TX / RXP0.15 / P0.16115200 baud
SPI LLCC68 SCK / MOSI / MISOP0.02 / P0.04 / P0.05Compartilhado com LoRa
LLCC68 NSS / BUSY / DIO1 / NRSTP0.03 / P0.06 / P0.09 / P0.19Controle de rádio
LoRa RXEN / TXENP0.07 / P0.08Chaves RF
I²C SCL / SDAP0.13 / P0.18Sensores externos / LIS2DH12
DS18B20P0.20Sensor externo
ADC bateriaP0.28Divisor de medição
GPIO/ADC adicionaisP0.29 / 30 / 31Conforme conector da placa

Header H1 — SWD

PinoSinalFunção
1SWDIODados SWD
2SWCLKClock SWD
3VDDNRFReferência da tensão do alvo
4GNDTerra

Memória flash — áreas que devem ser respeitadas

EndereçosUsoOperação permitida
0x00000–0x25FFFMBR + S132 7.2.0Ferramenta SoftDevice, quando necessário
0x26000–0x6BFFFAplicação (280 KiB)DFU BLE ou SWD da aplicação
0x6C000–0x79FFFDados persistentesPreservar
0x7A000–0x7EFFFBootloader BLEPreservar
0x7F000–0x7FFFFMetadados DFUPreservar
0x10001014UICR BOOTLOADERADDRValor esperado: 0x7A000

Orientações para projetos low power

Prefira interrupções e wake-up por evento, evite polling contínuo, coloque o LLCC68 em sleep quando não estiver transmitindo e não deixe GPIOs flutuantes ou periféricos externos energizados desnecessariamente. A autonomia depende do firmware carregado, intervalo de advertising, alimentação e sensores conectados; medidas feitas com nRFClaw não são automaticamente válidas para Arduino, Espruino ou MicroPython.

Troubleshooting

12 Problemas comuns

A placa não aparece como porta USB/COM

É esperado. O NINASENSE não traz uma interface USB-serial permanente. Use Bluetooth NUS, RTT via SWD ou uma interface USB-UART externa 3,3 V.

Não encontro NINA-MPY no navegador

Confirme que o firmware MicroPython está ativo (não o modo bootloader). Ligue com o botão P0.21 solto, ative Bluetooth, use navegador compatível e HTTPS. Se o dispositivo estiver conectado a outro cliente BLE, desconecte-o.

Não encontro nRFClaw-DFU após ligar com P0.21 pressionado

Confira se a placa contém o bootloader nRFClaw. Mantenha o botão pressionado antes de aplicar alimentação e solte após o início. Tente desligar completamente via SW1. Uma placa sem bootloader requer instalação inicial por SWD.

O BLE conecta, mas o MicroPython não recebe comandos

Ative notificações na característica TX e escreva na RX do NUS. Com MTU 23, divida comandos em blocos de até 20 bytes, preferencialmente com um intervalo curto entre escritas. O terminal Web BLE fornecido nesta wiki já aplica essa limitação.

RTTSerial conecta, porém não exibe atividade

A sonda pode estar conectada ao alvo, mas o firmware não está enviando RTT. Use o exemplo RTTSerial_Basic, confira a escolha do probe, a alimentação e se outros processos estão utilizando o dispositivo SWD.

OpenOCD informa “rtt setup <address> <size> <ID>”

A sintaxe exige o identificador. Use a correção V8.1.1 e confirme rtt setup 0x20004C28 0xB3B8 {SEGGER RTT}.

Erro ao gravar com NINASENSE ST-Link: program.params.verbose

Use a integração V8.1 ou posterior, que inclui program.params.verbose e program.params.quiet no recipe. Reinicie o Arduino IDE após atualizar os arquivos da plataforma.

O Arduino IDE 2.x não mostra os menus RTTSerial e Flash SoftDevice

É uma limitação da IDE 2.x com os antigos plugins Java de Ferramentas. Use os aplicativos independentes instalados pelo pacote; a seleção de placa e de programador continua disponível na IDE.