Skip to content

This repository contains projects and examples developed for the ObCP (Personal Connected Object), a platform built around the STM32L476 microcontroller and Bluetooth modules SPBTLE-RF (pre-2024) and BlueNRG-M0 (from 2024). It is designed to enable prototyping and learning in IoT applications, focusing on low-energy and efficient communication.

Notifications You must be signed in to change notification settings

jimbaud/LAB_ObCP_L476_STM32CubeIDE

Repository files navigation


ObCP - Objet Connecté Personnel

Vue 3D ObCP

Vue 3D de l'ObCP

Le projet ObCP (Objet Connecté Personnel) est une plateforme de développement basée sur le microcontrôleur STM32L476RG et les modules Bluetooth SPBTLE-RF (avant 2024) ou BlueNRG-M0 (à partir de 2024). Elle permet de prototyper des objets connectés intelligents et personnalisés.


📘 Introduction

Ce dépôt propose une série de projets d’exemple destinés à la carte ObCP. Chaque répertoire contient un projet STM32CubeIDE complet ainsi qu'un sous-répertoire bin/ contenant les fichiers binaires prêts à être flashés directement sur la carte.

Ces projets permettent d'explorer diverses fonctionnalités telles que :

  • PWM
  • 🔌 GPIOs
  • 📡 Bluetooth Low Energy (BLE)
  • 🚦 LEDs multicolores
  • 📡 Communication I2C, SPI

📁 Structure du dépôt

/
├── ObCP_projet_1/                 # Dossier contenant un projet exemple complet
│   ├── .settings/                 # Fichiers de configuration STM32CubeIDE
│   ├── Core/                      # Code source du projet (main.c, stm32l4xx_it.c, etc.)
│   ├── Drivers/                   # Drivers HAL et CMSIS pour STM32
│   ├── bin/                       # Fichiers binaires prêts à flasher (hex, bin, elf)
│   └── ObCP_projet_1.ioc          # Fichier de configuration CubeMX
│
├── ObCP_projet_2/                 # Un autre projet exemple
│   └── bin/                       # Fichiers binaires prêts à flasher
│
├── README.md                      # Ce fichier de présentation
└── Images/                        # Images et captures d'écran de la configuration

Chaque dossier ObCP_projet_x est un projet complet que vous pouvez importer dans STM32CubeIDE. Vous y trouverez également un dossier bin/ contenant les fichiers binaires (".bin", ".hex", ".elf") prêts à être flashés sur la carte.


🚀 Comment importer un projet dans STM32CubeIDE ?

1️⃣ A l'aide de l'explorateur de fichier, copiez le dossier du projet dans votre dossier de workspace CubeIDE.
2️⃣ Lancez STM32CubeIDE et accédez à File → Import.
3️⃣ Choisissez Existing Projects into Workspace et cliquez sur Next.
4️⃣ Cliquez sur Browse et sélectionnez le dossier du projet (par exemple, ObCP_projet_1/).
5️⃣ Assurez-vous que le projet est bien coché, puis cliquez sur Finish.

Vous verrez maintenant le projet importé dans l’explorateur de projets de STM32CubeIDE.


⚙️ Génération du fichier .bin dans STM32CubeIDE

Pour flasher le programme directement sur la carte, il est souvent utile de générer le fichier binaire .bin (ou .hex). Voici comment configurer STM32CubeIDE pour générer automatiquement ces fichiers.

1️⃣ Accédez aux paramètres de génération d'artefacts binaires :

  • Clic droit sur le nom du projet dans l'explorateur de projets.
  • Sélectionnez Properties (Propriétés).

2️⃣ Accédez à la section Build Settings :

  • Allez dans C/C++ Build → Settings.
  • Dans l'onglet Tool Settings*, recherchez la section MCU Post build outputs.

3️⃣ Activez la génération du fichier binaire :

  • Dans la liste, cochez Convert to binary file et Convert to intel Hex file, ajoutez la ligne suivante :
