Vue lecture

PicoCalc de ClockWorkPi: partie 2 - autres firmwares

Bonjour à tous,

C'est article suit la précédente parution  "PicoCalc de ClockWorkPi (partie 1)" avec le firmware recommandé PicoMite Basic et la vidéo de retroComb Tech.

A propos de PicoCalc

Le PicoCalc de ClockWorkPi est un périphérique portable propulsé par un Raspberry-Pi Pico

PicoCalc de ClockWorkPi

Le PicoCalc est un périphérique portable de 16x10cm propulsé par un Raspberry-Pi Pico tout en offrant de nombreuses fonctionnalités (voir le précédent article).

Retour sur les Firmware

Continuons notre exploration du dépôt PicoCalc (parmi les dépôts de ClockWorkPi) et son sous-répertoire Bin contenant plusieurs  firmwares pour le Pico (fichiers uf2).

PicoCalc NES emulator 

Vous avez bien lu, PicoCalc dispose d'un firmware d'émulation NES basé sur ShapoNES.
Voici quelques captures glanées sur les forums de PicoCalc.

 





Remarque:

J'ai aussi déniché un émulateur Gameboy sur les forums ClockworkPi.

Emulateur GameBoy pour PicoCalc

MicroLisp pour PicoCalc

Lisp est un langage fonctionnelle basé sur un typage simple et un typage dynamique. Bien d'aussi vieux que Fortran, Lisp est surtout connu pour le développement d'application dans le domaine de l'intelligence artificielle.

Grâce à sa syntaxe simple et élégante, Lisp est encore largement utilisé  de nos jours et à élargit son champs d'application (ex: WEB, recherche, etc).
Voyez Lisp sur Wikipedia pour en apprendre plus.

uLisp MicroLisp (www.ulisp.com) est une implémentation de Lisp pour MicroControleur. Dans le cas du PicoCalc, uLisp supporte également l'affichage graphique.

Source: ce billet uLisp sur les forums ClockWorkPi

Source: uLisp.com

Perso je ne suis pas fan de ce langage mais il semble bien adapté à l'étude des Fractales... qui sait, je ferais peut-être du Lisp un jour.

Fuzix pour PicoCalc

Fuzix OS est un système d'exploitation de type Unix destiné aux systèmes a faibles ressources et processeurs archaïques comme le 6502, Z80, Intel 8080, Motorola, 68000, etc. Il existe même une version de Fuzzix pour RC2014!

J'ai personnellement un faible pour les systèmes Unix/Linux.

Etant donné que ClockWorkPi fourni un patch pour Fuzix permettant ainsi de compiler Fuzix sur votre ordinateur, il devient maintenant possible de compiler et ajouter vos propres utilitaires dans la distribution. Ce sera  l'occasion de refaire un peu de C/C++.

PicoCalc sous Fuzix

Visiblement, Hackable Magazine, N°49 (juillet/août 2023) traitait de Fuzix OS pour Pico.

MP3 player pour PicoCalc

Il existe un firmware pour jouer des fichiers MP3.
Je n'ai cependant pas eu l'occasion de trouver des ressources concernant cette fonctionnalité.

Il est même possible de jouer un fichier MP3 depuis la ligne de commande Basic ( PLAY MP3 "filename.mp3" ). Voir ce billet.

SD LOADER pour PicoCalc

Le firmware Picocalc_SD_Boot (projet info) permet de charger un firmware depuis la carte SD par l'intermédiaire d'une interface graphique.


Pour pouvoir charger vis firmwares avec le SD Loader, le programme cible doit être recompilé avec avec un script personnalisé afin de décaler l'adresse de départ du firmware à charger.

En effet, si SD Loader charge le firmware cible à l'adresse Flash où SD Loader est lui même en cours d'exécution alors cela débouchera sur un gros crash.

SD Loader charge donc le firmware cible 256 Kio plus loin dans la mémoire Flash afin de ne pas écraser SD Loader. 

Organisation mémoire
du Pico avec SD Loader

Ensuite SD Loader fait un saut sur la première instruction du firmware fraîchement chargé. Il faut donc que le firmware cible soit compilé pour avoir sa première instruction  cette nouvelle adresse de base.

MicroPython pour PicoCalc

Il existe également un implémentation de MicroPython pour PicoCalc.
Ce dernier prend en charge le clavier et l'affichage REPL sur la dalle graphique.

