L’état de l’écosystème d’interface SBC, est-il temps de concevoir une norme ?

Nous n’avons que l’embarras du choix lorsqu’il s’agit d’ordinateurs monocartes, qu’ils soient basés sur un microcontrôleur ou sur un SoC plus performant capable d’exécuter un système d’exploitation tel que GNU/Linux. Ils peuvent provenir de marques bien établies telles qu’Arduino, Adafruit ou Raspberry Pi, ou d’un Far West de modules d’Extrême-Orient moins chers portant une pléthore d’architectures différentes.

Chacun a son propre favori parmi eux, et avec cela vient un écosystème de systèmes d’exploitation et d’environnements de développement de logiciels. Il y a un autre aspect de ces conseils qui a évolué; certains d’entre eux sont devenus de facto normes de connecteur d’interface pour les périphériques matériels. Ces normes ont-elles un sens ? Parlons de ça.

D’où viennent les normes de facto ?

Dans la plupart des cas, une norme d’interface est le résultat d’un effort spécifique pour la créer. Considérez par exemple le port USB-C, au lieu de se produire simplement parce qu’un fabricant a décidé de mettre un port de données réversible à haut débit avec des capacités d’alimentation sur une machine, c’était le résultat de nombreuses années d’expérience et de travail de la part d’un consortium industriel .

Un allume-cigare de voiture
Comment diable est-ce devenu une norme de puissance?

Parfois cependant, une norme d’interface arrive par hasard. La prise d’accessoires de voiture est, à tous égards, un système de connecteur d’alimentation assez affreux, créé il y a des décennies en tant que réceptacle pour un allume-cigare électrique. Parce qu’il n’y avait pas d’autre moyen pratique d’accéder à une alimentation 12 V dans une voiture, il est devenu la source d’alimentation pour les quelques accessoires électroniques embarqués disponibles, et a depuis évolué pour devenir la prise de courant automobile standard. Curieusement, de nombreuses prises d’accessoires automobiles sont désormais inadaptées à leur usage initial, n’étant plus conçues pour résister à la chaleur d’un élément allume-cigare.

Et nous arrivons donc aux connecteurs sur les ordinateurs monocartes. Presque tous ont un connecteur d’extension, qui sert à faire ressortir autant d’interfaces disponibles en un seul endroit que possible. Certains sont bien conçus et d’autres pas tellement, mais aucun d’entre eux n’est conçu de la même manière que la prise USB pour être indépendant du matériel spécifique et avec la commodité de l’application souhaitée à l’esprit. Au lieu de cela, ils sont laissés au concepteur de la carte qui peut ne pas s’attendre à ce que l’appareil devienne une norme largement adoptée et ne peut donc pas penser à l’avance à la manière dont sa création pourrait être utilisée.

Aucun de ceux-ci n’est comme les autres

Si on nous demandait de nommer des cartes dont les interfaces sont devenues involontaires de facto normes, celles avec lesquelles nous nous retrouverions ne surprendraient pas la plupart d’entre vous. L’Arduino d’origine, le Raspberry PI, l’Adafruit Feather et peut-être le Raspberry Pi Pico, peut-être le BeagleBone, et celui que nous voyons de plus en plus, le BBC micro:bit. Cela vaut la peine de les examiner individuellement pendant une minute pour déterminer ce que nous aimons chez eux et ce que nous n’aimons pas.

Un Arduino Uno R3
L’Arduino Uno bien connu avec ses deux rangées de connecteurs blindés.

Le grand-père de tous doit être l’Arduino. On ne sait pas si c’était la première planche à nous donner l’idée des boucliers, mais c’est certainement celle qui les a popularisés. Avant l’Arduino, il était plus courant qu’une carte vienne avec une zone de prototypage à côté d’un en-tête avec les lignes d’E/S auxquelles une carte fille aurait pu être attachée, l’Arduino a donné racine à l’idée d’une famille de cartes d’extension dans un écosystème défini.

Nous aimons le brochage de l’extension Arduino pour son organisation des différents types d’interface les uns à côté des autres et dans l’ordre numérique et nous aimons son utilisation d’en-têtes de broches bon marché de 0,1 « , mais la taille de la chose et le besoin de deux ensembles d’en-têtes donc loin de l’autre semble distinctement lourd et démodé. Ne nous lancez pas sur le décalage de la ligne impaire. Pourtant, il faudra probablement beaucoup de temps avant que nous soyons libérés du bouclier Arduino classique car il y en a encore beaucoup de disponibles, mais serait-ce un choix raisonnable pour un nouveau design ici en 2022 ? Nous ne le pensons pas.

Un Pi 4 et un Pi original côte à côte
Les cartes sont peut-être très éloignées l’une de l’autre, mais l’original de 2012 perdure dans le connecteur d’extension d’aujourd’hui.

L’en-tête Raspberry Pi 40 broches et le facteur de forme HAT semblent être devenus un de facto standard pour les cartes plus puissantes, généralement celles qui exécutent Linux. C’est un clin d’œil au succès de la petite carte de Cambridge, mais pour toutes les bonnes choses que le Pi nous a apportées, nous dirions que le connecteur d’extension n’en fait pas partie. C’est une victime de la genèse du Pi en 2012 à partir d’une organisation alors minuscule produisant ce qu’ils pensaient être une série relativement petite d’un tableau qui était à l’époque à peine sorti du statut de prototype.

