docs: add kr-s79 and update hardware and docs

This commit is contained in:
2026-07-01 21:49:36 +02:00
parent 6c31d1bef4
commit c27201cde0
6 changed files with 710 additions and 363 deletions
+163 -248
View File
@@ -2,327 +2,242 @@
## Objectif du projet
OpenParcelBox est un projet open-source visant à remplacer l'électronique propriétaire de la Boks One tout en conservant autant que possible les éléments mécaniques, électromécaniques et esthétiques d'origine.
OpenParcelBox est un projet open source visant à remplacer l'électronique propriétaire de la Boks One tout en conservant autant que possible les éléments mécaniques, électromécaniques et esthétiques d'origine.
Les objectifs principaux sont :
* Fonctionnement local.
* Intégration Home Assistant.
* Communication Zigbee.
* Mises à jour OTA.
* Documentation complète.
* Reproductibilité du matériel et du logiciel.
* Faible consommation énergétique.
- Fonctionnement entièrement local.
- Intégration native avec Home Assistant.
- Communication Zigbee.
- Mises à jour OTA.
- Documentation complète.
- Reproductibilité du matériel et du logiciel.
- Faible consommation énergétique.
- Réutilisation maximale des composants d'origine.
---
# Vue d'ensemble
```text
┌─────────────────────────┐
│ Home Assistant
└────────────┬────────────┘
│ Zigbee
┌─────────────────────────┐
│ OpenParcelBox
XIAO nRF52840 │
│ ├─ Gestion clavier
│ ├─ Gestion accès
│ ├─ Gestion verrou
├─ Gestion batterie
│ ├─ Gestion capteurs
├─ Zigbee
└─ OTA
─────────────────────────┘
Home Assistant
Zigbee (ZHA / Zigbee2MQTT)
┌─────────────────────┐
│ OpenParcelBox │
│ Zephyr RTOS
XIAO nRF52840 │
├── Access Control
├── Keyboard
├── NFC
├─ Lock Controller
├── Power Manager
├── Diagnostics
└─ OTA │
└─────────────────────┘
```
---
# Principes de conception
## Conservation de la façade
## Réutilisation du matériel d'origine
Le projet ne doit nécessiter aucune modification visible de la façade.
Le projet privilégie la conservation des éléments existants lorsque cela est pertinent.
Le clavier d'origine est conservé :
Éléments conservés :
* Disposition verticale 2 × 6.
* Aucun perçage supplémentaire.
* Aucun changement esthétique.
- Mécanisme de verrouillage KR-S79.
- Lecteur NFC.
- LEDs de façade.
- Compartiment batterie.
- Connectique interne.
- Implantation du clavier.
## Réutilisation du matériel existant
Lorsque cela est possible :
* Conservation du clavier.
* Conservation du mécanisme de verrouillage.
* Conservation des capteurs.
* Conservation du compartiment batterie.
## Faible consommation
Le système doit être optimisé pour un fonctionnement sur batterie :
* Utilisation des modes basse consommation.
* Réveil uniquement lorsque nécessaire.
* Minimisation du temps d'activité radio.
---
# Architecture matérielle
## Contrôleur principal
### Seeed Studio XIAO BLE nRF52840
Responsabilités :
* Lecture du clavier.
* Gestion des accès.
* Pilotage du verrou.
* Surveillance batterie.
* Gestion des capteurs.
* Communication Zigbee.
* Mise à jour OTA.
Le PCB d'origine est remplacé par une nouvelle électronique.
---
## Clavier
Le clavier d'origine est conservé.
Le clavier est entièrement redéveloppé.
Caractéristiques connues :
Le PCB d'origine n'est pas réutilisé.
* Format vertical 2 × 6.
* Réutilisation du câblage existant si possible.
Contraintes :
Fonctionnalités prévues :
* Codes administrateur.
* Codes permanents.
* Codes temporaires.
* Protection contre les tentatives répétées.
- disposition verticale 2 × 6 ;
- façade d'origine conservée ;
- matrice de touches compatible firmware Zephyr.
---
## Verrouillage
## Architecture matérielle
Le mécanisme de verrouillage d'origine est conservé.
Le système repose sur un unique microcontrôleur :
Le firmware devra pouvoir :
* Commander l'ouverture.
* Commander le verrouillage.
* Vérifier le retour en position verrouillée.
Une couche d'abstraction permettra de remplacer facilement le matériel si nécessaire.
---
## Batterie
Le système devra surveiller :
* La tension batterie.
* Les seuils d'alerte.
* L'état de charge si disponible.
Les alertes devront être remontées à Home Assistant.
---
## Capteurs
À ce stade du reverse engineering, un seul capteur est identifié.
Fonction supposée :
* Détection du retour du crochet dans le mécanisme de verrouillage.
Le fonctionnement exact devra être confirmé lors du démontage et de l'analyse électronique.
---
# Architecture logicielle
## Core
- Seeed Studio XIAO BLE nRF52840
Responsabilités :
* Initialisation système.
* Gestion des modules.
* Configuration.
- lecture du clavier ;
- lecture NFC ;
- contrôle du verrou ;
- surveillance batterie ;
- gestion des LEDs ;
- gestion du buzzer ;
- communication Zigbee ;
- mises à jour OTA.
---
## Keypad
## Architecture logicielle
Responsabilités :
Le firmware est organisé en modules indépendants.
* Lecture du clavier.
* Anti-rebond.
* Gestion de la saisie.
### Core
- Initialisation
- Configuration
- Gestion des modules
### Keyboard
- Lecture de la matrice
- Anti-rebond
- Saisie utilisateur
### NFC
- Lecture des badges
- Validation des UID
- Réveil basse consommation
### Access Control
- Codes administrateur
- Codes permanents
- Codes temporaires
- Anti brute-force
### Lock Controller
- Pilotage de la serrure
- Validation de l'ouverture
- Gestion des erreurs
### Power Manager
- Batterie
- Veille profonde
- Réveil
- Optimisation énergétique
### Zigbee
- Communication Home Assistant
- Publication des états
- Réception des commandes
### OTA
- Téléchargement
- Vérification
- Mise à jour sécurisée
---
## Access Control
# Validation d'ouverture
Responsabilités :
L'ouverture n'est jamais validée par une temporisation fixe.
* Validation des codes.
* Gestion des droits.
* Gestion des utilisateurs.
* Protection contre les tentatives répétées.
La séquence est :
```text
Commande SIG
Impulsion d'ouverture
Attente du changement d'état COM/NC
├── OK
│ ▼
│ Ouverture validée
└── Timeout
Erreur
```
Cette méthode garantit que le firmware valide une ouverture réelle du mécanisme.
---
## Lock Controller
Responsabilités :
* Pilotage du verrou.
* Vérification des états.
* Gestion des erreurs.
---
## Sensor Manager
Responsabilités :
* Lecture des capteurs.
* Filtrage logiciel.
* Détection des changements d'état.
---
## NFC
Responsabilités :
* Lecture des badges.
* Gestion des identifiants autorisés.
* Activation à faible consommation.
---
## Power Management
Responsabilités :
* Surveillance batterie.
* Gestion de l'énergie.
* Modes basse consommation.
---
## Zigbee
Responsabilités :
* Communication avec Home Assistant.
* Publication des états.
* Réception des commandes.
* Gestion du réseau Zigbee.
### Architecture cible
OpenParcelBox communique en Zigbee.
La conversion éventuelle vers MQTT est réalisée côté infrastructure Home Assistant (ZHA, Zigbee2MQTT ou solution équivalente).
Le firmware ne dépend donc pas directement d'un broker MQTT.
### Évolutions futures
D'autres protocoles pourront être supportés ultérieurement via des variantes de firmware.
Exemples :
* Zigbee
* Bluetooth Low Energy
Le choix du protocole sera effectué lors de la compilation du firmware.
---
## OTA
Responsabilités :
* Téléchargement des mises à jour.
* Vérification d'intégrité.
* Mise à jour sécurisée.
---
# Intégration Home Assistant
# Home Assistant
Entités prévues :
* État du verrou.
* Niveau de batterie.
* Dernière ouverture.
* État de connexion.
* Informations de diagnostic.
- verrou
- batterie
- dernière ouverture
- diagnostic
- version firmware
- qualité du lien Zigbee
Services prévus :
Services :
* Ouverture.
* Verrouillage.
* Déverrouillage.
* Gestion des codes.
- ouverture
- verrouillage
- gestion des codes
- redémarrage
- diagnostic
---
# Sécurité
## Principes
Principes :
* Fonctionnement local.
* Aucun service cloud obligatoire.
* Validation stricte des commandes.
* Journalisation des événements importants.
## Protection contre les abus
* Limitation des tentatives.
* Temporisation après échecs répétés.
* Séparation des privilèges administrateur/utilisateur.
- fonctionnement local ;
- aucun cloud obligatoire ;
- validation stricte des commandes ;
- journalisation des événements ;
- limitation des tentatives ;
- séparation administrateur / utilisateur.
---
# Développement
## Firmware
Firmware :
Framework :
* Zephyr RTOS
- Zephyr RTOS
Langage :
* C++
- C++
Outils :
* Zephyr SDK
* west
* CMake
* VSCodium
* Git
* Gitea
- Zephyr SDK
- west
- CMake
- Git
- Gitea
- VSCodium
---
# Évolutions futures
* Gestion avancée des utilisateurs.
* Historique des événements.
* Diagnostics avancés.
* Support d'autres protocoles radio.
* Gestion de plusieurs boîtes.
- historique des événements ;
- gestion avancée des utilisateurs ;
- diagnostic matériel ;
- support Bluetooth Low Energy ;
- prise en charge de plusieurs boîtes.
+121
View File
@@ -0,0 +1,121 @@
# Interfaces matérielles
Ce document décrit le fonctionnement des interfaces matérielles indépendamment des GPIO utilisés.
---
# Clavier
Type :
- matrice 4 × 4
Fonctionnalités :
- anti-rebond logiciel ;
- détection des appuis ;
- compatible Zephyr.
---
# Lecteur NFC
Le lecteur NFC d'origine est conservé.
Le protocole sera documenté dans le dossier `hardware/nfc/`.
Fonction :
- lecture UID ;
- validation des badges ;
- déclenchement d'ouverture.
---
# Serrure KR-S79
Commande :
- impulsion sur SIG.
Validation :
Le firmware ne valide jamais l'ouverture sur une temporisation.
La validation repose exclusivement sur le changement d'état du contact COM/NC.
Séquence :
```text
SIG
Impulsion
Attente COM/NC
├── changement détecté
│ ▼
│ ouverture validée
└── timeout
erreur
```
---
# LEDs
Les trois LEDs de façade sont conservées.
Leur pilotage sera assuré par le nouveau PCB.
Le comportement sera défini par le firmware.
---
# Buzzer
Le buzzer fournit les retours sonores.
Exemples :
- ouverture validée ;
- erreur ;
- confirmation ;
- diagnostic.
---
# Batterie
Le compartiment batterie d'origine est conservé.
Le firmware assure :
- mesure de tension ;
- estimation du niveau ;
- remontée des alertes.
---
# Zigbee
Communication native avec Home Assistant.
Le firmware ne dépend pas directement d'un broker MQTT.
La conversion éventuelle est réalisée par :
- ZHA ;
- Zigbee2MQTT.
---
# OTA
Les mises à jour sont réalisées de manière sécurisée.
Chaque image est vérifiée avant installation.
+60
View File
@@ -0,0 +1,60 @@
# Pinout OpenParcelBox
Ce document définit l'affectation des E/S matérielles.
Il constitue la référence unique pour :
- le firmware Zephyr ;
- le schéma KiCad ;
- le PCB.
---
# Microcontrôleur
Seeed Studio XIAO BLE nRF52840
---
# Affectation des GPIO
| Fonction | Direction | Broche |
|----------|-----------|---------|
| Clavier Ligne 1 | Sortie | D0 |
| Clavier Ligne 2 | Sortie | D1 |
| Clavier Ligne 3 | Sortie | D2 |
| Clavier Ligne 4 | Sortie | D3 |
| Retour serrure COM/NC | Entrée | D4 |
| Buzzer | Sortie PWM | D5 |
| Clavier Colonne 1 | Entrée | D6 |
| Clavier Colonne 2 | Entrée | D7 |
| Clavier Colonne 3 | Entrée | D8 |
| Commande serrure SIG | Sortie | D9 |
## GPIO réservés
À affecter après finalisation du reverse engineering :
- Lecteur NFC
- LEDs
- Batterie
- Extensions
---
# GPIO libres
- A0
- A1
- A2
- A3
- SDA
- SCL
---
Toute modification de ce document devra être répercutée :
- dans le firmware ;
- dans le schéma KiCad ;
- dans le PCB.
-115
View File
@@ -1,115 +0,0 @@
# Reverse Engineering Boks One
## Objectif
Ce document centralise toutes les informations collectées lors de l'analyse du matériel d'origine.
Aucune hypothèse ne doit être considérée comme validée tant qu'elle n'a pas été vérifiée expérimentalement.
---
# Informations générales
| Élément | Valeur | Statut |
| -------- | ------------ | ---------- |
| Modèle | Boks One | Confirmé |
| Révision | À déterminer | En attente |
---
# Batterie
| Information | Valeur | Statut |
| ---------------- | -------- | ------------ |
| Technologie | Inconnue | À vérifier |
| Tension nominale | Inconnue | À mesurer |
| Capacité | Inconnue | À identifier |
---
# Clavier
## Configuration
* Format vertical 2 × 6.
## Brochage
| Broche | Fonction | Statut |
| ------ | -------- | ------------ |
| TBD | TBD | À identifier |
---
# Capteur
## Description
Capteur utilisé pour détecter le retour du crochet dans le mécanisme de verrouillage.
## Technologie
À déterminer :
* ILS
* Hall
* Microswitch
* Autre
---
# Mécanisme de verrouillage
## Type
À déterminer.
## Tension de fonctionnement
À mesurer.
## Courant consommé
À mesurer.
---
# Connecteurs
| Connecteur | Nombre de broches | Fonction | Statut |
| ---------- | ----------------- | -------- | ------------ |
| TBD | TBD | TBD | À identifier |
---
# Mesures électriques
| Mesure | Valeur | Date | Commentaire |
| ------ | ------ | ---- | ----------- |
| TBD | TBD | TBD | TBD |
---
# Photos
## Carte électronique
À compléter.
## Clavier
À compléter.
## Mécanisme de verrouillage
À compléter.
## Capteur
À compléter.
---
# Notes diverses
Utiliser cette section pour documenter toute découverte ne trouvant pas sa place dans les sections précédentes.
@@ -0,0 +1,181 @@
# KERONG KR-S79_20-JST
> **Statut :** Caractérisation électrique validée expérimentalement.
>
> Les informations de cette page proviennent de mesures réalisées sur une serrure neuve d'origine Boks. Elles peuvent différer d'autres variantes du KR-S79.
---
# Identification
| Élément | Valeur |
|---------|--------|
| Fabricant | KERONG |
| Modèle | KR-S79 |
| Variante | KR-S79_20-JST |
| Révision | 2023.10_KERONG |
| Date de fabrication | 17-10-2023 |
| Brevet | ZL.201821837049.2 |
---
# Caractéristiques
| Paramètre | Valeur |
|-----------|--------|
| Tension d'alimentation | 8 à 24 V DC |
| Courant maximal | 100 mA |
| Contact auxiliaire | 3 A max |
| Connecteur | JST |
| Longueur du faisceau | 20 cm |
---
# Brochage constructeur
| Couleur | Fonction |
|----------|----------|
| Rouge | +V (8 à 24 V) |
| Orange | GND |
| Jaune | SIG |
| Noir | COM |
| Vert | NO |
| Blanc | NC |
---
# Correspondance avec le faisceau Boks
| Côté Boks | Côté serrure | Fonction |
|------------|--------------|----------|
| Bleu | Rouge | +V |
| Blanc | Orange | GND |
| Vert | Jaune | SIG |
| Jaune | Noir | COM |
| Noir | Vert | NO |
| Rouge | Blanc | NC |
---
# Fonctionnement
## Alimentation
La serrure est alimentée en permanence entre :
| Broche | Fonction |
|---------|----------|
| Rouge | +8 à +24 V |
| Orange | GND |
Au repos, la serrure reste verrouillée.
---
## Commande d'ouverture
L'ouverture est déclenchée par une impulsion positive sur l'entrée **SIG**.
### Test validé
| Action | Résultat |
|--------|----------|
| SIG relié au +V | ✅ Ouverture |
| SIG relié au GND | ❌ Aucun effet |
Le verrou intègre donc son propre circuit de commande.
---
# Contact de retour d'état
Le verrou possède un contact inverseur.
## Mesures expérimentales
### Verrou verrouillé
| Mesure | Résultat |
|---------|----------|
| COM ↔ NO | Continuité |
| COM ↔ NC | Ouvert |
### Verrou déverrouillé
| Mesure | Résultat |
|---------|----------|
| COM ↔ NO | Ouvert |
| COM ↔ NC | Continuité |
> **Remarque :**
>
> Bien que les bornes soient sérigraphiées **NO** et **NC**, leur comportement est inversé par rapport à la convention électrique habituelle.
>
> Pour OpenParcelBox, il est recommandé de se fier aux mesures expérimentales plutôt qu'au marquage.
---
# Détection de l'état
Le contact change d'état dès que le loquet quitte sa position verrouillée.
Il n'est donc pas nécessaire d'attendre la fin complète de la course du mécanisme pour détecter le déverrouillage.
Cela permet de connaître quasiment instantanément l'état du verrou.
---
# Schéma de câblage
```text
+8 à 24 V
Rouge (+)
┌───────────────┐
│ │
│ KR-S79 │
│ │
Orange (GND) │ │
─────────────┘ │
Jaune (SIG) ─────► Impulsion +V = ouverture
Noir (COM) ──────────────────┐
Vert (NO) ───── Fermé lorsque le verrou est verrouillé
Blanc (NC) ─── Fermé lorsque le verrou est déverrouillé
```
---
# Validation
| Fonction | Statut |
|----------|--------|
| Alimentation | ✅ Validée |
| Tension | ✅ Validée |
| Commande SIG | ✅ Validée |
| Polarité de commande | ✅ Validée |
| Contact COM | ✅ Validé |
| Contact NO | ✅ Validé |
| Contact NC | ✅ Validé |
| Détection de l'ouverture | ✅ Validée |
---
# Utilisation dans OpenParcelBox
Cette serrure est entièrement compatible avec l'architecture d'OpenParcelBox.
Le microcontrôleur **Seeed Studio XIAO BLE nRF52840** devra :
- maintenir l'alimentation de la serrure ;
- générer une impulsion positive sur l'entrée **SIG** lors d'une demande d'ouverture ;
- surveiller le contact **COM/NC** afin de confirmer que le verrou a bien quitté sa position verrouillée.
Le contact **COM/NC** change d'état dès que le loquet est libéré. Il constitue donc un retour d'information fiable permettant de confirmer l'ouverture sans attendre un délai fixe.
Le contact **COM/NO** n'est pas utilisé par OpenParcelBox.
@@ -0,0 +1,185 @@
# Reverse Engineering Boks One
## Objectif
Ce document centralise toutes les informations collectées lors de l'analyse du matériel d'origine.
Aucune hypothèse ne doit être considérée comme validée tant qu'elle n'a pas été vérifiée expérimentalement.
---
# Informations générales
| Élément | Valeur | Statut |
|---------|--------|--------|
| Modèle | Boks One | Confirmé |
| Révision | À déterminer | En attente |
---
# Alimentation
## Batterie
| Information | Valeur | Statut |
|-------------|--------|--------|
| Technologie | 8 × piles AAA | Confirmé |
| Tension nominale | 12 V (8 × 1,5 V) | Confirmé |
| Capacité | Dépend des piles utilisées | Confirmé |
---
# Clavier
## Configuration
- Format vertical **2 × 6**.
## Brochage
| Broche | Fonction | Statut |
|---------|----------|--------|
| TBD | TBD | À identifier |
---
# Mécanisme de verrouillage
## Modèle
| Information | Valeur | Statut |
|-------------|--------|--------|
| Fabricant | KERONG | Confirmé |
| Modèle | KR-S79 | Confirmé |
| Variante | KR-S79_20-JST | Confirmé |
| Révision | 2023.10_KERONG | Confirmé |
| Date de fabrication | 17-10-2023 | Confirmé |
| Brevet | ZL.201821837049.2 | Confirmé |
## Caractéristiques
| Paramètre | Valeur | Statut |
|-----------|--------|--------|
| Alimentation | 8 à 24 V DC | Confirmé |
| Courant maximal | 100 mA | Confirmé |
| Contact auxiliaire | COM / NO / NC (3 A max) | Confirmé |
| Connecteur | JST | Confirmé |
| Longueur du faisceau | 20 cm | Confirmé |
## Brochage constructeur
| Couleur | Fonction |
|----------|----------|
| Rouge | +V |
| Orange | GND |
| Jaune | SIG |
| Noir | COM |
| Vert | NO |
| Blanc | NC |
## Correspondance avec le faisceau Boks
| Côté Boks | Côté serrure | Fonction |
|------------|--------------|----------|
| Bleu | Rouge | +V |
| Blanc | Orange | GND |
| Vert | Jaune | SIG |
| Jaune | Noir | COM |
| Noir | Vert | NO |
| Rouge | Blanc | NC |
## Fonctionnement validé
### Commande
| Action | Résultat |
|--------|----------|
| Alimentation entre +V et GND | Verrou fermé |
| Impulsion SIG → +V | Ouverture |
| Impulsion SIG → GND | Aucun effet |
### Contact de retour
| État du verrou | COM ↔ NO | COM ↔ NC |
|----------------|----------|----------|
| Verrouillé | Fermé | Ouvert |
| Déverrouillé | Ouvert | Fermé |
### Comportement
Le contact **COM/NC** change d'état dès que le loquet quitte sa position verrouillée.
Ce retour d'information permet de confirmer immédiatement le déverrouillage sans attendre la fin de la course du mécanisme.
---
# Capteur
Le retour d'état est directement intégré à la serrure KERONG KR-S79 sous la forme d'un contact inverseur **COM / NO / NC**.
Aucun capteur externe n'a été identifié.
---
# Connecteurs
| Connecteur | Nombre de broches | Fonction | Statut |
|------------|-------------------|----------|--------|
| JST | 6 | Serrure KR-S79_20-JST | Confirmé |
| Clavier | À déterminer | Clavier matriciel | À identifier |
---
# Mesures électriques
| Mesure | Valeur | Date | Commentaire |
|---------|--------|------|-------------|
| Tension alimentation verrou | 13,36 V | 2026-07 | Boîtier de 8 piles AAA neuves |
| SIG au repos | 13,36 V | 2026-07 | Mesuré par rapport au GND |
| SIG → +V | Ouverture | 2026-07 | Validation expérimentale |
| SIG → GND | Aucun effet | 2026-07 | Validation expérimentale |
---
# Photos
## Carte électronique
À compléter.
## Clavier
À compléter.
## Serrure KR-S79_20-JST
À compléter.
## Connecteur JST
À compléter.
---
# Utilisation dans OpenParcelBox
La serrure est pilotée par le **Seeed Studio XIAO BLE nRF52840**.
Principe retenu :
1. Génération d'une impulsion positive sur **SIG**.
2. Démarrage d'un délai d'attente (timeout).
3. Surveillance du contact **COM/NC**.
4. Si **COM/NC** change d'état avant le timeout → ouverture confirmée.
5. Sinon → échec de l'ouverture.
Cette stratégie permet de confirmer le déverrouillage réel plutôt que de supposer l'ouverture après un délai fixe.
---
# Notes diverses
- La variante installée par Boks est **KR-S79_20-JST**.
- Le marquage **NO / NC** correspond au comportement observé expérimentalement.
- Le verrou intègre sa propre électronique de commande ; seule une impulsion positive sur **SIG** est nécessaire pour déclencher l'ouverture.
- Toutes les informations ci-dessus ont été validées expérimentalement sur une serrure de remplacement d'origine Boks.