V
Visla Hardware
Portal R&D
🔧 Bench tools & accessory ✓ Verified · 2026-07-17 🧪 Tested bench beacon nordic ble

Holyiot 25027 (nRF54L15 + Buzzer)

Holyiot
📦 Dev board
€10.39
bench
🔊 BUZZER su P1.06 — trovato al banco, non documentato❌ NIENTE pulsante (≠ 25008) · ✅ accelerometro LIS2DH12🔍 'Trova il mio tag' FUNZIONA: XIAO → beacon fischia🔓 SWD aperto + firmware Visla (devID 1D523C82)
🛒 Ordine
Data ordine · 2026-06-21
Rif · AliExpress #3074783111333147
📑 Indice sezioni

Curiosity

La variante col CICALINO. Stesso nRF54L15 del 25008lo stesso chip del Visla Tag di produzione — ma con un buzzer a bordo e senza pulsante. Serigrafia PCB: HOLYIOT-25027-V1.0.

È il beacon che può farsi SENTIRE: “trova il mio tag”, allarme acustico, conferma sonora. Al banco: SWD aperto, firmware Visla girante, e il pin del cicalino trovato — pur non essendo documentato da nessuna parte.

🛒 AliExpress · €10.39 · “nRF54L15 Faro Bluetooth 6.0 con sensore accelerometro cicalino”

Specs (dalla foto PCB — l’unica fonte)

SoCNordic nRF54L15 (N54L15 QFAAB0) — Cortex-M33 + TrustZone
BuzzerP1.06 ⚠️ trovato al banco, non documentato
AccelerometroLIS2DH12 (etichettato sul PCB)
PulsanteASSENTE
LEDRGB (P2.09/P1.10/P2.07 — presunti dal 25008)
AlimentazioneCR2032
Board Zephyrnon esiste (ci sono solo holyiot_25008 e holyiot_21014)

🚩 Le tre varianti nRF54L15 sono hardware DIVERSO

ModelloPulsanteBuzzerAccelAltro
25008✅ P1.13tap rotto”button only”
25015+ SHT40
25027NOP1.06questo

⚠️ Verificare SEMPRE la serigrafia del PCB. Gli annunci AliExpress descrivono la famiglia, non il pezzo.

🔊 Il pin del buzzer: P1.06 — come l’abbiamo trovato

Nessuna serigrafia, nessuna board Zephyr, e il dump del firmware stock non lo rivela (zero stringhe buzz/beep/pwm).

Soluzione: una web page con un bottone per ogni GPIO. Il click scrive in una variabile nella RAM del beacon mentre il chip gira — accesso AHB-AP, senza halt e senza riflash:

web page → JLinkExe w4 0x20000550,<val> → il firmware legge g_cmd → suona quel pin
# server: click → scrittura RAM a chip acceso
val = (hz << 24) | (port << 16) | pin
f"device nRF54L15_M33\nif SWD\nspeed 4000\nconnect\nw4 0x20000550,{val:#010x}\nexit\n"

Click → beep immediato. Trovato in ~2 minuti. 💻 buzzer-hunt/

💡 Perché non uno sweep automatico: avevo prima fatto scandire i pin da soli loggando su RTT — ma correlare “ora!” col log è fragile: i pin scorrono più veloce dei tempi di reazione. Comandare il pin dalla pagina elimina del tutto la correlazione a tempo. (Idea dell’operatore.)

🔍 “Trova il mio tag” — FUNZIONA

   XIAO expansion board              Holyiot 25027
   ┌──────────────┐                  ┌──────────────┐
   │  premi tasto │ ──BLE adv────▶   │   FISCHIA!   │
   │              │  'R'|ver|cnt     │  4× 2400/3100 Hz + LED
   └──────────────┘   ogni 20 ms     └──────────────┘

Nessun hub, nessuna connessione, nessun cloud. Verificato in aria: mfg = 52 01 01 ('R'|ver|cnt).

💻 visla-beacon-25027/ · ricevitore/telecomando: xiao-ble-doorbell/

Il CONTATORE, non un flag — in entrambe le direzioni: l’advertising perde pacchetti, e un comando “fischia” perso è un tag che non trovi. Il fronte del contatore recupera anche i comandi persi in aria.

Telecomando a 20 ms di adv interval (vs 1 Hz del beacon): un comando deve arrivare subito, un beacon a riposo no.

⚠️ Il costo: lo scan

Il beacon ora ascolta di continuo (CONFIG_BT_OBSERVER=y) → da ~6 µA / 4 anni (25008 ottimizzato) a giorni di CR2032. Per un prodotto lo scan va duty-cycled (es. 100 ms ogni 2 s: risponde con un attimo di ritardo, la pila dura). → Stesso compromesso del BLE scan sul Tag, ma qui lo paga il beacon.

🔓 Banco (17/07/2026)

Found SW-DP with ID 0x6BA02477     ← Cortex-M33
AP[0]: Core found                  ← APPROTECT NON attivo
dump 1524 KB · 223 KB non vuoti (14.7%)
stringhe: 'clock@10e000' (Zephyr) · 'LIS2DH_Device_ID' · 'SHT4x Serial Number'

L’SHT4x nel dump rivela che Holyiot usa un firmware UNICO per tutta la famiglia, con i driver di tutti i sensori compilati dentro e attivati a runtime (spiega anche le tabelle nRF51x/nRF52x/nRF53x). → Non si può dedurre l’hardware dalle stringhe del firmware.

Backup: backup/holyiot_buzzer_nrf54l15_stock.bin — preso prima di scrivere.

Device ID Visla: 1D523C82 (dal silicio via hwinfoanti-clonazione gratis).

⚠️ Gotchas

  • 🚩 Compilare per holyiot_25008 una board 25027 funziona ma MENTE: sw0 (P1.13) esiste nel devicetree → il codice compila senza errori e aspetta un pulsante che non c’è. Ci ho perso tempo cercando pressioni fantasma. → Il devicetree di una board simile descrive un’ALTRA board. Compilare non è verificare.
  • Fili SWD marginali non reggono i 4 MHz: Could not connect con VTref buono → abbassare la velocità (a 500 kHz ha agganciato subito). Prima di sospettare il chip, rallenta.
  • 🔇 Niente pulsante → il campanello qui non ha senso (manca il citofono). La direzione utile è l’inversa.
  • 🔁 Di fabbrica è clone come gli altri: UUID FDA50693-..., Major 10011, Minor 19641.

🎯 Note per Visla

  • L’unico beacon che può farsi sentire: P1.06 → “trova il mio tag”, allarme, feedback.
  • 🔬 Candidato per il wake-on-motion: sul 25008 il tap detection è rotto via hardware. Qui, senza pulsante, il movimento è l’unico modo per svegliarlo → è plausibile che l’interrupt del LIS2DH12 sia cablato. Da verificare: sarebbe la feature che cerchiamo dall’inizio.
  • Stesso chip del Tag di produzione (nRF54L15) a ~10€, disponibile ora.

🔗 Risorse