Vue normale

Raspberry-Pi 5: API MicroPython pour Python

 Bonjour à tous,

Tout récemment, je voulais utiliser un module RFM69 sur un Compute Module 5 (autrement dit l'équivalent d'un Raspberry-Pi 5) faisant fonctionner un logiciel écrit Python.

Une API MicroPython sous Python

Ecrivant de nombreux pilotes pour MicroPython (Python pour MicroContrôleur), je me suis dit qu'il devait être possible de réutiliser le code MicroPython du RFM69 sous Python sans devoir réécrire tout-ou-une-partie du code pour qu'il fonctionne sur Raspberry-Pi.
 
Le problème, c'est que Python n'a aucune idée de ce qu'est l'API MicroPython (celle utilisée par MicroPython pour accéder directement à la couche matérielle).
 
Il existe cependant des moyens d'accéder au matériel depuis Python mais c'est sans aucun rapport avec l'API exposée MicroPython.

L'idée c'est de recréer l'API MicroPython sous Python pour permettre l'utilisation du RFM69 depuis Python:
 

Le module RFM69

L'image ci-dessous se présente le module RFM69HCW 433MHz . Ce module permet de transmettre des données sur un réseau numérique utilisant le ondes-radios comme medium de transfert. C'est un peu le protocole internet appliqué à la radio.

RFM69HCW 433MHz

Comme le Pilote est développé sous le précepte "Plateform Agnostic Driver" de sorte à pouvoir fonctionner indépendamment de la plateforme MicroPython cible.

esp8266-upy - Plateform Agnostic Micrpython Driver

Ce module se branche sur un bus SPI, il est donc possible de le connecter sur GPIO d'un Raspberry-Pi 5 (ou du Compute Module 5).

Source: Raspberry-pi.ovh

Brancher RFM69 sur GPIO

Les connexions suivantes sont établies entre le module RFM69 et le GPIO Raspberry-Pi.

La broche CS (chip select) est branchée sur le GPIO 25 alors qu'il existe les broches CE0 (GPIO8) et CE1 (GPIO7). 

Le problème ici est que CE0 et CE1 sont automatiquement gérés par le système d'exploitation alors que sous MicroPython, c'est le code utilisateur qui gère l'état du signal CS.

Dans le cas présent, la gestion automatique de CE0 et CE1 empêche l'utilisation du burst_read sur le module RFM69 raison pour laquelle le GPIO25 est utilisé comme signal CS (ce signal étant contrôlé par le code utilisateur).

Prototype

Compatibilité avec Python

Commençons par récupérer la bibliothèque MicroPython du RFM69 depuis le dépôt esp8266-upy pour y ajouter l'encodage du fichier (important pour Python).

Ajout de l'encodage dans le bibliothèque RFM69

Récupérer l'exemple test_config.py utilisé pour tester la communication avec le module RFM69. Nous y ajoutons également l'information d'encodage dans le fichier.

Couche de compatibilité Python --> MicroPython

Création des fichiers machine.py et micropython.py pour accueillir les classes Pin & SPI ainsi que la déclaration de la fonction const()


Le script le plus intéressant est hack_time.py car celui-ci permet d'ajouter les fonctions MicroPython (ticks_ms, ticks_diff, sleep_ms, etc) manquantes dans Python.

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" hack_time.py : mimic the MicroPython alike specific methods """
import time

def _sleep_us( us ):
	time.sleep( us*0.000001 )

def _sleep_ms( ms ):
	time.sleep( ms*0.001 )

def _ticks_ms():
	return int(time.time()*1000)

def _ticks_diff( v1, v2 ):
	return v1-v2

time.sleep_us = _sleep_us
time.sleep_ms = _sleep_ms
time.ticks_ms = _ticks_ms
time.ticks_diff = _ticks_diff

Il ne reste plus qu'a adapter le script d'exemple pour créer l'instance du bus SPI (sur le RPi) et passer le tout à la bibliothèque MicroPython originale.

#!/usr/bin/python
# -*- coding: utf-8 -*-

from machine import SPI, Pin
import hack_time
from rfm69 import RFM69

# Machine.py for Raspberry-Pi 5
spi = SPI( 0 )
nss = Pin( 25, Pin.OUT, value=True )  # Do not use the RPI CE0/CE1, it is not compatible with the Burst_Read of RFM69
rst = Pin( 18, Pin.OUT, value=False )

rfm = RFM69( spi=spi, nss=nss, reset=rst )
rfm.frequency_mhz = 433.1
....

Le bus SPI est rattaché au bus matériel SPI0 & CE0. 

Une broche Enabled (nss) alternative est utilisé avec le GPIO25 pour contrôler les transactions du bus SPI. La broche CE0 du GPIO est donc ignorée.

Enfin, le GPIO 10 est utilisé pour réinitialisé le module RFM69.

Au final, la création de l'instance RFM69 et le restant du code (y compris la bibliothèque RFM69) est identique entre MicroPython et Python (sur RPi5).

