V
Visla Hardware
Portal R&D
πŸ”§ Bench tools & accessory βœ“ Verified Β· 2026-07-17 πŸ§ͺ Tested bench beacon nordic ble

Holyiot 21014-B (nRF52810)

Holyiot
πŸ“¦ Dev board
€10.99
bench
⭐ UNICO con board ZEPHYR ufficiale (holyiot_21014)πŸ”” Firmware Visla flashato β€” pulsante OK (devID C7F134BA)πŸ”“ SWD aperto + backup Β· IP66 Β· tondo Ø30⚠️ nRF52810: RAM al 92% (192KB flash / 24KB RAM)
πŸ›’ Ordine
Data ordine Β· 2026-06-21
Rif Β· AliExpress #3074783111333147
πŸ“‘ Indice sezioni

Curiosity

L’unico beacon Holyiot con una board definition ZEPHYR ufficiale (holyiot_21014). Stesso nRF52810 del 21011, ma tondo Ø30 Γ— 8.4 mm, IP66 (il 21011 Γ¨ rettangolare) β€” e soprattutto: pulsante, LED e accelerometro sono giΓ  mappati nel devicetree, niente reverse engineering.

⭐ Al banco (17/07/2026): firmware Visla flashato sulla board VERA, pulsante OK al primo colpo. A differenza del 25027 (compilato per una board sbagliata, aspettava pressioni fantasma) o del 21011 (board Zephyr assente), qui -b holyiot_21014 e tutto combacia.

πŸ›’ AliExpress β€” HOLYIOT-21014-B Β· €10.99 Β· IP66 Β· recensioni HA: β€œ~6 mesi con una CR2032”

Specs

SoCNordic nRF52810 β€” Cortex-M4 (no FPU) Β· 192 KB flash / 24 KB RAM
Board Zephyrβœ… holyiot_21014 (unica della serie)
Forma / IPtondo Ø30 Γ— 8.4 mm, 6.5 g Β· IP66 (polvere/spruzzi)
Accelerometroβœ… (LIS2DH nel dump)
Pulsanteβœ… gpio0.31 ACTIVE_HIGH (⚠️ polaritΓ  opposta al 25008 P1.13 ACTIVE_LOW)
LEDgpio0.29 ACTIVE_LOW
AlimentazioneCR2032

πŸ”” Firmware Visla β€” sulla board giusta (17/07/2026)

πŸ””πŸ”” 21014-B [C7F134BA] PREMUTO!  cnt 1β†’2

Compilato per la board canonica, niente pin da indovinare:

west build -p -b holyiot_21014 visla-beacon

πŸ’» visla-beacon/ β€” lo stesso identico sorgente del 25008/21011/25027. Device ID C7F134BA dal silicio (hwinfo) β†’ anti-clonazione gratis.

⚠️ RAM al 92% (22.720 / 24.576 B): lo stack BLE di Zephyr riempie quasi tutto. Funziona, ma 1.8 KB liberi β€” come il 21011, Γ¨ il limite reale del nRF52810 (non la flash).

⭐ Il pulsante ACTIVE_HIGH è gestito dal devicetree senza toccare il codice: se lo cablassi a mano con la logica del 25008 (ACTIVE_LOW), impazziresti. È il valore di avere la board definition giusta.

πŸ”“ SWD + backup

Found SW-DP with ID 0x2BA01477     ← Cortex-M4 (come il 21011)
AP[0]: Core found                  ← APPROTECT non attivo

Backup: backup/holyiot_21014b_stock.bin β€” 192 KB, 76% pieno (firmware Holyiot = nRF5 SDK classico, come il 21011).

⚑ Gotcha del banco: DIO/CLK invertiti al primo tentativo β†’ VTref buono ma Could not connect. Scambiati β†’ connesso a 4 MHz. È l’errore che si ripete su questi pad minuscoli.

πŸ› Bug LED bloccato β€” il pulsante ACTIVE_HIGH senza pull-down (17/07/2026)

Sintomo (segnalato al banco): premendo il tasto, a volte il LED rosso restava fisso e non tornava normale.

Causa doppia:

  1. Il pulsante del 21014 Γ¨ ACTIVE_HIGH (gpio0.31) senza pull-down β†’ da rilasciato il pin resta a livello alto (floating) β†’ il firmware lo legge come β€œsempre premuto”.
  2. Il primo tentativo di fix (loop che rilegge il pin) credeva a quel pin bugiardo β†’ LED e flag advertising inchiodati a 0x01.

Fix definitivo: il LED non insegue piΓΉ lo stato del pulsante (inaffidabile su un pin floating), ma fa un lampo momentaneo di 150 ms guidato da un timer. Un evento momentaneo non puΓ² restare bloccato. Idem per il flag nell’advertising.

prima:  flag 0x01 FISSO (bloccato)     LED sempre rosso
dopo:   flag 0x00 a riposo Β· 0x01 solo nell'istante del click Β· LED lampeggia
        contatore pulito 1β†’2β†’3β†’4 Β· campanello intatto

⭐ Lezione: Γ¨ lo stesso principio del press_count e del debounce β€” non fidarsi di un singolo stato/evento, usare qualcosa di robusto. E soprattutto: la polaritΓ  del pulsante cambia tra le board Holyiot (25008 ACTIVE_LOW + pull-up Β· 21014 ACTIVE_HIGH senza pull) β†’ un firmware che assume la polaritΓ  sbagliata legge il pulsante al contrario. Il devicetree gestisce la logica, ma il pull mancante resta una trappola hardware.

πŸ—‚οΈ La famiglia beacon Holyiot testata da Visla

ModelloChipFormaPulsanteBuzzerBoard ZephyrdevID
25008nRF54L15tondoβœ… P1.13βŒβœ…81403C51
25027nRF54L15tondoβŒβœ… P1.06❌1D523C82
21011nRF52810rettang.βœ…βŒβŒD295C383
21014-BnRF52810tondo IP66βœ…βŒβœ… holyiot_21014C7F134BA

Quattro modelli, tre chip, un solo firmware Visla β€” ognuno col suo device ID dal silicio, quando di fabbrica erano tutti cloni (UUID FDA50693-..., Major 10011).

🎯 Note per Visla

  • ⭐ La board di riferimento per prototipare in Zephyr sul nRF52810: definizione ufficiale, niente reverse engineering. Se il Tag adottasse un 52810 (improbabile β€” troppo poca RAM), si partirebbe da qui.
  • IP66 β†’ l’unico della serie adatto a un uso non protetto.
  • ⚠️ Ma per il Tag di produzione resta il nRF54L15 (25008): 1.5 MB flash e 256 KB RAM contro i 192/24 di questo. Il 52810 va bene per un beacon, non per il tracker.

πŸ”— Risorse