Etant moi même un grand fan de MicroPython, j'ai décidé que "MicroPython sur PicoCalc" fera l'objet d'un 3ième article.

Bonne découverte,
Dominique

 

  •  

PicoCalc de ClockWorkPi: Partie 1 - Présentation et PicoMite basic

Bonjour à tous,

Comme moi, vous avez certainement croisé des vidéos sur le PicoCalc de ClockWorkPi, ce périphérique portable propulsé par un Raspberry-Pi Pico

PicoCalc de ClockWorkPi

Ce que j'aime beaucoup dans ce périphérique portable de 16x10cm c'est qu'il est propulsé par un Raspberry-Pi Pico tout en offrant de nombreuses fonctionnalités comme:

  • Un grand écran IPS 4" (320x320 pixel couleur). La technologie IPS permet d'avoir un écran qui reste lisible sur un grand angle de vue.
  • Un clavier rétro-éclairé assez complet.
  • Un lecteur de carte SD pour un stockage complémentaire
  • Des haut-parleurs (visiblement pas si mauvais que cela) et sortie Audio.
  • Deux accus 18650 indépendants l'un de l'autre... ce qui permet de changer l'accu sans éteindre le PicoCalc.
  • 8 Mio de PSRAM, pour les applications gourmandes
  • Un GPIO Pico + un GPIO  STM32 facilement accessible

En équipant le PicoCalc avec un Pico2 WH, nous avons un système Dual Core cadencé à 150 Mhz avec 150 Kio de RAM et un module WiFi + BlueTooth.

Le tout dans un magnifique boîtier disposant même d'une protection pour l'écran.


Le Hardware

Sur base des informations disponibles sur le dépôt GitHub de PicoCalc, j'ai réussi a identifier quelques éléments intéressants. 

Pour commencer, la carte comporte également un microcontrôleur STM32 qui prend en charge:

  • la gestion du clavier, 
  • le retro-éclairage du clavier (KEY_BL sur PC8)
  • la luminosité de l'écran (LCD_BL sur PA8)
  • la gestion de l'alimentation Pico
    - contrôle de la broche RUN depuis PA13,
    - gestion de l'AXP2101 (Power Management Unit pour les Lipo) via le bus I2C M_I2C2 du STM32

Le clavier est est interrogé par le Pico par l'intermédiaire du bus I2C(1) en relation direct avec le bus M_I2C1 du STM32 (PB8 et PB9).

Ce même bus I2C peut aussi être utilisé pour y connecter des capteurs. Il semblerait que cela soit le bus I2C(1) avec les GP6=sda et GP7=scl


Le rétro-éclairage est configurable à l'aide de DIP switch (juste en dessous de la carte SD).

L'afficheur est contrôlé directement par le bus SPI(1) du Pico tandis que le retro-élcairage est, lui, prit en charge par un microcontrôleur STM32 présent sur la carte.

Connecteur Pico sur le PicoCalc
 

Les éléments suivants sont raccordés directement sur le Pico:

  • Audio en PWM sur GP26 et GP27.
  • Carte SD sur le bus SPI(0) avec les GP22 (détection SD), GP19,18,17,16 
  • PSRAM sur les GP21,20,2,3,4,5 . La PSRAM est visiblement un ajout sur la version V2.0 du PicoCalc
    Le nombre d'IO utilisés permet d'accroître le taux de transfert et d'assurer des performances honorables.

Les connecteurs GPIOs

Le connecteur est divisé en deux parties. Certains GPIOs sont directement connectés au Pico et d'autres sur le STM32.
Par contre, il n'est pas évident de faire la distinction entre les deux à partir du schéma.


Les GP2,3,4,5,21 sont maintenant attachés à la PSRAM, j'imagine que le graphique ci-dessus concerne la version 1.0 du Pico Calc.

Le GP28 semble toujours disponible. A noter que c'est aussi une entrée analogique.

L'UART0_RX et TX correspond au GP0 et GP1 du Pico. Ces broches peuvent aussi servir bus I2C(0). Etant donné que I2C(0) n'est pas utilisé sur le PicoCalc, il est donc envisageable d'utiliser ces deux broches comme GPIO, UART ou I2C au choix.

Les broches USB_DP et USB_DM sont directement raccordés sur le STM32. Ces broches correspondent à USB Data + (plus) et USB Data - (minus).

