Vue normale

Reçu aujourd’hui — 13 novembre 2025

Récupération: reconditionner un clavier Samsung Galaxy Tab S6

Bonjour à tous,

J'ai eu l'occasion, de récupérer une ancienne tablette Galaxy Tab 6 (2019) et son clavier Bluetooth. Un système Android malheureusement plus tenu à jour en 2025 donc à l'utilisation déconseillée.

Clavier Galaxy Tab S6 (Bluetooth)

Contre toute attente, il m'a été impossible d'appairer ce clavier avec un autre système. Ceci dit, cela n'est pas très étonnant d'être confronté à un système fermé.

A contre-courant de l'obsolescence

Si je n'ai pas encore trouvé comment reconvertir la tablette (n'hésitez pas à commenter), je me suis lancé dans la reconversion du clavier pour une future application MicroPython.

Cela commence forcement par l'ouverture du clavier qui n'est pas bien difficile (il y a 4 vis sous chacun des anti-dérapant.

Clavier Galaxy Tab S6

On y retrouve un clavier à membranes connecté sur un connecteur 26 broches, un accu Lipo de faible puissance, un touchpad I2C et un microcontroleur bluetooth (non visible de ce côté de la carte).

Clavier Galaxy Tab S6

Loin moi l'idée de reprogrammer le microcontrôleur Bt de la carte (ses protections matérielles sont certainement active), je me suis dit qu'il serait plus facile de réutiliser directement la membrane avec un Pico.

C'est que l'on imagine cette membrane comme un clavier de KeyPad dont le fonctionnement est sommaire.


Avec un peu d'analyse, j'ai rapidement repéré des résistances pull-down de 35 KΩ sur chacune des lignes (excepté les 5 premières). D'autres lignes marquée sont elles équipées d'un composant spécifique (voir les points blancs sur l'image ci-dessous).


Je pensais avoir repéré les colonnes, les autres signaux étant alors les lignes.

Malheureusement, les choses ne furent pas si simples!

Un peu de hacking

Je commence donc par souder des fils vernis 0.2mm sur le connecteur en vue de réaliser des tests. Les fils sont maintenus bien en place à l'aide de colle chaude (pour éviter  de casser les fragiles soudures des fils).

Quelques fils soudés sur le connecteur (pin 1 à droite).

J'ai procédé de même avec les 26 contacts ensuite reporté sur une plaque de prototypage (bien dans l'ordre).

report des connexions sur une plaque de prototypage offrant un accès via connecteur 2.54mm

Connexion au Pico

J'ai utilisé 2x MCP23017 (GPIO expander 16 bits) pouvant être contrôlé via bus I2C, donc avec seulement deux lignes connectés sur le Pico.

Matrice clavier branché sur des MCP23017

Brochage du MCP23017

L'intérêt des MCP23017 est d'avoir les broches 1 à 26 du connecteur clavier branchés scrupuleusement dans l'ordre croissant des GPIOs des MCP23017. Pas de mathématiques complexes, il y a une relation 1-à-1 entre les MCP et la matrice clavier.

Correspondance broche clavier (1..26) vers MCP (0..15) + MCP (0..9)

Enfin, j'ai aussi remarqué que l'usage de résistance pull-down sur les 5 premières lignes améliorait la stabilité de la détection. Ces pull-down manquantes sur le connecteur clavier était probablement activée sur le microcontroleur bluetooth.


Décoder la matrice clavier

Après un premier échec sur l'identification des colonnes et des lignes de la matrice, un second script a été écrit pour tester une à une chaque ligne comme une colonne considérant alors les 25 autres lignes pour détecter une touche.

Le script tester2.py publié sur le dépôt agit comme suit:

  1. Presser une touche du clavier
  2. Au démarrage, toutes les broches sont configurées en entrée.
    Elles présentent toutes une haute impédance.
  3. Ensuite le script sélectionne une ligne -- dite driver pin--, la configure en sortie et la place au niveau haut. Cette broche présente donc une faible impédance et est capable de fournir du courant.
  4. Ensuite, les 25 autres broches --read pin-- sont interrogés une par une pour y détecter un niveau haut.
    Note:
    la touche pressée doit permettre au courant de circuler vers une des broches en lecture.
  5. S'il N'Y A PAS de détection de niveau haut ALORS
    * le script repasse la driver pin au niveau bas
    * PUIS  reconfigure celle-ci en entrée.
    * ENFIN, le script passe la driver pin sur la broche suivante
    * et recommence le cycle de détection au point 3.
  6. S'il Y A détection d'un niveau haut  ALORS le script a détecté un couple (driver_pin, read_pin) permettant de détecter la touche enfoncée.

Après avoir testé toutes les touches et répertorié les combinaisons dans une feuille calcul. Nous avons enfin un description de la matrice du clavier.

feuille calcul des détection de touches

La feuille de calcul reprend les couples drive_pin,read_pin dans la 2ieme colonne. 

Puisque le contact électrique se fait dans les deux sens entre drive_pin--et--read_pin alors il est possible d'écrire la relation de détection de F12 comme 7,13 ou 13,7 (d'ailleurs, les deux options sont indiquées par tester2.py ). 

Par souci de simplicité, la relation est écrite avec le plus petit numéro de broche d'abord (donc 7,13 pour la touche F12).

Compilation des broches

Maintenant que nous disposons d'une description de la matrice, il serait opportun d'identifier les driver_pin et les read_pin utilisés dans la matrice.... cela revient à identifier les lignes et les colonnes du keypad présenté plus haut dans l'article.

C''est justement l'objectif du script tester2-driver-pin-detect.py disponible dans le dépôt.

Ce dernier permet d'identifier:

  • driver pin = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
  • read pin = [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]

Remarque:

Il y a un recouvrement des broches driver_pin et read_pin. Suivant les circonstances, une broche de la matrice clavier agit tantôt comme broche driver_pin tantôt comme broche de read_pin (de lecture).

Lecture optimisée

Sur base des informations obtenue, le script tester3.py disponible dans le dépôt effectue une détection optimisée des touches du clavier.
La détection s'étend aux combinaisons de touches avec Shift,Ctrl,Alt.

Il reste encore un peu de travail mais le plus gros est fait :-)

 

 

Reçu hier — 12 novembre 2025

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.....

Reçu — 4 novembre 2025
Reçu — 5 août 2025

Pico-2-Explorer : ce que des clients en pensent

Bonjour à tous,

Je profite de l'occasion pour faire suivre quelques commentaires clients concernant le Pico-2-Explorer et sa documentation.

Pico-2-Explorer disponible chez MC Hobby

 Merci à Christian H. pour son retour

Pico explorer est idéal pour commencer la programmation tout y est bien expliqué, je n'ai eu aucun problème. Merci beaucoup.

Merci aussi à Paul L. pour son retour

Très intéressant

Le Pico-2-Explorer à venir découvrir chez MC Hobby

Reçu — 3 août 2025
Reçu — 10 juillet 2025

MIDI IN avec le Raspberry Pi Pico (Micropython)

9 juillet 2025 à 16:11
Dans cet article, nous allons recevoir, au moyen d'un Raspberry Pi Pico programmé en Micropython, les messages MIDI générés par un clavier musical.Il s'agit de la suite logique de mon précédent article (publié il y a presque deux ans...mieux vaut tard que jamais!) qui traitait de l'émission d'un signal MIDI. Le circuitJ'ai utilisé l'interface MIDI dont j'avais parlée dans cet article. Le

Reçu — 1 juillet 2025

Raspberry Pi RM2 : le nouveau module Wi-Fi & Bluetooth pour microcontrôleurs Pico

Besoin d’ajouter du Wi-Fi et du Bluetooth à un microcontrôleur Raspberry Pi ? Le tout nouveau Radio Module 2 (RM2) de Raspberry Pi offre une solution compacte, fiable et économique. Compatible avec les Pico  et Pico 2 , il reprend la puce Infineon CYW43439 dans un format ultra intégré avec antenne embarquée. Idéal pour vos projets […]

Cet article Raspberry Pi RM2 : le nouveau module Wi-Fi & Bluetooth pour microcontrôleurs Pico a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

Reçu — 19 juin 2025

Pico-2-BB : Garder un maximum de place sur le breadboard

Bonjour à tous,

Aujourd'hui, j'aimerais vous parler d'une idée pour faciliter le prototypage avec le Raspberry-Pi Pico.

Le meilleur adaptateur breadboard pour Pico

Constat avec le Pico

Lorsque le Pico est inséré directement sur un breadboard (demi-taille, le plus courant):

  • Une grande partie du breadboard est occupé par le Pico.
  • Il reste deux rangs de connexion pour le prototypage. 
  • Il n'y a pas de distribution d'alimentation sur les rails d'alimentation.
  • Il n'y a toujours pas de bouton Reset

 Pour faire un prototypage rapidement c'est convenable mais dès que cela se complique un peu, on manque rapidement de place.

Pico-2-Breadboard

Le Pico-2-Breadboard permet de brancher un Pico/Pico2/Pico-Wireless/Pico2-Wireless sur un breadboard en apportant une foule d'avantages.

Pico-2-Breadboard

 Il a l'air de rien vu comme ça mail il y une intense réflexion autour de la conception de cette carte.
Cette carte est d'ailleurs réalisée en 4 couches afin de pouvoir réaliser le routage.

Encombrement minimum

Pico-2-Breadboard

Pour commencer, la disponibilité des GPIO n'utilise que la moitié du breadboard MAIS EN PLUS il n'utilise qu'un seul rang sur le breadboard.
Cela laisse quatre rangs pour réaliser les connexions de prototypage.

Les rails d'alimentation son automatiquement alimentés:

  • +5V et GND sur le rail supérieur. En provenance du connecteur USB.
  • +3.3V et GND sur le rail inférieur. En provenance du régulateur du Pico.
 A noter que la tension d'alimentation et polarité sont indiqués sur la sérigraphie.

Interface utilisateur

Une interface utilisateur minimale permet de se concentrer directement le coeur du prototypage (souvent un capteur à tester).

Interfaces du Pico-2-Breadboard

L'interface utilisateur est composée des éléments suivants:
  • Bouton Reset: pour redémarrer rapidement le Pico. Ce dernier est bien séparé des deux boutons utilisateurs pour éviter de se tromper.
  • Boutons utilisateurs: branchés respectivement sur les GPIO 16 et 17, il force le potentiel d'une broche à la masse via une résistance de 100 Ohms. Il faudra donc activer la résistance pull-up avec
    btn = Pin(Pin.board.GP16, Pin.PULL_UP)
    Remarque: la résistance est utilisée pour éviter un court-circuit franc si la broche était configurée en sortie (lorsque le bouton est pressé).
  • LEDs utilisateurs: une LED rouge est branchée sur GP14 (en haut, comme sur un feu tricolore) et une LED verte sur le GP15. 
    Avec la LED du Pico, cela fait 3 LEDs pour réaliser une interface... même rudimentaire.

Connecteurs Qwiic/StemmaQT et Grove

Le dessous de la carte Pico-2-BB qui est déporté hors du breadboard.
Cela a permit de placer des cavaliers de configuration et deux connectiques populaires.
Connecteurs et configuration du Pico-2-Breadboard

Connecteur Grove et Qwiic/StemmaQT
 
Ces deux connecteurs sont branchés sur le même bus I2C(1) connecté sur les GP6 & GP7. C'est d'ailleurs pour cette raison que la mention des libellés est sda et scl sur le connecteur GPIO central.
 
Le connecteur Qwiic/StemmaQT permet de brancher facilement des capteurs I2C produit par Adafruit Industries ou SparkFun. C'est vraiment très pratique pour connecter un afficheur LCD ou OLED!
 
Le connecteur Grove (de SeedStudio) permet de brancher des capteurs I2C SeedStudio exploitant une alimentation et une logique 3.3V.
Je peux recommander les capteurs I2C et extension I2C de M5Stack qui utilisent exclusivement une logique 3.3V.
 
Remarques:
  1. Un cavalier permet de configurer la tension d'alimentation du connecteur Grove sur 5V.
    Il suffit de sectionner la piste entre la pastille centrale et la pastille 3V3.
    Enfin, souder ensemble les pastilles centrales et 5V.
  2. Peut importe la tension sur le connecteur Grove, les signaux logiques restent en 3.3V
  3. Rien n'empêche d'utiliser les GP6 et GP7 en entrée/sortie mais c'est aussi se priver d'une interface I2C sur-laquelle il est possible de connecter de multiples périphériques.

Cavalier de configuration des LEDs

Il est possible d'utiliser les GPIO des LEDs en entrée/sortie pour autre chose que contrôler les LEDs utilisateurs. Pour libérer la broche de l'influence de sa LED utilisateur, il suffit de sectionner la piste présente entre les pastilles JP_Green (LED verte) et JP_Red (LED rouge). 
 
Remarque:
  1. Les GPIOs des boutons utilisateurs peuvent être librement utilisés à d'autres fins. Il n'y aura pas de perturbation pour autant que l'utilisateur ne presse pas le bouton correspondant au GPIO.

Où acheter

Le Pico-2-BB ("Pico to Breadboard" ou encore "Pico 2 Breadboard") est disponible chez MCHobby.

❌