Glossaire rapide :
- Microcontrôleur : une puce intégrant une mémoire, avec la capacité d’effectuer des calculs et d’exécuter des micrologiciels. C’est l’équivalent d’un processeur mais dans un clavier.
- Firmware : micrologiciel servant à dire au contrôleur ce qu’il doit faire. Par exemple, transposer une frappe du clavier en un code à renvoyer à l’ordinateur ou bien effectuer les calculs pour gérer l’animation de l’éclairage du clavier.
- Software : logiciel à installer sur l’ordinateur. Dans notre situation, c’est un logiciel permettant de communiquer avec le firmware, par exemple en envoyant au firmware l’ordre de changer de type d’éclairage.
- Code source : le code lisible par un humain, qui une fois compilé donne le firmware ou le software. Nécessaire pour faire des changements dans le logiciel.
I. Introduction à l’organisation de l’industrie gaming
a. La réduction des coûts…
Je pense que je ne vous apprends rien, il vous est déjà arrivé d’acheter du matériel informatique d’une marque A, puis d’une marque B, et de se rendre compte que les logiciels faisant fonctionner les deux sont quasi identiques.
Ce n’est pas du tout un hasard.
La plupart des usines d’assemblage en Chine ne possèdent pas de développeurs en interne. Ils ont souvent des ingénieurs électroniciens pour dessiner les circuits imprimés pour ensuite y intégrer une solution logicielle sous-traitée mais pas d’équipe de développement dédié.
La raison est simple : le coût.
Un couple firmware / software, une fois développé peut être réutilisé sur un très grand nombre de modèles. Peu importe que votre clavier soit blanc, noir ou rouge, l’électronique interne, le branchement logique reste identique. Il est donc peu pertinent d’entretenir un département d’ingénieurs.
La plupart du temps, ces usines préfèreront investir dans de l’outillage industriel pour améliorer la productivité et continuer à proposer des prix compétitifs.
b. …au prix de la liberté…
Le développement du couple firmware / software est donc confié à des SSII (société de services en ingénierie informatique, quoique l’on devrait appeler çà des ESN désormais). La plupart de ces entreprises sont taïwanaises.
Ces entreprises SSII proposent systématiquement un package “all in one”.
Elles vous fourniront :
- des microcontrôleurs avec le firmware préinstallé
- un accès à un logiciel qu’elles peuvent rebrand avec votre logo.
- des customisations suivant vos demandes.
L’avantage est de taille, vous évitez l’investissement initial de la création d’un couple firmware / software.
“C’est trop beau pour être vrai, elle est où l’arnaque?”
Cependant le revers de la médaille est une dépendance à ces entreprises.
En effet, vous recevez les microcontrôleurs avec le firmware préinstallé et l’exécutable du logiciel. Pas les codes sources. Vous ne pourrez donc pas changer de fournisseur et continuer à utiliser leur logiciel, vous ne pourrez pas changer de microcontrôleurs aussi facilement.
S’ils souhaitent augmenter le prix de leur licence, vous n’avez aucune marge de négociation.
S’ils tombent à court de stock de microcontrôleur (comme c’est le cas actuellement) vous ne pourrez pas aller voir un autre fournisseur.
Bref. La dépendance.
c. et de la flexibilité.
Comme je l’expliquais au point précédent, les SSII proposent des customisations du firmware et du software mais de manière très limité, tel que la couleur, la police d’écriture, le logo…
Dès que vous essayez d’aller plus loin, vous vous heurtez à un mur.
Imaginons, votre souris utilise des puces d’un fournisseur A et votre clavier utilise des puces d’un fournisseur B et vous souhaitez faire un logiciel unifié.
“Hey, cette situation me rappelle quelque chose… Genre ta situation actuelle? “
Ils refuseront purement et simplement et vous forceront à acheter tous vos composants chez eux. Pas de discussion possible et oui c’est exactement ma situation actuelle.
De même, le potentiel d’évolution est rapidement atteint.
Je vous donne un exemple, je voulais synchroniser la barre du support smartphone aux PV du personnage sur le Bane. Le hardware le supporte, chaque LED dans le support du smartphone est relié à un driver RGB qui reçoit des instructions et peut s’illuminer de manière indépendante.
Mais le software ne le supporte pas. Pire encore, cette SSII en charge du développement du software du Bane ne sait pas du tout comment le faire et je n’ai bien entendu pas la possibilité de faire intervenir un prestataire externe qui pourrait résoudre le challenge.
“Woah, situation plutôt compliquée pour toi. Je suppose que si tu en parles, ce n’est pas pour t’apitoyer sur ton sort mais parce que tu as une solution n’est ce pas? “
Exactement.
II. Planifier, évoluer…
Dans mon cas, dès que j’ai compris que cette situation était une impasse, j’ai commencé à planifier une évolution pour gagner en indépendance.
a. Unifier le hardware
La SSII qui nous fournit actuellement les microcontrôleurs du Bane est sans doute l’une des boîtes les plus crapuleuses à qui j’ai eu à faire.
Pour s’assurer encore plus de la dépendance de ses clients, le microcontrôleur a été renommé et la fiche technique (en gros le manuel de la puce) a été tronqué à 11 pages, au lieu de 150 pages, rendant impossible le développement d’un firmware sur mesure.
Ainsi, quand vous ouvrez le clavier, vous allez trouver une puce VS11K09A-1, qui est en réalité un Sonix SN32F248B rebrand.
“Attends… S’ils ont rebrand le microcontrôleur pour rendre impossible le redéveloppement d’un firmware maison, comment tu as fait pour découvrir sa vraie identité ? “
Dieu merci, ils sont idiots. Ils ont tronqué la fiche technique sans modifier le texte d’origine. Une simple recherche google avec le contenu du texte a été suffisant pour retomber sur la fiche technique d’origine.
J’ai donc continué à jouer l’idiot en leur disant que je souhaite garder le même microcontrôleur pour tous mes claviers afin de faciliter le développement d’un logiciel unifié. En omettant bien évidemment de dire qu’ils ne seront pas ceux en charge d’un tel développement.
Schématiquement, mes trois claviers ( le Champion’s Bane, le Ironclad et le futur TKL ) utilisent une base matériel strictement identique :
Le Bane utilise un microcontrôleur central, avec deux drivers LED (pour les bordures et le repose poignet ), le Ironclad se contente du microcontrôleur central et le TKL, une version tronqué du circuit du Ironclad.
Ce qui signifie qu’un firmware fonctionnant sur l’un des claviers fonctionne sur tous les autres claviers.
“Chouette, t’en es où?”
Assez loin pour être honnête.
b. Faciliter le développement du firmware
En réalité, mon ingénieur vient de m’envoyer le tout premier prototype de mon firmware maison. Le fonctionnement de l’éclairage RGB n’est pas encore implémenté mais la matrice des touches est actuellement fonctionnelle.
Je sais que ce n’est pas très impressionnant, mais pour moi c’est une avancée majeure. Pour faire court, j’ai désormais la capacité à développer du matériel de zéro, c’est-à-dire la structure mécanique, l’électronique mais aussi le code pour faire fonctionner le matériel.
C’est un savoir-faire fondamental que très peu de marques maîtrisent. Réussir à obtenir ce genre de savoir-faire au vu du niveau de développement de mon entreprise correspond à looter la dernière épée légendaire du jeu après avoir fini le tutoriel.
“Question pratique : C’est quand qu’on a notre logiciel unifié? Genre, on est avec toi depuis 2019 pour certains hein.”
Il me faudra encore un peu de temps… Je m’explique.
III. Unifier et développer.
a. Unifier
Ce que vous voyez au-dessus n’est que le firmware du clavier. Il me faudra donc le software permettant de dialoguer avec.
Ensuite il faudra refaire le même travail pour la souris. Comme vous vous en doutez, la souris se repose aussi sur un firmware sous-traité.
Heureusement, le microcontrôleur de la souris est déjà connu, elle se repose sur un Holtek HT68FB560.
En atteignant ces objectifs, je me libère de nombreuses contraintes. Par exemple, je peux changer de fournisseur de puces à volonté, je peux aussi exploiter les derniers microcontrôleurs haut de gamme pour lesquels ces SSII ne proposent pas encore de firmware fonctionnel.
Pour faire court, la liberté.
b. Développer
Je disais dans le titre que ce serait le dernier firmware sous-traité. Le clavier TKL est à mon sens le dernier clavier que je pourrais sortir en filaire sans que cela représente un handicap.
Un clavier 65% est en cours de développement mais avec le retour des clients, j’ai compris que le fonctionnement sans fil serait une fonctionnalité incontournable.
Ayant testé les solutions sans-fil proposées par ces SSII, je me suis rendu compte qu’ils ne répondent ni à mes attentes en terme de réactivité, ni à mes attentes en terme d’autonomie.
La seule solution étant de développer le projet entièrement en interne.
Conclusion
Vous savez, je lis tous les commentaires que vous postez sur mes produits, je prends en note toutes les remarques que vous me faites par email ou via la messagerie de Facebook.
Et je me suis rapidement rendu compte que continuer à travailler avec les SSII n’est pas une solution envisageable sur le long terme.
D’une part ils se reposent énormément sur leurs lauriers, innovent peu, ne se soucient pas de l’expérience client… donc en totale contradiction avec ma vision, mes valeurs et ma manière de faire…
D’autre part, ils demandent des sommes absolument colossales pour des services basiques. J’avais demandé à une entreprise Taïwanaise le prix pour y améliorer l’expérience utilisateur de leur logiciel. Leur devis de 50 000€ m’a rapidement calmé.
Enfin, l’absence d’un savoir faire aussi fondamentale en interne ne peut que porter préjudice à l’évolution de mon entreprise.
Bref.
Ce billet de blog était particulièrement porté sur l’aspect stratégique du développement de mon entreprise. Le projet retournera à nouveau sur l’aspect technique avec le fonctionnement d’un firmware de clavier 🙂