Curiosity
La variante col CICALINO. Stesso nRF54L15 del 25008 — lo 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)
| SoC | Nordic nRF54L15 (N54L15 QFAAB0) — Cortex-M33 + TrustZone |
| Buzzer | ✅ P1.06 ⚠️ trovato al banco, non documentato |
| Accelerometro | LIS2DH12 (etichettato sul PCB) |
| Pulsante | ❌ ASSENTE |
| LED | RGB (P2.09/P1.10/P2.07 — presunti dal 25008) |
| Alimentazione | CR2032 |
| Board Zephyr | ❌ non esiste (ci sono solo holyiot_25008 e holyiot_21014) |
🚩 Le tre varianti nRF54L15 sono hardware DIVERSO
| Modello | Pulsante | Buzzer | Accel | Altro |
|---|---|---|---|---|
| 25008 | ✅ P1.13 | ❌ | tap rotto | ”button only” |
| 25015 | ✅ | ❌ | ✅ | + SHT40 |
| 25027 | ❌ NO | ✅ P1.06 | ✅ | questo |
⚠️ 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 hwinfo → anti-clonazione gratis).
⚠️ Gotchas
- 🚩 Compilare per
holyiot_25008una 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 connectconVTrefbuono → 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
- 💻 GitHub — firmware Visla 25027 (buzzer + trova-il-mio-tag)
- 💻 GitHub — buzzer-hunt (web page + RAM via J-Link)
- 💻 GitHub — telecomando/ricevitore XIAO
- 💾 GitHub — backup firmware stock
- 🔧 Holyiot 25008 — il fratello col pulsante · 🔧 21011 (nRF52810)
- 🛒 AliExpress