L'exécution de l'exemple sur le Raspberry-Pi 5 produit le résultat attendu (identique lorsqu'il est exécuté sur un Pico).

test_config.py : exécution de la bibliothèque
MicroPython RFM69 sur Raspberry-Pi 5

Ressources

  • MicroPython-API-for-Python experiment is published on GitHub.


Le prix des Raspberry Pi augmente encore, ça devient hallucinant !

Par : Sebastien
3 février 2026 à 14:23
Raspberry Pi 5

La fondation Raspberry Pi avait annoncé une hausse de prix en décembre dernier liée à la flambée du coût de la mémoire LPDDR4.

The post Le prix des Raspberry Pi augmente encore, ça devient hallucinant ! first appeared on Bhmag.

Raspberry Pi Flash Drive : une clé usb en aluminium signée Raspberry Pi

Par : Sebastien
26 janvier 2026 à 09:31

La fondation Raspberry Pi, à qui l'on doit les cartes du même nom vient d'annoncer la sortie d'un nouveau produit : le Raspberry Pi Flash Drive.

The post Raspberry Pi Flash Drive : une clé usb en aluminium signée Raspberry Pi first appeared on Bhmag.

Raspberry Pi AI HAT+ 2 : vision par ordinateur en vidéo avec Hailo-10H (Partie 2)

Dans cette seconde partie, le Raspberry Pi 5 passe à l’action avec la vidéo temps réel accélérée par Hailo-10H. Détection de personnes, cadrage dynamique, pose squelette et reconnaissance des mains : on enchaîne les modèles concrets. L’objectif est d’évaluer les performances réelles, les limites, et les bons compromis en situation réelle. Ici, pas de cloud […]

Cet article Raspberry Pi AI HAT+ 2 : vision par ordinateur en vidéo avec Hailo-10H (Partie 2) a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

💾

La fondation Raspberry Pi augmente ses tarifs et lance un Pi5 avec 1 Go de RAM

Par : Sebastien
2 décembre 2025 à 08:21
Raspberry Pi 5

En raison de la hausse du coût de la mémoire vive, la fondation Raspberry Pi annonce qu'elle va devoir répercuter cette hausse sur le prix de ses produits.

The post La fondation Raspberry Pi augmente ses tarifs et lance un Pi5 avec 1 Go de RAM first appeared on Bhmag.

Installing - - — Arduino ESP32 latest documentation

22 novembre 2025 à 10:48

https://www.arduino.cc/en/software/

Dans Arduino IDE :
File > Preferences... > Additional boards manager URLS :
coller :

https://espressif.github.io/arduino-esp32/package_esp32_index.json
https://arduino.esp8266.com/stable/package_esp8266com_index.json
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Ok

Tools > Board: "..." > Boards manager... >
rechercher : esp32
esp32 by Espressif Systems
Intall

rechercher : esp8266
esp32 by Espressif Systems
Intall

rechercher : pico
Raspberry Pi Pico/RP2040/RP2350 by Earle
Intall

Relancer Arduino IDE

https://arduino-esp8266.readthedocs.io/en/latest/installing.html#using-git-version

https://github.com/earlephilhower/arduino-pico
Permalink

La 4G avec un Raspberry Pi Pico ? C’est possible !

Il y a un peu plus de trois ans, je vous présentais déjà la carte NadHAT MK2, basée sur un modem 4G A7682E, imaginée et fabriqué en France par Garatronic et distribuée par McHobby. Cette carte bénéficie d’un support sérieux et de bibliothèques bien suivies, ce qui la distingue de nombreuses productions asiatiques. Aujourd’hui, place […]

Cet article La 4G avec un Raspberry Pi Pico ? C’est possible ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

Framboise314 au Salon Robotik 2025 d’Orchies : le numérique à la portée de tous !

Les 29 et 30 novembre 2025, le Salon Robotik revient à l’Arena d’Orchies pour deux jours entièrement dédiés à la découverte du numérique.L’équipe de Framboise314 sera présente pour partager sa passion du Raspberry Pi, de l’électronique et de la robotique avec petits et grands. Un week-end gratuit, convivial et plein de découvertes technologiques à ne […]

Cet article Framboise314 au Salon Robotik 2025 d’Orchies : le numérique à la portée de tous ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

framboise314 au Capitole du Libre (Toulouse, 15–16 novembre 2025) — stand Raspberry Pi & open source

Chaque année, le Capitole du Libre réunit à Toulouse les passionnés de logiciel libre, d’open source et de culture numérique. Conférences, ateliers et rencontres rythment ce week-end dédié au partage et à la bidouille.Pour la première fois, framboise314 sera présent avec un stand dédié au Raspberry Pi, à l’électronique et au DIY, pour échanger autour […]

Cet article framboise314 au Capitole du Libre (Toulouse, 15–16 novembre 2025) — stand Raspberry Pi & open source a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

❌