Les premières cartes Raspberry Pi avaient des choix de composants et de routage basés sur l’opportunité et les ressources dont elles disposaient, de sorte que les lignes soient amenées vers un en-tête était le plus important, et ne pas les organiser correctement pour une carte de marché de masse qui dominerait le secteur une décennie plus tard. Ainsi, l’interface 26 broches d’origine et l’extension 40 broches qui a suivi ont les différentes interfaces dispersées au hasard autour d’elles, et nous sommes certains que si elles faisaient le même travail aujourd’hui, elles y mettraient un peu d’ordre. Nous aimons l’utilisation d’un seul en-tête de 0,1″, mais même si nous comprenons pourquoi il en est ainsi, nous ne pouvons pas en dire autant de la disposition des broches.

Les cartes doubles en ligne telles que le Feather, le Pi Pico et les divers petits Arduinos ont une approche très pratique de l’expansion, suivant le même chemin que les plus grands DIP IC du passé. Ainsi, un Arduino Nano se trouvera souvent monté sur un morceau de stripboard ou un PCB, ou branché sur une planche à pain. Le Feather et le Pico vont plus loin, avec des cartes supplémentaires de tri qui se superposent à elles. Nous les aimons pour leurs brochages bien pensés, mais nous pensons qu’un seul connecteur donne plus de flexibilité.

Un micro:bit BBC et une carte d'extension
Belle carte, connecteur cher.

Enfin, dans notre liste de planches, il y en a une qui adopte une approche complètement différente. Le BBC micro: bit est une carte de microcontrôleur éducative conçue à l’origine pour les écoles britanniques, et son connecteur d’extension est un connecteur de bord PCB avec cinq grands plots pour les pinces crocodiles et des fiches de 4 mm pour faciliter la vie des enfants, entrecoupées de connexions à pas plus fins transportant d’autres interfaces. Il est bien conçu et constitue un choix suffisamment attrayant pour apparaître sur un certain nombre de cartes concurrentes, mais il repose sur un réceptacle de connecteur de bord spécialisé plus coûteux. Nous aimons les connecteurs de bord, mais pas ceux qui nécessitent un connecteur coûteux.

Tout pourrait être tellement mieux

Le point de vue de XKCD sur la prolifération des normes.  (CC BY-NC 2.5)
Le point de vue de XKCD sur la prolifération des normes. (CC BY-NC 2.5)

Ainsi, après avoir étudié le domaine, nous avons une gamme de normes essentiellement propriétaires qui ont été adoptées par d’autres. Aucun d’entre eux n’est la solution parfaite à l’interfaçage SBC, donc notre prochaine question est : quelles seraient les qualités que nous recherchions dans quelque chose de mieux ? C’est une conversation que nous pensons que l’industrie devrait aborder, mais comment pensons-nous qu’elle devrait l’aborder ?

Peut-être que le meilleur endroit pour commencer est le connecteur lui-même. Ici, le Raspberry Pi fait les choses correctement avec des en-têtes standard à deux rangées, ils sont bon marché et facilement disponibles sans forcer un facteur de forme de carte comme le font les cartes au format Arduino ou DIP ou nécessitant un connecteur spécial comme le fait l’écosystème micro: bit. Ensuite, le prochain domaine à considérer est le brochage. Il n’y a aucune raison pour que le GPIO numérique, les lignes analogiques et les interfaces telles que SPI ou I2C ne puissent pas être disposés sur des broches numérotées séquentiellement pour une interface facile.

Shitty Interface, version 3.11 pour les groupes de travail
Voici Shitty Interface, version 3.11 pour Workgroups. Nous vous défions, voire nous vous en supplions, de faire quelque chose de mieux.

Nous pensons que les interfaces du microcontrôleur et du SoC sont toutes suffisamment similaires pour que cela puisse être réalisé. Nous ne pensons pas non plus qu’il y ait un avantage commercial particulier pour les fabricants à avoir leur propre brochage propriétaire, car dans ce contexte, l’exclusivité a peu de valeur. Un brochage commun sur plusieurs cartes ne devrait pas prendre un consortium industriel de plusieurs millions de dollars comme c’est le cas avec l’USB, mais un simple ensemble de lignes d’E/S doit être câblé à un ensemble d’en-têtes.

La raison pour laquelle cela ne s’est pas encore produit est probablement qu’il n’y a pas eu d’incitation commerciale immédiate pour qu’ils le fassent, mais nous pensons qu’il y a là un angle qui pourrait s’avérer convaincant. Les fabricants de matériel devraient imaginer un monde dans lequel, à part tous les SBC ayant la même interface, toutes les cartes d’extension, shields, HAT ou wings l’ont aussi. Soudain, le marché potentiel d’une carte devient beaucoup plus lucratif, et puisque tous les principaux fabricants de SBC vendent également des cartes, nous espérons qu’eux aussi pourront voir le potentiel.

Nous serions intéressés d’entendre nos lecteurs à ce sujet, qu’en pensez-vous ?