On continue

Vu que ce projet prend plus longtemps que prévu (voir la fin de mon post précédent), j’ai décidé de séparer les logs en plusieurs posts. Je tenterai d’écrire au fur et à mesure de ma progression.

Vu que j’ai déjà pas mal de retard, je vais résumer un peu.

The road so far…

Divide and conquer

Commencer à concevoir le PCB m’a forcé à diviser les dépôts Git du case et du PCB. Ça m’a permis de limiter les erreurs et les commits quand je bossais sur une partie sans affecter l’autre. Même si parfois, j’étais obligé de bosser sur les deux sous-projets en même temps, au moins c’est mieux versionné et on peut revenir en arrière beaucoup plus facilement.

PCB et case

Comme dit dans le précédent post, j’ai suivi ce tutoriel pour concevoir le PCB. C’était la première fois que je suivais un tuto pour concevoir un PCB from scratch. Je me suis beaucoup aidé du tuto d’ai03 et du build log de Masterzen.

J’ai décidé dans un premier temps de faire un PCB et un case pour un espacement MX. Je me suis finalement décidé pour le MCU Helios de 0xCB. Le fait que ça soit fait par des Européens (Allemands) et open-source, j’ai trouvé ça plutôt copain.

Pour KiCad, ils suggéraient fortement d’utiliser la librairie de symboles et d’empreintes marbastlib, elle aussi open-source. De plus, elle peut être mise à jour diretement depuis KiCad. Pour cela il suffit d’ajouter le dépôt dans le gestionnaire de plugins et contenu; ça permet de la mettre à jour plus facilement qu’en faisant un git pull. Enfin, elle comporte tout plein de symboles et d’empreintes, notamment pour les switches Choc; ça me permettait d’avoir quelque-chose de cohérent au final (et moins source d’erreur).

Le seul souci est qu’il n’y avait pas toutes les tailles dont j’avais besoin. La taille 2u n’était dispo que sous forme d’ajout pour les stabilisateurs (ce qui ne me convenait pas) et la taille 2.25u (dont je me sers pour la touche Entrée et les barres d’espace) n’existait pas. J’ai donc suivi la doc de Kicad pour modifier ces empreintes et pour faire cela proprement, j’ai forké le repo marbastlib et fait une branche par nouvelle taille.

J’ai proposé uniquement la taille 2.25u en pull request qui a été acceptée quelques semaines plus tard. Entre temps, j’avais opté pour créer dans le projet Kicad une librairie d’empreintes juste pour le projet plutôt qu’une librairie globale. Après la mise à jour de la librairie d’empreintes, j’ai laissé uniquement la taille 2u dans la librairie locale.

Après beaucoup d’ajustements sur les traces, j’ai fini par avoir un truc assez propre (pour un premier PCB), sans trop de vias (les passages entre différentes couches de PCB). J’ai fait également énormément d’ajustements sur le case, vu que je n’avais pas pris en compte les trous pour la fixation 🫠. J’ai donc dû replacer les diodes.

Traces faites et copper filled

Case prototype

Après m’être planté dans le layout et ajusté celui-ci, j’ai refait un prototype de switch plate en carton sur lequel j’ai placé les switches avec les caps (ah oui, j’ai opté pour des Choc Pro Red, linéaires). J’ai pas mal testé et c’est très agréable; j’hésite quand même pour l’espacemente 🥲. J’aimerai donc tester avec un espacement Choc (mais flemme de fou de redécouper à la mano un proto) mais ça attendra pour le moment.

Prototype découpé avec le MCU Helios et les switches rouge dans un sachet

Procrastination

Vu que j’aimerai tester l’espacement Choc, plutôt que de découper le prototype et d’avancer, je me suis dit que ça serait une bonne idée de faire une révision du PCB avec l’espacement Choc 😊 D’un autre côté, ça me permet de mettre en application ce que j’ai appris de mes erreurs jusqu’à présent, notamment par rapport au placement du MCU vis-à-vis du switch case et du placement des trous pour les entretoises. J’ai également opté pour le case d’utiliser un format A3 pour le fond, et de placer les éléments exactement au même endroit que dans KiCad, vu qu’il est beaucoup plus simple de le faire dans Inkscape que dans Kicad (quoique, je m’améliore).

Le PCB avec espacement Choc en cours

Pour plus tard

À court terme, je pense me chauffer et faire le prototype avec l’espacement Choc (18x17mm) pour ne pas commander des trucs sans savoir si ça va servir et me décider sur ce qui me plaît le plus. Si c’est l’espacement Choc, je me contenterai de finir le PCB avec cet espacement, pareil pour le case.

En revanche, si c’est l’espacement MX qui me chauffe plus, je pense peut-être faire une révision avec des empreintes hybrides choc/MX. Je ne sais pas si c’est possible avec des hotswaps, faudrait que je vérifie dans la lib d’empreintes. Pourquoi pas, dans ce cas-là proposer une compatibilité avec un layout ISO. Au final, j’aurais un board plus standardisé et ça justifierait de faire faire un PCB.

Dans le cas contraire, peut-être que je me rabattrais sur une connectique soudée à la main. On verra bien.

Firmware

J’ai avancé côté firmware avec QMK également. J’ai généré le keyboard dans QMK et modifié le layout par rapport à celui par défaut pour un 65% (voir détails ici). J’ai ensuite compilé le firmware avec succès. Je n’ai pas encore testé de flasher le MCU.