En fouillant un peu dans la carte microSD inclut dans le clavier, il semblerait que ça tourne sous Linux (mais ça on s’en doutait) avec une distribution openWRT.
Hélas, une consultation approfondi du site officiel d’openWRT ne donne pas grand chose au sujet du processeur chinois t113-S3 de Allwinner qui équipe le clavier.
Le wiki (non-officiel allwinner) linux-sunxi est plus prolifique sur le sujet, il semblerait qu’une distribution nommée Tina-Linux soit dédiée à ce processeur.
Il est probable que la distribution linux du MK20 soit une Tina-Linux, maintenant est-il possible de générer un bsp pour le MK20 avec ?
Le MK20 est un système embarqué à base de Dual Cortex A7 avec 128Mo de DDR le tout intégré dans un même composant, le T113-S3.
La seule mémoire de masse disponible est en fait un lecteur de carte microSD. Ce qui n’est pas terrible dans un système embarqué industriel (très mauvaise résistance aux vibrations et au changement de température). Par contre pour un produit grand public c’est super car on peut lire le contenu de la mémoire facilement et même changer de carte SD pour mettre son propre système et reprogrammer de produit.
Une microSD préformatté de 4Go est fournie avec le système. Si on insert la carte dans un lecteur de microSD sous linux on obtient le partitionnement suivant :
$ dmesg
[ 747.426253] sd 6:0:0:0: [sdc] 7864320512-byte logical blocks: (4.03 GB/3.75 GiB)
[ 747.427485] sdc: detected capacity change from0 to 7864320
[ 747.444241] sdc: sdc1 sdc2 sdc3 sdc4 sdc5 sdc6
[ 747.996395] FAT-fs (sdc1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 748.093409] EXT4-fs (sdc5): warning: mounting unchecked fs, running e2fsck is recommended
[ 748.097878] EXT4-fs (sdc5): mounted filesystem without journal. Opts: errors=remount-ro. Quota mode: none.
[ 748.143553] EXT4-fs (sdc6): recovery complete
[ 748.149696] EXT4-fs (sdc6): mounted filesystem with ordered data mode. Opts: errors=remount-ro. Quota mode: none.
Langage du code :JavaScript(javascript)
Vue graphique sous Gparted du partitionnement de la microSD du MK20
Parmi les partitions montées automatiquement il y a la première en fat16 qui contient une image au format bitmap qu’il est facile de changer dans un premier temps :
Image «splashscreen» 160×160 que l’on peut facilement changer.
Si on le change avec une autre image, ça ne marche pas, il continu à afficher l’image ci-dessus.
Si on branche le clavier sans mettre la carte microSD, les touches vont fonctionner (pas les potentiomètre). Par contre rien ne s’affichera sur les écrans.
copie de la carte SD
On doit pouvoir faire une copie bit à bit de la carte SD sous linux :
Le MK20 est un clavier 20 touches munies chacune d’un écran couleur. Un 21ème écran est proposé au dessus avec deux boutons rotatif.
Je n’ai pas pu résister au plaisir coupable d’investir dans cet appareil (d’apparence) inutile.
Le produit vient d’arriver dans ma boite au lettres. Le produit est assez bien packagé avec une belle boite.
Un petit cube gris type métallisé est fourni pour, semble-t-il, pouvoir brancher une alimentation USB ainsi qu’un pc dessus.
Parce que périphérique n’est pas un simple clavier, il consomme un petit peut de courant sur le 5V de l’usb (1A d’après l’étiquette). Il est composé
clavier basé sur un microcontroleur GD32 et configurable avec QMK
D’un système embarqué RiscV Allwinner T113-S3 et qui semble tourner avec OpenWRT d’après ce qu’on peut voir sur la carte micro-SD de 4Go fournie avec le système.
Si on le branche à un pc (Ubuntu) on obtient un dmesg long comme le bras :
[282806.922899] usb 1-2.4.1: new high-speed USB device number 40 using xhci_hcd
[282807.002827] usb 1-2.4.1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=32.98
[282807.002844] usb 1-2.4.1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[282807.002851] usb 1-2.4.1: Product: USB2.0 Hub
[282807.037757] hub 1-2.4.1:1.0: USB hub found
[282807.038171] hub 1-2.4.1:1.0: 4 ports detected
[282807.378848] usb 1-2.4.1.2: new full-speed USB device number 41 using xhci_hcd
[282807.477045] usb 1-2.4.1.2: New USB device found, idVendor=4250, idProduct=426f, bcdDevice= 1.00
[282807.477063] usb 1-2.4.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[282807.477070] usb 1-2.4.1.2: Product: syk_keyboards
[282807.477076] usb 1-2.4.1.2: Manufacturer: SYK
[282807.684068] input: SYK syk_keyboards as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1.2/1-2.4.1.2:1.0/0003:4250:426F.001B/input/input66
[282807.790893] hid-generic 0003:4250:426F.001B: input,hidraw4: USB HID v1.11 Keyboard [SYK syk_keyboards] on usb-0000:04:00.3-2.4.1.2/input0
[282807.796045] hid-generic 0003:4250:426F.001C: hiddev2,hidraw5: USB HID v1.11 Device [SYK syk_keyboards] on usb-0000:04:00.3-2.4.1.2/input1
[282807.800816] input: SYK syk_keyboards Mouse as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1.2/1-2.4.1.2:1.2/0003:4250:426F.001D/input/input67
[282807.801227] input: SYK syk_keyboards System Control as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1.2/1-2.4.1.2:1.2/0003:4250:426F.001D/input/input68
[282807.853689] input: SYK syk_keyboards Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1.2/1-2.4.1.2:1.2/0003:4250:426F.001D/input/input69
[282807.854036] hid-generic 0003:4250:426F.001D: input,hidraw6: USB HID v1.11 Mouse [SYK syk_keyboards] on usb-0000:04:00.3-2.4.1.2/input2
[282807.858786] hid-generic 0003:4250:426F.001E: hiddev3,hidraw7: USB HID v1.11 Device [SYK syk_keyboards] on usb-0000:04:00.3-2.4.1.2/input3
[282807.946641] usb 1-2.4.2: new high-speed USB device number 42 using xhci_hcd
[282808.026068] usb 1-2.4.2: New USB device found, idVendor=04b3, idProduct=4010, bcdDevice= 5.04
[282808.026085] usb 1-2.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[282808.026092] usb 1-2.4.2: Product: Ethernet Gadget
[282808.026098] usb 1-2.4.2: Manufacturer: reMarkable
[282808.026104] usb 1-2.4.2: SerialNumber: 0
[282808.708752] cdc_ether 1-2.4.2:2.0 usb0: register 'cdc_ether' at usb-0000:04:00.3-2.4.2, CDC Ethernet Device, 7a:f3:09:cd:fa:03
[282808.708990] usbcore: registered new interface driver cdc_ether
[282808.721719] cdc_ether 1-2.4.2:2.0 enx7af309cdfa03: renamed from usb0
...
[282853.772618] usb 1-2.4.1.1: new high-speed USB device number 43 using xhci_hcd
[282853.850866] usb 1-2.4.1.1: New USB device found, idVendor=1d6b, idProduct=0104, bcdDevice= 5.04
[282853.850883] usb 1-2.4.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[282853.850891] usb 1-2.4.1.1: Product: Serial
[282853.850897] usb 1-2.4.1.1: Manufacturer: Allwinner Technology Inc.
[282854.538635] cdc_acm 1-2.4.1.1:1.0: ttyACM0: USB ACM device
[282854.538750] usbcore: registered new interface driver cdc_acm
[282854.538757] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Langage du code :JavaScript(javascript)
J’aimerai pouvoir développer des jeux avec, notament des jeux du genre memory, pour apprendre à lire ou du genre «taper sur la tête de la taupe».
La boite ouverte
Mais je voudrais que ça ne me prenne pas trop de temps. Idéalement il faudrait pouvoir l’utiliser sans connexion à un pc également.
Il y a beaucoup de chose qui sont en anglais, mais on tombe souvent sur du chinois également.
L’application qui permet de le configurer se nomme Waveshare-ScreenKey. Elle est faite pour MacOS ou Windows (~700Mo) 🙁 Les sources semblent cependant disponibles.
Comment c’est dedans ?
Je n’ai pas trouvé le schéma électronique de l’appareil par contre j’ai une clef hexagonal et je peux le démonter.
Vue interne de la partie électronique
On voit bien ici qu’il n’y a pas de DDR avec le processeur puisqu’elle est stackée dans le T113-S3.
Au démarrage, le mk20 expose une interface ethernet que l’on peut même pinger :
[ +0,041893] cdc_ether 1-2.4.2:2.0 usb0: register 'cdc_ether' at usb-0000:04:00.3-2.4.2, CDC Ethernet Device, 7a:f3:09:cd:fa:03
[ +0,626138] cdc_ether 1-2.4.2:2.0 enx7af309cdfa03: renamed from usb0
$ sudo ip addr show enx7af309cdfa03
6: enx7af309cdfa03: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 7a:f3:09:cd:fa:03 brd ff:ff:ff:ff:ff:ff
inet 10.11.99.8/27 brd 10.11.99.31 scope global dynamic noprefixroute enx7af309cdfa03
valid_lft 60sec preferred_lft 60sec
inet6 fe80::5558:f5e7:3b3f:569a/64 scope link tentative noprefixroute
valid_lft forever preferred_lft forever
$ ping 10.11.99.8
PING 10.11.99.8 (10.11.99.8) 56(84) bytes of data.
64 bytes from 10.11.99.8: icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from 10.11.99.8: icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from 10.11.99.8: icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from 10.11.99.8: icmp_seq=4 ttl=64 time=0.078 ms
Langage du code :JavaScript(javascript)
Mais c’est une connexion à son propre ordinateur !
Interface qui disparait rapidement (~5 secondes) au profit d’une interface série:
[ +0,000249] cdc_ether 1-2.4.2:2.0 enx7af309cdfa03: unregister 'cdc_ether' usb-0000:04:00.3-2.4.2, CDC Ethernet Device
[nov.2709:15] usb 1-2.4.1.1: new high-speed USB device number 48 using xhci_hcd
[ +0,079275] usb 1-2.4.1.1: New USB device found, idVendor=1d6b, idProduct=0104, bcdDevice= 5.04
[ +0,000017] usb 1-2.4.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0,000008] usb 1-2.4.1.1: Product: Serial
[ +0,000006] usb 1-2.4.1.1: Manufacturer: Allwinner Technology Inc.
[ +0,035256] cdc_acm 1-2.4.1.1:1.0: ttyACM0: USB ACM device
Langage du code :PHP(php)
Interface qui ne semble pas exposer de console shell si on s’y connecte en 115200:
2s 1 $ tio /dev/ttyACM0 -b 115200
[tio 09:20:56] tio v1.32
[tio 09:20:56] Press ctrl-t q to quit
[tio 09:20:56] Connected
Warning: Could not write to tty device
[tio 09:20:59] Disconnected
[tio 09:21:00] Connected
Le message de Warning de tio apparait lorsque l’on s’acharne sur le clavier pour essayer de taper quelque chose.
On parle souvent des lobbys agricoles français qui auraient poussé pour faire adopter la loi Duplomb. Mais ne faudrait-il pas également se demander quelles sont les entreprises qui produisent ces poisons ?
Une recherche rapide ne me donne que des entreprises étrangères :
Aujourd’hui les citoyennes et citoyens croulent sous les déchets plastiques. Ces déchets sont très difficile à recycler contrairement à ce qui peut être écrit sur les produits que l’on achète. Et leur tri pèse lourdement sur le budget des communes, tout ça pour finir en incinération dans la plupart des cas quand c’est pas pour aller polluer les cours d’eau et la mer avec des microplastiques.
Cela ne semble pas beaucoup émouvoir la pétrochimie et l’industrie du plastique qui continue à bourrer tout ce qu’on achète d’emballages plastiques à usage unique en tout genre. Cette industrie n’a d’ailleurs aucun scrupule à culpabiliser les citoyens. Après tout, ils n’ont qu’à trier !
Et si on inversait la charge mentale ? Si l’on rendait obligatoire la consigne sur tous les emballages contenant du plastique ? Mettons 5 centimes par emballage par exemple. Les consommateurs les ramèneraient volontiers au magasin qui serait à son tour contraint de retourner ces emballages à l’envoyeur. Charge à l’industriel de gérer ses déchets plastiques.
Cette consigne serait une grosse charge pour les magasins et les distributeurs qui hésiteraient à vendre des produits su-remballés de peur d’avoir à gérer toute la logistique du retour. Les industriels y réfléchiraient à deux fois avant de rajouter un emballage plastifié pour un lot de boites en cartons plastifiés contenant des tubes en plastique.
Bien sûr c’est une mesure qui va faire couiner le lobby du plastique et de la pétrochimie qui va devoir être mise au pas pour limiter la pollution des mer et des cours d’eau.
Voici une recette simple comme je les aime et qui font manger des légumes.
Légumes/pomme de terre du moments
quelques gousses d’ail sans le germe
Huile d’olive/tournesol (prendre un mélange c’est moins cher)
Paprika
sel
poivre
Laver/évider les légumes et les couper grossièrement (pas la peine d’éplucher).
huiler le plat avec un papier ménage
disposer les légumes tranches vers le haut
saler, poivrer, papriker et mettre un filet d’huile d’olive/tournesol sur chaque morceau (pas trop faut pas que ça baigne)
Enfourner à 180°C pendant 30 à 40 minutes (surveiller la cuisson avec la pointe d’un couteau)
Et voila c’est tout.
C’est très bon, on peut adapter les légumes et ça en fait manger. Pour les carnivore ça accompagne très bien tout un tas de viandes et pour les vegans ça ce suffit presque à lui même.
Le plus compliqué dans cette recette c’est de laver le plat à four.
Gaïa est une jeune femme qui vit dans un village peuplé de survivants au Flash. Le flash est une catastrophe qui a eut lieu une vingtaine d’années auparavant et qui a rendu tout le monde aveugle. Seuls les jeunes on put récupérer la vue mais ils la reperde avec l’âge, sans que personne ne sache pourquoi.
Depuis ce flash, plus aucun appareil électrique n’est capable de fonctionner. De même, les moteurs à explosions sont inopérants.
Gaïa est une jeune fille rebelle qui refuse d’obéir aux lois de sa communauté, elle apprend à faire du vélo avec le vieil ermite à l’écart du village alors que c’est interdit. Vieil ermite qui n’a pas perdu la vue comme toutes les personnes de son age étonnement.
Dans ce monde post-apocalyptique, seul les jeunes filles sont capable d’enfanter, elles perdent rapidement cette faculté en vieillissant. Il faut donc qu’elle tombe rapidement enceinte pour assurer la pérennité de la communauté, ce que Gaïa refuse bien sûr. Suite à une cérémonie assez trash organisée par les anciennes sur sa personne, Gaïa décide de fuir sur son vélo avec le vieil ermite et parcourir la région à la rencontre d’autres communauté dont elle ignorait jusqu’alors l’existence et coutume.
Cette épopée, entrecoupé de «chronique du flash» expliquant la vie d’avant, va montrer petit à petit la supériorité du vélo comme technologie résiliente, qui permet à la société de se réorganiser et assurer un avenir.
Le livre est édité par la maison suisse PVH éditions dont l’acronyme n’est pas clairement définit. L’éditeur est spécialisé dans la littérature de l’imaginaire et de science fiction. Le livre est disponible en epub et en papier dans un style cartonné assez sympathique.
Ploum est un «blogueur influent» dans le monde libre. C’est en effet un militant du logiciel libre de longue date. Celles et ceux qui suivent son blog depuis vingt ans retrouverons dans bikepunk toutes ses obsessions sur les claviers bépo, la plongée en apnée, l’anarchie, internet, la technologie, le web et les machines à écrire (qui ne sont pas en bépo pour le coup).
Pour piloter un ordinateur on utilise généralement un clavier, une souris, une manette, un joystik, la voix … mais il est possible de brancher également une pédale sur l’USB.
Tous le monde ne peut pas être shiva, du coup utiliser les pieds en plus des mains augmente les capacité de pilotage du PC.
J’en ai trouvé une chez mon dealer de chinoiseries préférés (aliexpress) que voici:
Une pédale USB pour rajouter des possibilité de pilotage au PC avec les pieds
Le truc est parfaitement détecté par Linux :
$ sudo dmesg -c
[22475.216342] usb 1-2.4.1: new full-speed USB device number 18 using xhci_hcd
[22475.337184] usb 1-2.4.1: New USB device found, idVendor=3553, idProduct=b001, bcdDevice= 0.00
[22475.337200] usb 1-2.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[22475.337207] usb 1-2.4.1: Product: FootSwitch
[22475.337213] usb 1-2.4.1: Manufacturer: PCsensor
[22475.447253] input: PCsensor FootSwitch Keyboard as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.0/0003:3553:B001.0015/input/input42
[22475.504991] input: PCsensor FootSwitch Mouse as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.0/0003:3553:B001.0015/input/input43
[22475.505474] hid-generic 0003:3553:B001.0015: input,hidraw4: USB HID v1.11 Keyboard [PCsensor FootSwitch] on usb-0000:04:00.3-2.4.1/input0
[22475.510353] input: PCsensor FootSwitch as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.1/0003:3553:B001.0016/input/input44
[22475.510708] hid-generic 0003:3553:B001.0016: input,hidraw8: USB HID v1.10 Device [PCsensor FootSwitch] on usb-0000:04:00.3-2.4.1/input1
Langage du code :PHP(php)
Il est vu comme un «PCsensor FootSwitch» dans l’interface USB HID input.
Si j’appuie dessus il écrit k avec mon mapping bépo. Avec un mapping azerty il est probable qui écrive b.
Pilotage
On trouve assez facilement des projets open source pour piloter la pédale sous linux en cherchant «PCsensor FootSwitch linux» sur duckduckgo par exemple. Ce qui est important avant de cloner un projet c’est de s’assurer que le notre est supporté histoire de se faciliter la tâche. Celui présenté ci-dessus à les références suivante :
idVendor=3553, idProduct=b001
Références qui sont données dans le projet footswitch de rgerganov par exemple.
Didier Tronchet est un dessinateur de BD (Jean-Claude Tergal) qui se déplace à vélo depuis son enfance.
En 2000 il écrit un livre nommé «Le petit traité de Vélosophie» pour faire la publicité des déplacements en vélo. À l’époque Didier se vante d’être précurseur. En 2020 il met tout ça à jour en bande dessinée.
Cette bande dessinée regorge de citations et d’illustration militante, beaucoup de ses planche pourrait-être imprimé en affiche et collées partout pour militer.
Menace
Je n’ai pas lu le «petit traité» initial, mais si c’est du même acabit que cette BD alors c’est clair que c’était précurseur !
Une superbe BD à offrir à votre beauf ou collègue handicapé de la voiture. Et si vous êtes colmarien, la BD est disponible à la médiathèque.
Le seul fabriquant de FPGA français va faire des missiles :( C'est dommage, mais c'est pas une surprise non plus. En France l'industrie de mort est celle qui marche le mieux et s'exporte très bien. — Permalink
After building a CPU, utilities forhandling bus interconnects, several DMAsand memory controllers, I often find my time focused on building interfacesbetween... — Permalink
Très pratique pour savoir a qui appartient l'éditeur d'un livre. Un coup de scan avec l'appli et hop ... tu sais que c'est à Bernard Arnault :( — Permalink
En fait c'est surtout un four de très faible puissance électrique conçu pour être compatible avec un panneau solaire. Mais avec un four de 100W comme ça on peut envisager de le brancher sur un vélo par exemple ;) — Permalink
Harness gravity with your crayon and set about creating blocks, ramps, levers, pulleys and whatever else you fancy to get the little red thing to the little yellow thing. - midzer/numptyphysics — Permalink