L'UART1_RX et TX est plus ambigu. Ce dernier est raccordé sur les GP9 et GP8 du Pico mais aussi sur le M_UART3 du STM32 (respectivement PC11 et PC10 pour RX/TX). Après quelques recherches, il semblerait qu'il soit possible d'utiliser l'USART3 du STM32 (PC10 & PC11) avec le bootloader (mise-à-jour du firmware STM32).

Pour l'instant, je n'ai aucune idée de la disponibilité des signaux UART1_RX & TX côté Pico.

Mais si le STM32 activait ses broches PC10 & 11 en entrée (haute impédance) alors il serait possible d'utiliser les GP8 et GP9 du Pico aussi bien en entrée qu'en sortie. Ce serait TOP car il serait possible d'y placer des GPIO, l'UART(1) ou d'y déplacer le bus I2C(0).


Accès aux deux ports USBs

Le port MicroUSB (en bas de l'image) donne directement accès au Pico, ce qui permet d'y téléverser un des multiples firmwares disponibles (le bouton Boot du Pico reste accessible par l'arrière du PicoCalc).

Le port USB-C (en haut de l'image) est utilisé pour recharger les accus mais est également utilisé à d'autres fins grâce à deux "switchs analogiques" WAS7227 (sel1 et sel2)
PicoCalc : Branchement USB-C (cliquer pour agrandir)

Les deux switchs analogiques sont commander par le même interrupteur SW701 visible en bas de l'image.

Lorsque SW701 est ouvert (comme sur l'image), ses deux interrupteurs internes qui sont solidaires sont ouvert. Par conséquent: sel1=LOW, sel2=LOW et Boot0=LOW.

Sur le STM32, Boot0=LOW permet au STM32 de démarrer le programme en flash (et donc le support Clavier du STM32).
SEL2=LOW redirige l'USB-C vers le convertisseur USB-to-UART (CH340C).
SEL1=LOW redirige l'USB-to-UART vers l'UART(0) du Pico (GP0 & GP1).

Dans cette configuration, l'USB-C est branché directement sur sur l'UART(0) du Pico.

Cet UART est souvent utilisé pour répliquer la ligne de commande du firmware (MicroPython, MMBasic, etc).
Cela permet donc d'utiliser le port USB-C avec un ordinateur avec un programme Terminal. Il sera ainsi plus facile de coder vos programmes depuis un ordinateur comme s'ils étaient encodés sur le PicoCalc lui-même.

A noter aussi que cet UART(0) est également accessible sur la 2ième partie du connecteur GPIO PicoCalc.

Lorsque SW701 est fermé (à l'inverse de l'image), les deux interrupteurs internes sont solidaires et fermés. Par conséquent: sel1=HIGH, sel2=HIGH et boot0=HIGH.

Dans ce cas de figure, USB-C est branché sur l'interface USB du STM32 (via U701). Boot0 étant en HIGH, le STM32 passe en mode de programmation, cela permet de faire la mise-à-jour du firmware clavier du STM32 via le port USB-C. 

Note: U702 & U703 ne mène nulle part dans cette configuration... c'est assez bizarre.

Les firmwares disponibles

Selon le site officiel PicoCalc, plusieurs firmwares sont disponibles (Basic, Lisp, Unix, MP3 Player).

Et la plateforme supporte de nombreux langages de programmation (MicroPython, C/C++, Lua Script, GoLang, Javascript, Rust).

Les environnements de développement courants du Pico sont bien entendu supportés. Parmi ceux-cis ont retrouve:

  • Le SDK Pico
  • Arduino IDE
  • ThonnyIDE (pour MicroPython).

En farfouillant sur le dépôt PicoCalc (parmi les dépôts de ClockWorkPi), je découvre le sous-répertoire Bin contient plusieurs  firmware pour le Pico (fichiers uf2).

PicoMite Basic pour PicoCalc

PicoMite Basic pour PicoCalc est une version adaptée de PicoMite destiné a fonctionner directement sur le PicoCalc.

PicoMite MMBasic

Ce Basic propose:

  • Une ligne de commande
  • Un éditeur de code (rudimentaire mais agréable d'emploi) 
  • Le chargement et sauvegarde de code Basic.
  • Stockage sur le Pico ou sur la carte SD.
  • Support de mode graphique. 
  • Le support des numéro de ligne OU de code structuré
  • Le chargement d'images (format BMP).
  • Le contrôle de GPIO directement depuis le code Basic.
    C'est idéal pour la découverte du Hacking électronique.

PicoMite est une version modifiée de MMBasic (mmbasic.com) pour Raspberry-Pi Pico. MMBasic est décidément devenu très populaire depuis qu'il a quitté la plateforme Maximite pour s'adapter à d'autres environnement.

Le manuel détaillé du Basic est celui de MMBasic (MaxiMiteBasic) disponible depuis la section des téléchargement de MMBasic.

Vous pouvez découvrir PicoCalc et PicoBasic sur cette vidéo de retroComb Tech.


Les autres firmwares

Cet article devient très long et l'éditeur peine un peu... je vais donc reporter la suite des Firmwares PicoCalc dans un second article.

A tout bientôt,
Dominique

  •  

CrowPi 3 par Elecrow : le laboratoire portable pour Raspberry Pi, Arduino, Pico, micro:bit !

Le CrowPi 3 d’Elecrow est un véritable laboratoire portable pour le Raspberry Pi, mais aussi pour l’Arduino, le Pico et le micro:bit. J’ai eu la chance de recevoir ce produit en avant-première, confié par Elecrow pour des essais avant sa sortie officielle. Logé dans une mallette robuste, le CrowPi 3 intègre un écran tactile, un […]

Cet article CrowPi 3 par Elecrow : le laboratoire portable pour Raspberry Pi, Arduino, Pico, micro:bit ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

💾

  •  

Comment installer et configurer un serveur VPN avec votre Raspberry Pi : tutoriel complet

Transformer votre Raspberry Pi en serveur VPN représente une solution économique et personnalisable pour sécuriser vos connexions internet. Ce tutoriel vous guide pas à pas dans la mise en place de ce réseau privé virtuel maison qui protégera efficacement vos données lors de vos navigations sur des réseaux publics.

Pourquoi créer un réseau privé virtuel avec un Raspberry Pi

L’utilisation d’un VPN offre de nombreux avantages pour la sécurité et la flexibilité de votre connexion internet. Un serveur VPN personnel basé sur Raspberry Pi vous permet de naviguer de manière sécurisée même sur des réseaux Wi-Fi publics potentiellement dangereux.

La protection de vos données personnelles constitue l’avantage principal de cette installation. En cryptant votre trafic internet, vous vous protégez contre les attaques de type “homme du milieu” où un pirate pourrait intercepter vos communications. Cette sécurité est particulièrement appréciée par les visiteurs de parissportifssuisse.org qui recherchent les meilleurs sites de paris sportifs suisses, car ils  manipulent des données sensibles comme leurs informations bancaires.

Votre Raspberry Pi transformé en serveur VPN vous offre également un accès distant à votre réseau local. Vous pourrez ainsi:

  • Contrôler vos appareils domotiques depuis n’importe où
  • Accéder à vos fichiers personnels stockés sur votre réseau domestique
  • Contourner les limitations des opérateurs mobiles qui bloquent les connexions entrantes
  • Établir une connexion sécurisée sur des réseaux Wi-Fi non fiables

L’investissement initial reste minime comparé aux services VPN commerciaux nécessitant des abonnements mensuels. Votre Raspberry Pi fonctionne comme un serveur VPN personnel sans limite d’utilisation ni restriction géographique.

Configuration matérielle et prérequis techniques

Avant de commencer l’installation de votre serveur VPN, assurez-vous de disposer du matériel nécessaire. La mise en place d’un réseau privé virtuel sur Raspberry Pi requiert quelques éléments indispensables pour garantir une expérience optimale.

Le choix du modèle de Raspberry Pi influence directement les performances de votre serveur VPN. Un Raspberry Pi 3 ou supérieur est fortement recommandé pour obtenir des vitesses de connexion satisfaisantes. La puissance de calcul supplémentaire permet de gérer efficacement le chiffrement des données sans ralentissement notable.

Voici la liste complète du matériel requis:

Composant Spécification recommandée Rôle
Raspberry Pi Modèle 3B+ ou supérieur Serveur VPN principal
Système d’exploitation Raspbian Lite Plateforme logicielle
Alimentation 5V/2.5A minimum Stabilité du système
Connexion Internet ADSL/Fibre stable Accès distant

La configuration réseau joue également un rôle crucial. Vous aurez besoin d’une adresse IP publique fournie par votre fournisseur d’accès internet ou d’un service DNS dynamique si votre adresse change régulièrement. Cette étape permet aux clients VPN de localiser et de se connecter à votre serveur depuis l’extérieur.

L’architecture réseau typique comprend le Raspberry Pi connecté directement à votre box internet et les différents clients (ordinateurs, smartphones) qui se connecteront à distance. Pour une installation plus avancée, vous pouvez également configurer un routeur 4G avec un client VPN pour sécuriser toutes les connexions de votre domicile.

Installation et configuration du serveur OpenVPN

L’installation d’OpenVPN sur votre Raspberry Pi peut s’effectuer de deux manières: soit par une méthode simplifiée utilisant le script PiVPN, soit manuellement pour les utilisateurs avancés souhaitant un contrôle total de la configuration.

La méthode simplifiée reste recommandée pour la plupart des utilisateurs. Pour démarrer l’installation, connectez-vous à votre Raspberry Pi en SSH et exécutez la commande suivante dans le terminal:

curl -L https://install.pivpn.io | bash

L’assistant d’installation vous guidera à travers les étapes essentielles de configuration:

  1. Choisissez l’utilisateur qui gérera les configurations VPN (par défaut: pi)
  2. Sélectionnez le port à utiliser (le port standard 1194 est généralement recommandé)
  3. Déterminez le protocole de transport (UDP offre de meilleures performances, TCP une meilleure fiabilité)
  4. Configurez le client DNS (OpenDNS ou Google DNS sont des options populaires)
  5. Renseignez les informations pour votre certificat (pays, région, email)
  6. Définissez la longueur des clés de cryptage (2048 bits offre un bon équilibre sécurité/performance)

Une fois l’installation terminée, vous devrez créer des profils utilisateurs pour chaque appareil qui se connectera à votre VPN. Utilisez la commande pivpn add pour générer un nouveau profil. Le système produira un fichier .ovpn que vous devrez transférer vers l’appareil client.

Pour gérer vos utilisateurs VPN, plusieurs commandes s’avèrent utiles:

Pour afficher les clients actuellement connectés: pivpn clients
Pour lister tous les certificats actifs: pivpn list
Pour révoquer l’accès d’un utilisateur: pivpn revoke

Vérification et dépannage du serveur VPN

Une fois votre serveur VPN Raspberry Pi configuré, il est essentiel de vérifier son bon fonctionnement et de savoir résoudre les problèmes potentiels. Plusieurs outils et techniques vous permettent de confirmer que votre installation fonctionne correctement.

Commencez par vérifier que le service OpenVPN est actif et fonctionne correctement sur votre Raspberry Pi. La commande sudo systemctl status openvpn affiche l’état actuel du service. Un statut “active (running)” indique que tout fonctionne normalement.

Pour tester la connexion depuis l’extérieur, configurez un client VPN sur votre smartphone ou ordinateur portable en utilisant le fichier .ovpn généré précédemment. Désactivez votre Wi-Fi domestique pour simuler une connexion distante et tentez de vous connecter via les données mobiles.

Les problèmes courants incluent souvent des erreurs de redirection de port sur votre routeur. Vérifiez que le port UDP ou TCP choisi lors de l’installation (généralement 1194) est correctement redirigé vers l’adresse IP locale de votre Raspberry Pi.

Les journaux système constituent une ressource précieuse pour le dépannage. Consultez-les avec la commande sudo tail -f /var/log/openvpn.log pendant que vous tentez une connexion pour identifier les messages d’erreur spécifiques.

Ce serveur VPN personnel basé sur Raspberry Pi représente une solution puissante et économique pour sécuriser vos communications. Au-delà de la protection de votre vie privée, il vous offre une flexibilité incomparable pour accéder à vos ressources personnelles depuis n’importe où dans le monde.

Evaluer cet article post

L’article Comment installer et configurer un serveur VPN avec votre Raspberry Pi : tutoriel complet est apparu en premier sur Raspberry Pi France.

  •  

Pourquoi abandonner les gestionnaires de mots de passe des navigateurs pour plus de sûreté

Aujourd’hui, gérer ses mots de passe est devenu indispensable. Entre les dizaines de comptes en ligne, il est impossible de retenir tous les mots de passe complexes nécessaires pour garantir notre sécurité. C’est là que les gestionnaires de mots de passe entrent en jeu : ils enregistrent, sécurisent et remplissent automatiquement nos identifiants. De plus […]

L’article Pourquoi abandonner les gestionnaires de mots de passe des navigateurs pour plus de sûreté est apparu en premier sur Windtopik.

  •