Configuration de génération .bin

Configuration de la génération automatique des fichiers .bin et .hex

Cette commande transforme le fichier ELF généré en fichier **.bin** et **.hex**.

4️⃣ Validez et appliquez les modifications :

  • Cliquez sur Apply and Close.

5️⃣ Compilez le projet :

  • Faites un clic droit sur le projet et sélectionnez Build Project.
  • Le fichier .bin sera généré dans le répertoire /Debug/ ou /Release/ selon la configuration de votre build.

🛠️ Fonctionnalités principales

🧩 Composants principaux

  • STM32L476RG : Puissance de traitement, faible consommation, parfait pour les applications IoT.
  • SPBTLE-RF / BlueNRG-M0 : Module Bluetooth Low Energy.

⚙️ Caractéristiques matérielles

  • PWM : Contrôle de charges (jusqu’à 2,5W sous 5V).
  • Bouton poussoir utilisateur : Interface utilisateur simple.
  • Batterie Lithium : Alimentation autonome portable.
  • LED RGB : Indication des états de fonctionnement.
  • Capteur LIS3D : Mesure d'accélérations sur trois axes.

🔥 Programmer le fichier binaire sans ST-Link

Avec STM32CubeProgrammer

1️⃣ Téléchargez et installez STM32CubeProgrammer.
2️⃣ Connectez votre ObCP en mode "Prog" (SW4) puis appuyez sur "Reset" (SW3).

Mode Prog Reset

Mode "Prog" et bouton "Reset"

3️⃣ Flashez le programme : Le port USB doit à présent être detecté comme actif pour la programmation. Effacer le STM32 (Bouton Full chip erase de l'onglet Erase flash memory) puis ouvrez l'emplacement du fichier binaire (.elf/.bin/.hex) à l'aide du bouton Browse et enfin cliquez sur Start programming pour charger le programme dans le STM32 via l'interface USB dans CubeProgrammer. Si vous utilisez le fichier BIN, l'adresse de début est 0x08000000.

Configuration de CubeProgrammer

Configuration de CubeProgrammer

4️⃣ Repassez en mode "Run" et appuyez sur Reset (SW3) pour démarrer le programme.

Mode Run Reset

Mode "Run" et bouton "Reset"


🛠️ Avec STM32CubeIDE

Configuration avec STM32CubeIDE et CubeProgrammer

Configuration STM32CubeIDE

Configuration de STM32CubeIDE pour téléversement en DFU

  1. Téléchargez et installez STM32CubeIDE et STM32CubeProgrammer.
  2. Configurez STM32CubeIDE pour téléverser directement en mode DFU via la CLI de CubeProgrammer :
    • Location : C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe
    • Working directory : ${workspace_loc}${project_path}\Debug
    • Arguments : -c port=usb1 -d ${project_name}.elf -s
  3. Placez SW4 en mode "Prog", appuyez sur SW3 "Reset", puis démarrez le téléversement.
Mode Prog Reset

Mode "Prog" et bouton "Reset"

  1. Une fois le téléversement terminé, repassez en mode "Run" et redémarrez avec SW3.
Mode Run Reset

Mode "Run" et bouton "Reset"


📘 Documentation supplémentaire


📄 Schéma et implantation des composants

Implantation des composants

Implantation des composants de l'ObCP

Schéma Page 1

Schéma électrique - Page 1

Schéma Page 2

Schéma électrique - Page 2

Nomenclature

Nomenclature complète de l'ObCP


Note : Ce projet est destiné à des fins de développement et d'apprentissage. Utilisez-le à vos propres risques.


About

This repository contains projects and examples developed for the ObCP (Personal Connected Object), a platform built around the STM32L476 microcontroller and Bluetooth modules SPBTLE-RF (pre-2024) and BlueNRG-M0 (from 2024). It is designed to enable prototyping and learning in IoT applications, focusing on low-energy and efficient communication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages